You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2011/07/29 17:11:02 UTC

svn commit: r1152257 - in /incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest: RESTClientServlet.java RepositoryObjectSerializer.java Workspace.java

Author: marrs
Date: Fri Jul 29 15:11:01 2011
New Revision: 1152257

URL: http://svn.apache.org/viewvc?rev=1152257&view=rev
Log:
ACE-151 now also starts to expose the state of targets, read-only and not 100% complete yet

Modified:
    incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java
    incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RepositoryObjectSerializer.java
    incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/Workspace.java

Modified: incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java?rev=1152257&r1=1152256&r2=1152257&view=diff
==============================================================================
--- incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java (original)
+++ incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RESTClientServlet.java Fri Jul 29 15:11:01 2011
@@ -36,6 +36,7 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.ace.client.repository.RepositoryObject;
 import org.apache.ace.client.repository.SessionFactory;
+import org.apache.ace.client.repository.stateful.StatefulGatewayObject;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.osgi.service.cm.ConfigurationException;

Modified: incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RepositoryObjectSerializer.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RepositoryObjectSerializer.java?rev=1152257&r1=1152256&r2=1152257&view=diff
==============================================================================
--- incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RepositoryObjectSerializer.java (original)
+++ incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/RepositoryObjectSerializer.java Fri Jul 29 15:11:01 2011
@@ -22,9 +22,14 @@ import java.lang.reflect.Type;
 import java.util.Enumeration;
 
 import org.apache.ace.client.repository.RepositoryObject;
+import org.apache.ace.client.repository.object.ArtifactObject;
+import org.apache.ace.client.repository.object.DeploymentArtifact;
+import org.apache.ace.client.repository.stateful.StatefulGatewayObject;
 
+import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
 import com.google.gson.JsonSerializationContext;
 import com.google.gson.JsonSerializer;
 
@@ -50,6 +55,35 @@ public class RepositoryObjectSerializer 
             tags.addProperty(key, repositoryObject.getTag(key));
         }
         result.add("tags", tags);
+        // finally, if it's a target with state, add that as well
+        if (repositoryObject instanceof StatefulGatewayObject) {
+            StatefulGatewayObject stateful = (StatefulGatewayObject) repositoryObject;
+            JsonObject state = new JsonObject();
+            state.addProperty("registrationState", stateful.getRegistrationState().name());
+            state.addProperty("provisioningState", stateful.getProvisioningState().name());
+            state.addProperty("storeState", stateful.getStoreState().name());
+            state.addProperty("currentVersion", stateful.getCurrentVersion());
+            state.addProperty("isRegistered", Boolean.toString(stateful.isRegistered()));
+            state.addProperty("needsApproval", Boolean.toString(stateful.needsApprove()));
+            state.addProperty("autoApprove", Boolean.toString(stateful.getAutoApprove()));
+            JsonArray artifactsFromShop = new JsonArray();
+            for (ArtifactObject a : stateful.getArtifactsFromShop()) {
+                artifactsFromShop.add(new JsonPrimitive(Workspace.getRepositoryObjectIdentity(a)));
+            }
+            state.add("artifactsFromShop", artifactsFromShop);
+            JsonArray artifactsFromDeployment = new JsonArray();
+            for (DeploymentArtifact a : stateful.getArtifactsFromDeployment()) {
+                artifactsFromDeployment.add(new JsonPrimitive(a.getUrl()));
+            }
+            state.add("artifactsFromDeployment", artifactsFromDeployment);
+            state.addProperty("lastInstallVersion", stateful.getLastInstallVersion());
+            state.addProperty("lastInstallSuccess", stateful.getLastInstallSuccess());
+            /* TODO auditEvents probably also needs paging and maybe filtering / searching */
+            /* TODO getLicenses/AssocationsWith might not be that helpful since the data is also available in a different way */
+            /* TODO some of this tends to show up as attributes as well, so we will need to do some filtering there */
+            /* TODO some aspects of the state can be manipulated as well, we need to supply methods for that */
+            result.add("state", state);
+        }
         return result;
     }
 }
\ No newline at end of file

Modified: incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/Workspace.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/Workspace.java?rev=1152257&r1=1152256&r2=1152257&view=diff
==============================================================================
--- incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/Workspace.java (original)
+++ incubator/ace/trunk/ace-client-rest/src/main/java/org/apache/ace/client/rest/Workspace.java Fri Jul 29 15:11:01 2011
@@ -48,13 +48,13 @@ import org.osgi.service.useradmin.User;
 import org.osgi.service.useradmin.UserAdmin;
 
 public class Workspace {
-    private static final String ARTIFACT = "artifact";
-    private static final String ARTIFACT2FEATURE = "artifact2feature";
-    private static final String FEATURE = "feature";
-    private static final String FEATURE2DISTRIBUTION = "feature2distribution";
-    private static final String DISTRIBUTION = "distribution";
-    private static final String DISTRIBUTION2TARGET = "distribution2target";
-    private static final String TARGET = "target";
+    static final String ARTIFACT = "artifact";
+    static final String ARTIFACT2FEATURE = "artifact2feature";
+    static final String FEATURE = "feature";
+    static final String FEATURE2DISTRIBUTION = "feature2distribution";
+    static final String DISTRIBUTION = "distribution";
+    static final String DISTRIBUTION2TARGET = "distribution2target";
+    static final String TARGET = "target";
     private final String m_sessionID;
     private final String m_repositoryURL;
     private final String m_obrURL;
@@ -158,7 +158,7 @@ public class Workspace {
         return result;
     }
     
-    public String getRepositoryObjectIdentity(RepositoryObject object) {
+    public static String getRepositoryObjectIdentity(RepositoryObject object) {
         if (object instanceof StatefulGatewayObject) {
             return ((StatefulGatewayObject) object).getGatewayObject().getAssociationFilter(null);
         }