Author: lresende
Date: Mon Apr  2 17:58:17 2012
New Revision: 1308444

URL: http://svn.apache.org/viewvc?rev=1308444&view=rev
Log:
Enhancing management capability to allow setting warning, critical and 
unavailable tresholds

Modified:
    
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Status.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/Status.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/Status.java?rev=1308444&r1=1308443&r2=1308444&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Status.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Status.java
 Mon Apr  2 17:58:17 2012
@@ -20,12 +20,14 @@
 package org.apache.tuscany.sca.node.manager;
 
 public class Status {
-    public static int SUCCESS = 0;
-    public static int FAILURE = 1;
+    public static String OK ="ok";
+    public static String WARNING = "warning";
+    public static String CRITICAL = "critical";
+    public static String UNAVAILABLE = "unavailable";
     
     private String name;
     private String uri;
-    private int  status;
+    private String status;
     private String statusMessage;
     private long   execution;
     
@@ -45,11 +47,11 @@ public class Status {
         this.uri = uri;
     }
 
-    public int getStatus() {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(int status) {
+    public void setStatus(String status) {
         this.status = status;
     }
 

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=1308444&r1=1308443&r2=1308444&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
 Mon Apr  2 17:58:17 2012
@@ -52,12 +52,24 @@ import org.apache.tuscany.sca.node.manag
 import org.apache.tuscany.sca.node.manager.ManageableService;
 import org.apache.tuscany.sca.node.manager.Status;
 import org.oasisopen.sca.annotation.Init;
+import org.oasisopen.sca.annotation.Property;
+import org.oasisopen.sca.annotation.Scope;
 
-public class DomainAssetManagerResourceImpl implements NodeActivator, 
DomainAssetManagerResource {
+@Scope("COMPOSITE")
+public class DomainAssetManagerResourceImpl implements NodeActivator, 
DomainAssetManagerResource {    
     private static Map<String, NodeExtension> nodeMap = new 
ConcurrentHashMap<String,NodeExtension>();
     
     private HttpClientFactory httpClientFactory;
-
+    
+    @Property
+    private int warningTreshold;
+    
+    @Property
+    private int criticalTreshold;
+    
+    @Property
+    private int unavailableTreshold;
+    
     public void nodeStarted(Node node) {
         NodeExtension nodeExtension = (NodeExtension) node;
         nodeMap.put(nodeExtension.getDomainURI(), nodeExtension);     
@@ -70,6 +82,11 @@ public class DomainAssetManagerResourceI
     
     @Init
     public void init() {
+        System.out.println("Initializing Domain Asset Manager");
+        System.out.println("  - Warning threshold : " + warningTreshold + " 
ms" );
+        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();
@@ -103,9 +120,21 @@ public class DomainAssetManagerResourceI
                             Timer t = new Timer();
                             status = testResource(status);
                             
status.setExecution(t.elapsed(TimeUnit.MILLISECONDS));
-                            status.setStatus(Status.SUCCESS);
+                            
+                            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.FAILURE);
+                            status.setStatus(Status.UNAVAILABLE);
                             status.setStatusMessage(e.getMessage());
                         }
                         
@@ -138,14 +167,22 @@ public class DomainAssetManagerResourceI
                     status.setUri(service.getBindings().get(0).getURI());
                     
                     try {
-                        String serviceName = component.getName() +"/" + 
service.getName();
                         ManageableService serviceInstance = 
node.getService(ManageableService.class, component.getName());
                         Timer t = new Timer();
                         serviceInstance.isAlive();
                         status.setExecution(t.elapsed(TimeUnit.MILLISECONDS));
-                        status.setStatus(Status.SUCCESS);
+
+                        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);
+                        }
                     } catch (Exception e) {
-                        status.setStatus(Status.FAILURE);
+                        status.setStatus(Status.UNAVAILABLE);
                         status.setStatusMessage(e.getMessage());
                     }
                     

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=1308444&r1=1308443&r2=1308444&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
 Mon Apr  2 17:58:17 2012
@@ -27,6 +27,9 @@
                <service name="DomainAssetManagerResource">
                        <tuscany:binding.rest uri="/services/manager" />
                </service>
+               <property name="warningTreshold">1000</property>        <!-- 1s 
 -->
+               <property name="criticalTreshold">30000</property>      <!-- 
30s -->
+               <property name="unavailableTreshold">60000</property>   <!-- 1m 
 -->
        </component>
        
        <component name="Resource">
@@ -36,15 +39,12 @@
                </service>
        </component>
 
-    <!-- -->
-       <component name="AnotherResource">
-               <implementation.java class="services.MyResourceImpl"/>
+       <component name="LongRunningResource">
+               <implementation.java 
class="services.MyLongRunningResourceImpl"/>
                <service name="ManageableResource">
                        <tuscany:binding.rest uri="/services/another/resource" 
/>
                </service>
        </component>
-       <!-- -->
-
        
        <component name="Service">
                <implementation.java class="services.MyServiceImpl"/>


Reply via email to