Roll back some changes in WSDL of RegistryWS for some time: restore back compatibility
[jabaws.git] / webservices / compbio / ws / server / RegistryWS.java
index 2e9e500..8be071e 100644 (file)
@@ -33,6 +33,7 @@ import javax.xml.ws.handler.MessageContext;
 \r
 import org.apache.log4j.Logger;\r
 \r
+import compbio.data.msa.Category;\r
 import compbio.data.msa.JABAService;\r
 import compbio.ws.client.Services;\r
 import compbio.ws.client.WSTester;\r
@@ -56,6 +57,7 @@ public class RegistryWS implements compbio.data.msa.RegistryWS, JABAService {
         * Stores tested and passed (the test) services and their testing time\r
         */\r
        private final static Map<Services, Date> operating = new ConcurrentHashMap<Services, Date>();\r
+       private final static Map<Services, Date> nonoperating = new ConcurrentHashMap<Services, Date>();\r
 \r
        /**\r
         * Indicate whether the services were tested at all\r
@@ -67,7 +69,13 @@ public class RegistryWS implements compbio.data.msa.RegistryWS, JABAService {
                init();\r
                return operating.keySet();\r
        }\r
-\r
+/* FOR FUTURE RELEASES!!!\r
+       @Override\r
+       public Set<Services> getNonoperatedServices() {\r
+               init();\r
+               return nonoperating.keySet();\r
+       }\r
+*/\r
        private void init() {\r
                // Do not allow tests to run concurrently\r
                if (timeToTest()) {\r
@@ -136,19 +144,19 @@ public class RegistryWS implements compbio.data.msa.RegistryWS, JABAService {
                Writer testlog = new StringWriter();\r
                PrintWriter writer = new PrintWriter(testlog, true);\r
                WSTester tester = new WSTester(getServicePath(), writer);\r
-               // This is done deliberately to prevent malicious user from overloading\r
-               // the server\r
+               // This is done deliberately to prevent malicious user from overloading the server\r
                synchronized (operating) {\r
                        for (Services service : Services.values()) {\r
                                try {\r
                                        if (tester.checkService(service)) {\r
                                                operating.put(service, new Date());\r
+                                       } else {\r
+                                               nonoperating.put(service, new Date());\r
                                        }\r
                                } catch (Exception e) {\r
                                        log.info(e, e.getCause());\r
-                                       writer.println("Fails to connect to a web service: "\r
-                                                       + service + " With " + e.getLocalizedMessage()\r
-                                                       + "\nDetails: ");\r
+                                       String rep = "Fails to connect to a web service: " + service + " with";\r
+                                       writer.println(rep + e.getLocalizedMessage() + "\nDetails: ");\r
                                        e.printStackTrace(writer);\r
                                }\r
                        }\r
@@ -160,8 +168,7 @@ public class RegistryWS implements compbio.data.msa.RegistryWS, JABAService {
        private String getServicePath() {\r
                assert wsContext != null : "WS context injection failed!";\r
                MessageContext msContext = wsContext.getMessageContext();\r
-               HttpServletRequest request = (HttpServletRequest) msContext\r
-                               .get(MessageContext.SERVLET_REQUEST);\r
+               HttpServletRequest request = (HttpServletRequest) msContext.get(MessageContext.SERVLET_REQUEST);\r
 \r
                StringBuffer server = request.getRequestURL();\r
                server = server.delete(server.lastIndexOf("/"), server.length());\r
@@ -197,4 +204,14 @@ public class RegistryWS implements compbio.data.msa.RegistryWS, JABAService {
                return operating.containsKey(service);\r
        }\r
 \r
+       @Override\r
+       public String getServiceDescription(Services service) {\r
+               return service.getServiceInfo();\r
+       }\r
+\r
+       @Override\r
+       public Set<Category> getServiceCategories() {\r
+               return Category.getCategories();\r
+       }\r
+\r
 }\r