Author: buildbot Date: Sun Jun 3 10:20:36 2012 New Revision: 820078 Log: Production update by buildbot for camel
Modified: websites/production/camel/content/book-component-appendix.html websites/production/camel/content/book-in-one-page.html websites/production/camel/content/cache/main.pageCache websites/production/camel/content/camel-2100-release.html websites/production/camel/content/how-do-i-use-spring-property-placeholder-with-camel-xml.html websites/production/camel/content/properties.html websites/production/camel/content/using-propertyplaceholder.html Modified: websites/production/camel/content/book-component-appendix.html ============================================================================== --- websites/production/camel/content/book-component-appendix.html (original) +++ websites/production/camel/content/book-component-appendix.html Sun Jun 3 10:20:36 2012 @@ -13538,18 +13538,44 @@ location=<span class="code-quote">"bluep <h3><a shape="rect" name="BookComponentAppendix-BridgingSpringandCamelpropertyplaceholders"></a>Bridging Spring and Camel property placeholders</h3> <p><b>Available as of Camel 2.10</b></p> -<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.CamelSpringPropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> +<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> -<p>To bridge Spring and Camel you must define a single bean as shown below:<br clear="none"> -TODO: e1</p> +<p>To bridge Spring and Camel you must define a single bean as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Bridging Spring and Camel property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- bridge spring property placeholder with Camel --></span></span> +<span class="code-tag"><span class="code-comment"><!-- you must NOT use the <context:property-placeholder at the same time, only this bridge bean --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"bridgePropertyPlaceholder"</span> class=<span class="code-quote">"org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"location"</span> value=<span class="code-quote">"classpath:org/apache/camel/component/properties/cheese.properties"</span>/></span> +<span class="code-tag"></bean></span> -<p>You <b>must</b> not use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> +</pre> +</div></div> -<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:<br clear="none"> -TODO: e2</p> +<p>You <b>must not</b> use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> +<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Using bridge property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- a bean that uses Spring property placeholder --></span></span> +<span class="code-tag"><span class="code-comment"><!-- the ${hi} is a spring property placeholder --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"hello"</span> class=<span class="code-quote">"org.apache.camel.component.properties.HelloBean"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"greeting"</span> value=<span class="code-quote">"${hi}"</span>/></span> +<span class="code-tag"></bean></span> +<span class="code-tag"><camelContext xmlns=<span class="code-quote">"http://camel.apache.org/schema/spring"</span>></span> + <span class="code-tag"><span class="code-comment"><!-- in this route we use Camels property placeholder {{ }} style --></span></span> + <span class="code-tag"><route></span> + <span class="code-tag"><from uri=<span class="code-quote">"direct:{{cool.bar}}"</span>/></span> + <span class="code-tag"><bean ref=<span class="code-quote">"hello"</span>/></span> + <span class="code-tag"><to uri=<span class="code-quote">"{{cool.end}}"</span>/></span> + <span class="code-tag"></route></span> +<span class="code-tag"></camelContext></span> + +</pre> +</div></div> +<p>Notice how the hello bean is using pure Spring property placeholders using the ${ } notation. And in the Camel routes we use the Camel placeholder notation with {{ }}.</p> <h3><a shape="rect" name="BookComponentAppendix-SeeAlso"></a>See Also</h3> <ul><li><a shape="rect" href="configuring-camel.html" title="Configuring Camel">Configuring Camel</a></li><li><a shape="rect" href="component.html" title="Component">Component</a></li><li><a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a></li><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li></ul> Modified: websites/production/camel/content/book-in-one-page.html ============================================================================== --- websites/production/camel/content/book-in-one-page.html (original) +++ websites/production/camel/content/book-in-one-page.html Sun Jun 3 10:20:36 2012 @@ -33947,18 +33947,44 @@ location=<span class="code-quote">"bluep <h3><a shape="rect" name="BookInOnePage-BridgingSpringandCamelpropertyplaceholders"></a>Bridging Spring and Camel property placeholders</h3> <p><b>Available as of Camel 2.10</b></p> -<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.CamelSpringPropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> +<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> -<p>To bridge Spring and Camel you must define a single bean as shown below:<br clear="none"> -TODO: e1</p> +<p>To bridge Spring and Camel you must define a single bean as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Bridging Spring and Camel property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- bridge spring property placeholder with Camel --></span></span> +<span class="code-tag"><span class="code-comment"><!-- you must NOT use the <context:property-placeholder at the same time, only this bridge bean --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"bridgePropertyPlaceholder"</span> class=<span class="code-quote">"org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"location"</span> value=<span class="code-quote">"classpath:org/apache/camel/component/properties/cheese.properties"</span>/></span> +<span class="code-tag"></bean></span> -<p>You <b>must</b> not use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> +</pre> +</div></div> -<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:<br clear="none"> -TODO: e2</p> +<p>You <b>must not</b> use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> +<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Using bridge property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- a bean that uses Spring property placeholder --></span></span> +<span class="code-tag"><span class="code-comment"><!-- the ${hi} is a spring property placeholder --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"hello"</span> class=<span class="code-quote">"org.apache.camel.component.properties.HelloBean"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"greeting"</span> value=<span class="code-quote">"${hi}"</span>/></span> +<span class="code-tag"></bean></span> +<span class="code-tag"><camelContext xmlns=<span class="code-quote">"http://camel.apache.org/schema/spring"</span>></span> + <span class="code-tag"><span class="code-comment"><!-- in this route we use Camels property placeholder {{ }} style --></span></span> + <span class="code-tag"><route></span> + <span class="code-tag"><from uri=<span class="code-quote">"direct:{{cool.bar}}"</span>/></span> + <span class="code-tag"><bean ref=<span class="code-quote">"hello"</span>/></span> + <span class="code-tag"><to uri=<span class="code-quote">"{{cool.end}}"</span>/></span> + <span class="code-tag"></route></span> +<span class="code-tag"></camelContext></span> + +</pre> +</div></div> +<p>Notice how the hello bean is using pure Spring property placeholders using the ${ } notation. And in the Camel routes we use the Camel placeholder notation with {{ }}.</p> <h3><a shape="rect" name="BookInOnePage-SeeAlso"></a>See Also</h3> <ul><li><a shape="rect" href="configuring-camel.html" title="Configuring Camel">Configuring Camel</a></li><li><a shape="rect" href="component.html" title="Component">Component</a></li><li><a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a></li><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li></ul> Modified: websites/production/camel/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/camel/content/camel-2100-release.html ============================================================================== --- websites/production/camel/content/camel-2100-release.html (original) +++ websites/production/camel/content/camel-2100-release.html Sun Jun 3 10:20:36 2012 @@ -84,7 +84,7 @@ <p>Welcome to the 2.10.0 release with approximately XXX issues resolved - including new features, improvements, and bug fixes, such as: </p> -<ul><li>Added support for Java 1.7</li><li>Added consumer to <a shape="rect" href="jcr.html" title="JCR">JCR</a> component</li><li>Internal code cleanup to reduce warnings reported by Eclipse</li><li>Moved <a shape="rect" href="spring-testing.html" title="Spring Testing">Spring Testing</a> from <tt>camel-test</tt> to <tt>camel-test-spring</tt> component.</li><li>Camel <a shape="rect" href="using-propertyplaceholder.html" title="Using PropertyPlaceholder">Property Placeholders</a> are now supported in embedded <a shape="rect" href="expression.html" title="Expression">Expression</a>s within Camel routes.</li><li>Added missing options in the XML DSL for the <a shape="rect" href="xpath.html" title="XPath">XPath</a> language to control and set which XPath Engine to use, etc.</li><li>Added option <tt>logNamespaces</tt> to the <a shape="rect" href="xpath.html" title="XPath">XPath</a> language to have <tt>INFO</tt> logging of detected namespaces from message. This can be used to tr oubleshoot issues where an <a shape="rect" href="xpath.html" title="XPath">XPath</a> expression doesn't work as expected (as it's often a namespace conflict).</li><li>Added <tt>replyToCacheLevelName</tt> option to the <a shape="rect" href="jms.html" title="JMS">JMS</a> component, allowing configuration of cache levels for persistent reply consumers when doing request/reply over JMS. Some message brokers do not work well with caching, so users may need to set this option to <tt>CACHE_NONE</tt>.</li><li>Added <tt>antInclude</tt> and <tt>antExclude</tt> options to <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components to make it easier to specify include/exclude filters using ANT syntax.</li><li>The <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel archetypes</a> for Java and Scala no longer generate projects with Spring dependencies.</li><li>Improved <tt>JdbcMessageIdRe pository</tt> in the <a shape="rect" href="sql-component.html" title="SQL Component">SQL</a> to use custom SQL statements/queries.</li><li>Added option to <a shape="rect" href="properties.html" title="Properties">Properties</a> to allow silently ignoring property locations not found, such as a .properties file.</li><li>Added <tt>managementNamePattern</tt> attribute to <tt><camelContext></tt> to make it very easy to customize and control the JMX naming of the Camel application. See details at <a shape="rect" href="camel-jmx.html#CamelJMX-CamelJMXManagementNamingStrategy">Camel JMX</a>. For example, in OSGi environments you can explicitly configure a <tt>managementNamePattern</tt> in case you do not want the bundleId as part of MBean names.</li><li>Added streaming update support to <a shape="rect" href="solr.html" title="Solr">Solr</a> as well as support for SolrInputDocuments</li><li>Added SolrJ DirectXMLRequest support to <a shape="rect" href="solr.html" title="Solr">S olr</a> to support XML based index updates</li><li>Improved Camel <a shape="rect" href="mail.html" title="Mail">Mail</a> to support the <tt>replyTo</tt> option</li><li>Added <tt>traceEnabled</tt> option to <a shape="rect" href="jetty.html" title="Jetty">Jetty</a> component so you have control over whether to allow HTTP TRACE calls against your Jetty endpoints.</li><li>Polished the <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> to let the projects be prepared for <a shape="rect" href="testing.html" title="Testing">Testing</a>, and fixed any WARNs from Maven.</li><li>Added <tt>dumpRouteStatsAsXml</tt> methods to <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> to make it easier to get the total performance stats as XML, and in one JMX call.</li><li><a shape="rect" href="graceful-shutdown.html" title="Graceful Shutdown">Graceful Shutdown</a> is now more aggressive if timeout occurred during shutdown, r ejecting continued processing of messages or redeliveries.</li><li>Add <tt>ShutdownPrepared</tt> SPI to allow custom Services (also EIPs) in routes to do custom code in preparation for shutdown.</li><li>The <tt>camel-archetype-java</tt> <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> is now a pure Java DSL based project (no longer Spring)</li><li><a shape="rect" href="jms.html" title="JMS">JMS</a> consumer is less verbose when logging uncaught exceptions thrown while processing a message. Added <tt>errorHandlerLoggingLevel</tt>, and <tt>errorHandlerLogStackTrace</tt> options to tweak the logging verbosity.</li><li>Added <tt>messageId</tt> as an <a shape="rect" href="mdc-logging.html" title="MDC logging">MDC logging</a> key.</li><li>Improved Camel's Transaction <a shape="rect" href="error-handler.html" title="Error Handler">Error Handler</a> logging to better pinpoint and correlate redelivered messages (from, e.g., a JMS broker), making the logs much easier to read.</li><li>Added a timeout option to <a shape="rect" href="spring-web-services.html" title="Spring Web Services">Spring Web Services</a> for specifying the read timeout while invoking a webservice.</li><li>Optimized <a shape="rect" href="type-converter.html" title="Type Converter">Type Converter</a> registry for possible concurrency contention when looking up a type converter.</li><li>Improved <a shape="rect" href="simple.html" title="Simple">Simple</a> language to work better with floating point numbers in <a shape="rect" href="predicate.html" title="Predicate">Predicate</a>s</li><li>Camel is now less verbose when starting and stopping, with less being logged at <tt>INFO</tt> level.</li><li>Add support for keyed data queues to <a shape="rect" href="jt400.html" title="JT400">JT400</a> component.</li><li><a shape="rect" href="idempotent-consumer.html" title="Idempotent Consumer">Idempotent Consumer</a> is now enlisted in JMX, w hich allows monitoring the duplicate message count as well as the operation to reset it.</li><li>Thread pools registered in <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> are now unregistered when Camel shuts them down. Note that all MBeans will be unregistered from JMX when Camel shuts itself down. This improvement is to unregister thread pools more eagerly, such as when routes are removed at runtime.</li><li>Camel will now also copy the message headers for a <tt>JmsMessage</tt> if you leverage <tt>useOriginalMessage</tt> in an <tt>onException</tt> definition.</li><li>Added <tt>mockEndpointsAndSkip</tt> to <a shape="rect" href="advicewith.html" title="AdviceWith">AdviceWith</a> and the <a shape="rect" href="testing.html" title="Testing">Test Kit</a></li><li>The <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components now support filtering directories. The <tt>isDirectory</tt> method on the <tt>GenericFile</tt> class can be used to skip unwanted directories, accelerating file consumption.</li><li><a shape="rect" href="smpp.html" title="SMPP">SMPP</a> connections can now be tunneled through an HTTP proxy by configuring HTTP proxy settings.</li><li>Camel now also checks, when starting a route dynamically, whether there would be any violations on multiple consumers from the same <a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a>. Previously this check only occurred during Camel startup - now it always happens.</li><li>Stopping a <tt>ConsumerTemplate</tt> or a <tt>ProducerTemplate</tt> will now stop and shutdown its cache to cleanup any resources which otherwise may not have been reclaimed until shutdown.</li><li><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a> will now shutdown thread pools more eagerly, such as when stop ping a <tt>ConsumerTemplate</tt>.</li><li>Added option <tt>asyncStartListener</tt> to <a shape="rect" href="jms.html" title="JMS">JMS</a> to allow starting JMS consumers (e.g. routes) asynchronously. This can be used to avoid blocking in case the JMS consumer takes long time to establish a connection to the JMS broker.</li><li><a shape="rect" href="wire-tap.html" title="Wire Tap">Wire Tap</a> now supports <a shape="rect" href="error-handling-in-camel.html" title="Error handling in Camel">Error Handling</a> when sending a tapped message to an <a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a>.</li><li>Added the autogenColumns, configRef and strategyRef options to the <a shape="rect" href="csv.html" title="CSV">CSV</a> dataformat in XML DSL whereas the new skipFirstLine option is provided in Java API as well.</li><li><a shape="rect" href="validation.html" title="Validation">Validator</a> component will now fail with a better error message if resource schema ref ers to element which cannot be resolved.</li><li>Added support for retrieving generated keys from <a shape="rect" href="jdbc.html" title="JDBC">JDBC</a> component.</li><li>Added support for Spring 3.1.x.</li><li>Added <tt>retainFirst</tt>, and <tt>retainLast</tt> options to <a shape="rect" href="mock.html" title="Mock">Mock</a> component.</li><li>Improved <a shape="rect" href="simple.html" title="Simple">Simple</a> language to allow referring to headers using bracket notation.</li><li>Added support for the scp: protocol via <a shape="rect" href="jsch.html" title="Jsch">Jsch</a>.</li><li>Added support to exclude certain fields when marshalling POJO's to <a shape="rect" href="json.html" title="JSON">JSON</a>. Available with both the Jackson and GSON library.</li><li>Allow to configure frequency of timeout checker when doing request/reply over <a shape="rect" href="jms.html" title="JMS">JMS</a></li><li>Improved the Java DSL to make it easier to use predicates from the build-in DSL, that has commonly used predicates and expressions.</li><li><a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregate</a> EIP now supports <tt>TimeoutAwareAggregationStrategy</tt> aggregation strategies.</li><li>The default <tt>Injector</tt> now performs bean post processing to inject @Produce, @Consume, @EndpointInject fields etc.</li><li>The <a shape="rect" href="camel-run-maven-goal.html" title="Camel Run Maven Goal">camel-run</a> maven plugin now supports running <a shape="rect" href="using-osgi-blueprint-with-camel.html" title="Using OSGi blueprint with Camel">OSGi Blueprint applications</a>.</li><li>Added utilization statistics to the type converter registry (which can be accessed from <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a>), and are logged as Camel is shutting down.</li><li>Improved <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> to work better with servers such as WebSphere which alters MBean names when enlisti ng mbeans into the server (Camel now have an internal mapping table).</li><li>All <a shape="rect" href="eip.html" title="EIP">EIP</a>s out of the box from Camel now provides <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> utilization statistics.</li><li>The <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> consumers will now let <tt>org.apache.camel.spi.ExceptionHandler</tt> deal with exceptions occurred during acquiring real lock as well. See <a shape="rect" href="file2.html" title="File2">File</a> page for example of using a custom <tt>ExceptionHandler</tt>.</li><li>Reduce the logging level from ERROR to WARN on the default <tt>LoggingExceptionHandler</tt>.</li><li>Added option <tt>consumer.bridgeErrorHandler</tt> to allow consumers such as <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> to use the routing engine <a shape="rect " href="error-handler.html" title="Error Handler">Error Handler</a> to deal with exceptions occurring in the consumer (outside the routing engine), for example if having trouble picking up a file from a shared network drive etc. See more details at <a shape="rect" href="file2.html" title="File2">File</a> page. This option applies to all consumers which extends the <tt>DefaultConsumer</tt> from <tt>camel-core</tt>.</li><li>Added <tt>eagerMaxMessagesPerPoll</tt> option to <a shape="rect" href="file2.html" title="File2">File</a>, and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> endpoints to allow to do a full sorting of the files and also limit the pool at the same time</li><li>The <a shape="rect" href="xslt.html" title="XSLT">XSLT</a>, <a shape="rect" href="velocity.html" title="Velocity">Velocity</a>, <a shape="rect" href="freemarker.html" title="FreeMarker">FreeMarker</a>, and <a shape="rect" href="stringtemplate.html" title="StringTemplate">StringTemplate</a> compo nents using http resource for the template now supports query parameters</li><li>You can specify the class type with <a shape="rect" href="bindy.html" title="Bindy">Bindy</a> to make it stand out what type is being used, as well the <tt>unmarshal</tt> operation returns a list of the pojos (and the pojo directly if only 1). Which makes it easier to use/work with.</li><li>Added <tt>group</tt> option to <a shape="rect" href="tokenizer.html" title="Tokenizer">Tokenizer</a> to make it easier with the <a shape="rect" href="splitter.html" title="Splitter">Splitter</a> to split by combining N number of parts together, eg splitting files in chunks by N lines combined.</li><li>Camel is now compatible to the upcoming Karaf 3 release</li><li>Added <tt>ExchangeSendingEvent</tt> to <tt>EventNotifier</tt> to emit an event <b>before</b> sending an <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> to an <a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a>. Then we have events for both before and after.</li><li>Relaxed syntax check in <a shape="rect" href="simple.html" title="Simple">Simple</a> language to only scan for functions if a start token was explicit configured. This allows to easier do json like expressions.</li><li>Added support for escaping values in <a shape="rect" href="simple.html" title="Simple">Simple</a> language using the \ character.</li><li>Added new <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> for creating new <a shape="rect" href="component.html" title="Component">Component</a> using Scala.</li><li>Added <tt>trim</tt> option to <a shape="rect" href="languages.html" title="Languages">Languages</a> in the XML DSL, to control trimming the expression values, to remove the whitespace noise from XML tags.</li><li>Improved the <a shape="rect" href="file2.html" title="File2">File</a> consumer to support competing consumers on a shared drive to not pickup files from other consumers, as marker file is always used, for <tt>readLock</tt> strategies such as changed, rename and fileLock. For example if you have a clustered environment and have multiple Camel applications pickup files from a shared drive with <tt>readLock=changed</tt>.</li><li>The <a shape="rect" href="file2.html" title="File2">File</a> consumer with <tt>readLock=changed</tt> will now consider zero length file as in progress files.</li></ul> +<ul><li>Added support for Java 1.7</li><li>Added consumer to <a shape="rect" href="jcr.html" title="JCR">JCR</a> component</li><li>Internal code cleanup to reduce warnings reported by Eclipse</li><li>Moved <a shape="rect" href="spring-testing.html" title="Spring Testing">Spring Testing</a> from <tt>camel-test</tt> to <tt>camel-test-spring</tt> component.</li><li>Camel <a shape="rect" href="using-propertyplaceholder.html" title="Using PropertyPlaceholder">Property Placeholders</a> are now supported in embedded <a shape="rect" href="expression.html" title="Expression">Expression</a>s within Camel routes.</li><li>Added missing options in the XML DSL for the <a shape="rect" href="xpath.html" title="XPath">XPath</a> language to control and set which XPath Engine to use, etc.</li><li>Added option <tt>logNamespaces</tt> to the <a shape="rect" href="xpath.html" title="XPath">XPath</a> language to have <tt>INFO</tt> logging of detected namespaces from message. This can be used to tr oubleshoot issues where an <a shape="rect" href="xpath.html" title="XPath">XPath</a> expression doesn't work as expected (as it's often a namespace conflict).</li><li>Added <tt>replyToCacheLevelName</tt> option to the <a shape="rect" href="jms.html" title="JMS">JMS</a> component, allowing configuration of cache levels for persistent reply consumers when doing request/reply over JMS. Some message brokers do not work well with caching, so users may need to set this option to <tt>CACHE_NONE</tt>.</li><li>Added <tt>antInclude</tt> and <tt>antExclude</tt> options to <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components to make it easier to specify include/exclude filters using ANT syntax.</li><li>The <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel archetypes</a> for Java and Scala no longer generate projects with Spring dependencies.</li><li>Improved <tt>JdbcMessageIdRe pository</tt> in the <a shape="rect" href="sql-component.html" title="SQL Component">SQL</a> to use custom SQL statements/queries.</li><li>Added option to <a shape="rect" href="properties.html" title="Properties">Properties</a> to allow silently ignoring property locations not found, such as a .properties file.</li><li>Added <tt>managementNamePattern</tt> attribute to <tt><camelContext></tt> to make it very easy to customize and control the JMX naming of the Camel application. See details at <a shape="rect" href="camel-jmx.html#CamelJMX-CamelJMXManagementNamingStrategy">Camel JMX</a>. For example, in OSGi environments you can explicitly configure a <tt>managementNamePattern</tt> in case you do not want the bundleId as part of MBean names.</li><li>Added streaming update support to <a shape="rect" href="solr.html" title="Solr">Solr</a> as well as support for SolrInputDocuments</li><li>Added SolrJ DirectXMLRequest support to <a shape="rect" href="solr.html" title="Solr">S olr</a> to support XML based index updates</li><li>Improved Camel <a shape="rect" href="mail.html" title="Mail">Mail</a> to support the <tt>replyTo</tt> option</li><li>Added <tt>traceEnabled</tt> option to <a shape="rect" href="jetty.html" title="Jetty">Jetty</a> component so you have control over whether to allow HTTP TRACE calls against your Jetty endpoints.</li><li>Polished the <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> to let the projects be prepared for <a shape="rect" href="testing.html" title="Testing">Testing</a>, and fixed any WARNs from Maven.</li><li>Added <tt>dumpRouteStatsAsXml</tt> methods to <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> to make it easier to get the total performance stats as XML, and in one JMX call.</li><li><a shape="rect" href="graceful-shutdown.html" title="Graceful Shutdown">Graceful Shutdown</a> is now more aggressive if timeout occurred during shutdown, r ejecting continued processing of messages or redeliveries.</li><li>Add <tt>ShutdownPrepared</tt> SPI to allow custom Services (also EIPs) in routes to do custom code in preparation for shutdown.</li><li>The <tt>camel-archetype-java</tt> <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> is now a pure Java DSL based project (no longer Spring)</li><li><a shape="rect" href="jms.html" title="JMS">JMS</a> consumer is less verbose when logging uncaught exceptions thrown while processing a message. Added <tt>errorHandlerLoggingLevel</tt>, and <tt>errorHandlerLogStackTrace</tt> options to tweak the logging verbosity.</li><li>Added <tt>messageId</tt> as an <a shape="rect" href="mdc-logging.html" title="MDC logging">MDC logging</a> key.</li><li>Improved Camel's Transaction <a shape="rect" href="error-handler.html" title="Error Handler">Error Handler</a> logging to better pinpoint and correlate redelivered messages (from, e.g., a JMS broker), making the logs much easier to read.</li><li>Added a timeout option to <a shape="rect" href="spring-web-services.html" title="Spring Web Services">Spring Web Services</a> for specifying the read timeout while invoking a webservice.</li><li>Optimized <a shape="rect" href="type-converter.html" title="Type Converter">Type Converter</a> registry for possible concurrency contention when looking up a type converter.</li><li>Improved <a shape="rect" href="simple.html" title="Simple">Simple</a> language to work better with floating point numbers in <a shape="rect" href="predicate.html" title="Predicate">Predicate</a>s</li><li>Camel is now less verbose when starting and stopping, with less being logged at <tt>INFO</tt> level.</li><li>Add support for keyed data queues to <a shape="rect" href="jt400.html" title="JT400">JT400</a> component.</li><li><a shape="rect" href="idempotent-consumer.html" title="Idempotent Consumer">Idempotent Consumer</a> is now enlisted in JMX, w hich allows monitoring the duplicate message count as well as the operation to reset it.</li><li>Thread pools registered in <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> are now unregistered when Camel shuts them down. Note that all MBeans will be unregistered from JMX when Camel shuts itself down. This improvement is to unregister thread pools more eagerly, such as when routes are removed at runtime.</li><li>Camel will now also copy the message headers for a <tt>JmsMessage</tt> if you leverage <tt>useOriginalMessage</tt> in an <tt>onException</tt> definition.</li><li>Added <tt>mockEndpointsAndSkip</tt> to <a shape="rect" href="advicewith.html" title="AdviceWith">AdviceWith</a> and the <a shape="rect" href="testing.html" title="Testing">Test Kit</a></li><li>The <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> components now support filtering directories. The <tt>isDirectory</tt> method on the <tt>GenericFile</tt> class can be used to skip unwanted directories, accelerating file consumption.</li><li><a shape="rect" href="smpp.html" title="SMPP">SMPP</a> connections can now be tunneled through an HTTP proxy by configuring HTTP proxy settings.</li><li>Camel now also checks, when starting a route dynamically, whether there would be any violations on multiple consumers from the same <a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a>. Previously this check only occurred during Camel startup - now it always happens.</li><li>Stopping a <tt>ConsumerTemplate</tt> or a <tt>ProducerTemplate</tt> will now stop and shutdown its cache to cleanup any resources which otherwise may not have been reclaimed until shutdown.</li><li><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a> will now shutdown thread pools more eagerly, such as when stop ping a <tt>ConsumerTemplate</tt>.</li><li>Added option <tt>asyncStartListener</tt> to <a shape="rect" href="jms.html" title="JMS">JMS</a> to allow starting JMS consumers (e.g. routes) asynchronously. This can be used to avoid blocking in case the JMS consumer takes long time to establish a connection to the JMS broker.</li><li><a shape="rect" href="wire-tap.html" title="Wire Tap">Wire Tap</a> now supports <a shape="rect" href="error-handling-in-camel.html" title="Error handling in Camel">Error Handling</a> when sending a tapped message to an <a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a>.</li><li>Added the autogenColumns, configRef and strategyRef options to the <a shape="rect" href="csv.html" title="CSV">CSV</a> dataformat in XML DSL whereas the new skipFirstLine option is provided in Java API as well.</li><li><a shape="rect" href="validation.html" title="Validation">Validator</a> component will now fail with a better error message if resource schema ref ers to element which cannot be resolved.</li><li>Added support for retrieving generated keys from <a shape="rect" href="jdbc.html" title="JDBC">JDBC</a> component.</li><li>Added support for Spring 3.1.x.</li><li>Added <tt>retainFirst</tt>, and <tt>retainLast</tt> options to <a shape="rect" href="mock.html" title="Mock">Mock</a> component.</li><li>Improved <a shape="rect" href="simple.html" title="Simple">Simple</a> language to allow referring to headers using bracket notation.</li><li>Added support for the scp: protocol via <a shape="rect" href="jsch.html" title="Jsch">Jsch</a>.</li><li>Added support to exclude certain fields when marshalling POJO's to <a shape="rect" href="json.html" title="JSON">JSON</a>. Available with both the Jackson and GSON library.</li><li>Allow to configure frequency of timeout checker when doing request/reply over <a shape="rect" href="jms.html" title="JMS">JMS</a></li><li>Improved the Java DSL to make it easier to use predicates from the build-in DSL, that has commonly used predicates and expressions.</li><li><a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregate</a> EIP now supports <tt>TimeoutAwareAggregationStrategy</tt> aggregation strategies.</li><li>The default <tt>Injector</tt> now performs bean post processing to inject @Produce, @Consume, @EndpointInject fields etc.</li><li>The <a shape="rect" href="camel-run-maven-goal.html" title="Camel Run Maven Goal">camel-run</a> maven plugin now supports running <a shape="rect" href="using-osgi-blueprint-with-camel.html" title="Using OSGi blueprint with Camel">OSGi Blueprint applications</a>.</li><li>Added utilization statistics to the type converter registry (which can be accessed from <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a>), and are logged as Camel is shutting down.</li><li>Improved <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> to work better with servers such as WebSphere which alters MBean names when enlisti ng mbeans into the server (Camel now have an internal mapping table).</li><li>All <a shape="rect" href="eip.html" title="EIP">EIP</a>s out of the box from Camel now provides <a shape="rect" href="camel-jmx.html" title="Camel JMX">JMX</a> utilization statistics.</li><li>The <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> consumers will now let <tt>org.apache.camel.spi.ExceptionHandler</tt> deal with exceptions occurred during acquiring real lock as well. See <a shape="rect" href="file2.html" title="File2">File</a> page for example of using a custom <tt>ExceptionHandler</tt>.</li><li>Reduce the logging level from ERROR to WARN on the default <tt>LoggingExceptionHandler</tt>.</li><li>Added option <tt>consumer.bridgeErrorHandler</tt> to allow consumers such as <a shape="rect" href="file2.html" title="File2">File</a> and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> to use the routing engine <a shape="rect " href="error-handler.html" title="Error Handler">Error Handler</a> to deal with exceptions occurring in the consumer (outside the routing engine), for example if having trouble picking up a file from a shared network drive etc. See more details at <a shape="rect" href="file2.html" title="File2">File</a> page. This option applies to all consumers which extends the <tt>DefaultConsumer</tt> from <tt>camel-core</tt>.</li><li>Added <tt>eagerMaxMessagesPerPoll</tt> option to <a shape="rect" href="file2.html" title="File2">File</a>, and <a shape="rect" href="ftp2.html" title="FTP2">FTP</a> endpoints to allow to do a full sorting of the files and also limit the pool at the same time</li><li>The <a shape="rect" href="xslt.html" title="XSLT">XSLT</a>, <a shape="rect" href="velocity.html" title="Velocity">Velocity</a>, <a shape="rect" href="freemarker.html" title="FreeMarker">FreeMarker</a>, and <a shape="rect" href="stringtemplate.html" title="StringTemplate">StringTemplate</a> compo nents using http resource for the template now supports query parameters</li><li>You can specify the class type with <a shape="rect" href="bindy.html" title="Bindy">Bindy</a> to make it stand out what type is being used, as well the <tt>unmarshal</tt> operation returns a list of the pojos (and the pojo directly if only 1). Which makes it easier to use/work with.</li><li>Added <tt>group</tt> option to <a shape="rect" href="tokenizer.html" title="Tokenizer">Tokenizer</a> to make it easier with the <a shape="rect" href="splitter.html" title="Splitter">Splitter</a> to split by combining N number of parts together, eg splitting files in chunks by N lines combined.</li><li>Camel is now compatible to the upcoming Karaf 3 release</li><li>Added <tt>ExchangeSendingEvent</tt> to <tt>EventNotifier</tt> to emit an event <b>before</b> sending an <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> to an <a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a>. Then we have events for both before and after.</li><li>Relaxed syntax check in <a shape="rect" href="simple.html" title="Simple">Simple</a> language to only scan for functions if a start token was explicit configured. This allows to easier do json like expressions.</li><li>Added support for escaping values in <a shape="rect" href="simple.html" title="Simple">Simple</a> language using the \ character.</li><li>Added new <a shape="rect" href="camel-maven-archetypes.html" title="Camel Maven Archetypes">Camel Maven Archetypes</a> for creating new <a shape="rect" href="component.html" title="Component">Component</a> using Scala.</li><li>Added <tt>trim</tt> option to <a shape="rect" href="languages.html" title="Languages">Languages</a> in the XML DSL, to control trimming the expression values, to remove the whitespace noise from XML tags.</li><li>Improved the <a shape="rect" href="file2.html" title="File2">File</a> consumer to support competing consumers on a shared drive to not pickup files from other consumers, as marker file is always used, for <tt>readLock</tt> strategies such as changed, rename and fileLock. For example if you have a clustered environment and have multiple Camel applications pickup files from a shared drive with <tt>readLock=changed</tt>.</li><li>The <a shape="rect" href="file2.html" title="File2">File</a> consumer with <tt>readLock=changed</tt> will now consider zero length file as in progress files.</li><li>Made it easier to <a shape="rect" href="using-propertyplaceholder.html" title="Using PropertyPlaceholder">bridge Spring and Camel property placeholders</a>, by configuring only once, using a new <tt>BridgePropertyPlaceholderConfigurer</tt> bean type.</li></ul> <h3><a shape="rect" name="Camel2.10.0Release-Fixedissues"></a>Fixed issues</h3> Modified: websites/production/camel/content/how-do-i-use-spring-property-placeholder-with-camel-xml.html ============================================================================== --- websites/production/camel/content/how-do-i-use-spring-property-placeholder-with-camel-xml.html (original) +++ websites/production/camel/content/how-do-i-use-spring-property-placeholder-with-camel-xml.html Sun Jun 3 10:20:36 2012 @@ -129,7 +129,9 @@ <p>Camel does not yet fully support property placeholders as there is a limitation in Spring. See JIRA <a shape="rect" class="external-link" href="http://jira.springframework.org/browse/SPR-4466" rel="nofollow">SPR-4466</a></p> -<p>Here is a trick that you can use to define the uri in a property file using Spring injection and Camel endpoint : <a shape="rect" class="external-link" href="http://cmoulliard.blogspot.com/2009/05/trick-to-pass-uri-declared-in-property.html" rel="nofollow">http://cmoulliard.blogspot.com/2009/05/trick-to-pass-uri-declared-in-property.html</a></p> +<div class="panelMacro"><table class="tipMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1"><b>Bridge Spring and Camel property placeholders</b><br clear="none">From Camel 2.10 onwards you can bridge Spring and Camel property placeholders, see <a shape="rect" href="using-propertyplaceholder.html" title="Using PropertyPlaceholder">Using PropertyPlaceholder</a> for more details.</td></tr></table></div> + +<p>Here is a trick that you can use to define the uri in a property file using Spring injection and Camel endpoint : <a shape="rect" class="external-link" href="http://cmoulliard.blogspot.com/2009/05/trick-to-pass-uri-declared-in-property.html" rel="nofollow">http://cmoulliard.blogspot.com/2009/05/trick-to-pass-uri-declared-in-property.html</a>.</p> <p>From Camel 2.3 onwards there is a <a shape="rect" href="properties.html" title="Properties">Properties</a> component build in Camel core which allows you to use properties in the same way as Spring property placeholders, and even more.</p></div> </td> Modified: websites/production/camel/content/properties.html ============================================================================== --- websites/production/camel/content/properties.html (original) +++ websites/production/camel/content/properties.html Sun Jun 3 10:20:36 2012 @@ -531,18 +531,44 @@ location=<span class="code-quote">"bluep <h3><a shape="rect" name="Properties-BridgingSpringandCamelpropertyplaceholders"></a>Bridging Spring and Camel property placeholders</h3> <p><b>Available as of Camel 2.10</b></p> -<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.CamelSpringPropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> - -<p>To bridge Spring and Camel you must define a single bean as shown below:<br clear="none"> -TODO: e1</p> - -<p>You <b>must</b> not use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> - -<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:<br clear="none"> -TODO: e2</p> +<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> +<p>To bridge Spring and Camel you must define a single bean as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Bridging Spring and Camel property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- bridge spring property placeholder with Camel --></span></span> +<span class="code-tag"><span class="code-comment"><!-- you must NOT use the <context:property-placeholder at the same time, only this bridge bean --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"bridgePropertyPlaceholder"</span> class=<span class="code-quote">"org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"location"</span> value=<span class="code-quote">"classpath:org/apache/camel/component/properties/cheese.properties"</span>/></span> +<span class="code-tag"></bean></span> + +</pre> +</div></div> + +<p>You <b>must not</b> use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> + +<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Using bridge property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- a bean that uses Spring property placeholder --></span></span> +<span class="code-tag"><span class="code-comment"><!-- the ${hi} is a spring property placeholder --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"hello"</span> class=<span class="code-quote">"org.apache.camel.component.properties.HelloBean"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"greeting"</span> value=<span class="code-quote">"${hi}"</span>/></span> +<span class="code-tag"></bean></span> + +<span class="code-tag"><camelContext xmlns=<span class="code-quote">"http://camel.apache.org/schema/spring"</span>></span> + <span class="code-tag"><span class="code-comment"><!-- in this route we use Camels property placeholder {{ }} style --></span></span> + <span class="code-tag"><route></span> + <span class="code-tag"><from uri=<span class="code-quote">"direct:{{cool.bar}}"</span>/></span> + <span class="code-tag"><bean ref=<span class="code-quote">"hello"</span>/></span> + <span class="code-tag"><to uri=<span class="code-quote">"{{cool.end}}"</span>/></span> + <span class="code-tag"></route></span> +<span class="code-tag"></camelContext></span> +</pre> +</div></div> +<p>Notice how the hello bean is using pure Spring property placeholders using the ${ } notation. And in the Camel routes we use the Camel placeholder notation with {{ }}.</p> <h3><a shape="rect" name="Properties-SeeAlso"></a>See Also</h3> <ul><li><a shape="rect" href="configuring-camel.html" title="Configuring Camel">Configuring Camel</a></li><li><a shape="rect" href="component.html" title="Component">Component</a></li><li><a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a></li><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li></ul> Modified: websites/production/camel/content/using-propertyplaceholder.html ============================================================================== --- websites/production/camel/content/using-propertyplaceholder.html (original) +++ websites/production/camel/content/using-propertyplaceholder.html Sun Jun 3 10:20:36 2012 @@ -510,18 +510,44 @@ location=<span class="code-quote">"bluep <h3><a shape="rect" name="UsingPropertyPlaceholder-BridgingSpringandCamelpropertyplaceholders"></a>Bridging Spring and Camel property placeholders</h3> <p><b>Available as of Camel 2.10</b></p> -<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.CamelSpringPropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> +<p>The Spring Framework does not allow 3rd party frameworks such as Apache Camel to seamless hook into the Spring property placeholder mechanism. However you can easily bridge Spring and Camel by declaring a Spring bean with the type <tt>org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer</tt>, which is a Spring <tt>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</tt> type. </p> -<p>To bridge Spring and Camel you must define a single bean as shown below:<br clear="none"> -TODO: e1</p> +<p>To bridge Spring and Camel you must define a single bean as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Bridging Spring and Camel property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- bridge spring property placeholder with Camel --></span></span> +<span class="code-tag"><span class="code-comment"><!-- you must NOT use the <context:property-placeholder at the same time, only this bridge bean --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"bridgePropertyPlaceholder"</span> class=<span class="code-quote">"org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"location"</span> value=<span class="code-quote">"classpath:org/apache/camel/component/properties/cheese.properties"</span>/></span> +<span class="code-tag"></bean></span> + +</pre> +</div></div> + +<p>You <b>must not</b> use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> + +<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:</p> +<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Using bridge property placeholders</b></div><div class="codeContent panelContent"> +<pre class="code-xml"> +<span class="code-tag"><span class="code-comment"><!-- a bean that uses Spring property placeholder --></span></span> +<span class="code-tag"><span class="code-comment"><!-- the ${hi} is a spring property placeholder --></span></span> +<span class="code-tag"><bean id=<span class="code-quote">"hello"</span> class=<span class="code-quote">"org.apache.camel.component.properties.HelloBean"</span>></span> + <span class="code-tag"><property name=<span class="code-quote">"greeting"</span> value=<span class="code-quote">"${hi}"</span>/></span> +<span class="code-tag"></bean></span> + +<span class="code-tag"><camelContext xmlns=<span class="code-quote">"http://camel.apache.org/schema/spring"</span>></span> + <span class="code-tag"><span class="code-comment"><!-- in this route we use Camels property placeholder {{ }} style --></span></span> + <span class="code-tag"><route></span> + <span class="code-tag"><from uri=<span class="code-quote">"direct:{{cool.bar}}"</span>/></span> + <span class="code-tag"><bean ref=<span class="code-quote">"hello"</span>/></span> + <span class="code-tag"><to uri=<span class="code-quote">"{{cool.end}}"</span>/></span> + <span class="code-tag"></route></span> +<span class="code-tag"></camelContext></span> -<p>You <b>must</b> not use the spring <context:property-placeholder> namespace at the same time; this is not possible.</p> +</pre> +</div></div> -<p>After declaring this bean, you can define property placeholders using both the Spring style, and the Camel style within the <camelContext> tag as shown below:<br clear="none"> -TODO: e2</p> - - -</div> +<p>Notice how the hello bean is using pure Spring property placeholders using the ${ } notation. And in the Camel routes we use the Camel placeholder notation with {{ }}.</p></div> </td> <td valign="top"> <div class="navigation">