Author: lresende
Date: Thu Apr  5 23:19:16 2012
New Revision: 1310128

URL: http://svn.apache.org/viewvc?rev=1310128&view=rev
Log:
Enhancing manageable interface, going back to manage all resources via sca, as 
resource programming model is getting too complicated and this should be easy 
for developers

Added:
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java
   (contents, props changed)
      - copied, changed from r1309527, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.java
Removed:
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableResource.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.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/impl/DomainAssetManagerResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.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=1310128&r1=1310127&r2=1310128&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
 Thu Apr  5 23:19:16 2012
@@ -30,12 +30,7 @@ import org.oasisopen.sca.annotation.Remo
 
 @Remotable
 @Path("")
-public interface DomainAssetManagerResource {
-
-    @GET
-    @Path("{domainURI}/resources/status")
-    List<Status> getResourceStatus(@PathParam("domainURI") 
@DefaultValue("default") String domainURI);
-    
+public interface DomainAssetManagerResource {    
 
     @GET
     @Path("{domainURI}/services/status")

Copied: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java
 (from r1309527, 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.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/Manageable.java?p2=tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java&p1=tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.java&r1=1309527&r2=1310128&rev=1310128&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java
 Thu Apr  5 23:19:16 2012
@@ -22,7 +22,7 @@ package org.apache.tuscany.sca.node.mana
 import org.oasisopen.sca.annotation.Remotable;
 
 @Remotable
-public interface ManageableService {
+public interface Manageable {
 
     /**
      * isAlive method that allow service to be managed

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

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=1310128&r1=1310127&r2=1310128&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
 Thu Apr  5 23:19:16 2012
@@ -19,7 +19,6 @@
 
 package org.apache.tuscany.sca.node.manager.impl;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -31,25 +30,15 @@ import javax.ws.rs.DefaultValue;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.WebApplicationException;
 
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.binding.rest.RESTBinding;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.host.http.client.HttpClientFactory;
 import org.apache.tuscany.sca.interfacedef.Interface;
 import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.extensibility.NodeActivator;
 import org.apache.tuscany.sca.node.extensibility.NodeExtension;
 import org.apache.tuscany.sca.node.manager.DomainAssetManagerResource;
-import org.apache.tuscany.sca.node.manager.ManageableResource;
-import org.apache.tuscany.sca.node.manager.ManageableService;
+import org.apache.tuscany.sca.node.manager.Manageable;
 import org.apache.tuscany.sca.node.manager.Status;
 import org.oasisopen.sca.annotation.Init;
 import org.oasisopen.sca.annotation.Property;
@@ -59,8 +48,6 @@ import org.oasisopen.sca.annotation.Scop
 public class DomainAssetManagerResourceImpl implements NodeActivator, 
DomainAssetManagerResource {    
     private static Map<String, NodeExtension> nodeMap = new 
ConcurrentHashMap<String,NodeExtension>();
     
-    private HttpClientFactory httpClientFactory;
-    
     @Property
     private int warningTreshold;
     
@@ -87,81 +74,6 @@ public class DomainAssetManagerResourceI
         System.out.println("  - Critical threshold : " + criticalTreshold + " 
ms");
         System.out.println("  - Unavailable threshold : " + 
unavailableTreshold + " ms");
         
-        NodeExtension node = (NodeExtension) 
nodeMap.values().iterator().next();
-        if(node != null) {
-            ExtensionPointRegistry extensionPoints =  
node.getExtensionPointRegistry();
-            FactoryExtensionPoint modelFactories = 
extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
-            this.httpClientFactory = 
HttpClientFactory.getInstance(extensionPoints);
-        }
-    }
-    
-    @Override
-    public List<Status> getResourceStatus(@PathParam("domainURI") 
@DefaultValue("default") String domainURI) {
-        if( ! nodeMap.containsKey(domainURI)) {
-            throw new WebApplicationException(404);
-        }
-        
-        NodeExtension node = nodeMap.get(domainURI);
-        Composite domainComposite = node.getDomainComposite();
-        
-        List<Status> statuses = new ArrayList<Status>();
-        for(Component component : domainComposite.getComponents()) {
-            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();
-                        status.setName(component.getName());
-                        status.setUri(binding.getURI());
-                        
-                        try {
-                            Timer t = new Timer();
-                            status = testResource(status);
-                            
status.setExecution(t.elapsed(TimeUnit.MILLISECONDS));
-                            
-                            if(status.getExecution() < warningTreshold) {
-                                status.setStatus(status.OK);
-                            }else if(status.getExecution() > warningTreshold) {
-                                status.setStatus(Status.WARNING);
-                            }else if(status.getExecution() > criticalTreshold) 
{
-                                status.setStatus(Status.CRITICAL);
-                            } else {
-                                status.setStatus(Status.UNAVAILABLE);
-                            }
-                            
-                            System.out.println(">>> Execution : " + 
status.getExecution() + " ms -- " + status.getStatus());
-                            
-                        } catch (Exception e) {
-                            status.setStatus(Status.UNAVAILABLE);
-                            status.setStatusMessage(e.getMessage());
-                        }
-                        
-                        statuses.add(status);
-                    }
-                }
-            }
-            
-        }
-        return statuses;
     }
 
     @Override
@@ -177,7 +89,7 @@ public class DomainAssetManagerResourceI
         for(Component component : domainComposite.getComponents()) {
             for(Service service : component.getServices()) {
                 Interface interfaceContract = 
service.getInterfaceContract().getInterface();
-                
if(ManageableService.class.getName().equals(interfaceContract.toString())) {
+                
if(Manageable.class.getName().equals(interfaceContract.toString())) {
 
                     Status status = new Status();
                     status.setName(component.getName());
@@ -185,13 +97,13 @@ public class DomainAssetManagerResourceI
                     
                     try {
                         String serviceName = component.getName() + "/" + 
service.getName();
-                        ManageableService serviceInstance = 
node.getService(ManageableService.class, serviceName);
+                        Manageable serviceInstance = 
node.getService(Manageable.class, serviceName);
                         Timer t = new Timer();
                         serviceInstance.isAlive();
                         status.setExecution(t.elapsed(TimeUnit.MILLISECONDS));
 
                         if(status.getExecution() < warningTreshold) {
-                            status.setStatus(status.OK);
+                            status.setStatus(Status.OK);
                         }else if(status.getExecution() > warningTreshold) {
                             status.setStatus(Status.WARNING);
                         }else if(status.getExecution() > criticalTreshold) {
@@ -212,28 +124,6 @@ public class DomainAssetManagerResourceI
         return statuses;
     }
     
-    
-    private Status testResource(Status status) throws IOException {
-        
-        // Create an HTTP client
-        HttpClient httpClient = httpClientFactory.createHttpClient();
-        
-        HttpGet request = new HttpGet(status.getUri() + "ping");
-        //request.addHeader("Accept","application/json");
-        HttpResponse response = httpClient.execute(request);
-        
-        if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-            throw new IOException("Error invoking service at '" + 
request.getURI() +"' => " + response.getStatusLine().getReasonPhrase());
-        }
-        
-        if (httpClient != null) {
-            httpClient.getConnectionManager().shutdown();
-        }
-        
-        return status;
-    }
-    
-    
     class Timer {
         Date time;
         long t;

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java?rev=1310128&r1=1310127&r2=1310128&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java
 Thu Apr  5 23:19:16 2012
@@ -71,15 +71,4 @@ public class DomainAssetManagerResourceT
         Assert.assertEquals(200, response.getResponseCode());
         System.out.println(">>>" + response.getText());
     }
-    
-    @Test
-    public void testResourceManagement() throws Exception {
-        WebConversation wc = new WebConversation();
-        WebRequest request = new GetMethodWebRequest(SERVICE_URL + 
"default/resources/status");
-        request.setHeaderField("Accept","application/json");
-        WebResponse response = wc.getResource(request);
-
-        Assert.assertEquals(200, response.getResponseCode());
-        System.out.println(">>>" + response.getText());
-    }    
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java?rev=1310128&r1=1310127&r2=1310128&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
 Thu Apr  5 23:19:16 2012
@@ -21,20 +21,20 @@ package services.impl;
 
 import javax.ws.rs.core.Response;
 
-import org.apache.tuscany.sca.node.manager.ManageableResource;
+import org.apache.tuscany.sca.node.manager.Manageable;
+
 import services.MyResource;
 
-public class MyLongRunningResourceImpl implements MyResource, 
ManageableResource {
+public class MyLongRunningResourceImpl implements MyResource, Manageable {
 
     @Override
-    public Response ping() {
+    public void isAlive() {
         System.out.println(">>> long running ping");
         try {
-            Thread.sleep(1000);
+            Thread.sleep(100);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }
-        return Response.ok("pong").build();
     }
     
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java?rev=1310128&r1=1310127&r2=1310128&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
 Thu Apr  5 23:19:16 2012
@@ -19,15 +19,12 @@
 
 package services.impl;
 
-import javax.ws.rs.core.Response;
+import org.apache.tuscany.sca.node.manager.Manageable;
 
-import org.apache.tuscany.sca.node.manager.ManageableResource;
-
-public class MyOtherResourceImpl implements ManageableResource {
+public class MyOtherResourceImpl implements Manageable {
 
     @Override
-    public Response ping() {
-        System.out.println(">>> ping");
-        return Response.ok("pong").build();
+    public void isAlive() {
+        System.out.println(">>> isAlive");
     }
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java?rev=1310128&r1=1310127&r2=1310128&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
 Thu Apr  5 23:19:16 2012
@@ -21,17 +21,10 @@ package services.impl;
 
 import javax.ws.rs.core.Response;
 
-import org.apache.tuscany.sca.node.manager.ManageableResource;
-
 import services.MyResource;
+import org.apache.tuscany.sca.node.manager.Manageable;
 
-public class MyResourceImpl implements MyResource, ManageableResource {
-
-    @Override
-    public Response ping() {
-        System.out.println(">>> ping");
-        return Response.ok("pong").build();
-    }
+public class MyResourceImpl implements MyResource, Manageable {
     
     @Override
     public Response getSomething() {
@@ -39,4 +32,10 @@ public class MyResourceImpl implements M
         return Response.ok("something").build();
     }
 
+
+    @Override
+    public void isAlive() {
+        System.out.println(">>> isAlive");
+    }
+
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java?rev=1310128&r1=1310127&r2=1310128&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
 Thu Apr  5 23:19:16 2012
@@ -19,11 +19,10 @@
 
 package services.impl;
 
-import org.apache.tuscany.sca.node.manager.ManageableService;
-
 import services.MyService;
+import org.apache.tuscany.sca.node.manager.Manageable;
 
-public class MyServiceImpl implements MyService, ManageableService {
+public class MyServiceImpl implements MyService, Manageable {
 
  
     @Override

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=1310128&r1=1310127&r2=1310128&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
 Thu Apr  5 23:19:16 2012
@@ -27,37 +27,25 @@
                <service name="DomainAssetManagerResource">
                        <tuscany:binding.rest uri="/services/manager" />
                </service>
-               <property name="warningTreshold">1000</property>        <!-- 1s 
 -->
+               <property name="warningTreshold">100</property>         <!-- 1s 
 -->
                <property name="criticalTreshold">30000</property>      <!-- 
30s -->
                <property name="unavailableTreshold">60000</property>   <!-- 1m 
 -->
        </component>
        
        <component name="Resource">
                <implementation.java class="services.impl.MyResourceImpl"/>
-               <service name="MyResource">
-                       <tuscany:binding.rest uri="/services/resource" />
-               </service>
        </component>
 
        <component name="LongRunningResource">
                <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/other/resource" />
-               </service>
        </component>
 
        
        <component name="Service">
                <implementation.java class="services.impl.MyServiceImpl"/>
-               <service name="ManageableService">
-                       <binding.sca />
-               </service>
        </component>    
 </composite>


Reply via email to