Author: lresende
Date: Wed Apr  4 18:42:37 2012
New Revision: 1309527

URL: http://svn.apache.org/viewvc?rev=1309527&view=rev
Log:
Enhancing domain asset manager to support resources that is not directly 
exposed with rest binding

Added:
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResource.java
      - copied, changed from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyService.java
      - copied, changed from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java
    tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
      - copied, changed from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
      - copied, changed from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
   (contents, props changed)
      - copied, changed from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
   (contents, props changed)
      - copied, changed from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java
Removed:
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java
Modified:
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainCompositeResource.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java?rev=1309527&r1=1309526&r2=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java
 Wed Apr  4 18:42:37 2012
@@ -29,6 +29,7 @@ import javax.ws.rs.PathParam;
 import org.oasisopen.sca.annotation.Remotable;
 
 @Remotable
+@Path("")
 public interface DomainAssetManagerResource {
 
     @GET

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainCompositeResource.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainCompositeResource.java?rev=1309527&r1=1309526&r2=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainCompositeResource.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainCompositeResource.java
 Wed Apr  4 18:42:37 2012
@@ -27,6 +27,7 @@ import javax.ws.rs.PathParam;
 import org.oasisopen.sca.annotation.Remotable;
 
 @Remotable
+@Path("")
 public interface DomainCompositeResource {
 
     @GET

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java?rev=1309527&r1=1309526&r2=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java
 Wed Apr  4 18:42:37 2012
@@ -109,7 +109,24 @@ public class DomainAssetManagerResourceI
             for(Service service : component.getServices()) {
                 Interface interfaceContract = 
service.getInterfaceContract().getInterface();
                 
if(ManageableResource.class.getName().equals(interfaceContract.toString())) {
+                    
+                    //the simple case, the resource is directly exposed with 
rest binding
                     Binding binding = service.getBinding(RESTBinding.class);
+                    if(binding == null) {
+                        //the resource is available via some other interface
+                        //(e.g. service implements resource, 
manageableResource interfaces)
+                        for(Service s : component.getServices()) {
+                            binding = s.getBinding(RESTBinding.class);
+                            if(binding != null) {
+                                break;
+                            }
+                        }
+                    }
+                    
+                    if(binding == null) {
+                        //WARNING that the manageableResource is not exposed 
via rest binding
+                    }
+                    
                     if(binding != null) {
                         
                         Status status = new Status();
@@ -167,7 +184,8 @@ public class DomainAssetManagerResourceI
                     status.setUri(service.getBindings().get(0).getURI());
                     
                     try {
-                        ManageableService serviceInstance = 
node.getService(ManageableService.class, component.getName());
+                        String serviceName = component.getName() + "/" + 
service.getName();
+                        ManageableService serviceInstance = 
node.getService(ManageableService.class, serviceName);
                         Timer t = new Timer();
                         serviceInstance.isAlive();
                         status.setExecution(t.elapsed(TimeUnit.MILLISECONDS));

Copied: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResource.java
 (from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java)
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResource.java?p2=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResource.java&p1=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java&r1=1308444&r2=1309527&rev=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResource.java
 Wed Apr  4 18:42:37 2012
@@ -19,14 +19,13 @@
 
 package services;
 
-import org.apache.tuscany.sca.node.manager.ManageableService;
+import javax.ws.rs.GET;
+import javax.ws.rs.core.Response;
 
-public class MyServiceImpl implements ManageableService {
-
- 
-    @Override
-    public void isAlive() {
-        System.out.println(">>> isAlive");
-    }
+import org.oasisopen.sca.annotation.Remotable;
 
+@Remotable
+public interface MyResource {
+    @GET
+    Response getSomething();
 }

Copied: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyService.java
 (from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java)
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyService.java?p2=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyService.java&p1=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java&r1=1308444&r2=1309527&rev=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyService.java
 Wed Apr  4 18:42:37 2012
@@ -19,14 +19,10 @@
 
 package services;
 
-import org.apache.tuscany.sca.node.manager.ManageableService;
-
-public class MyServiceImpl implements ManageableService {
-
- 
-    @Override
-    public void isAlive() {
-        System.out.println(">>> isAlive");
-    }
+import org.oasisopen.sca.annotation.Remotable;
 
+@Remotable
+public interface MyService {
+    
+    void doSomething();
 }

Copied: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
 (from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java)
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java?p2=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java&p1=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java&r1=1308444&r2=1309527&rev=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
 Wed Apr  4 18:42:37 2012
@@ -17,18 +17,32 @@
  * under the License.    
  */
 
-package services;
+package services.impl;
 
 import javax.ws.rs.core.Response;
 
 import org.apache.tuscany.sca.node.manager.ManageableResource;
+import services.MyResource;
 
-public class MyResourceImpl implements ManageableResource {
+public class MyLongRunningResourceImpl implements MyResource, 
ManageableResource {
 
     @Override
     public Response ping() {
-        System.out.println(">>> ping");
+        System.out.println(">>> long running ping");
+        try {
+            Thread.sleep(1000);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
         return Response.ok("pong").build();
     }
+    
+
+    @Override
+    public Response getSomething() {
+        System.out.println(">>> getSomething");
+        return Response.ok("something").build();
+    }
+
 
 }

Copied: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
 (from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java)
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java?p2=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java&p1=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java&r1=1308444&r2=1309527&rev=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
 Wed Apr  4 18:42:37 2012
@@ -17,18 +17,17 @@
  * under the License.    
  */
 
-package services;
+package services.impl;
 
 import javax.ws.rs.core.Response;
 
 import org.apache.tuscany.sca.node.manager.ManageableResource;
 
-public class MyResourceImpl implements ManageableResource {
+public class MyOtherResourceImpl implements ManageableResource {
 
     @Override
     public Response ping() {
         System.out.println(">>> ping");
         return Response.ok("pong").build();
     }
-
 }

Copied: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
 (from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java)
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java?p2=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java&p1=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java&r1=1308444&r2=1309527&rev=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyResourceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
 Wed Apr  4 18:42:37 2012
@@ -17,18 +17,26 @@
  * under the License.    
  */
 
-package services;
+package services.impl;
 
 import javax.ws.rs.core.Response;
 
 import org.apache.tuscany.sca.node.manager.ManageableResource;
 
-public class MyResourceImpl implements ManageableResource {
+import services.MyResource;
+
+public class MyResourceImpl implements MyResource, ManageableResource {
 
     @Override
     public Response ping() {
         System.out.println(">>> ping");
         return Response.ok("pong").build();
     }
+    
+    @Override
+    public Response getSomething() {
+        System.out.println(">>> getSomething");
+        return Response.ok("something").build();
+    }
 
 }

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
 (from r1308444, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java)
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java?p2=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java&p1=tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java&r1=1308444&r2=1309527&rev=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/MyServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
 Wed Apr  4 18:42:37 2012
@@ -17,11 +17,13 @@
  * under the License.    
  */
 
-package services;
+package services.impl;
 
 import org.apache.tuscany.sca.node.manager.ManageableService;
 
-public class MyServiceImpl implements ManageableService {
+import services.MyService;
+
+public class MyServiceImpl implements MyService, ManageableService {
 
  
     @Override
@@ -29,4 +31,8 @@ public class MyServiceImpl implements Ma
         System.out.println(">>> isAlive");
     }
 
+    @Override
+    public void doSomething() {
+        System.out.println(">>> doSomething");
+    }
 }

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite?rev=1309527&r1=1309526&r2=1309527&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite
 Wed Apr  4 18:42:37 2012
@@ -33,21 +33,29 @@
        </component>
        
        <component name="Resource">
-               <implementation.java class="services.MyResourceImpl"/>
-               <service name="ManageableResource">
+               <implementation.java class="services.impl.MyResourceImpl"/>
+               <service name="MyResource">
                        <tuscany:binding.rest uri="/services/resource" />
                </service>
        </component>
 
        <component name="LongRunningResource">
-               <implementation.java 
class="services.MyLongRunningResourceImpl"/>
+               <implementation.java 
class="services.impl.MyLongRunningResourceImpl"/>
+               <service name="MyResource">
+                       <tuscany:binding.rest uri="/services/long/resource" />
+               </service>
+       </component>
+
+       <component name="OtherResource">
+               <implementation.java class="services.impl.MyOtherResourceImpl"/>
                <service name="ManageableResource">
-                       <tuscany:binding.rest uri="/services/another/resource" 
/>
+                       <tuscany:binding.rest uri="/services/other/resource" />
                </service>
        </component>
+
        
        <component name="Service">
-               <implementation.java class="services.MyServiceImpl"/>
+               <implementation.java class="services.impl.MyServiceImpl"/>
                <service name="ManageableService">
                        <binding.sca />
                </service>


Reply via email to