summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java7
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java (renamed from sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.java)2
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableResource.java41
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java118
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java11
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java10
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java11
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java17
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java5
-rw-r--r--sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite14
10 files changed, 26 insertions, 210 deletions
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java
index 3b123ab954..8a1fab65b7 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResource.java
@@ -30,12 +30,7 @@ import org.oasisopen.sca.annotation.Remotable;
@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")
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.java b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java
index 17ab866f44..139e87c5f5 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableService.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/Manageable.java
@@ -22,7 +22,7 @@ package org.apache.tuscany.sca.node.manager;
import org.oasisopen.sca.annotation.Remotable;
@Remotable
-public interface ManageableService {
+public interface Manageable {
/**
* isAlive method that allow service to be managed
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableResource.java b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableResource.java
deleted file mode 100644
index 36051c3908..0000000000
--- a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/ManageableResource.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.node.manager;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-@Remotable
-public interface ManageableResource {
-
- /**
- * Ping resource used for service monitoring
- * @return
- */
- @GET
- @Path("/ping")
- @Produces(MediaType.TEXT_HTML)
- Response ping();
-}
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java
index ae55aab919..7d41bf80a2 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/main/java/org/apache/tuscany/sca/node/manager/impl/DomainAssetManagerResourceImpl.java
@@ -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.Scope;
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 DomainAssetManagerResourceImpl implements NodeActivator, DomainAsse
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 DomainAssetManagerResourceImpl implements NodeActivator, DomainAsse
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 DomainAssetManagerResourceImpl implements NodeActivator, DomainAsse
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 DomainAssetManagerResourceImpl implements NodeActivator, DomainAsse
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;
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java b/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java
index ded7a3a7f2..cc288ea29a 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/test/java/org/apache/tuscany/sca/node/manager/DomainAssetManagerResourceTestCase.java
@@ -71,15 +71,4 @@ public class DomainAssetManagerResourceTestCase {
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());
- }
}
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
index e041b99eb5..59e72f9fd5 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyLongRunningResourceImpl.java
@@ -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();
}
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
index 09a26d42a7..421c8d92ec 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyOtherResourceImpl.java
@@ -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");
}
}
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
index 6a0890fe1a..692f4ddb50 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyResourceImpl.java
@@ -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 MyResource, ManageableResource {
return Response.ok("something").build();
}
+
+ @Override
+ public void isAlive() {
+ System.out.println(">>> isAlive");
+ }
+
}
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
index 91b39f0fdd..0bf675549f 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
+++ b/sca-java-2.x/trunk/modules/node-manager/src/test/java/services/impl/MyServiceImpl.java
@@ -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
diff --git a/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite b/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite
index 6cfb0b71e5..3b4f94d2f7 100644
--- a/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite
+++ b/sca-java-2.x/trunk/modules/node-manager/src/test/resources/node-asset-manager-test.composite
@@ -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>