Add mode comments to the classes
[proteocache.git] / datadb / compbio / cassandra / JpredParserHTTP.java
index 825689e..42df7cc 100644 (file)
@@ -5,10 +5,14 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.net.Authenticator;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
+import java.net.PasswordAuthentication;
 import java.net.URL;
 import java.net.URLConnection;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -35,13 +39,33 @@ public class JpredParserHTTP implements JpredParser {
        private int countNoData;
        private static boolean archiving = false;
        private static final PropertyHelper ph = ProteoCachePropertyHelperManager.getPropertyHelper();
+       static SimpleDateFormat timeformatter = new SimpleDateFormat("yyyy/MM/dd:H:m:s");
 
        public JpredParserHTTP() {
                dirprefix = "http://www.compbio.dundee.ac.uk/www-jpred/results";
+               launchAuthenticator();
        }
 
+       public void launchAuthenticator() {
+               final String authUser = "as373024";
+           final String authPassword = "Zx1--L12";
+           final String authHost = "gskproxy.gsk.com";
+           final String authPort = "800";
+             Authenticator.setDefault(new Authenticator() {
+                public PasswordAuthentication getPasswordAuthentication() {
+                   return new PasswordAuthentication(authUser, authPassword.toCharArray());
+                }
+             });
+             System.setProperty("proxySet", "true");
+             System.setProperty("http.proxyUser", authUser);
+             System.setProperty("http.proxyPassword", authPassword);
+             System.setProperty("http.proxyHost", authHost);
+             System.setProperty("http.proxyPort", authPort);
+       }
+       
        public JpredParserHTTP(String sourceurl) {
-               dirprefix = sourceurl;
+             dirprefix = sourceurl;
+             launchAuthenticator();
        }
 
        public void setSource(String newsourceprefix) {
@@ -132,10 +156,19 @@ public class JpredParserHTTP implements JpredParser {
                JpredJob job = new JpredJob(jobinfo[jobinfo.length - 1], jobinfo[0], jobinfo[1]);
                job.setIP(jobinfo[2]);
                job.setProgramName("Jpred");
+               job.setProgramVersion("3.0.1");
                Date currDate = new Date();
                String maindir = dirprefix + "/" + job.getJobID() + "/";
 
                try {
+                       Date finishTime = timeformatter.parse(jobinfo[1]);
+                       long delay = currDate.getTime() / 1000 - finishTime.getTime() / 1000;
+                       if (delay < 120) return 0;
+               } catch (ParseException e) {
+                       e.printStackTrace();
+               }
+
+               try {
                        URL dirurl = new URL(maindir);
                        HttpURLConnection httpConnection_dirurl = (HttpURLConnection) dirurl.openConnection();
                        if (httpConnection_dirurl.getResponseCode() < 199 || 300 <= httpConnection_dirurl.getResponseCode()) {
@@ -162,6 +195,7 @@ public class JpredParserHTTP implements JpredParser {
                                job.setLog(parseLogFile(logurl.openStream(), job));
                        } else {
                                // The job has not been started at all...
+                               System.out.println ("WARNING! Job " + job.getJobID() + " has status FAIL/STOPPED");
                                job.setExecutionStatus("FAIL");
                                job.setFinalStatus("STOPPED");
                                running = false;