You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2013/04/23 10:02:18 UTC
svn commit: r1470842 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/component/bean/
camel-core/src/main/java/org/apache/camel/component/timer/
components/camel-jms/src/main/java/org/apache/camel/component/jms/
components/camel-jms/src/tes...
Author: jstrachan
Date: Tue Apr 23 08:02:18 2013
New Revision: 1470842
URL: http://svn.apache.org/r1470842
Log:
port a bunch of components to use the new UriEndpointComponent base class for Component implementations which makes use of the new @UriEndpoint / @UriParam annotations to provide better metadata in their ComponentConfiguration implementation; see CAMEL-6306 and CAMEL-6304
Added:
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentConfigurationTest.java (with props)
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
camel/trunk/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshComponent.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java?rev=1470842&r1=1470841&r2=1470842&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java Tue Apr 23 08:02:18 2013
@@ -16,23 +16,23 @@
*/
package org.apache.camel.component.bean;
-import java.util.Map;
-
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
-import org.apache.camel.impl.DefaultComponent;
import org.apache.camel.impl.ProcessorEndpoint;
+import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.util.LRUSoftCache;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Map;
+
/**
* The <a href="http://camel.apache.org/bean.html">Bean Component</a>
* will look up the URI in the {@link org.apache.camel.spi.Registry} and use that to handle message dispatching.
*
* @version
*/
-public class BeanComponent extends DefaultComponent {
+public class BeanComponent extends UriEndpointComponent {
private static final transient Logger LOG = LoggerFactory.getLogger(BeanComponent.class);
// use an internal soft cache for BeanInfo as they are costly to introspect
@@ -40,6 +40,7 @@ public class BeanComponent extends Defau
private final LRUSoftCache<BeanInfoCacheKey, BeanInfo> cache = new LRUSoftCache<BeanInfoCacheKey, BeanInfo>(1000);
public BeanComponent() {
+ super(BeanEndpoint.class);
}
/**
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java?rev=1470842&r1=1470841&r2=1470842&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java Tue Apr 23 08:02:18 2013
@@ -25,6 +25,7 @@ import java.util.Timer;
import org.apache.camel.Endpoint;
import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
/**
* Represents the component that manages {@link TimerEndpoint}. It holds the
@@ -32,9 +33,13 @@ import org.apache.camel.impl.DefaultComp
*
* @version
*/
-public class TimerComponent extends DefaultComponent {
+public class TimerComponent extends UriEndpointComponent {
private final Map<String, Timer> timers = new HashMap<String, Timer>();
+ public TimerComponent() {
+ super(TimerEndpoint.class);
+ }
+
public Timer getTimer(TimerEndpoint endpoint) {
String key = endpoint.getTimerName();
if (!endpoint.isDaemon()) {
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java?rev=1470842&r1=1470841&r2=1470842&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java Tue Apr 23 08:02:18 2013
@@ -25,7 +25,7 @@ import javax.jms.Session;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.LoggingLevel;
-import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.spi.HeaderFilterStrategyAware;
import org.springframework.beans.BeansException;
@@ -47,7 +47,7 @@ import static org.apache.camel.util.Obje
*
* @version
*/
-public class JmsComponent extends DefaultComponent implements ApplicationContextAware, HeaderFilterStrategyAware {
+public class JmsComponent extends UriEndpointComponent implements ApplicationContextAware, HeaderFilterStrategyAware {
private static final String KEY_FORMAT_STRATEGY_PARAM = "jmsKeyFormatStrategy";
private JmsConfiguration configuration;
@@ -58,13 +58,15 @@ public class JmsComponent extends Defaul
private MessageListenerContainerFactory messageListenerContainerFactory;
public JmsComponent() {
+ super(JmsEndpoint.class);
}
public JmsComponent(CamelContext context) {
- super(context);
+ super(context, JmsEndpoint.class);
}
public JmsComponent(JmsConfiguration configuration) {
+ this();
this.configuration = configuration;
}
Added: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentConfigurationTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentConfigurationTest.java?rev=1470842&view=auto
==============================================================================
--- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentConfigurationTest.java (added)
+++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentConfigurationTest.java Tue Apr 23 08:02:18 2013
@@ -0,0 +1,98 @@
+/**
+ *
+ * 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.jms;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
+import org.apache.camel.ComponentConfiguration;
+import org.apache.camel.Endpoint;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.ParameterConfiguration;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+import javax.jms.ConnectionFactory;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedMap;
+
+import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+
+/**
+ * Lets test the use of the ComponentConfiguration on the JMS endpoint
+ */
+public class JmsComponentConfigurationTest extends CamelTestSupport {
+ protected String componentName = "activemq456";
+ protected boolean verbose = false;
+
+ @Test
+ public void testConfiguration() throws Exception {
+ Component component = context().getComponent(componentName);
+ ComponentConfiguration configuration = component.createComponentConfiguration();
+ SortedMap<String,ParameterConfiguration> parameterConfigurationMap = configuration.getParameterConfigurationMap();
+ if (verbose) {
+ Set<Map.Entry<String, ParameterConfiguration>> entries = parameterConfigurationMap.entrySet();
+ for (Map.Entry<String, ParameterConfiguration> entry : entries) {
+ String name = entry.getKey();
+ ParameterConfiguration config = entry.getValue();
+ System.out.println("Has name: " + name + " with type " + config.getParameterType().getName());
+ }
+ }
+
+ assertParameterConfig(configuration, "concurrentConsumers", int.class);
+ assertParameterConfig(configuration, "clientId", String.class);
+ assertParameterConfig(configuration, "disableReplyTo", boolean.class);
+ assertParameterConfig(configuration, "timeToLive", long.class);
+
+ configuration.setParameter("concurrentConsumers", 10);
+ configuration.setParameter("clientId", "foo");
+ configuration.setParameter("disableReplyTo", true);
+ configuration.setParameter("timeToLive", 1000L);
+
+ JmsEndpoint endpoint = assertIsInstanceOf(JmsEndpoint.class, configuration.createEndpoint());
+ assertEquals("endpoint.concurrentConsumers", 10, endpoint.getConcurrentConsumers());
+ assertEquals("endpoint.clientId", "foo", endpoint.getClientId());
+ assertEquals("endpoint.disableReplyTo", true, endpoint.isDisableReplyTo());
+ assertEquals("endpoint.timeToLive", 1000L, endpoint.getTimeToLive());
+ }
+
+ public static void assertParameterConfig(ComponentConfiguration configuration, String name,
+ Class<?> parameterType) {
+ ParameterConfiguration config = configuration.getParameterConfiguration(name);
+ assertNotNull("ParameterConfiguration should exist for parameter name " + name, config);
+ assertEquals("ParameterConfiguration." + name + ".getName()", name, config.getName());
+ assertEquals("ParameterConfiguration." + name + ".getParameterType()", parameterType,
+ config.getParameterType());
+ }
+
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext camelContext = super.createCamelContext();
+ ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
+ JmsComponent comp = jmsComponentAutoAcknowledge(connectionFactory);
+ camelContext.addComponent(componentName, comp);
+ return camelContext;
+ }
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() throws Exception {
+ }
+ };
+ }
+}
Propchange: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentConfigurationTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java?rev=1470842&r1=1470841&r2=1470842&view=diff
==============================================================================
--- camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java (original)
+++ camel/trunk/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsComponent.java Tue Apr 23 08:02:18 2013
@@ -27,6 +27,7 @@ import org.apache.camel.component.sjms.j
import org.apache.camel.component.sjms.jms.KeyFormatStrategy;
import org.apache.camel.component.sjms.taskmanager.TimedTaskManager;
import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.spi.HeaderFilterStrategyAware;
import org.apache.camel.util.ObjectHelper;
@@ -36,7 +37,7 @@ import org.slf4j.LoggerFactory;
/**
* The <a href="http://camel.apache.org/sjms">Simple JMS</a> component.
*/
-public class SjmsComponent extends DefaultComponent implements HeaderFilterStrategyAware {
+public class SjmsComponent extends UriEndpointComponent implements HeaderFilterStrategyAware {
private static final transient Logger LOGGER = LoggerFactory.getLogger(SjmsComponent.class);
private ConnectionFactory connectionFactory;
@@ -47,6 +48,10 @@ public class SjmsComponent extends Defau
private TransactionCommitStrategy transactionCommitStrategy;
private TimedTaskManager timedTaskManager;
+ public SjmsComponent() {
+ super(SjmsEndpoint.class);
+ }
+
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
validateMepAndReplyTo(parameters);
Modified: camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java?rev=1470842&r1=1470841&r2=1470842&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java (original)
+++ camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java Tue Apr 23 08:02:18 2013
@@ -21,7 +21,7 @@ import javax.sql.DataSource;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.IntrospectionSupport;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -29,15 +29,16 @@ import org.springframework.jdbc.core.Jdb
/**
* @version
*/
-public class SqlComponent extends DefaultComponent {
+public class SqlComponent extends UriEndpointComponent {
private DataSource dataSource;
private boolean usePlaceholder = true;
public SqlComponent() {
+ super(SqlEndpoint.class);
}
public SqlComponent(CamelContext context) {
- super(context);
+ super(context, SqlEndpoint.class);
}
@Override
Modified: camel/trunk/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshComponent.java?rev=1470842&r1=1470841&r2=1470842&view=diff
==============================================================================
--- camel/trunk/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshComponent.java (original)
+++ camel/trunk/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshComponent.java Tue Apr 23 08:02:18 2013
@@ -20,15 +20,19 @@ import java.net.URI;
import java.util.Map;
import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
import org.apache.sshd.common.KeyPairProvider;
/**
* Represents the component that manages {@link SshEndpoint}.
*/
-public class SshComponent extends DefaultComponent {
+public class SshComponent extends UriEndpointComponent {
private SshConfiguration configuration;
+ public SshComponent() {
+ super(SshEndpoint.class);
+ }
+
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
SshConfiguration newConfig;