You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/10/09 10:48:48 UTC

svn commit: r1006116 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apache/camel/model/ camel-core/src/test/java/org/apache/camel/component/properties/ camel-core/src/test/java/org/apache/camel/processor...

Author: davsclaus
Date: Sat Oct  9 08:48:47 2010
New Revision: 1006116

URL: http://svn.apache.org/viewvc?rev=1006116&view=rev
Log:
CAMEL-3210: EIP String based options now support property placeholders out of the box.

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPConvertBodyToTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPRoutingSlipTest.java
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.java
      - copied, changed from r1005785, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringCBRHeaderPredicateTest.java
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml   (contents, props changed)
      - copied, changed from r1005785, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentTest.xml
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ConvertBodyTest.java
    camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/myproperties.properties
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/cheese.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=1006116&r1=1006115&r2=1006116&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 Sat Oct  9 08:48:47 2010
@@ -818,9 +818,9 @@ public class DefaultCamelContext extends
         return answer;
     }
 
-    public String resolvePropertyPlaceholders(String uri) throws Exception {
+    public String resolvePropertyPlaceholders(String text) throws Exception {
         // do not parse uris that are designated for the properties component as it will handle that itself
-        if (uri != null && !uri.startsWith("properties:") && uri.contains(PropertiesComponent.PREFIX_TOKEN)) {
+        if (text != null && !text.startsWith("properties:") && text.contains(PropertiesComponent.PREFIX_TOKEN)) {
             // the uri contains property placeholders so lookup mandatory properties component and let it parse it
             Component component = hasComponent("properties");
             if (component == null) {
@@ -829,18 +829,20 @@ public class DefaultCamelContext extends
             }
             if (component == null) {
                 throw new IllegalArgumentException("PropertiesComponent with name properties must be defined"
-                        + " in CamelContext to support property placeholders in endpoint URIs");
+                        + " in CamelContext to support property placeholders.");
             }
             // force component to be created and registered as a component
             PropertiesComponent pc = getComponent("properties", PropertiesComponent.class);
             // the parser will throw exception if property key was not found
-            String answer = pc.parseUri(uri);
+            String answer = pc.parseUri(text);
             if (LOG.isDebugEnabled()) {
-                LOG.debug("Resolved uri: " + uri + " --> " + answer);
+                LOG.debug("Resolved text: " + text + " -> " + answer);
             }
             return answer;
         }
-        return uri;
+
+        // return original text as is
+        return text;
     }
 
     // Properties

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java?rev=1006116&r1=1006115&r2=1006116&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java Sat Oct  9 08:48:47 2010
@@ -81,6 +81,11 @@ public class ConvertBodyDefinition exten
             }
         }
 
+        // validate charset
+        if (charset != null) {
+            IOConverter.validateCharset(charset);
+        }
+
         return new ConvertBodyProcessor(getTypeClass(), getCharset());
     }
 
@@ -111,7 +116,6 @@ public class ConvertBodyDefinition exten
     }
 
     public void setCharset(String charset) {
-        IOConverter.validateCharset(charset);
         this.charset = charset;
     }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=1006116&r1=1006115&r2=1006116&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java Sat Oct  9 08:48:47 2010
@@ -21,9 +21,11 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeUnit;
 import javax.xml.bind.annotation.XmlAccessType;
@@ -63,6 +65,7 @@ import org.apache.camel.spi.LifecycleStr
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.TransactedPolicy;
+import org.apache.camel.util.IntrospectionSupport;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -377,6 +380,10 @@ public abstract class ProcessorDefinitio
      */
     protected Processor makeProcessor(RouteContext routeContext) throws Exception {
         Processor processor = null;
+
+        // resolve properties before we create the processor
+        resolvePropertyPlaceholders(routeContext);
+
         // at first use custom factory
         if (routeContext.getCamelContext().getProcessorFactory() != null) {
             processor = routeContext.getCamelContext().getProcessorFactory().createProcessor(routeContext, this);
@@ -393,6 +400,52 @@ public abstract class ProcessorDefinitio
         return wrapProcessor(routeContext, processor);
     }
 
+    /**
+     * Inspects this processor definition and resolves any property placeholders from its properties.
+     * <p/>
+     * This implementation will check all the getter/setter pairs on this instance and for all the values
+     * (which is a String type) will be property placeholder resolved.
+     *
+     * @param routeContext the route context
+     * @throws Exception is thrown if property placeholders was used and there was an error resolving them
+     * @see org.apache.camel.CamelContext#resolvePropertyPlaceholders(String)
+     * @see org.apache.camel.component.properties.PropertiesComponent
+     */
+    protected void resolvePropertyPlaceholders(RouteContext routeContext) throws Exception {
+        if (log.isTraceEnabled()) {
+            log.trace("Resolving property placeholders for: " + this);
+        }
+
+        // find all String getter/setter
+        Map<Object, Object> properties = new HashMap<Object, Object>();
+        IntrospectionSupport.getProperties(this, properties, null);
+
+        if (!properties.isEmpty()) {
+            if (log.isTraceEnabled()) {
+                log.trace("There are " + properties.size() + " properties on: " + this);
+            }
+
+            // lookup and resolve properties for String based properties
+            for (Map.Entry entry : properties.entrySet()) {
+                // the name is always a String
+                String name = (String) entry.getKey();
+                Object value = entry.getValue();
+                if (value instanceof String) {
+                    // we can only resolve String typed values
+                    String text = (String) value;
+                    text = routeContext.getCamelContext().resolvePropertyPlaceholders(text);
+                    if (text != value) {
+                        // invoke setter as the text has changed
+                        IntrospectionSupport.setProperty(this, name, text);
+                        if (log.isDebugEnabled()) {
+                            log.debug("Changed property [" + name + "] from: " + value + " to: " + text);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
     protected ErrorHandlerBuilder createErrorHandlerBuilder() {
         if (errorHandlerRef != null) {
             return new ErrorHandlerBuilderRef(errorHandlerRef);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java?rev=1006116&r1=1006115&r2=1006116&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ValidateDefinition.java Sat Oct  9 08:48:47 2010
@@ -47,7 +47,6 @@ public class ValidateDefinition extends 
         return "validate";
     }
 
-
     @Override
     public PredicateValidatingProcessor createProcessor(RouteContext routeContext) throws Exception {
         Predicate pred = getExpression().createPredicate(routeContext);

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPConvertBodyToTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPConvertBodyToTest.java?rev=1006116&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPConvertBodyToTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPConvertBodyToTest.java Sat Oct  9 08:48:47 2010
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.properties;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+
+/**
+ * @version $Revision$
+ */
+public class PropertiesComponentEIPConvertBodyToTest extends ContextTestSupport {
+
+    public void testConvertToBytesCharset() throws Exception {
+        byte[] body = "Hello World".getBytes("iso-8859-1");
+
+        MockEndpoint result = getMockEndpoint("mock:result");
+        result.expectedBodiesReceived(body);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .convertBodyTo(byte[].class, "{{myCoolCharset}}")
+                    .to("mock:result");
+            }
+        };
+    }
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+
+        PropertiesComponent pc = new PropertiesComponent();
+        pc.setCamelContext(context);
+        pc.setLocations(new String[]{"classpath:org/apache/camel/component/properties/myproperties.properties"});
+        context.addComponent("properties", pc);
+
+        return context;
+    }
+
+}

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPRoutingSlipTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPRoutingSlipTest.java?rev=1006116&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPRoutingSlipTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEIPRoutingSlipTest.java Sat Oct  9 08:48:47 2010
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.properties;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ * @version $Revision$
+ */
+public class PropertiesComponentEIPRoutingSlipTest extends ContextTestSupport {
+
+    public void testRoutingSlip() throws Exception {
+        getMockEndpoint("mock:foo").expectedMessageCount(1);
+        getMockEndpoint("mock:bar").expectedMessageCount(1);
+
+        template.sendBodyAndHeader("direct:start", "Hello World", "cheese", "mock:foo##mock:bar");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .routingSlip("cheese", "{{slipDelimiter}}");
+            }
+        };
+    }
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+
+        PropertiesComponent pc = new PropertiesComponent();
+        pc.setCamelContext(context);
+        pc.setLocations(new String[]{"classpath:org/apache/camel/component/properties/myproperties.properties"});
+        context.addComponent("properties", pc);
+
+        return context;
+    }
+
+}

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java?rev=1006116&r1=1006115&r2=1006116&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java Sat Oct  9 08:48:47 2010
@@ -82,7 +82,7 @@ public class PropertiesComponentEndpoint
         } catch (FailedToCreateRouteException e) {
             ResolveEndpointFailedException cause = assertIsInstanceOf(ResolveEndpointFailedException.class, e.getCause());
             IllegalArgumentException iae = assertIsInstanceOf(IllegalArgumentException.class, cause.getCause());
-            assertEquals("PropertiesComponent with name properties must be defined in CamelContext to support property placeholders in endpoint URIs", iae.getMessage());
+            assertEquals("PropertiesComponent with name properties must be defined in CamelContext to support property placeholders.", iae.getMessage());
         }
     }
 

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ConvertBodyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ConvertBodyTest.java?rev=1006116&r1=1006115&r2=1006116&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ConvertBodyTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ConvertBodyTest.java Sat Oct  9 08:48:47 2010
@@ -26,7 +26,6 @@ import org.apache.camel.InvalidPayloadEx
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.util.ObjectHelper;
 
 public class ConvertBodyTest extends ContextTestSupport {
     
@@ -38,11 +37,10 @@ public class ConvertBodyTest extends Con
                     from("direct:invalid").convertBodyTo(String.class, "ASSI").to("mock:endpoint");
                 }
             });
-            fail("Except an exception here ");
-        } catch (Exception ex) {
-            assertTrue("Get a wrong exception", ex instanceof UnsupportedCharsetException);
+            fail("Should have thrown an exception");
+        } catch (Exception e) {
+            assertIsInstanceOf(UnsupportedCharsetException.class, e.getCause());
         }
-        
     }
 
     public void testConvertToInteger() throws Exception {

Modified: camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/myproperties.properties
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/myproperties.properties?rev=1006116&r1=1006115&r2=1006116&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/myproperties.properties (original)
+++ camel/trunk/camel-core/src/test/resources/org/apache/camel/component/properties/myproperties.properties Sat Oct  9 08:48:47 2010
@@ -26,4 +26,7 @@ cool.a={{cool.b}}
 cool.b={{cool.c}}
 cool.c={{cool.a}}
 
-cool.mock=mock
\ No newline at end of file
+cool.mock=mock
+
+myCoolCharset=iso-8859-1
+slipDelimiter=##

Copied: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.java (from r1005785, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringCBRHeaderPredicateTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringCBRHeaderPredicateTest.java&r1=1005785&r2=1006116&rev=1006116&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringCBRHeaderPredicateTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.java Sat Oct  9 08:48:47 2010
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.processor;
+package org.apache.camel.component.properties;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.processor.CBRHeaderPredicateTest;
+
 import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
 
 /**
  * @version $Revision$
  */
-public class SpringCBRHeaderPredicateTest extends CBRHeaderPredicateTest {
+public class SpringPropertiesComponentEIPConvertBodyToTest extends PropertiesComponentEIPConvertBodyToTest {
 
     protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/processor/CBRHeaderPredicateTest.xml");
+        return createSpringCamelContext(this, "org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml");
     }
 }
\ No newline at end of file

Copied: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml (from r1005785, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentTest.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentTest.xml&r1=1005785&r2=1006116&rev=1006116&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml Sat Oct  9 08:48:47 2010
@@ -27,25 +27,10 @@
     </bean>
 
     <camelContext xmlns="http://camel.apache.org/schema/spring">
-
         <route>
             <from uri="direct:start"/>
-            <to uri="properties:{{cool.end}}"/>
-        </route>
-
-        <route>
-            <from uri="direct:bar"/>
-            <to uri="properties:mock:{{cool.bar}}"/>
-        </route>
-
-        <route>
-            <from uri="direct:start2"/>
-            <to uri="{{cool.end}}"/>
-        </route>
-
-        <route>
-            <from uri="direct:bar2"/>
-            <to uri="mock:{{cool.bar}}"/>
+            <convertBodyTo type="byte[]" charset="{{myCoolCharset}}"/>
+            <to uri="mock:result"/>
         </route>
     </camelContext>
 

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/SpringPropertiesComponentEIPConvertBodyToTest.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/cheese.properties
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/cheese.properties?rev=1006116&r1=1006115&r2=1006116&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/cheese.properties (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/properties/cheese.properties Sat Oct  9 08:48:47 2010
@@ -16,4 +16,7 @@
 ## ------------------------------------------------------------------------
 
 cool.end=mock:result
-cool.bar=bar
\ No newline at end of file
+cool.bar=bar
+
+myCoolCharset=iso-8859-1
+slipDelimiter=##