You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ps...@apache.org on 2009/04/22 23:57:10 UTC
svn commit: r767685 - in /labs/pinpoint/trunk/pinpoint-rest: ./ src/
src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/logging/ src/main/java/org/apache/logging/pinpoint/
src/main/java/org/apache/logging/pin...
Author: psmith
Date: Wed Apr 22 21:57:10 2009
New Revision: 767685
URL: http://svn.apache.org/viewvc?rev=767685&view=rev
Log:
skeleton workings for Restlet based REST services for Pinpoint.
Added:
labs/pinpoint/trunk/pinpoint-rest/
labs/pinpoint/trunk/pinpoint-rest/pom.xml
labs/pinpoint/trunk/pinpoint-rest/src/
labs/pinpoint/trunk/pinpoint-rest/src/main/
labs/pinpoint/trunk/pinpoint-rest/src/main/java/
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextDetailsRestlet.java
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextRestlet.java
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/PinpointRestServicesApplication.java
labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/Startup.java
labs/pinpoint/trunk/pinpoint-rest/src/test/
labs/pinpoint/trunk/pinpoint-rest/src/test/java/
Added: labs/pinpoint/trunk/pinpoint-rest/pom.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-rest/pom.xml?rev=767685&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-rest/pom.xml (added)
+++ labs/pinpoint/trunk/pinpoint-rest/pom.xml Wed Apr 22 21:57:10 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?><project>
+ <parent>
+ <artifactId>pinpoint</artifactId>
+ <groupId>org.apache.logging</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.logging</groupId>
+ <artifactId>pinpoint-rest</artifactId>
+ <name>pinpoint-rest</name>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging</groupId>
+ <artifactId>pinpoint-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextDetailsRestlet.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextDetailsRestlet.java?rev=767685&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextDetailsRestlet.java (added)
+++ labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextDetailsRestlet.java Wed Apr 22 21:57:10 2009
@@ -0,0 +1,36 @@
+package org.apache.logging.pinpoint.rest;
+
+import java.util.Collection;
+
+import net.sf.json.JSONSerializer;
+
+import org.apache.logging.pinpoint.PinpointContext;
+import org.apache.logging.pinpoint.PinpointContextUtils;
+import org.apache.logging.pinpoint.PinpointHome;
+import org.restlet.Restlet;
+import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.StringRepresentation;
+
+public class ContextDetailsRestlet extends Restlet {
+
+ private final PinpointHome pinpointHome;
+
+ public ContextDetailsRestlet(PinpointHome pinpointHome) {
+ this.pinpointHome = pinpointHome;
+ }
+
+ @Override
+ public void handle(Request request, Response response) {
+ Object object = request.getAttributes().get("context");
+ if(object !=null) {
+ PinpointContext ctx = pinpointHome.createContext(object.toString());
+ Collection<String> contextPoints = PinpointContextUtils.listContextPoints(ctx);
+
+ response.setEntity(new StringRepresentation(JSONSerializer.toJSON(contextPoints).toString(), MediaType.APPLICATION_JSON));
+ }else {
+ }
+ }
+
+}
Added: labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextRestlet.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextRestlet.java?rev=767685&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextRestlet.java (added)
+++ labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/ContextRestlet.java Wed Apr 22 21:57:10 2009
@@ -0,0 +1,35 @@
+package org.apache.logging.pinpoint.rest;
+
+import net.sf.json.JSON;
+import net.sf.json.JSONSerializer;
+import net.sf.json.JsonConfig;
+
+import org.apache.logging.pinpoint.PinpointHome;
+import org.restlet.Restlet;
+import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.StringRepresentation;
+
+public class ContextRestlet extends Restlet{
+
+
+ private final PinpointHome pinpointHome;
+ private final JsonConfig jsonConfig;
+
+ public ContextRestlet(PinpointHome pinpointHome, JsonConfig jsonConfig) {
+ this.pinpointHome = pinpointHome;
+ this.jsonConfig = jsonConfig;
+
+ }
+
+
+ @Override
+ public void handle(Request request, Response response) {
+ JSON json = JSONSerializer.toJSON(pinpointHome.listContexts(), jsonConfig);
+
+
+ response.setEntity(new StringRepresentation(json.toString(), MediaType.APPLICATION_JSON));
+ }
+
+}
Added: labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/PinpointRestServicesApplication.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/PinpointRestServicesApplication.java?rev=767685&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/PinpointRestServicesApplication.java (added)
+++ labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/PinpointRestServicesApplication.java Wed Apr 22 21:57:10 2009
@@ -0,0 +1,62 @@
+package org.apache.logging.pinpoint.rest;
+
+import org.apache.logging.pinpoint.restlet.RootRestlet;
+import org.restlet.Application;
+import org.restlet.Component;
+import org.restlet.Restlet;
+import org.restlet.Router;
+import org.restlet.data.Protocol;
+import org.restlet.resource.Resource;
+
+public class PinpointRestServicesApplication extends Application {
+
+
+
+ public int getPort() {
+ return port;
+ }
+
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+
+ private int port = 8183;
+ private final Component component;
+ private final RootRestlet rootRestlet;
+ private final Restlet contextRestlet;
+ private final Restlet contextDetailsRestlet;
+
+ public PinpointRestServicesApplication(Component component, Restlet contextRestlet, Restlet contextDetailsRestlet) {
+ super(component.getContext());
+ this.component = component;
+ this.contextRestlet = contextRestlet;
+ this.rootRestlet = new RootRestlet();
+ this.contextDetailsRestlet = contextDetailsRestlet;
+ }
+
+
+ @Override
+ public Restlet createRoot() {
+ Router router = new Router(getContext());
+
+ router.attach(rootRestlet);
+ router.attach("/contexts", contextRestlet);
+ router.attach("/contexts/{context}", contextDetailsRestlet);
+ // Return the root router
+ return router;
+ }
+
+ public void go() {
+ component.getServers().add(Protocol.HTTP, port);
+ component.getDefaultHost().attach("", this);
+ try {
+ component.start();
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to start Restlet Component", e);
+ }
+ }
+
+
+}
Added: labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/Startup.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/Startup.java?rev=767685&view=auto
==============================================================================
--- labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/Startup.java (added)
+++ labs/pinpoint/trunk/pinpoint-rest/src/main/java/org/apache/logging/pinpoint/rest/Startup.java Wed Apr 22 21:57:10 2009
@@ -0,0 +1,26 @@
+package org.apache.logging.pinpoint.rest;
+
+import net.sf.json.JsonConfig;
+
+import org.apache.logging.pinpoint.PinpointHome;
+import org.apache.logging.pinpoint.web.json.PinpointJSONConfigFactory;
+import org.restlet.Component;
+
+public class Startup {
+
+ public static void main(String[] args) throws Exception {
+
+ Component component = new Component();
+ PinpointHome pinpointHome = new PinpointHome();
+
+ JsonConfig jsonConfig = (JsonConfig) new PinpointJSONConfigFactory().getObject();
+ ContextRestlet contextRestlet = new ContextRestlet(pinpointHome,jsonConfig );
+ ContextDetailsRestlet contextDetailsRestlet = new ContextDetailsRestlet(pinpointHome);
+
+ PinpointRestServicesApplication application = new PinpointRestServicesApplication(component, contextRestlet, contextDetailsRestlet);
+
+ application.go();
+
+
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org