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