Updated Branches:
  refs/heads/camel-2.12.x 2f8e1ff72 -> 8e3fcabd6
  refs/heads/master 103612428 -> 73202b3d7


CAMEL-7205: camel-twitter endpoint with JMX attributes so you can change search 
keywords at runtime.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/73202b3d
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/73202b3d
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/73202b3d

Branch: refs/heads/master
Commit: 73202b3d7efeca8cd77dfb66eec81b94282517b7
Parents: 1036124
Author: Claus Ibsen <davscl...@apache.org>
Authored: Fri Feb 14 13:33:02 2014 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Feb 14 13:33:02 2014 +0100

----------------------------------------------------------------------
 .../component/twitter/Twitter4JFactory.java     |   4 +-
 .../component/twitter/TwitterConfiguration.java |   4 +-
 .../twitter/TwitterEndpointDirect.java          | 116 ++++++++++++++++++-
 .../twitter/TwitterEndpointPolling.java         | 111 ++++++++++++++++++
 .../twitter/consumer/search/SearchConsumer.java |   4 +-
 5 files changed, 231 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/73202b3d/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/Twitter4JFactory.java
----------------------------------------------------------------------
diff --git 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/Twitter4JFactory.java
 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/Twitter4JFactory.java
index e2a5e4f..5bdfd8c 100644
--- 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/Twitter4JFactory.java
+++ 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/Twitter4JFactory.java
@@ -77,9 +77,9 @@ public final class Twitter4JFactory {
             case DIRECTMESSAGE:
                 return new DirectMessageConsumer(te);
             case SEARCH:
-                boolean hasKeywords = te.getProperties().getKeywords() == null
+                boolean hasNoKeywords = te.getProperties().getKeywords() == 
null
                         || te.getProperties().getKeywords().trim().isEmpty();
-                if (hasKeywords) {
+                if (hasNoKeywords) {
                     throw new IllegalArgumentException("Type set to SEARCH but 
no keywords were provided.");
                 } else {
                     return new SearchConsumer(te);

http://git-wip-us.apache.org/repos/asf/camel/blob/73202b3d/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
index e693daa..6edf057 100644
--- 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
+++ 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
@@ -117,7 +117,7 @@ public class TwitterConfiguration {
      * Number of page to iterate before stop (default is 1)
      */
     @UriParam
-    private Integer numberOfPages = new Integer(1);
+    private Integer numberOfPages = 1;
     
     @UriParam
     private String httpProxyHost;
@@ -344,7 +344,7 @@ public class TwitterConfiguration {
         return count;
     }
 
-    public void setCount(int count) {
+    public void setCount(Integer count) {
         this.count = count;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/73202b3d/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
----------------------------------------------------------------------
diff --git 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
index 423758b..52c532c 100644
--- 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
+++ 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
@@ -20,13 +20,14 @@ import org.apache.camel.Consumer;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.api.management.ManagedAttribute;
 import org.apache.camel.component.direct.DirectEndpoint;
 import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
 import org.apache.camel.component.twitter.consumer.TwitterConsumerDirect;
 import org.apache.camel.component.twitter.data.EndpointType;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
 
 /**
  * Twitter direct endpoint
@@ -55,6 +56,11 @@ public class TwitterEndpointDirect extends DirectEndpoint 
implements TwitterEndp
         return Twitter4JFactory.getProducer(this, getEndpointUri());
     }
 
+    @ManagedAttribute
+    public boolean isSingleton() {
+        return true;
+    }
+
     public TwitterConfiguration getProperties() {
         return properties;
     }
@@ -63,6 +69,112 @@ public class TwitterEndpointDirect extends DirectEndpoint 
implements TwitterEndp
         this.properties = properties;
     }
 
+    @ManagedAttribute(description = "Camel ID")
+    public String getCamelId() {
+        return getCamelContext().getName();
+    }
+
+    @ManagedAttribute(description = "Camel ManagementName")
+    public String getCamelManagementName() {
+        return getCamelContext().getManagementName();
+    }
+
+    @ManagedAttribute(description = "Endpoint Uri", mask = true)
+    @Override
+    public String getEndpointUri() {
+        return super.getEndpointUri();
+    }
+
+    @ManagedAttribute(description = "Service State")
+    public String getState() {
+        ServiceStatus status = this.getStatus();
+        // if no status exists then its stopped
+        if (status == null) {
+            status = ServiceStatus.Stopped;
+        }
+        return status.name();
+    }
+
+    @ManagedAttribute
+    public String getKeywords() {
+        return getProperties().getKeywords();
+    }
+
+    @ManagedAttribute
+    public void setKeywords(String keywords) {
+        getProperties().setKeywords(keywords);
+    }
+
+    @ManagedAttribute
+    public String getLocations() {
+        return getProperties().getLocations();
+    }
+
+    @ManagedAttribute
+    public void setLocations(String locations) {
+        getProperties().setLocations(locations);
+    }
+
+    @ManagedAttribute
+    public void setFilterOld(boolean filterOld) {
+        getProperties().setFilterOld(filterOld);
+    }
+
+    @ManagedAttribute
+    public boolean isFilterOld() {
+        return getProperties().isFilterOld();
+    }
+
+    @ManagedAttribute
+    public void setDate(String date) {
+        getProperties().setDate(date);
+    }
+
+    @ManagedAttribute
+    public String getDate() {
+        return getProperties().getDate();
+    }
+
+    @ManagedAttribute
+    public void setSinceId(long sinceId) {
+        getProperties().setSinceId(sinceId);
+    }
+
+    @ManagedAttribute
+    public long getSinceId() {
+        return getProperties().getSinceId();
+    }
+
+    @ManagedAttribute
+    public void setLang(String lang) {
+        getProperties().setLang(lang);
+    }
+
+    @ManagedAttribute
+    public String getLang() {
+        return getProperties().getLang();
+    }
+
+    @ManagedAttribute
+    public void setCount(Integer count) {
+        getProperties().setCount(count);
+    }
+
+    @ManagedAttribute
+    public Integer getCount() {
+        return getProperties().getCount();
+    }
+
+    @ManagedAttribute
+    public void setNumberOfPages(Integer numberOfPages) {
+        getProperties().setNumberOfPages(numberOfPages);
+    }
+
+    @ManagedAttribute
+    public Integer getNumberOfPages() {
+        return getProperties().getNumberOfPages();
+    }
+
     @Override
     public EndpointType getEndpointType() {
         return EndpointType.DIRECT;
@@ -78,5 +190,7 @@ public class TwitterEndpointDirect extends DirectEndpoint 
implements TwitterEndp
         super.shutdown();
         properties.getTwitter().shutdown();
     }
+
+
     
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/73202b3d/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
----------------------------------------------------------------------
diff --git 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
index 61fd7bf..f670951 100644
--- 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
+++ 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
@@ -19,6 +19,9 @@ package org.apache.camel.component.twitter;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
 import org.apache.camel.component.twitter.consumer.TwitterConsumerPolling;
 import org.apache.camel.component.twitter.data.EndpointType;
@@ -29,6 +32,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Twitter polling endpoint
  */
+@ManagedResource(description = "Managed Twitter Endpoint")
 @UriEndpoint(scheme = "twitter", consumerClass = Twitter4JConsumer.class)
 public class TwitterEndpointPolling extends DefaultPollingEndpoint implements 
TwitterEndpoint {
 
@@ -55,6 +59,7 @@ public class TwitterEndpointPolling extends 
DefaultPollingEndpoint implements Tw
         return Twitter4JFactory.getProducer(this, getEndpointUri());
     }
 
+    @ManagedAttribute
     public boolean isSingleton() {
         return true;
     }
@@ -67,6 +72,112 @@ public class TwitterEndpointPolling extends 
DefaultPollingEndpoint implements Tw
         this.properties = properties;
     }
 
+    @ManagedAttribute(description = "Camel ID")
+    public String getCamelId() {
+        return getCamelContext().getName();
+    }
+
+    @ManagedAttribute(description = "Camel ManagementName")
+    public String getCamelManagementName() {
+        return getCamelContext().getManagementName();
+    }
+
+    @ManagedAttribute(description = "Endpoint Uri", mask = true)
+    @Override
+    public String getEndpointUri() {
+        return super.getEndpointUri();
+    }
+
+    @ManagedAttribute(description = "Service State")
+    public String getState() {
+        ServiceStatus status = this.getStatus();
+        // if no status exists then its stopped
+        if (status == null) {
+            status = ServiceStatus.Stopped;
+        }
+        return status.name();
+    }
+
+    @ManagedAttribute
+    public String getKeywords() {
+        return getProperties().getKeywords();
+    }
+
+    @ManagedAttribute
+    public void setKeywords(String keywords) {
+        getProperties().setKeywords(keywords);
+    }
+
+    @ManagedAttribute
+    public String getLocations() {
+        return getProperties().getLocations();
+    }
+
+    @ManagedAttribute
+    public void setLocations(String locations) {
+        getProperties().setLocations(locations);
+    }
+
+    @ManagedAttribute
+    public void setFilterOld(boolean filterOld) {
+        getProperties().setFilterOld(filterOld);
+    }
+
+    @ManagedAttribute
+    public boolean isFilterOld() {
+        return getProperties().isFilterOld();
+    }
+
+    @ManagedAttribute
+    public void setDate(String date) {
+        getProperties().setDate(date);
+    }
+
+    @ManagedAttribute
+    public String getDate() {
+        return getProperties().getDate();
+    }
+
+    @ManagedAttribute
+    public void setSinceId(long sinceId) {
+        getProperties().setSinceId(sinceId);
+    }
+
+    @ManagedAttribute
+    public long getSinceId() {
+        return getProperties().getSinceId();
+    }
+
+    @ManagedAttribute
+    public void setLang(String lang) {
+        getProperties().setLang(lang);
+    }
+
+    @ManagedAttribute
+    public String getLang() {
+        return getProperties().getLang();
+    }
+
+    @ManagedAttribute
+    public void setCount(Integer count) {
+        getProperties().setCount(count);
+    }
+
+    @ManagedAttribute
+    public Integer getCount() {
+        return getProperties().getCount();
+    }
+
+    @ManagedAttribute
+    public void setNumberOfPages(Integer numberOfPages) {
+        getProperties().setNumberOfPages(numberOfPages);
+    }
+
+    @ManagedAttribute
+    public Integer getNumberOfPages() {
+        return getProperties().getNumberOfPages();
+    }
+
     @Override
     public EndpointType getEndpointType() {
         return EndpointType.POLLING;

http://git-wip-us.apache.org/repos/asf/camel/blob/73202b3d/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java
 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java
index 47e0e2d..599f9f3 100644
--- 
a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java
+++ 
b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java
@@ -42,7 +42,6 @@ public class SearchConsumer extends Twitter4JConsumer {
     }
 
     public List<Status> pollConsume() throws TwitterException {
-        
         String keywords = te.getProperties().getKeywords();
         Query query = new Query(keywords);
         if (te.getProperties().isFilterOld()) {
@@ -54,7 +53,6 @@ public class SearchConsumer extends Twitter4JConsumer {
     }
 
     public List<Status> directConsume() throws TwitterException {
-        
         String keywords = te.getProperties().getKeywords();
         if (keywords == null || keywords.trim().length() == 0) {
             return Collections.emptyList();
@@ -80,7 +78,7 @@ public class SearchConsumer extends Twitter4JConsumer {
             numberOfPages = te.getProperties().getNumberOfPages();
         }
         
-        LOG.debug("Searching with " + numberOfPages + " pages.");
+        LOG.debug("Searching with {} pages.", numberOfPages);
 
         Twitter twitter = te.getProperties().getTwitter();
         QueryResult qr = twitter.search(query);

Reply via email to