Browse Source

Will retrieve the file directly from network rail

develop
LO Kam Tao Leo 4 years ago
parent
commit
ba581a5ff7
  1. 1
      .gitignore
  2. 4
      src/org/leolo/rail/nrd/Constants.java
  3. 43
      src/org/leolo/rail/nrd/FileLoader.java

1
.gitignore vendored

@ -1,3 +1,4 @@
/bin/ /bin/
/target/ /target/
/configuration.properties /configuration.properties
output.file

4
src/org/leolo/rail/nrd/Constants.java

@ -1,6 +1,6 @@
package org.leolo.rail.nrd; package org.leolo.rail.nrd;
public class Constants { public class Constants {
public static final int BATCH_SIZE = 500; public static final int BATCH_SIZE = 10000;
public static final int MAX_QUEUE_SIZE = 20000; public static final int MAX_QUEUE_SIZE = 40000;
} }

43
src/org/leolo/rail/nrd/FileLoader.java

@ -6,10 +6,16 @@ import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.net.URL;
import java.net.URLConnection;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
import java.util.Base64;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
@ -17,6 +23,7 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.zip.GZIPInputStream; import java.util.zip.GZIPInputStream;
import java.util.zip.ZipException;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -50,13 +57,18 @@ public class FileLoader {
} }
InputStream fis = null; InputStream fis = null;
//TODO: get the file from Network Rail //TODO: get the file from Network Rail
try { try {
fis = new FileInputStream(ConfigurationManager.getInstance().getProperty("file.path")); URL url = new URL(ConfigurationManager.getInstance().getProperty("remote.path"));
URLConnection conn = url.openConnection();
String userpwd = ConfigurationManager.getInstance().getProperty("remote.user")+":"+ConfigurationManager.getInstance().getProperty("remote.pwd");
conn.addRequestProperty("Authorization", "Basic "+Base64.getEncoder().encodeToString(userpwd.getBytes()));
conn.connect();
fis = conn.getInputStream();
}catch(IOException e) { }catch(IOException e) {
log.fatal(e.getMessage(), e); log.error(e.getMessage(), e);
System.exit(1); System.exit(4);
} }
log.info("Connected!");
DatabaseManager.getInstance().clear(); DatabaseManager.getInstance().clear();
try( try(
GZIPInputStream gis = new GZIPInputStream(fis); GZIPInputStream gis = new GZIPInputStream(fis);
@ -103,8 +115,12 @@ public class FileLoader {
asso.shutdownAndWait(); asso.shutdownAndWait();
tiploc.shutdownAndWait(); tiploc.shutdownAndWait();
schedule.shutdownAndWait(); schedule.shutdownAndWait();
}catch(ZipException e) {
log.error(e.getMessage(), e);
captureFile();
}catch(IOException e) { }catch(IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
// log.error(e.)
System.exit(1); System.exit(1);
} }
try { try {
@ -117,4 +133,23 @@ public class FileLoader {
log.info("Job finished!"); log.info("Job finished!");
} }
private void captureFile() {
try {
URL url = new URL(ConfigurationManager.getInstance().get("remote.path").toString());
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
PrintWriter out = new PrintWriter("output.file");
while(true) {
String line = br.readLine();
if(line==null) {
break;
}
out.println(line);
}
out.close();
br.close();
}catch(IOException e) {
log.error(e.getMessage(), e);
}
}
} }

Loading…
Cancel
Save