You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2011/01/04 10:32:25 UTC
svn commit: r1054939 - in /servicemix/smx4/features/trunk:
assembly/src/main/descriptors/ assembly/src/main/filtered-resources/
examples/ examples/camel-blueprint/ examples/camel-blueprint/src/
examples/camel-blueprint/src/main/ examples/camel-blueprin...
Author: gertv
Date: Tue Jan 4 09:32:24 2011
New Revision: 1054939
URL: http://svn.apache.org/viewvc?rev=1054939&view=rev
Log:
SMX4-728: Add a Camel Blueprint example
Added:
servicemix/smx4/features/trunk/examples/camel-blueprint/
servicemix/smx4/features/trunk/examples/camel-blueprint/README.txt
servicemix/smx4/features/trunk/examples/camel-blueprint/org.apache.servicemix.examples.cfg
servicemix/smx4/features/trunk/examples/camel-blueprint/pom.xml
servicemix/smx4/features/trunk/examples/camel-blueprint/src/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/examples/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/examples/camel/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/examples/camel/MyTransform.java
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/OSGI-INF/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/OSGI-INF/blueprint/
servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml
Modified:
servicemix/smx4/features/trunk/assembly/src/main/descriptors/unix-bin.xml
servicemix/smx4/features/trunk/assembly/src/main/descriptors/windows-bin.xml
servicemix/smx4/features/trunk/assembly/src/main/filtered-resources/features.xml
servicemix/smx4/features/trunk/examples/pom.xml
Modified: servicemix/smx4/features/trunk/assembly/src/main/descriptors/unix-bin.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/assembly/src/main/descriptors/unix-bin.xml?rev=1054939&r1=1054938&r2=1054939&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/assembly/src/main/descriptors/unix-bin.xml (original)
+++ servicemix/smx4/features/trunk/assembly/src/main/descriptors/unix-bin.xml Tue Jan 4 09:32:24 2011
@@ -264,6 +264,13 @@
<lineEnding>unix</lineEnding>
</file>
<file>
+ <source>${basedir}/../examples/camel-blueprint/README.txt</source>
+ <outputDirectory>/examples/camel-blueprint</outputDirectory>
+ <filtered>true</filtered>
+ <fileMode>0644</fileMode>
+ <lineEnding>unix</lineEnding>
+ </file>
+ <file>
<source>${basedir}/../examples/cxf-wsdl-first/README.txt</source>
<outputDirectory>/examples/cxf-wsdl-first</outputDirectory>
<filtered>true</filtered>
Modified: servicemix/smx4/features/trunk/assembly/src/main/descriptors/windows-bin.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/assembly/src/main/descriptors/windows-bin.xml?rev=1054939&r1=1054938&r2=1054939&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/assembly/src/main/descriptors/windows-bin.xml (original)
+++ servicemix/smx4/features/trunk/assembly/src/main/descriptors/windows-bin.xml Tue Jan 4 09:32:24 2011
@@ -245,6 +245,13 @@
<lineEnding>dos</lineEnding>
</file>
<file>
+ <source>${basedir}/../examples/camel-blueprint/README.txt</source>
+ <outputDirectory>/examples/camel-blueprint</outputDirectory>
+ <filtered>true</filtered>
+ <fileMode>0644</fileMode>
+ <lineEnding>dos</lineEnding>
+ </file>
+ <file>
<source>${basedir}/../examples/cxf-wsdl-first/README.txt</source>
<outputDirectory>/examples/cxf-wsdl-first</outputDirectory>
<filtered>true</filtered>
Modified: servicemix/smx4/features/trunk/assembly/src/main/filtered-resources/features.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/assembly/src/main/filtered-resources/features.xml?rev=1054939&r1=1054938&r2=1054939&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/assembly/src/main/filtered-resources/features.xml (original)
+++ servicemix/smx4/features/trunk/assembly/src/main/filtered-resources/features.xml Tue Jan 4 09:32:24 2011
@@ -129,6 +129,10 @@
<feature version="${camel.version}">camel</feature>
<bundle>mvn:org.apache.servicemix.examples/camel-osgi/${version}</bundle>
</feature>
+ <feature name="examples-camel-blueprint" version="${version}">
+ <feature version="${camel.version}">camel-blueprint</feature>
+ <bundle>mvn:org.apache.servicemix.examples/camel-blueprint/${version}</bundle>
+ </feature>
<feature name="examples-camel-nmr" version="${version}">
<feature version="${version}">camel-nmr</feature>
<bundle>mvn:org.apache.servicemix.examples/camel-nmr/${version}</bundle>
Added: servicemix/smx4/features/trunk/examples/camel-blueprint/README.txt
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/examples/camel-blueprint/README.txt?rev=1054939&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/examples/camel-blueprint/README.txt (added)
+++ servicemix/smx4/features/trunk/examples/camel-blueprint/README.txt Tue Jan 4 09:32:24 2011
@@ -0,0 +1,235 @@
+/*
+ * 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.
+ */
+
+CAMEL OSGI EXAMPLE
+==================
+
+Purpose
+-------
+Deploys a Camel EIP route as an OSGi bundle using Blueprint.
+Configuration makes use of the OSGi Configuration Admin service and
+Blueprint property placeholders, and the example demonstrates how to
+deploy the properties file from the ServiceMix console.
+
+
+Explanation
+-----------
+The Camel route is defined in a Spring XML file, beans.xml, which can be
+found in the src/main/resources/OSGI-INF/blueprint directory of this example.
+The route is defined in the <route> element and can be explained as follows:
+
+1. A timer endpoint generates a heartbeat event every 2000ms.
+
+2. A callout is made to a transformer bean that transforms each
+ heartbeat message to the current date and time.
+
+3. A log endpoint sends the transformed message to the
+ Jakarta commons logger.
+
+The beans.xml file also contains the following elements:
+
+- A <bean> element that instantiates the transformer bean using standard
+ Spring configuration syntax and specifies a prefix value using a
+ property placeholder.
+
+- An <cm:property-placeholder> element which allows you to specify placeholder
+ values using the OSGi Configuration Admin service. In this case, the
+ property is also given the default value of "MyTransform".
+
+The route and configuration are deployed in an OSGi bundle.
+
+
+Prerequisites for Running the Example
+-------------------------------------
+1. You must have the following installed on your machine:
+
+ - JDK 1.5 or higher
+
+ - Maven 2.0.9 or higher (for building)
+
+ For more information, see the README in the top-level examples
+ directory.
+
+2. Start ServiceMix by running the following command:
+
+ <servicemix_home>/bin/servicemix (on UNIX)
+ <servicemix_home>\bin\servicemix (on Windows)
+
+
+Running the Example
+-------------------
+You can run the example in two ways:
+
+- A. Using a Prebuilt Deployment Bundle: Quick and Easy
+ This option is useful if you want to see the example up and
+ running quickly.
+
+- B. Building the Example Bundle Yourself
+ This option is useful if you want to change the example in any way.
+ It tells you how to build and deploy the example. This option might
+ be slower than option A because, if you do not already have the
+ required bundles in your local Maven repository, Maven will have to
+ download the bundles it needs.
+
+
+A. Using a Prebuilt Deployment Bundle: Quick and Easy
+-----------------------------------------------------
+To install and run a prebuilt version of this example, enter the
+following command in the ServiceMix console:
+
+ features:install examples-camel-blueprint
+
+This command makes use of the ServiceMix features facility. For more
+information about the features facility, see the README.txt file in the
+examples parent directory.
+
+Once the example is running, periodic events are routed to the transform
+method of the MyTransform class and you should see output similar to the
+following being logged to your console screen:
+
+>>>> Blueprint-Example set body: Tue Jan 04 10:23:39 CET 2011
+>>>> Blueprint-Example set body: Tue Jan 04 10:23:41 CET 2011
+>>>> Blueprint-Example set body: Tue Jan 04 10:23:43 CET 2011
+
+Updating and Redeploying the Properties File from the Console
+-------------------------------------------------------------
+You can update and redeploy the properties file that is used by the
+properties placeholder in the beans.xml from console as follows:
+
+1. Edit the org.apache.servicemix.examples.cfg file, located in the
+ same folder as this README, by changing the value of the "prefix"
+ key to whatever you want (for example, YourTransform).
+
+2. Copy the updated configuration file to your <servicemix_home>/etc
+ directory. You can do this from the ServiceMix console by typing:
+
+ copy $YOUR_SERVICEMIX_HOME/examples/camel-osgi/org.apache.servicemix.examples.cfg
+ $YOUR_SERVICEMIX_HOME/etc
+
+ On Windows you need to replace / in the path with \\.
+
+ Note, the text you are typing might intermingle with the output
+ being logged. This is nothing to worry about.
+
+3. Restart the example bundle:
+
+ (i) First you must know the bundle ID that ServiceMix has assigned
+ to it. To get the bundle ID, enter the following command in the
+ ServiceMix console:
+
+ osgi:list
+
+ At the end of the listing, you should see an entry similar to
+ the following:
+
+ [158] [Active ] [Started ] [ 60] Apache ServiceMix Example :: Camel OSGi (4.1.0)
+
+ In this case, the bundle ID is 158.
+
+ (ii) Enter the following command in the ServiceMix console to
+ restart the bundle:
+
+ osgi:restart <bundle_id>
+
+ The prefix of the output should change, and the output should look
+ similar to the following:
+
+ >>>> YourTransform set body: Tue Aug 11 17:14:12 BST 2009
+ >>>> YourTransform set body: Tue Aug 11 17:14:14 BST 2009
+ >>>> YourTransform set body: Tue Aug 11 17:14:16 BST 2009
+
+For information on how to stop and/or uninstall the example, see
+"Stopping and Uninstalling the Example" below.
+
+
+B. Building the Example Bundle Yourself
+---------------------------------------
+To install and run the example where you build the example bundle
+yourself, complete the following steps:
+
+1. If you have already run the example using the prebuilt version as
+ described above, you must first uninstall the examples-camel-osgi
+ feature by entering the following command in the ServiceMix console:
+
+ features:uninstall examples-camel-blueprint
+
+2. Build the example by opening a command prompt, changing directory to
+ examples/camel-osgi (this example) and entering the following Maven
+ command:
+
+ mvn install
+
+ If all of the required OSGi bundles are available in your local Maven
+ repository, the example will build very quickly. Otherwise it may
+ take some time for Maven to download everything it needs.
+
+ The mvn install command builds the example deployment bundle and
+ copies it to your local Maven repository and to the target directory
+ of this example.
+
+3. Install the example by entering the following command in
+ the ServiceMix console:
+
+ features:install examples-camel-blueprint
+
+ It makes use of the ServiceMix features facility. For more information
+ about the features facility, see the README.txt file in the examples
+ parent directory.
+
+Once the example is running, periodic events are routed to the
+transform method of the MyTransform class and you should see output
+similar to the following being logged to your console screen:
+
+>>>> Blueprint-Example set body: Tue Jan 04 10:23:39 CET 2011
+>>>> Blueprint-Example set body: Tue Jan 04 10:23:41 CET 2011
+>>>> Blueprint-Example set body: Tue Jan 04 10:23:43 CET 2011
+
+Now, if you have not already done so, try updating and redeploying,
+from the console, the properties file that is used by the properties
+placeholder in the beans.xml file. For details on how to do this, see
+the "Updating and Redeploying the Properties File from the Console"
+section above.
+
+
+Stopping and Uninstalling the Example
+-------------------------------------
+To stop the example, enter the following command in the ServiceMix
+console:
+
+ osgi:stop <bundle_id>
+
+For information on how to find the bundle_id assigned to the example,
+see step 3 in the "Updating and Redeploying the Properties File
+from the Console" section above.
+
+To uninstall the example, enter one of the following commands in
+the ServiceMix console:
+
+ features:uninstall examples-camel-blueprint
+
+or
+
+ osgi:uninstall <bundle_id>
+
+
+Viewing the Log Entries
+-----------------------
+You can view the entries in the log file in the data/log
+directory of your ServiceMix installation, or by typing
+the following command in the ServiceMix console:
+
+ log:display
Added: servicemix/smx4/features/trunk/examples/camel-blueprint/org.apache.servicemix.examples.cfg
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/examples/camel-blueprint/org.apache.servicemix.examples.cfg?rev=1054939&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/examples/camel-blueprint/org.apache.servicemix.examples.cfg (added)
+++ servicemix/smx4/features/trunk/examples/camel-blueprint/org.apache.servicemix.examples.cfg Tue Jan 4 09:32:24 2011
@@ -0,0 +1,22 @@
+#
+# 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.
+#
+#
+
+
+prefix=YourTransform
Added: servicemix/smx4/features/trunk/examples/camel-blueprint/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/examples/camel-blueprint/pom.xml?rev=1054939&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/examples/camel-blueprint/pom.xml (added)
+++ servicemix/smx4/features/trunk/examples/camel-blueprint/pom.xml Tue Jan 4 09:32:24 2011
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!--
+ 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.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.servicemix.examples</groupId>
+ <artifactId>examples</artifactId>
+ <version>4.3.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>camel-blueprint</artifactId>
+ <packaging>bundle</packaging>
+ <name>Apache ServiceMix :: Features :: Examples :: Camel Blueprint</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+ <Import-Package>*,org.apache.camel.osgi</Import-Package>
+ <Private-Package>org.apache.servicemix.examples.camel</Private-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
Added: servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/examples/camel/MyTransform.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/examples/camel/MyTransform.java?rev=1054939&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/examples/camel/MyTransform.java (added)
+++ servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/java/org/apache/servicemix/examples/camel/MyTransform.java Tue Jan 4 09:32:24 2011
@@ -0,0 +1,52 @@
+/**
+ * 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.servicemix.examples.camel;
+
+import java.util.Date;
+import java.util.logging.Logger;
+
+public class MyTransform {
+
+ private static final transient Logger logger = Logger.getLogger(MyTransform.class.getName());
+ private boolean verbose = true;
+ private String prefix = "MyTransform";
+
+ public Object transform(Object body) {
+ String answer = prefix + " set body: " + new Date();
+ if (verbose) {
+ System.out.println(">>>> " + answer);
+ }
+ logger.info(">>>> " + answer);
+ return answer;
+ }
+
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+}
Added: servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1054939&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml (added)
+++ servicemix/smx4/features/trunk/examples/camel-blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml Tue Jan 4 09:32:24 2011
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<blueprint
+ xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
+
+ <camelContext xmlns="http://camel.apache.org/schema/blueprint">
+ <route>
+ <from uri="timer://myTimer?fixedRate=true&period=2000" />
+ <bean ref="myTransform" method="transform"/>
+ <to uri="log:ExampleRouterBlueprint" />
+ </route>
+ </camelContext>
+
+ <bean id="myTransform" class="org.apache.servicemix.examples.camel.MyTransform">
+ <property name="prefix" value="${prefix}" />
+ </bean>
+
+ <cm:property-placeholder persistent-id="org.apache.servicemix.examples">
+ <cm:default-properties>
+ <cm:property name="prefix" value="Blueprint-Example"/>
+ </cm:default-properties>
+ </cm:property-placeholder>
+
+</blueprint>
\ No newline at end of file
Modified: servicemix/smx4/features/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/examples/pom.xml?rev=1054939&r1=1054938&r2=1054939&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/examples/pom.xml (original)
+++ servicemix/smx4/features/trunk/examples/pom.xml Tue Jan 4 09:32:24 2011
@@ -36,6 +36,7 @@
<module>bridge</module>
<module>bridge-camel</module>
<module>camel</module>
+ <module>camel-blueprint</module>
<module>cxf-wsdl-first</module>
<module>wsdl-first</module>
<module>loan-broker-bpel</module>