Repository: james-project
Updated Branches:
  refs/heads/master fc434bc85 -> be7d02c49


JAMES-1950 Adding TimeMetrics for all Matcher


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f7e65142
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f7e65142
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f7e65142

Branch: refs/heads/master
Commit: f7e65142e4eb0273d5a3bb670d81f9f1511da2da
Parents: 9f94c0a
Author: benwa <btell...@linagora.com>
Authored: Mon Mar 13 16:10:38 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Tue Mar 14 15:59:22 2017 +0700

----------------------------------------------------------------------
 .../impl/camel/CamelMailetProcessor.java              |  3 ++-
 .../mailetcontainer/impl/camel/MatcherSplitter.java   | 14 ++++++++++++--
 .../impl/camel/CamelCompositeProcessorTest.java       |  3 ++-
 3 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f7e65142/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
index 1593fc4..7f879c4 100644
--- 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
+++ 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
@@ -153,7 +153,8 @@ public class CamelMailetProcessor extends 
AbstractStateMailetProcessor implement
 
             RouteDefinition processorDef = 
from(getEndpoint()).routeId(state).setExchangePattern(ExchangePattern.InOnly)
             // store the logger in properties
-                    .setProperty(MatcherSplitter.LOGGER_PROPERTY, 
constant(getLogger()));
+                    .setProperty(MatcherSplitter.LOGGER_PROPERTY, 
constant(getLogger()))
+                    .setProperty(MatcherSplitter.METRIC_FACTORY, 
constant(metricFactory));
 
             for (MatcherMailetPair pair : pairs) {
                 Matcher matcher = pair.getMatcher();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f7e65142/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
index 1e4520e..1deac8a 100644
--- 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
+++ 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
@@ -33,6 +33,8 @@ import org.apache.camel.Property;
 import org.apache.james.core.MailImpl;
 import org.apache.james.mailetcontainer.impl.ProcessorUtil;
 import 
org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.MailetProcessorListener;
+import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.metrics.api.TimeMetric;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.Matcher;
@@ -57,6 +59,8 @@ public class MatcherSplitter {
 
     public final static String MAILETCONTAINER_PROPERTY = "container";
 
+    public final static String METRIC_FACTORY = "metricFactory";
+
     /**
      * Generate a List of MailMessage instances for the give @Body. This is 
done
      * by using the given Matcher to see if we need more then one instance of
@@ -70,11 +74,17 @@ public class MatcherSplitter {
      * @throws MessagingException
      */
     @Handler
-    public List<Mail> split(@Property(MATCHER_PROPERTY) Matcher matcher, 
@Property(ON_MATCH_EXCEPTION_PROPERTY) String onMatchException, 
@Property(LOGGER_PROPERTY) Logger logger, @Property(MAILETCONTAINER_PROPERTY) 
CamelMailetProcessor container, @Body Mail mail) throws MessagingException {
+    public List<Mail> split(@Property(MATCHER_PROPERTY) Matcher matcher,
+                            @Property(ON_MATCH_EXCEPTION_PROPERTY) String 
onMatchException,
+                            @Property(LOGGER_PROPERTY) Logger logger,
+                            @Property(MAILETCONTAINER_PROPERTY) 
CamelMailetProcessor container,
+                            @Property(METRIC_FACTORY) MetricFactory 
metricFactory,
+                            @Body Mail mail) throws MessagingException {
         Collection<MailAddress> matchedRcpts = null;
         Collection<MailAddress> origRcpts = new 
ArrayList<MailAddress>(mail.getRecipients());
         long start = System.currentTimeMillis();
         MessagingException ex = null;
+        TimeMetric timeMetric = 
metricFactory.timer(matcher.getClass().getSimpleName());
 
         try {
             List<Mail> mails = new ArrayList<Mail>();
@@ -151,7 +161,7 @@ public class MatcherSplitter {
 
             return mails;
         } finally {
-
+            timeMetric.stopAndPublish();
             long complete = System.currentTimeMillis() - start;
             List<MailetProcessorListener> listeners = container.getListeners();
             for (MailetProcessorListener listener : listeners) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f7e65142/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
index 5e8afcd..7e2bf43 100644
--- 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
+++ 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
@@ -25,13 +25,14 @@ import 
org.apache.james.mailetcontainer.api.mock.MockMailetLoader;
 import org.apache.james.mailetcontainer.api.mock.MockMatcherLoader;
 import org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor;
 import 
org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessorTest;
+import org.apache.james.metrics.api.NoopMetricFactory;
 import org.slf4j.LoggerFactory;
 
 public class CamelCompositeProcessorTest extends 
AbstractStateCompositeProcessorTest {
 
     @Override
     protected AbstractStateCompositeProcessor 
createProcessor(HierarchicalConfiguration config) throws Exception {
-        CamelCompositeProcessor processor = new CamelCompositeProcessor();
+        CamelCompositeProcessor processor = new CamelCompositeProcessor(new 
NoopMetricFactory());
         try {
             processor.setLog(LoggerFactory.getLogger("MockLog"));
             processor.setCamelContext(new DefaultCamelContext());


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to