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=##