You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2015/08/05 02:44:41 UTC

cxf git commit: CXF-6360: Integration with Apache HTrace. Evolving sample application with HBase support.

Repository: cxf
Updated Branches:
  refs/heads/master ddc01a185 -> 6f2a98efa


CXF-6360: Integration with Apache HTrace. Evolving sample application with HBase support.


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/6f2a98ef
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/6f2a98ef
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/6f2a98ef

Branch: refs/heads/master
Commit: 6f2a98efabe16b6e129ca86b292b74d006093541
Parents: ddc01a1
Author: reta <dr...@gmail.com>
Authored: Tue Aug 4 20:44:25 2015 -0400
Committer: reta <dr...@gmail.com>
Committed: Tue Aug 4 20:44:25 2015 -0400

----------------------------------------------------------------------
 .../samples/jax_rs/tracing_htrace/README.txt    |  6 +--
 .../java/demo/jaxrs/tracing/server/Catalog.java | 39 ++++++++++++++++----
 .../demo/jaxrs/tracing/server/CatalogStore.java |  9 +++++
 3 files changed, 44 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/6f2a98ef/distribution/src/main/release/samples/jax_rs/tracing_htrace/README.txt
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/samples/jax_rs/tracing_htrace/README.txt b/distribution/src/main/release/samples/jax_rs/tracing_htrace/README.txt
index 96adeb3..c246b6d 100644
--- a/distribution/src/main/release/samples/jax_rs/tracing_htrace/README.txt
+++ b/distribution/src/main/release/samples/jax_rs/tracing_htrace/README.txt
@@ -27,9 +27,9 @@ docker run -p 2181:2181 -p 60010:60010 -p 60000:60000 -p 60020:60020 -p 60030:60
 Preparing test dataset
 ---------------------------------------
 create 'catalog', {NAME => 'c', VERSIONS => 5}
-put 'catalog', '1', 'c:title', 'Apache CXF Web Service Development'
-put 'catalog', '2', 'c:title', 'HBase: The Definitive Guide'
-put 'catalog', '3', 'c:title', 'HBase in Action'
+put 'catalog', '7e51155e-70fd-4b2a-b3ae-0b6352945ecf', 'c:title', 'Apache CXF Web Service Development'
+put 'catalog', 'f948c2ca-9687-4d56-8388-75bfde31fae9', 'c:title', 'HBase: The Definitive Guide'
+put 'catalog', 'bd80053a-9542-47fa-9a36-25af5521f2fb', 'c:title', 'HBase in Action'
 
 Building and running the demo using Maven
 ---------------------------------------

http://git-wip-us.apache.org/repos/asf/cxf/blob/6f2a98ef/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/Catalog.java
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/Catalog.java b/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/Catalog.java
index b52cf86..1761bb8 100644
--- a/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/Catalog.java
+++ b/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/Catalog.java
@@ -21,9 +21,12 @@ package demo.jaxrs.tracing.server;
 
 
 import java.io.IOException;
+import java.util.UUID;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 
+import javax.json.Json;
 import javax.json.JsonArray;
 import javax.json.JsonObject;
 import javax.ws.rs.DELETE;
@@ -34,13 +37,13 @@ import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
 
+import org.apache.cxf.tracing.Traceable;
+import org.apache.cxf.tracing.TracerContext;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.trace.SpanReceiverHost;
@@ -62,12 +65,34 @@ public class Catalog {
     
     @POST
     @Produces(MediaType.APPLICATION_JSON)
-    public void addBook(@Suspended final AsyncResponse response, @Context final UriInfo uri, 
+    public Response addBook(@Context final UriInfo uriInfo, @Context final TracerContext tracing, 
             @FormParam("title") final String title)  {
-        executor.submit(new Runnable() {
-            public void run() {
-            }
-        });
+        try {
+            final String id = UUID.randomUUID().toString();
+        
+            executor.submit(
+                tracing.wrap("Inserting New Book", 
+                    new Traceable<Void>() {
+                        public Void call(final TracerContext context) throws Exception {
+                            store.put(id, title);
+                            return null;
+                        }
+                    }
+                )
+            ).get(10, TimeUnit.SECONDS);
+            
+            return Response
+                .created(uriInfo.getRequestUriBuilder().path(id).build())
+                .build();
+        } catch (final Exception ex) {
+            return Response
+                .serverError()
+                .entity(Json
+                     .createObjectBuilder()
+                     .add("error", ex.getMessage())
+                     .build())
+                .build();
+        }
     }
     
     @GET

http://git-wip-us.apache.org/repos/asf/cxf/blob/6f2a98ef/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/CatalogStore.java
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/CatalogStore.java b/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/CatalogStore.java
index 0960441..060cbbb 100644
--- a/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/CatalogStore.java
+++ b/distribution/src/main/release/samples/jax_rs/tracing_htrace/src/main/java/demo/jaxrs/tracing/server/CatalogStore.java
@@ -34,6 +34,7 @@ import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
@@ -83,6 +84,14 @@ public class CatalogStore {
         return null;
     }
     
+    public void put(final String key, final String title) throws IOException {
+        try (final Table table = connection.getTable(TableName.valueOf(tableName))) {
+            final Put put = new Put(Bytes.toBytes(key));
+            put.addColumn(Bytes.toBytes("c"), Bytes.toBytes("title"), Bytes.toBytes(title));
+            table.put(put);
+        }
+    }
+    
     public JsonArray scan() throws IOException {
         final JsonArrayBuilder builder = Json.createArrayBuilder();