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


Reply via email to