Author: davsclaus
Date: Fri Feb 19 17:38:39 2010
New Revision: 911871
URL: http://svn.apache.org/viewvc?rev=911871&view=rev
Log:
CAMEL-2489: Property placeholders is now supported in Registry lookup and most
places in the camelContext when using Spring XML.
Added:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
(with props)
camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentRegistryTest.java
- copied, changed from r911715,
camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.java
- copied, changed from r911816,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPackagePropertiesTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentPropertiesTest.java
- copied, changed from r911715,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest.java
- copied, changed from r911715,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.xml
- copied, changed from r911816,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPackagePropertiesTest.xml
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties
(with props)
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfigUsingProperties.xml
- copied, changed from r911715,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfig.xml
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest-context.xml
- copied, changed from r911715,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceTest-context.xml
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties
(with props)
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/trunk/camel-core/src/test/java/org/apache/camel/component/ref/RefComponentTest.java
camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/cheese.properties
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelJMXAgentDefinition.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/RegistryInjectionTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/myprop.properties
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=911871&r1=911870&r2=911871&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
Fri Feb 19 17:38:39 2010
@@ -184,7 +184,7 @@
*/
public DefaultCamelContext(Registry registry) {
this();
- this.registry = registry;
+ setRegistry(registry);
}
public String getName() {
@@ -687,7 +687,7 @@
public String resolvePropertyPlaceholders(String uri) throws Exception {
// do not parse uris that are designated for the properties component
as it will handle that itself
- if (!uri.startsWith("properties:") && uri.contains("#{")) {
+ if (uri != null && !uri.startsWith("properties:") &&
uri.contains("#{")) {
// the uri contains property placeholders so lookup mandatory
properties component and let it parse it
Component component = hasComponent("properties");
if (component == null) {
@@ -787,6 +787,7 @@
public Registry getRegistry() {
if (registry == null) {
registry = createRegistry();
+ setRegistry(registry);
}
return registry;
}
@@ -802,6 +803,10 @@
}
public void setRegistry(Registry registry) {
+ // wrap the registry so we always do propery placeholder lookups
+ if (!(registry instanceof PropertyPlaceholderDelegateRegistry)) {
+ registry = new PropertyPlaceholderDelegateRegistry(this, registry);
+ }
this.registry = registry;
}
Added:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java?rev=911871&view=auto
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
(added)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
Fri Feb 19 17:38:39 2010
@@ -0,0 +1,72 @@
+/**
+ * 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.impl;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.Registry;
+import org.apache.camel.util.ObjectHelper;
+
+/**
+ * A {...@link Registry} which delegates to the real registry.
+ * <p/>
+ * This is used to ensure that Camel performs property placeholder resolution
on every lookup.
+ *
+ * @version $Revision$
+ */
+public class PropertyPlaceholderDelegateRegistry implements Registry {
+
+ private final CamelContext context;
+ private final Registry delegate;
+
+ public PropertyPlaceholderDelegateRegistry(CamelContext context, Registry
delegate) {
+ this.context = context;
+ this.delegate = delegate;
+ }
+
+ public Object lookup(String name) {
+ try {
+ name = context.resolvePropertyPlaceholders(name);
+ return delegate.lookup(name);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
+ }
+
+ public <T> T lookup(String name, Class<T> type) {
+ try {
+ name = context.resolvePropertyPlaceholders(name);
+ return delegate.lookup(name, type);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
+ }
+
+ public <T> Map<String, T> lookupByType(Class<T> type) {
+ return delegate.lookupByType(type);
+ }
+
+ public Registry getRegistry() {
+ return delegate;
+ }
+
+ @Override
+ public String toString() {
+ return delegate.toString();
+ }
+}
Propchange:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PropertyPlaceholderDelegateRegistry.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied:
camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentRegistryTest.java
(from r911715,
camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentRegistryTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentRegistryTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java&r1=911715&r2=911871&rev=911871&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentRegistryTest.java
Fri Feb 19 17:38:39 2010
@@ -17,125 +17,84 @@
package org.apache.camel.component.properties;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelExecutionException;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.bean.MyDummyBean;
+import org.apache.camel.component.bean.MyFooBean;
+import org.apache.camel.impl.JndiRegistry;
/**
* @version $Revision$
*/
-public class PropertiesComponentSimpleLanguageTest extends ContextTestSupport {
+public class PropertiesComponentRegistryTest extends ContextTestSupport {
+
+ private MyFooBean foo;
+ private MyDummyBean bar;
@Override
public boolean isUseRouteBuilder() {
return false;
}
- public void testPropertiesComponentSimpleLanguage() throws Exception {
- context.addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:start")
- .transform().simple("Hi ${body} do you think
${properties:cheese.quote}?");
- }
- });
- context.start();
-
- String reply = template.requestBody("direct:start", "Claus",
String.class);
- assertEquals("Hi Claus do you think Camel rocks?", reply);
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ foo = new MyFooBean();
+ bar = new MyDummyBean();
+
+ JndiRegistry jndi = super.createRegistry();
+ jndi.bind("foo", foo);
+ jndi.bind("bar", bar);
+ return jndi;
}
- public void testPropertiesComponentDualSimpleLanguage() throws Exception {
- context.addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:start")
- .transform().simple("Hi ${body} do you think
${properties:cheese.quote}? And do you like ${properties:cheese.type} cheese?");
- }
- });
- context.start();
-
- String reply = template.requestBody("direct:start", "Claus",
String.class);
- assertEquals("Hi Claus do you think Camel rocks? And do you like Gouda
cheese?", reply);
- }
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext context = super.createCamelContext();
- public void testPropertiesComponentSimpleLanguageWithLocations() throws
Exception {
- context.addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:start")
- .transform().simple("Hi ${body}.
${properties:org/apache/camel/component/properties/bar.properties:bar.quote}.");
- }
- });
- context.start();
+ PropertiesComponent pc = new PropertiesComponent();
+ pc.setCamelContext(context);
+
pc.setLocation("classpath:org/apache/camel/component/properties/cheese.properties");
+ context.addComponent("properties", pc);
- String reply = template.requestBody("direct:start", "Claus",
String.class);
- assertEquals("Hi Claus. Beer taste good.", reply);
+ return context;
}
- public void testNoExistingPropertiesComponentWithLocation() throws
Exception {
- context.removeComponent("properties");
- context.addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:start")
- .transform().simple("Hi ${body}.
${properties:org/apache/camel/component/properties/bar.properties:bar.quote}.");
- }
- });
+ public void testPropertiesComponentRegistryPlain() throws Exception {
context.start();
- String reply = template.requestBody("direct:start", "Claus",
String.class);
- assertEquals("Hi Claus. Beer taste good.", reply);
+ assertSame(foo, context.getRegistry().lookup("foo"));
+ assertSame(bar, context.getRegistry().lookup("bar"));
+ assertNull(context.getRegistry().lookup("unknown"));
}
- public void testNoExistingPropertiesComponentWithLocations() throws
Exception {
- context.removeComponent("properties");
- context.addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:start")
- .transform().simple("Hi ${body}.
${properties:org/apache/camel/component/properties/bar.properties,"
- +
"org/apache/camel/component/properties/cheese.properties:cheese.quote}.");
- }
- });
+ public void testPropertiesComponentRegistryLookupName() throws Exception {
context.start();
- String reply = template.requestBody("direct:start", "Claus",
String.class);
- assertEquals("Hi Claus. Camel rocks.", reply);
- }
-
- public void testNoExistingPropertiesComponentWithoutLocation() throws
Exception {
- context.removeComponent("properties");
- context.addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:start")
- .transform().simple("Hi ${body} do you think
${properties:cheese.quote}?");
- }
- });
- context.start();
+ assertSame(foo, context.getRegistry().lookup("#{bean.foo}"));
+ assertSame(bar, context.getRegistry().lookup("#{bean.bar}"));
try {
- template.requestBody("direct:start", "Claus", String.class);
+ context.getRegistry().lookup("#{bean.unknown}");
fail("Should have thrown exception");
- } catch (CamelExecutionException e) {
- RuntimeCamelException rce =
assertIsInstanceOf(RuntimeCamelException.class, e.getCause());
- IllegalArgumentException iae =
assertIsInstanceOf(IllegalArgumentException.class, rce.getCause());
- assertEquals("PropertiesComponent with name properties must be
defined in CamelContext to support property placeholders in expressions",
iae.getMessage());
+ } catch (RuntimeCamelException e) {
+ IllegalArgumentException cause =
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
+ assertEquals("Property with key [bean.unknown] not found in
properties for uri: #{bean.unknown}", cause.getMessage());
}
}
- @Override
- protected CamelContext createCamelContext() throws Exception {
- CamelContext context = super.createCamelContext();
+ public void testPropertiesComponentRegistryLookupNameAndType() throws
Exception {
+ context.start();
- PropertiesComponent pc = new PropertiesComponent();
- pc.setCamelContext(context);
-
pc.setLocation("classpath:org/apache/camel/component/properties/cheese.properties");
- context.addComponent("properties", pc);
+ assertSame(foo, context.getRegistry().lookup("#{bean.foo}",
MyFooBean.class));
+ assertSame(bar, context.getRegistry().lookup("#{bean.bar}",
MyDummyBean.class));
- return context;
+ try {
+ context.getRegistry().lookup("#{bean.unknown}", MyDummyBean.class);
+ fail("Should have thrown exception");
+ } catch (RuntimeCamelException e) {
+ IllegalArgumentException cause =
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
+ assertEquals("Property with key [bean.unknown] not found in
properties for uri: #{bean.unknown}", cause.getMessage());
+ }
}
}
\ No newline at end of file
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/component/ref/RefComponentTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/ref/RefComponentTest.java?rev=911871&r1=911870&r2=911871&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/component/ref/RefComponentTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/component/ref/RefComponentTest.java
Fri Feb 19 17:38:39 2010
@@ -25,6 +25,7 @@
import org.apache.camel.component.direct.DirectComponent;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.impl.PropertyPlaceholderDelegateRegistry;
public class RefComponentTest extends ContextTestSupport {
@@ -48,7 +49,8 @@
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello World");
- JndiRegistry jndi = (JndiRegistry) context.getRegistry();
+ PropertyPlaceholderDelegateRegistry delegate =
(PropertyPlaceholderDelegateRegistry) context.getRegistry();
+ JndiRegistry jndi = (JndiRegistry) delegate.getRegistry();
bindToRegistry(jndi);
template.sendBody("ref:foo", "Hello World");
Modified:
camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/cheese.properties
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/cheese.properties?rev=911871&r1=911870&r2=911871&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/cheese.properties
(original)
+++
camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/cheese.properties
Fri Feb 19 17:38:39 2010
@@ -18,3 +18,6 @@
cheese.end=mock:cheese
cheese.quote=Camel rocks
cheese.type=Gouda
+
+bean.foo=foo
+bean.bar=bar
\ No newline at end of file
Modified:
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java?rev=911871&r1=911870&r2=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
(original)
+++
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
Fri Feb 19 17:38:39 2010
@@ -103,17 +103,17 @@
private static final Log LOG =
LogFactory.getLog(CamelContextFactoryBean.class);
@XmlAttribute(required = false)
- private Boolean trace;
+ private String trace;
@XmlAttribute(required = false)
- private Boolean streamCache = Boolean.FALSE;
+ private String streamCache = "false";
@XmlAttribute(required = false)
- private Long delayer;
+ private String delayer;
@XmlAttribute(required = false)
- private Boolean handleFault;
+ private String handleFault;
@XmlAttribute(required = false)
private String errorHandlerRef;
@XmlAttribute(required = false)
- private Boolean autoStartup = Boolean.TRUE;
+ private String autoStartup = "true";
@XmlAttribute(required = false)
private ShutdownRoute shutdownRoute;
@XmlAttribute(required = false)
@@ -190,9 +190,6 @@
getContext().setProperties(properties.asMap());
}
- // setup JMX agent at first
- initJMXAgent();
-
// set the resolvers first
PackageScanClassResolver packageResolver =
getBeanForType(PackageScanClassResolver.class);
if (packageResolver != null) {
@@ -220,6 +217,9 @@
// setup property placeholder so we got it as early as possible
initPropertyPlaceholder();
+ // setup JMX agent at first
+ initJMXAgent();
+
Tracer tracer = getBeanForType(Tracer.class);
if (tracer != null) {
// use formatter if there is a TraceFormatter bean defined
@@ -316,6 +316,8 @@
}
}
+ initSpringCamelContext(getContext());
+
// do special preparation for some concepts such as interceptors and
policies
// this is needed as JAXB does not build exactly the same model
definition as Spring DSL would do
// using route builders. So we have here a little custom code to fix
the JAXB gaps
@@ -542,7 +544,7 @@
}
private void initJMXAgent() throws Exception {
- if (camelJMXAgent != null && camelJMXAgent.isDisabled()) {
+ if (camelJMXAgent != null && camelJMXAgent.isAgentDisabled()) {
LOG.info("JMXAgent disabled");
// clear the existing lifecycle strategies define by the
DefaultCamelContext constructor
getContext().getLifecycleStrategies().clear();
@@ -551,14 +553,14 @@
} else if (camelJMXAgent != null) {
LOG.info("JMXAgent enabled: " + camelJMXAgent);
DefaultManagementAgent agent = new DefaultManagementAgent();
- agent.setConnectorPort(camelJMXAgent.getConnectorPort());
- agent.setCreateConnector(camelJMXAgent.isCreateConnector());
-
agent.setMBeanObjectDomainName(camelJMXAgent.getMbeanObjectDomainName());
-
agent.setMBeanServerDefaultDomain(camelJMXAgent.getMbeanServerDefaultDomain());
- agent.setRegistryPort(camelJMXAgent.getRegistryPort());
- agent.setServiceUrlPath(camelJMXAgent.getServiceUrlPath());
-
agent.setUsePlatformMBeanServer(camelJMXAgent.isUsePlatformMBeanServer());
-
agent.setOnlyRegisterProcessorWithCustomId(camelJMXAgent.getOnlyRegisterProcessorWithCustomId());
+
agent.setConnectorPort(parseInteger(camelJMXAgent.getConnectorPort()));
+
agent.setCreateConnector(parseBoolean(camelJMXAgent.getCreateConnector()));
+
agent.setMBeanObjectDomainName(parseText(camelJMXAgent.getMbeanObjectDomainName()));
+
agent.setMBeanServerDefaultDomain(parseText(camelJMXAgent.getMbeanServerDefaultDomain()));
+
agent.setRegistryPort(parseInteger(camelJMXAgent.getRegistryPort()));
+
agent.setServiceUrlPath(parseText(camelJMXAgent.getServiceUrlPath()));
+
agent.setUsePlatformMBeanServer(parseBoolean(camelJMXAgent.getUsePlatformMBeanServer()));
+
agent.setOnlyRegisterProcessorWithCustomId(parseBoolean(camelJMXAgent.getOnlyRegisterProcessorWithCustomId()));
ManagementStrategy managementStrategy = new
ManagedManagementStrategy(agent);
getContext().setManagementStrategy(managementStrategy);
@@ -567,7 +569,8 @@
getContext().getLifecycleStrategies().clear();
getContext().addLifecycleStrategy(new
DefaultManagementLifecycleStrategy(getContext()));
// set additional configuration from camelJMXAgent
-
getContext().getManagementStrategy().onlyManageProcessorWithCustomId(camelJMXAgent.getOnlyRegisterProcessorWithCustomId());
+ boolean onlyId = agent.getOnlyRegisterProcessorWithCustomId() !=
null && agent.getOnlyRegisterProcessorWithCustomId();
+
getContext().getManagementStrategy().onlyManageProcessorWithCustomId(onlyId);
getContext().getManagementStrategy().setStatisticsLevel(camelJMXAgent.getStatisticsLevel());
}
}
@@ -636,6 +639,63 @@
}
}
+ private String parseText(String text) throws Exception {
+ // ensure we support property placeholders
+ return getContext().resolvePropertyPlaceholders(text);
+ }
+
+ private Integer parseInteger(String text) throws Exception {
+ // ensure we support property placeholders
+ String s = getContext().resolvePropertyPlaceholders(text);
+ if (s != null) {
+ try {
+ return new Integer(s);
+ } catch (NumberFormatException e) {
+ if (s.equals(text)) {
+ throw new IllegalArgumentException("Error parsing [" + s +
"] as an Integer.", e);
+ } else {
+ throw new IllegalArgumentException("Error parsing [" + s +
"] from property " + text + " as an Integer.", e);
+ }
+ }
+ }
+ return null;
+ }
+
+ private Long parseLong(String text) throws Exception {
+ // ensure we support property placeholders
+ String s = getContext().resolvePropertyPlaceholders(text);
+ if (s != null) {
+ try {
+ return new Long(s);
+ } catch (NumberFormatException e) {
+ if (s.equals(text)) {
+ throw new IllegalArgumentException("Error parsing [" + s +
"] as a Long.", e);
+ } else {
+ throw new IllegalArgumentException("Error parsing [" + s +
"] from property " + text + " as a Long.", e);
+ }
+ }
+ }
+ return null;
+ }
+
+ private Boolean parseBoolean(String text) throws Exception {
+ // ensure we support property placeholders
+ String s = getContext().resolvePropertyPlaceholders(text);
+ if (s != null) {
+ s = s.trim().toLowerCase();
+ if (s.equals("true") || s.equals("false")) {
+ return new Boolean(s);
+ } else {
+ if (s.equals(text)) {
+ throw new IllegalArgumentException("Error parsing [" + s +
"] as a Boolean.");
+ } else {
+ throw new IllegalArgumentException("Error parsing [" + s +
"] from property " + text + " as a Boolean.");
+ }
+ }
+ }
+ return null;
+ }
+
// Properties
//
-------------------------------------------------------------------------
public SpringCamelContext getContext() throws Exception {
@@ -754,38 +814,46 @@
camelJMXAgent = agent;
}
- public Boolean getTrace() {
+ public String getTrace() {
return trace;
}
- public void setTrace(Boolean trace) {
+ public void setTrace(String trace) {
this.trace = trace;
}
- public Boolean getStreamCache() {
+ public String getStreamCache() {
return streamCache;
}
- public void setStreamCache(Boolean streamCache) {
+ public void setStreamCache(String streamCache) {
this.streamCache = streamCache;
}
- public Long getDelayer() {
+ public String getDelayer() {
return delayer;
}
- public void setDelayer(Long delayer) {
+ public void setDelayer(String delayer) {
this.delayer = delayer;
}
- public Boolean getHandleFault() {
+ public String getHandleFault() {
return handleFault;
}
- public void setHandleFault(Boolean handleFault) {
+ public void setHandleFault(String handleFault) {
this.handleFault = handleFault;
}
+ public String getAutoStartup() {
+ return autoStartup;
+ }
+
+ public void setAutoStartup(String autoStartup) {
+ this.autoStartup = autoStartup;
+ }
+
public CamelJMXAgentDefinition getCamelJMXAgent() {
return camelJMXAgent;
}
@@ -835,14 +903,6 @@
this.onCompletions = onCompletions;
}
- public Boolean isAutoStartup() {
- return autoStartup;
- }
-
- public void setAutoStartup(Boolean autoStartup) {
- this.autoStartup = autoStartup;
- }
-
public ShutdownRoute getShutdownRoute() {
return shutdownRoute;
}
@@ -868,23 +928,33 @@
protected SpringCamelContext createContext() {
SpringCamelContext ctx = newCamelContext();
ctx.setName(getId());
+ return ctx;
+ }
+
+ /**
+ * Initializes the context
+ *
+ * @param ctx the contxt
+ * @throws Exception is thrown if error occurred
+ */
+ protected void initSpringCamelContext(SpringCamelContext ctx) throws
Exception {
if (streamCache != null) {
- ctx.setStreamCaching(getStreamCache());
+ ctx.setStreamCaching(parseBoolean(getStreamCache()));
}
if (trace != null) {
- ctx.setTracing(getTrace());
+ ctx.setTracing(parseBoolean(getTrace()));
}
if (delayer != null) {
- ctx.setDelayer(getDelayer());
+ ctx.setDelayer(parseLong(getDelayer()));
}
if (handleFault != null) {
- ctx.setHandleFault(getHandleFault());
+ ctx.setHandleFault(parseBoolean(getHandleFault()));
}
if (errorHandlerRef != null) {
ctx.setErrorHandlerBuilder(new
ErrorHandlerBuilderRef(getErrorHandlerRef()));
}
if (autoStartup != null) {
- ctx.setAutoStartup(isAutoStartup());
+ ctx.setAutoStartup(parseBoolean(getAutoStartup()));
}
if (shutdownRoute != null) {
ctx.setShutdownRoute(getShutdownRoute());
@@ -892,7 +962,6 @@
if (shutdownRunningTask != null) {
ctx.setShutdownRunningTask(getShutdownRunningTask());
}
- return ctx;
}
protected SpringCamelContext newCamelContext() {
Modified:
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelJMXAgentDefinition.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelJMXAgentDefinition.java?rev=911871&r1=911870&r2=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelJMXAgentDefinition.java
(original)
+++
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelJMXAgentDefinition.java
Fri Feb 19 17:38:39 2010
@@ -37,25 +37,25 @@
* Disable JMI (default false)
*/
@XmlAttribute(required = false)
- private Boolean disabled = Boolean.FALSE;
+ private String disabled = "false";
/**
* Only register processor if a custom id was defined for it.
*/
@XmlAttribute(required = false)
- private Boolean onlyRegisterProcessorWithCustomId = Boolean.FALSE;
+ private String onlyRegisterProcessorWithCustomId = "false";
/**
* RMI connector registry port (default 1099)
*/
@XmlAttribute(required = false)
- private Integer registryPort;
+ private String registryPort;
/**
* RMI connector server port (default -1 not used)
*/
@XmlAttribute(required = false)
- private Integer connectorPort;
+ private String connectorPort;
/**
* MBean server default domain name (default org.apache.camel)
@@ -79,13 +79,13 @@
* A flag that indicates whether the agent should be created
*/
@XmlAttribute(required = false)
- private Boolean createConnector = Boolean.TRUE;
+ private String createConnector = "true";
/**
* A flag that indicates whether the platform mbean server should be used
*/
@XmlAttribute(required = false)
- private Boolean usePlatformMBeanServer = Boolean.TRUE;
+ private String usePlatformMBeanServer = "true";
/**
* Level of granularity for performance statistics enabled
@@ -93,76 +93,80 @@
@XmlAttribute(required = false)
private ManagementStatisticsLevel statisticsLevel =
ManagementStatisticsLevel.All;
- public Integer getConnectorPort() {
- return connectorPort;
+ public String getDisabled() {
+ return disabled;
}
-
- public void setConnectorPort(Integer value) {
- connectorPort = value;
+
+ public boolean isAgentDisabled() {
+ return disabled != null && Boolean.parseBoolean(disabled);
+ }
+
+ public void setDisabled(String disabled) {
+ this.disabled = disabled;
+ }
+
+ public String getOnlyRegisterProcessorWithCustomId() {
+ return onlyRegisterProcessorWithCustomId;
+ }
+
+ public void setOnlyRegisterProcessorWithCustomId(String
onlyRegisterProcessorWithCustomId) {
+ this.onlyRegisterProcessorWithCustomId =
onlyRegisterProcessorWithCustomId;
}
- public Integer getRegistryPort() {
+ public String getRegistryPort() {
return registryPort;
}
-
- public void setRegistryPort(Integer value) {
- registryPort = value;
+
+ public void setRegistryPort(String registryPort) {
+ this.registryPort = registryPort;
}
-
+
+ public String getConnectorPort() {
+ return connectorPort;
+ }
+
+ public void setConnectorPort(String connectorPort) {
+ this.connectorPort = connectorPort;
+ }
+
public String getMbeanServerDefaultDomain() {
return mbeanServerDefaultDomain;
}
-
- public void setMbeanServerDefaultDomain(String value) {
- mbeanServerDefaultDomain = value;
+
+ public void setMbeanServerDefaultDomain(String mbeanServerDefaultDomain) {
+ this.mbeanServerDefaultDomain = mbeanServerDefaultDomain;
}
-
+
public String getMbeanObjectDomainName() {
return mbeanObjectDomainName;
}
-
- public void setMbeanObjectDomainName(String value) {
- mbeanObjectDomainName = value;
+
+ public void setMbeanObjectDomainName(String mbeanObjectDomainName) {
+ this.mbeanObjectDomainName = mbeanObjectDomainName;
}
-
+
public String getServiceUrlPath() {
return serviceUrlPath;
}
-
- public void setServiceUrlPath(String value) {
- serviceUrlPath = value;
- }
- public Boolean isCreateConnector() {
- return createConnector;
- }
-
- public void setCreateConnector(Boolean value) {
- createConnector = value != null ? value : Boolean.FALSE;
+ public void setServiceUrlPath(String serviceUrlPath) {
+ this.serviceUrlPath = serviceUrlPath;
}
- public Boolean isUsePlatformMBeanServer() {
- return usePlatformMBeanServer;
- }
-
- public void setUsePlatformMBeanServer(Boolean value) {
- usePlatformMBeanServer = value != null ? value : Boolean.FALSE;
+ public String getCreateConnector() {
+ return createConnector;
}
- public Boolean getOnlyRegisterProcessorWithCustomId() {
- return onlyRegisterProcessorWithCustomId;
+ public void setCreateConnector(String createConnector) {
+ this.createConnector = createConnector;
}
- public void setOnlyRegisterProcessorWithCustomId(Boolean
onlyRegisterProcessorWithCustomId) {
- this.onlyRegisterProcessorWithCustomId =
onlyRegisterProcessorWithCustomId;
+ public String getUsePlatformMBeanServer() {
+ return usePlatformMBeanServer;
}
- public Boolean isDisabled() {
- return disabled;
- }
-
- public void setDisabled(Boolean value) {
- disabled = value != null ? value : Boolean.FALSE;
+ public void setUsePlatformMBeanServer(String usePlatformMBeanServer) {
+ this.usePlatformMBeanServer = usePlatformMBeanServer;
}
public ManagementStatisticsLevel getStatisticsLevel() {
Copied:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.java
(from r911816,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPackagePropertiesTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPackagePropertiesTest.java&r1=911816&r2=911871&rev=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPackagePropertiesTest.java
(original)
+++
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.java
Fri Feb 19 17:38:39 2010
@@ -23,14 +23,14 @@
/**
* @version $Revision$
*/
-public class SpringPackagePropertiesTest extends SpringTestSupport {
+public class SpringBuilderRefPropertiesTest extends SpringTestSupport {
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
- return new
ClassPathXmlApplicationContext("org/apache/camel/component/properties/SpringPackagePropertiesTest.xml");
+ return new
ClassPathXmlApplicationContext("org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.xml");
}
- public void testSpringPackageProperties() throws Exception {
+ public void testSpringBuilderRefProperties() throws Exception {
getMockEndpoint("#{result}").expectedMessageCount(1);
template.sendBody("direct:start", "Hello World");
@@ -38,4 +38,4 @@
assertMockEndpointsSatisfied();
}
-}
+}
\ No newline at end of file
Copied:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentPropertiesTest.java
(from r911715,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentPropertiesTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentPropertiesTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentTest.java&r1=911715&r2=911871&rev=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentTest.java
(original)
+++
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/JMXAgentPropertiesTest.java
Fri Feb 19 17:38:39 2010
@@ -16,11 +16,6 @@
*/
package org.apache.camel.spring;
-import javax.management.MBeanServerConnection;
-import javax.management.remote.JMXConnector;
-import javax.management.remote.JMXConnectorFactory;
-import javax.management.remote.JMXServiceURL;
-
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -29,44 +24,11 @@
*
* @version $Revision$
*/
-public class JMXAgentTest extends DefaultJMXAgentTest {
-
- protected static final String JMXSERVICEURL =
"service:jmx:rmi:///jndi/rmi://localhost:20008/jmxrmi/camel";
- protected JMXConnector clientConnector;
-
- @Override
- protected void setUp() throws Exception {
- sleepForConnection = 2000;
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- if (clientConnector != null) {
- try {
- clientConnector.close();
- } catch (Exception e) {
- // ignore
- }
- clientConnector = null;
- }
- super.tearDown();
- }
+public class JMXAgentPropertiesTest extends JMXAgentTest {
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
- return new
ClassPathXmlApplicationContext("org/apache/camel/spring/jmxConfig.xml");
- }
-
- @Override
- protected MBeanServerConnection getMBeanConnection() throws Exception {
- if (mbsc == null) {
- if (clientConnector == null) {
- clientConnector = JMXConnectorFactory.connect(new
JMXServiceURL(JMXSERVICEURL), null);
- }
- mbsc = clientConnector.getMBeanServerConnection();
- }
- return mbsc;
+ return new
ClassPathXmlApplicationContext("org/apache/camel/spring/jmxConfigUsingProperties.xml");
}
-}
+}
\ No newline at end of file
Modified:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/RegistryInjectionTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/RegistryInjectionTest.java?rev=911871&r1=911870&r2=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/RegistryInjectionTest.java
(original)
+++
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/RegistryInjectionTest.java
Fri Feb 19 17:38:39 2010
@@ -18,6 +18,7 @@
import org.apache.camel.CamelContext;
import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.impl.PropertyPlaceholderDelegateRegistry;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -36,7 +37,9 @@
public void testInjectedStrategy() throws Exception {
CamelContext context = createCamelContext();
- assertTrue(context.getRegistry() instanceof JndiRegistry);
+
+ PropertyPlaceholderDelegateRegistry delegate =
(PropertyPlaceholderDelegateRegistry) context.getRegistry();
+ assertTrue(delegate.getRegistry() instanceof JndiRegistry);
}
}
Copied:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest.java
(from r911715,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java&r1=911715&r2=911871&rev=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java
(original)
+++
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest.java
Fri Feb 19 17:38:39 2010
@@ -16,22 +16,12 @@
*/
package org.apache.camel.spring.processor;
-import org.apache.camel.ProducerTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
-import
org.springframework.test.context.junit38.AbstractJUnit38SpringContextTests;
/**
* @version $Revision$
*/
@ContextConfiguration
-public class SpringTraceTest extends AbstractJUnit38SpringContextTests {
+public class SpringTraceUsingPropertyTest extends SpringTraceTest {
- @Autowired
- protected ProducerTemplate camelTemplate;
-
- public void testTracing() throws Exception {
- camelTemplate.sendBody("Hello");
- camelTemplate.sendBody(1234);
- }
}
\ No newline at end of file
Copied:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.xml
(from r911816,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPackagePropertiesTest.xml)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPackagePropertiesTest.xml&r1=911816&r2=911871&rev=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPackagePropertiesTest.xml
(original)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringBuilderRefPropertiesTest.xml
Fri Feb 19 17:38:39 2010
@@ -22,10 +22,11 @@
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
">
+ <bean id="simpleRoute"
class="org.apache.camel.component.properties.route.SpringSimpleRoute"/>
+
<camelContext xmlns="http://camel.apache.org/schema/spring">
<propertyPlaceholder id="properties"
location="org/apache/camel/component/properties/myprop.properties"/>
- <package>#{routebuilders}</package>
- <jmxAgent id="agent"/>
+ <routeBuilder ref="#{mybuilder}"/>
</camelContext>
</beans>
Modified:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/myprop.properties
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/myprop.properties?rev=911871&r1=911870&r2=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/myprop.properties
(original)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/myprop.properties
Fri Feb 19 17:38:39 2010
@@ -18,4 +18,6 @@
routebuilders=org.apache.camel.component.properties.route
routescan=component.properties.route
routeincludes=*Simple*
-result=mock:result
\ No newline at end of file
+result=mock:result
+
+mybuilder=simpleRoute
\ No newline at end of file
Added:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties?rev=911871&view=auto
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties
(added)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties
Fri Feb 19 17:38:39 2010
@@ -0,0 +1,19 @@
+## ------------------------------------------------------------------------
+## 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.
+## ------------------------------------------------------------------------
+
+myjmx.port=20008
+myjmx.usePlatform=true
Propchange:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmx.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfigUsingProperties.xml
(from r911715,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfig.xml)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfigUsingProperties.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfigUsingProperties.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfig.xml&r1=911715&r2=911871&rev=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfig.xml
(original)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/jmxConfigUsingProperties.xml
Fri Feb 19 17:38:39 2010
@@ -22,18 +22,22 @@
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
">
- <!-- START SNIPPET: example -->
- <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
- <jmxAgent id="agent" registryPort="20008"
- usePlatformMBeanServer="true"
- createConnector="true"
- />
-
- <route>
- <from uri="seda:start"/>
- <to uri="mock:result"/>
- </route>
- </camelContext>
- <!-- END SNIPPET: example -->
+ <!-- START SNIPPET: e1 -->
+ <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+ <propertyPlaceholder id="properties"
location="org/apache/camel/spring/jmx.properties"/>
+
+ <!-- we can use propery placeholders when we define the JMX agent -->
+ <jmxAgent id="agent" registryPort="#{myjmx.port}"
+ usePlatformMBeanServer="#{myjmx.usePlatform}"
+ createConnector="true"
+ statisticsLevel="RoutesOnly"
+ />
+
+ <route>
+ <from uri="seda:start"/>
+ <to uri="mock:result"/>
+ </route>
+ </camelContext>
+ <!-- END SNIPPET: e1 -->
</beans>
Copied:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest-context.xml
(from r911715,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceTest-context.xml)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest-context.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest-context.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceTest-context.xml&r1=911715&r2=911871&rev=911871&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceTest-context.xml
(original)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTraceUsingPropertyTest-context.xml
Fri Feb 19 17:38:39 2010
@@ -22,17 +22,19 @@
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
">
- <!-- START SNIPPET: example -->
- <camelContext trace="true" xmlns="http://camel.apache.org/schema/spring">
- <template id="camelTemplate" defaultEndpoint="direct:start"/>
+ <!-- START SNIPPET: e1 -->
+ <camelContext trace="#{foo.trace}"
xmlns="http://camel.apache.org/schema/spring">
+ <propertyPlaceholder id="properties"
location="org/apache/camel/spring/processor/myprop.properties"/>
- <route>
- <from uri="direct:start"/>
- <setHeader headerName="someHeader">
- <simple>${in.body} World!</simple>
- </setHeader>
- <to uri="mock:result"/>
- </route>
- </camelContext>
- <!-- END SNIPPET: example -->
+ <template id="camelTemplate" defaultEndpoint="#{foo.cool}"/>
+
+ <route>
+ <from uri="direct:start"/>
+ <setHeader headerName="#{foo.header}">
+ <simple>${in.body} World!</simple>
+ </setHeader>
+ <to uri="mock:result"/>
+ </route>
+ </camelContext>
+ <!-- END SNIPPET: e1 -->
</beans>
Added:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties?rev=911871&view=auto
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties
(added)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties
Fri Feb 19 17:38:39 2010
@@ -0,0 +1,20 @@
+## ------------------------------------------------------------------------
+## 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.
+## ------------------------------------------------------------------------
+
+foo.cool=direct:start
+foo.trace=true
+foo.header=someHeader
\ No newline at end of file
Propchange:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/myprop.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain