Updated Branches:
  refs/heads/master f9831b71e -> 5bd55549a

CAMEL-6304: Added more @UriParam to components in camel-core


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

Branch: refs/heads/master
Commit: 5bd55549a082252ee5613c7d3802f19b9f5ecc6c
Parents: f9831b7
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Jun 5 11:23:16 2013 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Jun 5 11:43:25 2013 +0200

----------------------------------------------------------------------
 .../apache/camel/component/ResourceEndpoint.java   |    4 +-
 .../apache/camel/component/bean/BeanEndpoint.java  |    2 +-
 .../component/controlbus/ControlBusEndpoint.java   |    5 +
 .../camel/component/dataset/DataSetEndpoint.java   |   10 ++-
 .../camel/component/language/LanguageEndpoint.java |    5 +
 .../apache/camel/component/log/LogComponent.java   |    6 +-
 .../apache/camel/component/log/LogEndpoint.java    |   63 ++++++++++++++-
 .../apache/camel/component/seda/SedaEndpoint.java  |   14 ++-
 .../apache/camel/component/test/TestComponent.java |   11 ++-
 .../apache/camel/component/test/TestEndpoint.java  |   10 +++
 .../component/log/LogEndpointOptionsTest.java      |   46 +++++++++++
 11 files changed, 162 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
index 607fe4a..233a4d1 100644
--- a/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
@@ -27,6 +27,7 @@ import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.api.management.mbean.ManagedResourceEndpointMBean;
 import org.apache.camel.converter.IOConverter;
 import org.apache.camel.impl.ProcessorEndpoint;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ResourceHelper;
 import org.slf4j.Logger;
@@ -39,9 +40,10 @@ import org.slf4j.LoggerFactory;
 @ManagedResource(description = "Managed ResourceEndpoint")
 public abstract class ResourceEndpoint extends ProcessorEndpoint implements 
ManagedResourceEndpointMBean {
     protected final transient Logger log = LoggerFactory.getLogger(getClass());
+    private volatile byte[] buffer;
     private String resourceUri;
+    @UriParam
     private boolean contentCache;
-    private volatile byte[] buffer;
 
     public ResourceEndpoint() {
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
index a578ec7..c6933ae 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
@@ -30,6 +30,7 @@ import org.apache.camel.spi.UriParam;
  */
 @UriEndpoint(scheme = "bean")
 public class BeanEndpoint extends ProcessorEndpoint {
+    private BeanHolder beanHolder;
     @UriParam
     private boolean cache;
     @UriParam
@@ -38,7 +39,6 @@ public class BeanEndpoint extends ProcessorEndpoint {
     private String beanName;
     @UriParam
     private String method;
-    private BeanHolder beanHolder;
 
     public BeanEndpoint() {
         init();

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
index 11e8c24..9ff4348 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.Language;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.CamelLogger;
 
 /**
@@ -32,9 +33,13 @@ import org.apache.camel.util.CamelLogger;
 public class ControlBusEndpoint extends DefaultEndpoint {
 
     private Language language;
+    @UriParam
     private String routeId;
+    @UriParam
     private String action;
+    @UriParam
     private boolean async;
+    @UriParam
     private LoggingLevel loggingLevel = LoggingLevel.INFO;
 
     public ControlBusEndpoint(String endpointUri, Component component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
index 2018edd..acca444 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Service;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.processor.ThroughputLogger;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.CamelLogger;
 import org.apache.camel.util.ExchangeHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -40,12 +41,17 @@ import org.slf4j.LoggerFactory;
  */
 public class DataSetEndpoint extends MockEndpoint implements Service {
     private final transient Logger log;
-    private DataSet dataSet;
-    private AtomicInteger receivedCounter = new AtomicInteger();
+    private volatile DataSet dataSet;
+    private final AtomicInteger receivedCounter = new AtomicInteger();
+    @UriParam
     private int minRate;
+    @UriParam
     private long produceDelay = 3;
+    @UriParam
     private long consumeDelay;
+    @UriParam
     private long preloadSize;
+    @UriParam
     private long initialDelay = 1000;
 
     @Deprecated

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
 
b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
index 4f2f184..71d2a29 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
@@ -29,6 +29,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.ResourceEndpoint;
 import org.apache.camel.spi.Language;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
@@ -41,9 +42,13 @@ import org.apache.camel.util.ResourceHelper;
 public class LanguageEndpoint extends ResourceEndpoint {
     private Language language;
     private Expression expression;
+    @UriParam
     private String languageName;
+    @UriParam
     private String script;
+    @UriParam
     private boolean transform = true;
+    @UriParam
     private boolean contentResolvedFromResource;
 
     public LanguageEndpoint() {

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java 
b/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
index 4855636..eb14626 100644
--- a/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.log;
 
+import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 
@@ -39,6 +40,8 @@ public class LogComponent extends DefaultComponent {
     private ExchangeFormatter exchangeFormatter;
     
     protected Endpoint createEndpoint(String uri, String remaining, 
Map<String, Object> parameters) throws Exception {
+        Map<String, Object> originalParameters = new HashMap<String, 
Object>(parameters);
+
         LoggingLevel level = getLoggingLevel(parameters);
         String marker = getAndRemoveParameter(parameters, "marker", 
String.class);
         Integer groupSize = getAndRemoveParameter(parameters, "groupSize", 
Integer.class);
@@ -69,7 +72,8 @@ public class LogComponent extends DefaultComponent {
         }
 
         LogEndpoint endpoint = new LogEndpoint(uri, this, logger);
-        setProperties(endpoint, parameters);
+        // we want the endpoint to have the all the options configured from 
the original parameters
+        setProperties(endpoint, originalParameters);
         return endpoint;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
index 74a826e..7bcd1af 100644
--- a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
@@ -20,6 +20,7 @@ import org.apache.camel.Component;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.ProcessorEndpoint;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ServiceHelper;
 
 /**
@@ -27,7 +28,19 @@ import org.apache.camel.util.ServiceHelper;
  */
 public class LogEndpoint extends ProcessorEndpoint {
 
-    private Processor logger;
+    private volatile Processor logger;
+    @UriParam
+    private String level;
+    @UriParam
+    private String marker;
+    @UriParam
+    private Integer groupSize;
+    @UriParam
+    private Long groupInterval;
+    @UriParam
+    private Boolean groupActiveOnly;
+    @UriParam
+    private Long groupDelay;
 
     public LogEndpoint() {
     }
@@ -70,4 +83,52 @@ public class LogEndpoint extends ProcessorEndpoint {
     protected String createEndpointUri() {
         return "log:" + logger.toString();
     }
+
+    public String getLevel() {
+        return level;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
+
+    public String getMarker() {
+        return marker;
+    }
+
+    public void setMarker(String marker) {
+        this.marker = marker;
+    }
+
+    public Integer getGroupSize() {
+        return groupSize;
+    }
+
+    public void setGroupSize(Integer groupSize) {
+        this.groupSize = groupSize;
+    }
+
+    public Long getGroupInterval() {
+        return groupInterval;
+    }
+
+    public void setGroupInterval(Long groupInterval) {
+        this.groupInterval = groupInterval;
+    }
+
+    public Boolean getGroupActiveOnly() {
+        return groupActiveOnly;
+    }
+
+    public void setGroupActiveOnly(Boolean groupActiveOnly) {
+        this.groupActiveOnly = groupActiveOnly;
+    }
+
+    public Long getGroupDelay() {
+        return groupDelay;
+    }
+
+    public void setGroupDelay(Long groupDelay) {
+        this.groupDelay = groupDelay;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
index 03b6e63..56a5d4e 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
@@ -58,22 +58,26 @@ import org.slf4j.LoggerFactory;
 public class SedaEndpoint extends DefaultEndpoint implements 
BrowsableEndpoint, MultipleConsumersSupport {
     private static final transient Logger LOG = 
LoggerFactory.getLogger(SedaEndpoint.class);
     private volatile BlockingQueue<Exchange> queue;
+    private final Set<SedaProducer> producers = new 
CopyOnWriteArraySet<SedaProducer>();
+    private final Set<SedaConsumer> consumers = new 
CopyOnWriteArraySet<SedaConsumer>();
+    private volatile MulticastProcessor consumerMulticastProcessor;
+    private volatile boolean multicastStarted;
+    private volatile ExecutorService multicastExecutor;
     @UriParam
     private int size = Integer.MAX_VALUE;
     @UriParam
     private int concurrentConsumers = 1;
-    private volatile ExecutorService multicastExecutor;
     @UriParam
     private boolean multipleConsumers;
+    @UriParam
     private WaitForTaskToComplete waitForTaskToComplete = 
WaitForTaskToComplete.IfReplyExpected;
     @UriParam
     private long timeout = 30000;
-    private final Set<SedaProducer> producers = new 
CopyOnWriteArraySet<SedaProducer>();
-    private final Set<SedaConsumer> consumers = new 
CopyOnWriteArraySet<SedaConsumer>();
-    private volatile MulticastProcessor consumerMulticastProcessor;
-    private volatile boolean multicastStarted;
+    @UriParam
     private boolean blockWhenFull;
+    @UriParam
     private int pollTimeout = 1000;
+    @UriParam
     private boolean purgeWhenStopping;
 
     public SedaEndpoint() {

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java 
b/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java
index 9afbc59..e93cd7d 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/test/TestComponent.java
@@ -29,8 +29,6 @@ import org.apache.camel.util.UnsafeUriCharactersEncoder;
 /**
  * Test Component.
  *
- * @see org.apache.camel.component.test.TestEndpoint
- *
  * @version 
  */
 public class TestComponent extends DefaultComponent {
@@ -50,7 +48,14 @@ public class TestComponent extends DefaultComponent {
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, 
Map<String, Object> parameters) throws Exception {
+        Long timeout = getAndRemoveParameter(parameters, "timeout", 
Long.class);
         Endpoint endpoint = 
CamelContextHelper.getMandatoryEndpoint(getCamelContext(), remaining);
-        return new TestEndpoint(uri, this, endpoint);
+
+        TestEndpoint answer = new TestEndpoint(uri, this, endpoint);
+        if (timeout != null) {
+            answer.setTimeout(timeout);
+        }
+        return answer;
     }
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
index c3e15f0..cb5bf1f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.EndpointHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,6 +39,7 @@ import org.slf4j.LoggerFactory;
 public class TestEndpoint extends MockEndpoint {
     private static final transient Logger LOG = 
LoggerFactory.getLogger(TestEndpoint.class);
     private final Endpoint expectedMessageEndpoint;
+    @UriParam
     private long timeout = 2000L;
 
     public TestEndpoint(String endpointUri, Component component, Endpoint 
expectedMessageEndpoint) {
@@ -68,4 +70,12 @@ public class TestEndpoint extends MockEndpoint {
     protected Object getInBody(Exchange exchange) {
         return exchange.getIn().getBody();
     }
+
+    public long getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(long timeout) {
+        this.timeout = timeout;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/5bd55549/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointOptionsTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointOptionsTest.java
 
b/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointOptionsTest.java
new file mode 100644
index 0000000..cf141b0
--- /dev/null
+++ 
b/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointOptionsTest.java
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.log;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+
+public class LogEndpointOptionsTest extends ContextTestSupport {
+
+    public void testLogEndpointOptions() throws Exception {
+        LogEndpoint log = 
context.getEndpoint("log:foo?level=DEBUG&marker=bar&groupSize=20", 
LogEndpoint.class);
+        assertNotNull(log);
+
+        assertEquals("DEBUG", log.getLevel());
+        assertEquals("bar", log.getMarker());
+        assertEquals(Integer.valueOf(20), log.getGroupSize());
+        assertNull(log.getGroupActiveOnly());
+        assertNull(log.getGroupDelay());
+        assertNull(log.getGroupInterval());
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .to("log:foo?level=DEBUG&marker=bar&groupSize=20");
+            }
+        };
+    }
+}

Reply via email to