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&amp;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>