You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2013/11/05 21:44:22 UTC

svn commit: r1539126 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/event/ uima-ducc-transport/src/main/ja...

Author: burn
Date: Tue Nov  5 20:44:22 2013
New Revision: 1539126

URL: http://svn.apache.org/r1539126
Log:
UIMA-3371 Simplify the replies from the SM so CLI or app can easily construct a clear msg

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/event/ServiceManagerEventListener.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceQueryReplyEvent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceReplyEvent.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java?rev=1539126&r1=1539125&r2=1539126&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java Tue Nov  5 20:44:22 2013
@@ -516,10 +516,11 @@ public class DuccServiceApi 
 
     static boolean format_reply(UiOption verb, IServiceReply reply)
     {
-        String result = (reply.getReturnCode()) ? "succeeded" : "failed";
-        String reason = (reply.getReturnCode()) ? "" : ": " +reply.getMessage();
-        String action = "Service " + verb;
-        String msg = (action + " " + result + " ID " + ((reply.getId() == -1) ? "<none>" : reply.getId()) + " endpoint " + reply.getEndpoint() + reason);
+        // Note
+        String ep = reply.getEndpoint()!=null ? reply.getEndpoint() : "";
+        String id = reply.getId()!=-1 ? " ID["+String.valueOf(reply.getId())+"]" : "";
+        String result = (reply.getReturnCode()) ? " succeeded - " : " failed - ";
+        String msg = "Service " + verb + result + reply.getMessage() + " - " + ep + id;
         switch ( verb ) {
            case Register:
            case Unregister:
@@ -529,7 +530,11 @@ public class DuccServiceApi 
                System.out.println(msg);
                break;
            case Query:
-               System.out.println(reply.toString());
+               if (reply.getReturnCode()) {
+                   System.out.println(reply.toString());
+               } else {
+                   System.out.println(msg);
+               }
                break;
         }
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java?rev=1539126&r1=1539125&r2=1539126&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java Tue Nov  5 20:44:22 2013
@@ -765,8 +765,9 @@ public class ServiceHandler
         } else {
             ServiceSet sset = serviceStateHandler.getServiceForApi(friendly, epname);
             if ( sset == null ) {
-                reply.setMessage("Unrecognized service ID[" + friendly + "] Endpoint[" + epname + "]");
+                reply.setMessage("Unknown");
                 reply.setEndpoint(epname);
+                reply.setId(friendly);
                 reply.setReturnCode(false);
             } else {
                 IServiceDescription sd = sset.query();
@@ -784,17 +785,16 @@ public class ServiceHandler
         
         long friendly = ev.getFriendly();
         String epname = ev.getEndpoint();
-        String serviceIdString = extractId(friendly, epname);
         ServiceSet sset = serviceStateHandler.getServiceForApi(friendly, epname);
         if ( sset == null ) {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " does not exist.", null, null);
+            return new ServiceReplyEvent(false, "Unknown", epname, friendly);
         }
 
         String userin = ev.getUser();
         String userout = sset.getUser();
 
         if ( !userin.equals(userout) && !serviceManager.isAdministrator(userin) ) {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " Start declined: not owner.",  serviceIdString, null);
+            return new ServiceReplyEvent(false, "Owned by " + userout,  epname, friendly);
         }
 
         if ( sset.isRegistered() ) {
@@ -810,9 +810,9 @@ public class ServiceHandler
             }
             if ( wanted == 0 ) {
                 return new ServiceReplyEvent(true, 
-                                             "Service " + serviceIdString + " instances[" + running + "], no additional instances started. ", 
+                                             "Already has instances[" + running + "] - no additional instances started", 
                                              sset.getKey(), 
-                                             sset.getId());
+                                             sset.getId().getFriendly());
             }
 
             pendingRequests.add(new ApiHandler(ev, this));
@@ -823,14 +823,11 @@ public class ServiceHandler
 //             t.start();
 
             return new ServiceReplyEvent(true, 
-                                         "Service " + serviceIdString + " start request accepted, new instances[" + wanted + "]", 
+                                         "New instances[" + wanted + "]", 
                                          sset.getKey(), 
-                                         sset.getId());
+                                         sset.getId().getFriendly());
         } else {
-            return new ServiceReplyEvent(false, 
-                                         "Service " + serviceIdString + " is not a registered service.", 
-                                         sset.getKey(), 
-                                         null);    
+            return new ServiceReplyEvent(false, "Not registered", sset.getKey(), sset.getId().getFriendly());      
         }
     }
 
@@ -872,28 +869,27 @@ public class ServiceHandler
     {
         long friendly = ev.getFriendly();
         String epname = ev.getEndpoint();
-        String serviceIdString = extractId(friendly, epname);
         ServiceSet sset = serviceStateHandler.getServiceForApi(friendly, epname);
         if ( sset == null ) {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " does not exist.", null, null);
+            return new ServiceReplyEvent(false, "Unknown", epname, friendly);
         }
 
         String userin = ev.getUser();
         String userout = sset.getUser();
 
         if ( !userin.equals(userout) && !serviceManager.isAdministrator(userin) ) {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " Start declined: not owner.",  serviceIdString, null);
+            return new ServiceReplyEvent(false, "Owned by " + userout,  epname, friendly);
         }
 
         if ( sset.isRegistered() ) {
             if ( sset.isStopped() ) {
-                return new ServiceReplyEvent(false, "Service " + serviceIdString + " is already stopped.", sset.getKey(), sset.getId());
+                return new ServiceReplyEvent(false, "Already stopped", sset.getKey(), sset.getId().getFriendly());
             }
 
             pendingRequests.add(new ApiHandler(ev, this));
-            return new ServiceReplyEvent(true, "Service " + serviceIdString + " stop request accepted.", sset.getKey(), sset.getId());
+            return new ServiceReplyEvent(true, "Stopping", sset.getKey(), sset.getId().getFriendly());
         } else {
-            return new ServiceReplyEvent(false, "Service " + friendly + " is not a registered service.", sset.getKey(), null);            
+            return new ServiceReplyEvent(false, "Not registered", sset.getKey(), sset.getId().getFriendly());         
         }
 
     }
@@ -942,12 +938,16 @@ public class ServiceHandler
             sset = new ServiceSet(id, props_filename, meta_filename, props, meta);
         } catch (Throwable t) {
             error = t.getMessage();
-            return new ServiceReplyEvent(false, t.getMessage(), "New Service", id);            
+            return new ServiceReplyEvent(false, t.getMessage(), "?", id.getFriendly());            
         }
 
         String key = sset.getKey();
 
-        if (serviceStateHandler.getServiceByName(key) == null ) {
+        // Check if already registered
+        ServiceSet sset0 = serviceStateHandler.getServiceByName(key);
+        if ( sset0 != null ) {
+            error = ("Duplicate owned by: " + sset0.getUser());
+        } else {
             try {
                 sset.saveServiceProperties();
             } catch ( Exception e ) {
@@ -975,20 +975,18 @@ public class ServiceHandler
                     must_deregister = true;
                 }
             }
-        } else {
-            error = ("Duplicate service: " + key + ".  Registration fails");
         }
 
         if ( error == null ) {
             serviceStateHandler.putServiceByName(sset.getKey(), sset);
-            return new ServiceReplyEvent(true, "Registered service.", key, id);
+            return new ServiceReplyEvent(true, "Registered", key, id.getFriendly());
         } else {
             File mf = new File(meta_filename);
             mf.delete();
             
             File pf = new File(props_filename);
             pf.delete();
-            return new ServiceReplyEvent(false, error, key, id);
+            return new ServiceReplyEvent(false, error, key, id.getFriendly());
         }
     }
 
@@ -996,17 +994,16 @@ public class ServiceHandler
     {
         long friendly       = ev.getFriendly();
         String epname = ev.getEndpoint();
-        String serviceIdString = extractId(friendly, epname);
     	ServiceSet sset = serviceStateHandler.getServiceForApi(friendly, epname);
         if ( sset == null ) {
-            return new ServiceReplyEvent(false, "Unrecognized service ID[" + friendly + "] Endpoint[" + epname + "]", "?", null);
+            return new ServiceReplyEvent(false, "Unknown", epname, friendly);
         }
 
         String userin = ev.getUser();
         String userout = sset.getUser();
 
         if ( !userin.equals(userout) && !serviceManager.isAdministrator(userin) ) {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " Start declined: not owner.",  serviceIdString, null);
+            return new ServiceReplyEvent(false, "Owned by " + userout,  epname, friendly);
         }
         
     	if ( sset.isRegistered() ) {            
@@ -1014,9 +1011,9 @@ public class ServiceHandler
 //             ApiHandler  apih = new ApiHandler(ev, this);
 //             Thread t = new Thread(apih);
 //             t.start();
-            return new ServiceReplyEvent(true, "Service " + serviceIdString + " modify request accepted.", sset.getKey(), sset.getId());
+            return new ServiceReplyEvent(true, "Modifing", sset.getKey(), sset.getId().getFriendly());
         } else {
-            return new ServiceReplyEvent(false, "Service " + friendly + " is not a known service.", sset.getKey(), null);            
+            return new ServiceReplyEvent(false, "Not registered", sset.getKey(), sset.getId().getFriendly());           
         }
     }
 
@@ -1055,17 +1052,16 @@ public class ServiceHandler
     {
         long friendly = ev.getFriendly();
         String epname = ev.getEndpoint();
-        String serviceIdString = extractId(friendly, epname);
         ServiceSet sset = serviceStateHandler.getServiceForApi(friendly, epname);
         if ( sset == null ) {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " does not exist.",  serviceIdString, null);
+            return new ServiceReplyEvent(false, "Unknown",  epname, friendly);
         }
 
         String userin = ev.getUser();
         String userout = sset.getUser();
 
         if ( !userin.equals(userout) && !serviceManager.isAdministrator(userin) ) {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " Unregister declined: not owner.",  serviceIdString, null);
+            return new ServiceReplyEvent(false, "Owned by " + userout,  epname, friendly);
         }
 
         if ( sset.isRegistered() ) {            
@@ -1074,9 +1070,9 @@ public class ServiceHandler
 //             ApiHandler  apih = new ApiHandler(ev, this);
 //             Thread t = new Thread(apih);
 //             t.start();
-            return new ServiceReplyEvent(true, "Service " + serviceIdString + " unregistered. Shutting down implementors.", sset.getKey(), sset.getId());
+            return new ServiceReplyEvent(true, "Shutting down implementors", sset.getKey(), sset.getId().getFriendly());
         } else {
-            return new ServiceReplyEvent(false, "Service " + serviceIdString + " is not a registered service.", sset.getKey(), null);            
+            return new ServiceReplyEvent(false, "Not registered", sset.getKey(), sset.getId().getFriendly());            
         }
         
     }
@@ -1104,11 +1100,6 @@ public class ServiceHandler
         sset.deleteProperties();
     }
 
-    String extractId(long friendly, String epname)
-    {
-        return ((epname == null) ? Long.toString(friendly) : epname);
-    }
-
     /**
      * From: http://en.wikipedia.org/wiki/Topological_sorting
      *

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java?rev=1539126&r1=1539125&r2=1539126&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java Tue Nov  5 20:44:22 2013
@@ -615,7 +615,7 @@ public class ServiceManagerComponent 
 
         if ( ! validated ) {
             logger.warn(methodName, null, "User", user, "cannot be validated.", action, "rejected.");
-            req.setReply(new ServiceReplyEvent(false, "User " + user + " cannot be validated. " + action + " rejected.", "NONE", null));
+            req.setReply(new ServiceReplyEvent(false, "User " + user + " cannot be validated. " + action + " rejected.", "NONE", -1));
             return false;
         }
         return true;
@@ -637,7 +637,7 @@ public class ServiceManagerComponent 
             id = newId();
         } catch ( Exception e ) {
             logger.error(methodName, null, e);
-            ev.setReply(new ServiceReplyEvent(false, "Internal error; unable to generate id", endpoint, null));
+            ev.setReply(new ServiceReplyEvent(false, "Internal error; unable to generate id", endpoint, -1));
             return;
         }
         logger.debug(methodName, id, "Unique:", id.getUnique());

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/event/ServiceManagerEventListener.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/event/ServiceManagerEventListener.java?rev=1539126&r1=1539125&r2=1539126&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/event/ServiceManagerEventListener.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/event/ServiceManagerEventListener.java Tue Nov  5 20:44:22 2013
@@ -75,7 +75,7 @@ public class ServiceManagerEventListener
 
     private ServiceReplyEvent failureEvent(String message)
     {
-        return new ServiceReplyEvent(false, message, "no.endpoint", null);
+        return new ServiceReplyEvent(false, message, "no.endpoint", -1);
     }
 
     private ServiceReplyEvent failureEvent()

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceQueryReplyEvent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceQueryReplyEvent.java?rev=1539126&r1=1539125&r2=1539126&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceQueryReplyEvent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceQueryReplyEvent.java Tue Nov  5 20:44:22 2013
@@ -33,7 +33,7 @@ public class ServiceQueryReplyEvent 
     List<IServiceDescription> services = new ArrayList<IServiceDescription>();
     public ServiceQueryReplyEvent()
     {
-        super(true, "Query Reply", "No Endpoint", null);
+        super(true, "Query Reply", "No Endpoint", -1);
     }
 
     public void addService(IServiceDescription s)

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceReplyEvent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceReplyEvent.java?rev=1539126&r1=1539125&r2=1539126&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceReplyEvent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ServiceReplyEvent.java Tue Nov  5 20:44:22 2013
@@ -33,9 +33,9 @@ public class ServiceReplyEvent 
     private boolean return_code;
     private String message = "N/A";
     private String endpoint;
-    private DuccId id;
+    private long id;
     
-	public ServiceReplyEvent(boolean rc, String message, String endpoint, DuccId id)
+	public ServiceReplyEvent(boolean rc, String message, String endpoint, long id)
     {
 		super(EventType.SERVICE_REPLY);
         this.return_code = rc;
@@ -68,16 +68,12 @@ public class ServiceReplyEvent 
 		this.endpoint = endpoint;
 	}
 
-	public DuccId getDuccId() {
-		return id;
-	}
-
 	public long getId() 
     {
-		return (id == null ) ? -1 : id.getFriendly();
+		return id;
 	}
 
-	public void setId(DuccId id) {
+	public void setId(long id) {
 		this.id = id;
 	}