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