Skip to content

Commit f005435

Browse files
author
NoteFox
committed
update ControllerEndpoint.java
1 parent 92bed2f commit f005435

11 files changed

Lines changed: 402 additions & 269 deletions

File tree

init.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
// just so it doesn't read an random file out of nothing
33
//
44
// Standart config
5-
// 'variable' 'name' = 'value'
5+
// <variabl> <name> = <value>
66
// '//' Comment
77

88
[init]
99
logDefaultDir = log/
1010
mapsDefaultDir = maps/
1111
sftpDefaultDir = sftp/
12+
msgPath = msgs/
13+
idSavePath = ids/
1214

1315
renderingParameterFilePath = db_rendering.txt
1416
ohdmConverterFilePath = OHDMConverter.jar

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>ohdm</groupId>
1414
<artifactId>runner</artifactId>
15-
<version>0.9.2-SNAPSHOT</version>
15+
<version>0.9.9-SNAPSHOT</version>
1616
<name>runner</name>
1717
<description>mapDownloadService for Android App</description>
1818
<!-- lookup parent from repository -->

src/java/Server/ControllerEndpoint/ControllerEndpoint.java

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@
77
import java.io.*;
88
import java.text.SimpleDateFormat;
99

10+
import static Server.CustomObjects.LogType.INFO;
11+
1012
public class ControllerEndpoint extends Thread {
1113

1214
private String msgPath;
15+
private String LOG_TAG = "ControllerAccessEndpoint";
1316

1417
public ControllerEndpoint(String msgPath) {
1518
this.msgPath = msgPath;
@@ -53,13 +56,15 @@ private ControllerRequest readContent(File file) throws IOException {
5356

5457
String value = br.readLine();
5558
br.close();
59+
Logger.instance.addLogEntry(INFO, LOG_TAG, "read new request | ID : " + id + " | Request : " + value);
5660
return new ControllerRequest(id, value);
5761
}
5862

5963
private BufferedWriter writeResponse(File file, ControllerRequest r) throws IOException {
6064
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
6165
bw.write(r.returnValue);
6266
bw.flush();
67+
Logger.instance.addLogEntry(INFO, LOG_TAG, "response send : " + r.returnValue + " | \nID: " + r.id);
6368
return bw;
6469
}
6570

@@ -70,9 +75,9 @@ private String processRequest(String request) throws IOException {
7075
case "help" :
7176
answer += "currently implemented : " + "\n";
7277
answer += " status - giving back the status the service is currently in \n";
73-
answer += " log - gives back the current log entries\n";
74-
answer += " daemonLog - gives back the daemon log entries\n";
75-
answer += " reload webservice - restarts the service with new read init values (all buffered requests will be saved)\n";
78+
answer += " current log - gives back the current log entries\n";
79+
answer += " daemon log - gives back the daemon log entries\n";
80+
answer += " reload requestService - restarts the service with new read init values (all buffered requests will be saved)\n";
7681
answer += " reload log - restarts log with new read init values\n";
7782
answer += " restart - restarts the whole Service with new read init values\n";
7883
return answer;
@@ -103,19 +108,22 @@ private String processRequest(String request) throws IOException {
103108
return answer;
104109

105110
case "daemon log" :
106-
File daemonLogFile = new File("daemonLog.log");
111+
File daemonLogFile = new File("daemonLog.txt");
107112
br = new BufferedReader(new InputStreamReader(new FileInputStream(daemonLogFile)));
108113
while (br.ready())
109114
answer += br.readLine() + "\n";
110115

111116
return answer;
112117

113-
case "reload webservice":
114-
return SpringClass.reloadWebService();
118+
case "reload requestService":
119+
return SpringClass.reloadRequestService();
115120

116121
case "reload log":
117122
return SpringClass.reloadLog();
118123

124+
case "reload id":
125+
return SpringClass.reloadID();
126+
119127
case "restart":
120128
return SpringClass.restart();
121129

@@ -149,25 +157,34 @@ public synchronized void run() {
149157
File f = null;
150158
try {
151159
f = fetchNewFile();
152-
System.out.println("new File found");
153160
} catch (InterruptedException e) {
154161
e.printStackTrace();
155162
}
156163

164+
ControllerRequest request = null;
157165
try {
158-
ControllerRequest request = readContent(f);
166+
request = readContent(f);
167+
168+
} catch (IOException e) {
169+
e.printStackTrace();
170+
}
171+
assert request != null;
159172

160-
assert request != null;
161-
request.setReturnValue(processRequest(request.value));
173+
try {
174+
request.setReturnValue(processRequest(request.value));
175+
} catch (IOException e) {
176+
request.setReturnValue(e.getMessage());
177+
}
162178

163-
f.delete();
179+
f.delete();
164180

165-
File returnFile = new File(msgPath + request.id + ".ans");
181+
File returnFile = new File(msgPath + request.id + ".ans");
182+
try {
166183
writeResponse(returnFile, request).close();
167-
168184
} catch (IOException e) {
169185
e.printStackTrace();
170186
}
187+
171188
}
172189
}
173190
}

src/java/Server/CustomObjects/QueryRequest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class QueryRequest extends Thread {
1010
private List<Coords> coordinates;
1111
private String date;
1212
private String mapName;
13-
private int requestedByID;
13+
private String requestedByID;
1414

1515
private QueryRequestStatus status = QueryRequestStatus.REQUESTED;
1616

@@ -29,7 +29,7 @@ public class QueryRequest extends Thread {
2929

3030
private long startTime = System.currentTimeMillis();
3131

32-
public QueryRequest(List<Coords> coordinates, String date, String mapName, int id, String osmDir, String mapDir, String renderingParameter, String ohdmConverter, String javaJdkPath, String jdbcDriverPath) {
32+
public QueryRequest(List<Coords> coordinates, String date, String mapName, String id, String osmDir, String mapDir, String renderingParameter, String ohdmConverter, String javaJdkPath, String jdbcDriverPath) {
3333
this.osmDir = osmDir;
3434
this.mapDir = mapDir;
3535

@@ -71,7 +71,7 @@ public QueryRequestStatus getStatus() {
7171
return status;
7272
}
7373

74-
public int getRequestedByID() {
74+
public String getRequestedByID() {
7575
return requestedByID;
7676
}
7777
public String getErrorMessage() {
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package Server.IDService;
2+
3+
import Server.CustomObjects.LogEntry;
4+
import Server.CustomObjects.LogType;
5+
import Server.LogService.Logger;
6+
7+
import java.io.*;
8+
import java.util.Date;
9+
import java.util.Random;
10+
11+
public class IDSystem {
12+
13+
private static final String LOG_TAG = "IDSystem";
14+
15+
private static final String idCharacterAlphabet = "abcdefghijklmnopqrstuvwxyz";
16+
private static final String idNumbersAlphabet = "1234567890";
17+
private static final String idSpecialCharactersAlphabet = "_-";
18+
19+
private static final int idSize = 8;
20+
21+
private static File idSaveFile;
22+
23+
public static void setIDSaveFile(File idSaveFile) throws IOException {
24+
IDSystem.idSaveFile = idSaveFile;
25+
if (!idSaveFile.exists()) {
26+
new File(idSaveFile.getParent()).mkdirs();
27+
idSaveFile.createNewFile();
28+
Logger.instance.addLogEntry(LogType.INFO, LOG_TAG, "created new id-savefile at " + idSaveFile.getPath());
29+
}
30+
}
31+
32+
public static String createNewID() throws IOException {
33+
boolean newIDCreated = false;
34+
String newID = null;
35+
while (!newIDCreated) {
36+
newID = generateID(new Random(), idCharacterAlphabet + idCharacterAlphabet.toUpperCase() + idNumbersAlphabet, 8);
37+
newIDCreated = !idAlreadyExists(newID);
38+
}
39+
40+
writeEntry(newID);
41+
return newID;
42+
}
43+
44+
private static void writeEntry(String id) throws IOException {
45+
String temp = "";
46+
47+
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(idSaveFile)));
48+
49+
while(br.ready()) {
50+
temp += br.readLine() + "\n";
51+
}
52+
53+
temp += id + "\n";
54+
br.close();
55+
56+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(idSaveFile)));
57+
bw.write(temp);
58+
bw.flush();
59+
bw.close();
60+
}
61+
62+
public static boolean idAlreadyExists(String id) throws IOException {
63+
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(idSaveFile)));
64+
while (br.ready()) {
65+
if (id.equals(br.readLine())) {
66+
br.close();
67+
return true;
68+
}
69+
}
70+
br.close();
71+
return false;
72+
}
73+
74+
private static String generateID(Random rng, String characters, int length)
75+
{
76+
char[] text = new char[length];
77+
for (int i = 0; i < length; i++)
78+
{
79+
text[i] = characters.charAt(rng.nextInt(characters.length()));
80+
}
81+
return new String(text);
82+
}
83+
}

src/java/Server/LogService/Logger.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public class Logger extends Thread implements LoggerInt {
2626
private Boolean isWaiting = false;
2727
public boolean isRunning = false;
2828

29+
public boolean stop = false;
30+
2931
private boolean newDirCreated = false;
3032

3133
private String logDefaultDir;
@@ -96,7 +98,8 @@ private void swapToNextDayDirIfNecessary() throws IOException {
9698
}
9799

98100
public void stopThread() {
99-
101+
stop = true;
102+
interrupt();
100103
}
101104

102105
@Override
@@ -123,7 +126,11 @@ public synchronized void run() {
123126
}
124127
if (BUFFER_LIST.isEmpty()) {
125128
isWaiting = true;
126-
try { wait(); } catch (InterruptedException e) { /*kindly ignore*/ }
129+
try {
130+
wait();
131+
} catch (InterruptedException e) {
132+
// kindly ignore
133+
}
127134
isWaiting = false;
128135
} else {
129136
try {
@@ -133,6 +140,9 @@ public synchronized void run() {
133140
}
134141
BUFFER_LIST.remove(0);
135142
}
143+
144+
if (stop)
145+
return;
136146
}
137147
}
138148

src/java/Server/Playground.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,6 @@
11
package Server;
22

3-
import Server.CustomObjects.LogType;
4-
import Server.FileService.SFTPService.SftpClient.RemoteDirectory;
5-
import Server.FileService.SFTPService.SftpClient.RemoteFile;
6-
import Server.FileService.SFTPService.SftpClient.SftpClient;
7-
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
8-
import com.jcraft.jsch.*;
9-
import org.apache.juli.logging.Log;
10-
113
import java.io.*;
12-
import java.nio.file.Paths;
13-
import java.text.SimpleDateFormat;
14-
import java.util.ArrayList;
15-
import java.util.Arrays;
16-
import java.util.List;
174

185
public class Playground {
196

0 commit comments

Comments
 (0)