This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 4f70c8b Polished examples
4f70c8b is described below
commit 4f70c8b318b7c1a70321c1ac6972eae6f136f249
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Apr 30 12:36:46 2019 +0200
Polished examples
---
examples/camel-example-spring-pulsar/pom.xml | 113 ++++++++-------------
.../camel/example/pulsar/client/CamelClient.java | 6 +-
.../example/pulsar/client/CamelClientEndpoint.java | 9 +-
.../camel/example/pulsar/server/ServerRoutes.java | 2 -
.../apache/camel/example/pulsar/server/Treble.java | 1 -
.../example/pulsar/server/TypeConverters.java | 1 -
.../resources/META-INF/spring/camel-server.xml | 89 ++++++++--------
.../src/main/resources/camel-client.xml | 72 ++++++-------
.../src/main/resources/features.xml | 29 ------
9 files changed, 131 insertions(+), 191 deletions(-)
diff --git a/examples/camel-example-spring-pulsar/pom.xml
b/examples/camel-example-spring-pulsar/pom.xml
index a58d53b..09ff5f0 100644
--- a/examples/camel-example-spring-pulsar/pom.xml
+++ b/examples/camel-example-spring-pulsar/pom.xml
@@ -15,7 +15,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<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">
+<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">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -30,13 +31,13 @@
<description>An example using Spring XML to talk to the Pulsar server from
different kind of client techniques</description>
<properties>
-
<camel.osgi.export.pkg>org.apache.camel.example.server.*</camel.osgi.export.pkg>
-
<camel.osgi.import.additional>org.apache.activemq.xbean</camel.osgi.import.additional>
<skipTests>true</skipTests>
<category>Messaging</category>
</properties>
<dependencies>
+
+ <!-- camel -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
@@ -50,43 +51,37 @@
<artifactId>camel-pulsar</artifactId>
</dependency>
- <!-- xbean is required for ActiveMQ broker configuration in the spring
xml file -->
+ <!-- logging -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>${log4j2-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>${log4j2-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <version>${log4j2-version}</version>
+ </dependency>
<dependency>
- <groupId>org.apache.xbean</groupId>
- <artifactId>xbean-spring</artifactId>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-1.2-api</artifactId>
+ <version>${log4j2-version}</version>
</dependency>
-
- <!-- logging -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- <version>${log4j2-version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core</artifactId>
- <version>${log4j2-version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j-impl</artifactId>
- <version>${log4j2-version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-1.2-api</artifactId>
- <version>${log4j2-version}</version>
- </dependency>
-
+
<!-- for testing -->
<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-test-spring</artifactId>
- <scope>test</scope>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-spring</artifactId>
+ <scope>test</scope>
</dependency>
</dependencies>
-
+
<profiles>
<profile>
<id>CamelServer</id>
@@ -118,44 +113,20 @@
</properties>
</profile>
</profiles>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
-
<artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
- <goals>
-
<goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
-
<file>target/classes/features.xml</file>
-
<type>xml</type>
-
<classifier>features</classifier>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- Allows the example to be run via 'mvn compile exec:java' -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <configuration>
- <mainClass>${target.main.class}</mainClass>
- <includePluginDependencies>false</includePluginDependencies>
- <commandlineArgs>${target.cmd.args}</commandlineArgs>
- </configuration>
- </plugin>
- </plugins>
-
- </build>
+ <build>
+ <plugins>
+ <!-- Allows the example to be run via 'mvn compile exec:java' -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>${target.main.class}</mainClass>
+
<includePluginDependencies>false</includePluginDependencies>
+ <commandlineArgs>${target.cmd.args}</commandlineArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClient.java
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClient.java
index 0921732..1f92a50 100644
---
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClient.java
+++
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClient.java
@@ -19,8 +19,6 @@ package org.apache.camel.example.pulsar.client;
import org.apache.camel.ExchangePattern;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.util.IOHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -30,12 +28,11 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
* Requires that the Pulsar broker is running, as well as CamelServer
*/
public final class CamelClient {
- static Logger log = LoggerFactory.getLogger(CamelClient.class);
+
private CamelClient() {
// Helper class
}
- // START SNIPPET: e1
public static void main(final String[] args) throws Exception {
System.out.println("Notice this client requires that the CamelServer
is already running!");
@@ -50,6 +47,5 @@ public final class CamelClient {
// we're done so let's properly close the application context
IOHelper.close(context);
}
- // END SNIPPET: e1
}
diff --git
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClientEndpoint.java
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClientEndpoint.java
index 24909bd..b9fadec 100644
---
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClientEndpoint.java
+++
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/client/CamelClientEndpoint.java
@@ -26,20 +26,20 @@ import
org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
- * Client that uses the <a
href="http://camel.apache.org/message-endpoint.html">Mesage Endpoint</a>
+ * Client that uses the <a
href="http://camel.apache.org/message-endpoint.html">Message Endpoint</a>
* pattern to easily exchange messages with the Server.
* <p/>
* Notice this very same API can use for all components in Camel, so if we
were using TCP communication instead
- * of JMS messaging we could just use
<code>camel.getEndpoint("mina:tcp://someserver:port")</code>.
+ * of Pulsar messaging we could just use
<code>camel.getEndpoint("mina:tcp://someserver:port")</code>.
* <p/>
- * Requires that the JMS broker is running, as well as CamelServer
+ * Requires that the Pulsar broker is running, as well as CamelServer
*/
public final class CamelClientEndpoint {
+
private CamelClientEndpoint() {
//Helper class
}
- // START SNIPPET: e1
public static void main(final String[] args) throws Exception {
System.out.println("Notice this client requires that the CamelServer
is already running!");
@@ -76,6 +76,5 @@ public final class CamelClientEndpoint {
// we're done so let's properly close the application context
IOHelper.close(context);
}
- // END SNIPPET: e1
}
diff --git
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/ServerRoutes.java
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/ServerRoutes.java
index 5289229..4ed2613 100644
---
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/ServerRoutes.java
+++
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/ServerRoutes.java
@@ -22,7 +22,6 @@ import org.apache.camel.builder.RouteBuilder;
* This class defines the routes on the Server. The class extends a base class
in Camel {@link RouteBuilder}
* that can be used to easily setup the routes in the configure() method.
*/
-// START SNIPPET: e1
public class ServerRoutes extends RouteBuilder {
@Override
@@ -37,4 +36,3 @@ public class ServerRoutes extends RouteBuilder {
}
}
-// END SNIPPET: e1
diff --git
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/Treble.java
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/Treble.java
index 4c0418a..4fa2249 100644
---
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/Treble.java
+++
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/Treble.java
@@ -31,4 +31,3 @@ public class Treble implements Multiplier {
}
}
-// END SNIPPET: e1
diff --git
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/TypeConverters.java
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/TypeConverters.java
index 6a9aacc..60ea682 100644
---
a/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/TypeConverters.java
+++
b/examples/camel-example-spring-pulsar/src/main/java/org/apache/camel/example/pulsar/server/TypeConverters.java
@@ -20,7 +20,6 @@ import org.apache.camel.Converter;
public class TypeConverters implements org.apache.camel.TypeConverters {
-
@Converter
public int intFromByteArray(byte[] bytes) {
return 22;
diff --git
a/examples/camel-example-spring-pulsar/src/main/resources/META-INF/spring/camel-server.xml
b/examples/camel-example-spring-pulsar/src/main/resources/META-INF/spring/camel-server.xml
index 7f6f29e..d0a7a7b 100644
---
a/examples/camel-example-spring-pulsar/src/main/resources/META-INF/spring/camel-server.xml
+++
b/examples/camel-example-spring-pulsar/src/main/resources/META-INF/spring/camel-server.xml
@@ -30,53 +30,56 @@
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
- <!-- let Spring do its IoC stuff in this package -->
- <context:component-scan base-package="org.apache.camel.example.server"/>
+ <!-- let Spring do its IoC stuff in this package -->
+ <context:component-scan base-package="org.apache.camel.example.server"/>
- <!-- spring property placeholder, ignore resource not found as the file
resource is for unit testing -->
- <context:property-placeholder
location="classpath:camel.properties,file:target/custom.properties"
- ignore-resource-not-found="true"/>
+ <!-- spring property placeholder, ignore resource not found as the file
resource is for unit testing -->
+ <context:property-placeholder
location="classpath:camel.properties,file:target/custom.properties"
+ ignore-resource-not-found="true"/>
- <bean id="myOrderTypeConverters"
class="org.apache.camel.example.pulsar.server.TypeConverters"/>
- <!-- declare a camel context that scans for classes that is RouteBuilder
- in the package org.apache.camel.example.server -->
- <camel:camelContext id="camel-server">
- <camel:package>org.apache.camel.example.pulsar.server</camel:package>
- <!-- enable JMX connector so we can connect to the server and browse
mbeans -->
- <!-- Camel will log at INFO level the service URI to use for connecting
with jconsole -->
- <camel:jmxAgent id="agent" createConnector="true"/>
- </camel:camelContext>
+ <bean id="myOrderTypeConverters"
class="org.apache.camel.example.pulsar.server.TypeConverters"/>
+ <!-- declare a camel context that scans for classes that is RouteBuilder
+ in the package org.apache.camel.example.server -->
+ <camel:camelContext id="camel-server">
+ <camel:package>org.apache.camel.example.pulsar.server</camel:package>
+ <!-- enable JMX connector so we can connect to the server and browse
mbeans -->
+ <!-- Camel will log at INFO level the service URI to use for
connecting with jconsole -->
+ <camel:jmxAgent id="agent" createConnector="true"/>
+ </camel:camelContext>
- <bean id="multiplier" class="org.apache.camel.example.pulsar.server.Treble"/>
+ <bean id="multiplier"
class="org.apache.camel.example.pulsar.server.Treble"/>
- <!-- Configure the Pulsar component -->
- <util:set id="clusters" value-type="java.lang.String">
- <value>standalone</value>
- </util:set>
- <bean id="pulsarAdminHost" class="java.lang.String"><constructor-arg
value="http://localhost:8080"/></bean>
+ <!-- pulsar configurations -->
+ <util:set id="clusters" value-type="java.lang.String">
+ <value>standalone</value>
+ </util:set>
+ <bean id="pulsarAdminHost" class="java.lang.String">
+ <constructor-arg value="http://localhost:8080"/>
+ </bean>
+ <bean id="pulsarAdminConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
+ <property name="serviceUrl" ref="pulsarAdminHost"/>
+ </bean>
+ <bean id="pulsarAdmin" class="org.apache.pulsar.client.admin.PulsarAdmin">
+ <constructor-arg ref="pulsarAdminHost"/>
+ <constructor-arg ref="pulsarAdminConfig"/>
+ </bean>
+ <bean id="autoconfig"
class="org.apache.camel.component.pulsar.utils.AutoConfiguration">
+ <constructor-arg ref="pulsarAdmin"/>
+ <constructor-arg ref="clusters"/>
+ </bean>
+ <bean id="pulsarClientConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
+ <property name="serviceUrl" value="pulsar://localhost:6650"/>
+ </bean>
+ <bean id="pulsarClientBuilder"
class="org.apache.pulsar.client.impl.ClientBuilderImpl">
+ <constructor-arg ref="pulsarClientConfig"/>
+ </bean>
+ <bean id="pulsarClient" factory-bean="pulsarClientBuilder"
factory-method="build"/>
- <bean id="pulsarAdminConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
- <property name="serviceUrl" ref="pulsarAdminHost"/>
- </bean>
- <bean id="pulsarAdmin" class="org.apache.pulsar.client.admin.PulsarAdmin">
- <constructor-arg ref="pulsarAdminHost"/>
- <constructor-arg ref="pulsarAdminConfig"/>
- </bean>
- <bean id="autoconfig"
class="org.apache.camel.component.pulsar.utils.AutoConfiguration">
- <constructor-arg ref="pulsarAdmin"/>
- <constructor-arg ref="clusters"/>
- </bean>
- <bean id="pulsarClientConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
- <property name="serviceUrl" value="pulsar://localhost:6650"/>
- </bean>
- <bean id="pulsarClientBuilder"
class="org.apache.pulsar.client.impl.ClientBuilderImpl">
- <constructor-arg ref="pulsarClientConfig"/>
- </bean>
- <bean id="pulsarClient" factory-bean="pulsarClientBuilder"
factory-method="build"/>
- <bean id="pulsar" class="org.apache.camel.component.pulsar.PulsarComponent">
- <constructor-arg ref="camel-server"/>
- <property name="autoConfiguration" ref="autoconfig"/>
- <property name="pulsarClient" ref="pulsarClient"/>
- </bean>
+ <!-- pulsar component -->
+ <bean id="pulsar"
class="org.apache.camel.component.pulsar.PulsarComponent">
+ <constructor-arg ref="camel-server"/>
+ <property name="autoConfiguration" ref="autoconfig"/>
+ <property name="pulsarClient" ref="pulsarClient"/>
+ </bean>
</beans>
diff --git
a/examples/camel-example-spring-pulsar/src/main/resources/camel-client.xml
b/examples/camel-example-spring-pulsar/src/main/resources/camel-client.xml
index 7c7e0fe..fe9f1b6 100644
--- a/examples/camel-example-spring-pulsar/src/main/resources/camel-client.xml
+++ b/examples/camel-example-spring-pulsar/src/main/resources/camel-client.xml
@@ -28,41 +28,45 @@
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
- <camel:camelContext id="camel-client">
- <camel:template id="camelTemplate"/>
- </camel:camelContext>
+ <camel:camelContext id="camel-client">
+ <camel:template id="camelTemplate"/>
+ </camel:camelContext>
- <!-- spring property placeholder, ignore resource not found as the file
resource is for unit testing -->
- <context:property-placeholder
location="classpath:camel.properties,file:target/custom.properties"
- ignore-resource-not-found="true"/>
+ <!-- spring property placeholder, ignore resource not found as the file
resource is for unit testing -->
+ <context:property-placeholder
location="classpath:camel.properties,file:target/custom.properties"
+ ignore-resource-not-found="true"/>
- <!-- Configure the Pulsar component -->
- <util:set id="clusters" value-type="java.lang.String">
- <value>standalone</value>
- </util:set>
- <bean id="pulsarAdminHost" class="java.lang.String"><constructor-arg
value="http://localhost:8080"/></bean>
- <bean id="pulsarAdminConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
- <property name="serviceUrl" ref="pulsarAdminHost"/>
- </bean>
- <bean id="pulsarAdmin" class="org.apache.pulsar.client.admin.PulsarAdmin">
- <constructor-arg ref="pulsarAdminHost"/>
- <constructor-arg ref="pulsarAdminConfig"/>
- </bean>
- <bean id="autoconfig"
class="org.apache.camel.component.pulsar.utils.AutoConfiguration">
- <constructor-arg ref="pulsarAdmin"/>
- <constructor-arg ref="clusters"/>
- </bean>
- <bean id="pulsarClientConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
- <property name="serviceUrl" value="pulsar://localhost:6650"/>
- </bean>
- <bean id="pulsarClientBuilder"
class="org.apache.pulsar.client.impl.ClientBuilderImpl">
- <constructor-arg ref="pulsarClientConfig"/>
- </bean>
- <bean id="pulsarClient" factory-bean="pulsarClientBuilder"
factory-method="build"/>
- <bean id="pulsar" class="org.apache.camel.component.pulsar.PulsarComponent">
- <constructor-arg ref="camel-client"/>
- <property name="autoConfiguration" ref="autoconfig"/>
- <property name="pulsarClient" ref="pulsarClient"/>
- </bean>
+ <!-- pulsar configurations -->
+ <util:set id="clusters" value-type="java.lang.String">
+ <value>standalone</value>
+ </util:set>
+ <bean id="pulsarAdminHost" class="java.lang.String">
+ <constructor-arg value="http://localhost:8080"/>
+ </bean>
+ <bean id="pulsarAdminConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
+ <property name="serviceUrl" ref="pulsarAdminHost"/>
+ </bean>
+ <bean id="pulsarAdmin" class="org.apache.pulsar.client.admin.PulsarAdmin">
+ <constructor-arg ref="pulsarAdminHost"/>
+ <constructor-arg ref="pulsarAdminConfig"/>
+ </bean>
+ <bean id="autoconfig"
class="org.apache.camel.component.pulsar.utils.AutoConfiguration">
+ <constructor-arg ref="pulsarAdmin"/>
+ <constructor-arg ref="clusters"/>
+ </bean>
+ <bean id="pulsarClientConfig"
class="org.apache.pulsar.client.impl.conf.ClientConfigurationData">
+ <property name="serviceUrl" value="pulsar://localhost:6650"/>
+ </bean>
+ <bean id="pulsarClientBuilder"
class="org.apache.pulsar.client.impl.ClientBuilderImpl">
+ <constructor-arg ref="pulsarClientConfig"/>
+ </bean>
+ <bean id="pulsarClient" factory-bean="pulsarClientBuilder"
factory-method="build"/>
+
+ <!-- pulsar component -->
+ <bean id="pulsar"
class="org.apache.camel.component.pulsar.PulsarComponent">
+ <constructor-arg ref="camel-client"/>
+ <property name="autoConfiguration" ref="autoconfig"/>
+ <property name="pulsarClient" ref="pulsarClient"/>
+ </bean>
</beans>
\ No newline at end of file
diff --git
a/examples/camel-example-spring-pulsar/src/main/resources/features.xml
b/examples/camel-example-spring-pulsar/src/main/resources/features.xml
deleted file mode 100644
index d20dc83..0000000
--- a/examples/camel-example-spring-pulsar/src/main/resources/features.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?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.
-
--->
-<features>
-
<repository>mvn:org.apache.camel.karaf/apache-camel/${project.version}/xml/features</repository>
-
- <feature name='camel-example-spring-jms' version='${project.version}'>
- <feature version="${project.version}">camel</feature>
- <feature version="${project.version}">camel-pulsar</feature>
-
<bundle>mvn:org.apache.camel/camel-example-spring-pulsar/${project.version}</bundle>
- </feature>
-
-</features>
\ No newline at end of file