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"); + } + }; + } +}