You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2016/04/24 10:51:59 UTC
camel git commit: CAMEL-9907: Camel-Infinispan: Exposing cache stats
through producer
Repository: camel
Updated Branches:
refs/heads/master 29e23c6ad -> 9cacca2e0
CAMEL-9907: Camel-Infinispan: Exposing cache stats through producer
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9cacca2e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9cacca2e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9cacca2e
Branch: refs/heads/master
Commit: 9cacca2e0d202f8561cf1dc1df36a89b44b2988e
Parents: 29e23c6
Author: Andrea Cosentino <an...@gmail.com>
Authored: Sun Apr 24 10:50:21 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Sun Apr 24 10:50:21 2016 +0200
----------------------------------------------------------------------
.../infinispan/InfinispanConstants.java | 1 +
.../infinispan/InfinispanOperation.java | 7 ++++
.../infinispan/InfinispanProducerTest.java | 41 ++++++++++++++++++++
3 files changed, 49 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/9cacca2e/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java
index d791968..8085219 100644
--- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java
+++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java
@@ -52,6 +52,7 @@ public interface InfinispanConstants {
String EVENT_DATA = "CamelInfinispanEventData";
String QUERY = "CamelInfinispanOperationQuery";
String QUERY_BUILDER = "CamelInfinispanQueryBuilder";
+ String STATS = "CamelInfinispanOperationStats";
String CACHE_ENTRY_JOINING = "CacheEntryJoining";
String CACHE_ENTRY_LEAVING = "CacheEntryLeaving";
http://git-wip-us.apache.org/repos/asf/camel/blob/9cacca2e/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java
----------------------------------------------------------------------
diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java
index 7da8552..5f64c4b 100644
--- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java
+++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanOperation.java
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.component.infinispan.remote.InfinispanRemoteOperation;
import org.apache.camel.util.ObjectHelper;
+import org.infinispan.Cache;
import org.infinispan.commons.api.BasicCache;
import org.infinispan.commons.util.concurrent.NotifyingFuture;
import org.infinispan.query.dsl.Query;
@@ -299,6 +300,12 @@ public final class InfinispanOperation {
}
setResult(query.list(), message);
}
+ }, STATS {
+ @Override
+ void execute(InfinispanConfiguration configuration, BasicCache<Object, Object> cache, Message message) {
+ LOGGER.warn("You'll need to enable statistics to obtain meaningful data from your cache");
+ setResult(((Cache) cache).getAdvancedCache().getStats(), message);
+ }
};
private static final Operation[] OPERATIONS = values();
http://git-wip-us.apache.org/repos/asf/camel/blob/9cacca2e/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
index b3f227d..10cdc83 100644
--- a/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
+++ b/components/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/InfinispanProducerTest.java
@@ -24,7 +24,9 @@ import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.infinispan.util.Condition;
+import org.infinispan.Cache;
import org.infinispan.commons.util.concurrent.NotifyingFuture;
+import org.infinispan.stats.Stats;
import org.junit.Test;
import static org.apache.camel.component.infinispan.util.Wait.waitFor;
@@ -930,6 +932,43 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
assertTrue(fut.isDone());
assertTrue(currentCache().isEmpty());
}
+
+ @Test
+ public void statsOperation() throws Exception {
+ ((Cache) currentCache()).getAdvancedCache().getStats().setStatisticsEnabled(true);
+ template.send("direct:start", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(InfinispanConstants.KEY, KEY_ONE);
+ exchange.getIn().setHeader(InfinispanConstants.VALUE, VALUE_ONE);
+ exchange.getIn().setHeader(InfinispanConstants.OPERATION, InfinispanConstants.PUT);
+ }
+ });
+
+ Object value = currentCache().get(KEY_ONE);
+ assertEquals(VALUE_ONE, value.toString());
+
+ template.send("direct:start", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(InfinispanConstants.KEY, KEY_TWO);
+ exchange.getIn().setHeader(InfinispanConstants.VALUE, VALUE_TWO);
+ exchange.getIn().setHeader(InfinispanConstants.OPERATION, InfinispanConstants.PUT);
+ }
+ });
+
+ value = currentCache().get(KEY_TWO);
+ assertEquals(VALUE_TWO, value.toString());
+
+ Exchange exchange;
+ exchange = template.send("direct:stats", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ }
+ });
+ Stats resultStats = exchange.getIn().getHeader(InfinispanConstants.RESULT, Stats.class);
+ assertEquals(2L, resultStats.getTotalNumberOfEntries());
+ }
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
@@ -968,6 +1007,8 @@ public class InfinispanProducerTest extends InfinispanTestSupport {
.to("infinispan://localhost?cacheContainer=#cacheContainer&command=REMOVEASYNC");
from("direct:clearasync")
.to("infinispan://localhost?cacheContainer=#cacheContainer&command=CLEARASYNC");
+ from("direct:stats")
+ .to("infinispan://localhost?cacheContainer=#cacheContainer&command=STATS");
}
};
}