servicemix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ge...@apache.org
Subject svn commit: r1510371 - in /servicemix/smx5/trunk: ./ activiti/activiti-config/src/test/resources/ assemblies/apache-servicemix-full/ assemblies/apache-servicemix-full/src/main/filtered-resources/etc/ assemblies/apache-servicemix-minimal/ assemblies/apa...
Date Mon, 05 Aug 2013 05:52:55 GMT
Author: gertv
Date: Mon Aug  5 05:52:53 2013
New Revision: 1510371

URL: http://svn.apache.org/r1510371
Log:
SM-2211/SM-2212: Container SPI POC with statistics and MongoDB auditor

Added:
    servicemix/smx5/trunk/activiti/activiti-config/src/test/resources/
    servicemix/smx5/trunk/activiti/activiti-config/src/test/resources/log4j.properties
    servicemix/smx5/trunk/audit/
    servicemix/smx5/trunk/audit/audit-mongodb/
    servicemix/smx5/trunk/audit/audit-mongodb/pom.xml
    servicemix/smx5/trunk/audit/audit-mongodb/src/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/OSGI-INF/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/OSGI-INF/blueprint/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/OSGI-INF/blueprint/audit-mongodb.xml
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAdapter.scala
    servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAuditProcessor.scala
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/resources/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/resources/log4j.properties
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/audit/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/audit/mongodb/
    servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/audit/mongodb/MongoAuditInterceptStrategyTest.scala
    servicemix/smx5/trunk/audit/pom.xml
    servicemix/smx5/trunk/core/
    servicemix/smx5/trunk/core/camel/
    servicemix/smx5/trunk/core/camel/pom.xml
    servicemix/smx5/trunk/core/camel/src/
    servicemix/smx5/trunk/core/camel/src/main/
    servicemix/smx5/trunk/core/camel/src/main/resources/
    servicemix/smx5/trunk/core/camel/src/main/resources/OSGI-INF/
    servicemix/smx5/trunk/core/camel/src/main/resources/OSGI-INF/blueprint/
    servicemix/smx5/trunk/core/camel/src/main/resources/OSGI-INF/blueprint/servicemix-camel.xml
    servicemix/smx5/trunk/core/camel/src/main/scala/
    servicemix/smx5/trunk/core/camel/src/main/scala/org/
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/DelegateProcessorFactory.scala
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/GlobalProcessorFactory.scala
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ProfilerStrategy.scala
    servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ServiceMix.scala
    servicemix/smx5/trunk/core/camel/src/test/
    servicemix/smx5/trunk/core/camel/src/test/resources/
    servicemix/smx5/trunk/core/camel/src/test/resources/log4j.properties
    servicemix/smx5/trunk/core/camel/src/test/scala/
    servicemix/smx5/trunk/core/camel/src/test/scala/org/
    servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/
    servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/
    servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/
    servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/
    servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ProfilerStrategyTest.scala
    servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixDelegateProcessorFactoryTest.scala
    servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixInterceptTest.scala
    servicemix/smx5/trunk/core/pom.xml
Modified:
    servicemix/smx5/trunk/assemblies/apache-servicemix-full/pom.xml
    servicemix/smx5/trunk/assemblies/apache-servicemix-full/src/main/filtered-resources/etc/org.apache.karaf.features.cfg
    servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/pom.xml
    servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/src/main/filtered-resources/etc/org.apache.karaf.features.cfg
    servicemix/smx5/trunk/assemblies/apache-servicemix/pom.xml
    servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/etc/org.apache.karaf.features.cfg
    servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/features.xml
    servicemix/smx5/trunk/assemblies/shared/src/main/filtered-resources/startup-obr.properties
    servicemix/smx5/trunk/assemblies/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg
    servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestConfigurations.scala
    servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestSupport.scala
    servicemix/smx5/trunk/parent/pom.xml
    servicemix/smx5/trunk/pom.xml

Added: servicemix/smx5/trunk/activiti/activiti-config/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/activiti/activiti-config/src/test/resources/log4j.properties?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/activiti/activiti-config/src/test/resources/log4j.properties (added)
+++ servicemix/smx5/trunk/activiti/activiti-config/src/test/resources/log4j.properties Mon Aug  5 05:52:53 2013
@@ -0,0 +1,35 @@
+#
+# 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.
+#
+
+#
+# The logging properties used
+#
+log4j.rootLogger=INFO, out
+
+# uncomment the following line to turn on Camel debugging
+#log4j.logger.org.apache.camel=DEBUG
+
+log4j.logger.org.springframework=WARN
+
+
+# CONSOLE appender not used by default
+log4j.appender.out=org.apache.log4j.ConsoleAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
+#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+
+log4j.throwableRenderer=org.apache.log4j.EnhancedThrowableRenderer

Modified: servicemix/smx5/trunk/assemblies/apache-servicemix-full/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/apache-servicemix-full/pom.xml?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/apache-servicemix-full/pom.xml (original)
+++ servicemix/smx5/trunk/assemblies/apache-servicemix-full/pom.xml Mon Aug  5 05:52:53 2013
@@ -37,7 +37,7 @@
             <plugin>
                 <groupId>org.apache.karaf.tooling</groupId>
                 <artifactId>features-maven-plugin</artifactId>
-                <version>2.3.2-SNAPSHOT</version>
+                <version>${karaf.version}</version>
                 <executions>
                     <execution>
                         <id>add-features-to-repo</id>

Modified: servicemix/smx5/trunk/assemblies/apache-servicemix-full/src/main/filtered-resources/etc/org.apache.karaf.features.cfg
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/apache-servicemix-full/src/main/filtered-resources/etc/org.apache.karaf.features.cfg?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/apache-servicemix-full/src/main/filtered-resources/etc/org.apache.karaf.features.cfg (original)
+++ servicemix/smx5/trunk/assemblies/apache-servicemix-full/src/main/filtered-resources/etc/org.apache.karaf.features.cfg Mon Aug  5 05:52:53 2013
@@ -25,5 +25,5 @@ featuresRepositories=mvn:org.apache.kara
 #
 # Comma separated list of features to install at startup
 #
-featuresBoot=karaf-framework,config,activemq-broker,jaxrs-api,camel,camel-cxf,camel-blueprint,war
+featuresBoot=karaf-framework,config,activemq-broker,jaxrs-api,core,camel,camel-cxf,camel-blueprint,war
 

Modified: servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/pom.xml?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/pom.xml (original)
+++ servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/pom.xml Mon Aug  5 05:52:53 2013
@@ -55,6 +55,7 @@
                                 <descriptor>mvn:org.apache.servicemix/apache-servicemix/${project.version}/xml/features</descriptor>
                             </descriptors>
                             <features>
+                              <feature>core</feature>
                               <feature>obr</feature>
                             </features>
                             <includeMvnBasedDescriptors>true</includeMvnBasedDescriptors>

Modified: servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/src/main/filtered-resources/etc/org.apache.karaf.features.cfg
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/src/main/filtered-resources/etc/org.apache.karaf.features.cfg?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/src/main/filtered-resources/etc/org.apache.karaf.features.cfg (original)
+++ servicemix/smx5/trunk/assemblies/apache-servicemix-minimal/src/main/filtered-resources/etc/org.apache.karaf.features.cfg Mon Aug  5 05:52:53 2013
@@ -25,5 +25,5 @@ featuresRepositories=mvn:org.apache.kara
 #
 # Comma separated list of features to install at startup
 #
-featuresBoot=karaf-framework,config
+featuresBoot=karaf-framework,config,core
 

Modified: servicemix/smx5/trunk/assemblies/apache-servicemix/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/apache-servicemix/pom.xml?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/apache-servicemix/pom.xml (original)
+++ servicemix/smx5/trunk/assemblies/apache-servicemix/pom.xml Mon Aug  5 05:52:53 2013
@@ -117,6 +117,7 @@
                                 <descriptor>file:${basedir}/target/classes/features.xml</descriptor>
                             </descriptors>
                             <features>
+                                <feature>core</feature>
                                 <feature>cxf</feature>
                                 <feature>obr</feature>
                                 <feature>config</feature>

Modified: servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/etc/org.apache.karaf.features.cfg
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/etc/org.apache.karaf.features.cfg?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/etc/org.apache.karaf.features.cfg (original)
+++ servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/etc/org.apache.karaf.features.cfg Mon Aug  5 05:52:53 2013
@@ -25,5 +25,5 @@ featuresRepositories=mvn:org.apache.kara
 #
 # Comma separated list of features to install at startup
 #
-featuresBoot=karaf-framework,config,activemq-broker,jaxrs-api,camel,camel-cxf,camel-blueprint,war
+featuresBoot=karaf-framework,config,activemq-broker,jaxrs-api,core,camel,camel-cxf,camel-blueprint,war
 

Modified: servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/features.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/features.xml?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/features.xml (original)
+++ servicemix/smx5/trunk/assemblies/apache-servicemix/src/main/filtered-resources/features.xml Mon Aug  5 05:52:53 2013
@@ -21,6 +21,18 @@
     <repository>mvn:org.apache.karaf.assemblies.features/enterprise/${karaf.version}/xml/features</repository>
     <repository>mvn:org.apache.camel.karaf/apache-camel/${camel.version}/xml/features</repository>
 
+    <feature name="core" version="${project.version}" resolver="(obr)" start-level="30">
+        <feature version="${camel.version}">camel</feature>
+        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.scala-library/${scala.bundle.version}</bundle>
+        <bundle>mvn:org.apache.servicemix.core/camel/${project.version}</bundle>
+    </feature>
+
+    <feature name="audit-mongodb" version="${project.version}" resolver="(obr)" start-level="30">
+        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.scala-library/${scala.bundle.version}</bundle>
+        <bundle dependency="true">mvn:org.mongodb/mongo-java-driver/${mongodb.version}</bundle>
+        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.casbah/${casbah.bundle.version}</bundle>
+        <bundle>mvn:org.apache.servicemix.audit/mongodb/${project.version}</bundle>
+    </feature>
 
     <feature name="connector" version="${version}" resolver="(obr)" start-level='50'>
         <feature version="${aries.transaction.version}">transaction</feature>

Modified: servicemix/smx5/trunk/assemblies/shared/src/main/filtered-resources/startup-obr.properties
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/shared/src/main/filtered-resources/startup-obr.properties?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/shared/src/main/filtered-resources/startup-obr.properties (original)
+++ servicemix/smx5/trunk/assemblies/shared/src/main/filtered-resources/startup-obr.properties Mon Aug  5 05:52:53 2013
@@ -2,3 +2,8 @@
 # enabling features OBR resolver support
 org/apache/felix/org.apache.felix.bundlerepository/${felix.obr.version}/org.apache.felix.bundlerepository-${felix.obr.version}.jar=10
 org/apache/karaf/features/org.apache.karaf.features.obr/${karaf.version}/org.apache.karaf.features.obr-${karaf.version}.jar=30
+
+# adding support for the global management of Camel routes
+org/apache/servicemix/bundles/org.apache.servicemix.bundles.scala-library/${scala.bundle.version}/org.apache.servicemix.bundles.scala-library-${scala.bundle.version}.jar=30
+org/apache/camel/camel-core/${camel.version}/camel-core-${camel.version}.jar=30
+org/apache/servicemix/core/camel/${project.version}/camel-${project.version}.jar=30

Modified: servicemix/smx5/trunk/assemblies/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/assemblies/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/assemblies/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg (original)
+++ servicemix/smx5/trunk/assemblies/shared/src/main/resources/etc/org.ops4j.pax.url.mvn.cfg Mon Aug  5 05:52:53 2013
@@ -69,12 +69,11 @@ org.ops4j.pax.url.mvn.disableAether=true
 # A repository url can be appended with zero or more of the following flags:
 #    @snapshots  : the repository contains snaphots
 #    @noreleases : the repository does not contain any released artifacts
-#    @id=reponid : the id for the repository, just like in the settings.xml this is optional but recomendet
 #
 # The following property value will add the system folder as a repo.
 #
-org.ops4j.pax.url.mvn.defaultRepositories=file:${karaf.home}/${karaf.default.repository}@snapshots@id=karaf.${karaf.default.repository},\
-    file:${karaf.home}/local-repo@snapshots@id=karaf.local-repo
+org.ops4j.pax.url.mvn.defaultRepositories=file:${karaf.home}/${karaf.default.repository}@snapshots,\
+    file:${karaf.home}/local-repo@snapshots
 
 #
 # Comma separated list of repositories scanned when resolving an artifact.
@@ -89,14 +88,13 @@ org.ops4j.pax.url.mvn.defaultRepositorie
 # A repository url can be appended with zero or more of the following flags:
 #    @snapshots  : the repository contains snaphots
 #    @noreleases : the repository does not contain any released artifacts
-#    @id=reponid : the id for the repository, just like in the settings.xml this is optional but recomendet
 #
 org.ops4j.pax.url.mvn.repositories= \
-    http://repo1.maven.org/maven2@id=maven.central.repo, \
-    http://repository.apache.org/content/groups/snapshots-group@snapshots@noreleases@id=apache.snapshot.repo, \
-    http://svn.apache.org/repos/asf/servicemix/m2-repo@id=servicemix.repo, \
-    http://repository.springsource.com/maven/bundles/release@id=springsource.release.repo, \
-    http://repository.springsource.com/maven/bundles/external@id=springsource.external.repo, \
-    http://oss.sonatype.org/content/repositories/releases/@id=sonatype.repo, \
-    https://maven.alfresco.com/nexus/content/groups/public/@id=alfresco.repo
+    http://repo1.maven.org/maven2, \
+    http://repository.apache.org/content/groups/snapshots-group@snapshots@noreleases, \
+    http://svn.apache.org/repos/asf/servicemix/m2-repo, \
+    http://repository.springsource.com/maven/bundles/release, \
+    http://repository.springsource.com/maven/bundles/external, \
+    http://oss.sonatype.org/content/repositories/releases/, \
+    https://maven.alfresco.com/nexus/content/groups/public/
 

Added: servicemix/smx5/trunk/audit/audit-mongodb/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/audit/audit-mongodb/pom.xml?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/audit/audit-mongodb/pom.xml (added)
+++ servicemix/smx5/trunk/audit/audit-mongodb/pom.xml Mon Aug  5 05:52:53 2013
@@ -0,0 +1,101 @@
+<?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/xsd/maven-4.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</groupId>
+        <artifactId>audit</artifactId>
+        <version>5.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.servicemix.audit</groupId>
+    <artifactId>mongodb</artifactId>
+    <packaging>bundle</packaging>
+    <name>Apache ServiceMix :: Audit :: MongoDB</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.servicemix.core</groupId>
+            <artifactId>camel</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.scala-lang</groupId>
+            <artifactId>scala-library</artifactId>
+            <version>${scala.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mongodb</groupId>
+            <artifactId>casbah-core_2.10</artifactId>
+            <version>2.6.2</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.scala-tools</groupId>
+                <artifactId>maven-scala-plugin</artifactId>
+                <version>2.15.2</version>
+                <executions>
+                    <execution>
+                        <id>compile</id>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>testCompile</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Import-Package>*</Import-Package>
+                        <Private-Package>org.apache.servicemix.audit.mongodb</Private-Package>
+                        <Bundle-Description>${project.description}</Bundle-Description>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+
+</project>

Added: servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/OSGI-INF/blueprint/audit-mongodb.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/OSGI-INF/blueprint/audit-mongodb.xml?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/OSGI-INF/blueprint/audit-mongodb.xml (added)
+++ servicemix/smx5/trunk/audit/audit-mongodb/src/main/resources/OSGI-INF/blueprint/audit-mongodb.xml Mon Aug  5 05:52:53 2013
@@ -0,0 +1,43 @@
+<?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.1.0">
+
+    <cm:property-placeholder persistent-id="org.apache.servicemix.audit.mongodb" update-strategy="reload">
+        <cm:default-properties>
+            <cm:property name="host" value="localhost"/>
+            <cm:property name="port" value="27017"/>
+            <cm:property name="database" value="servicemix"/>
+            <cm:property name="collection" value="camel"/>
+        </cm:default-properties>
+    </cm:property-placeholder>
+
+    <bean id="processor" class="org.apache.servicemix.audit.mongodb.MongoAuditProcessor">
+        <property name="host" value="${host}" />
+        <property name="port" value="${port}" />
+        <property name="database" value="${database}" />
+        <property name="collection" value="${collection}" />
+    </bean>
+
+    <service ref="processor" interface="org.apache.camel.Processor">
+        <service-properties>
+            <entry key="servicemix" value="intercept"/>
+        </service-properties>
+    </service>
+
+</blueprint>
\ No newline at end of file

Added: servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAdapter.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAdapter.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAdapter.scala (added)
+++ servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAdapter.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,18 @@
+package org.apache.servicemix.audit.mongodb
+
+import com.mongodb.casbah.commons.MongoDBObject
+
+/**
+ * Adapter trait to decouple the connection from the actual interceptor for easier testing
+ */
+trait MongoAdapter {
+
+  /**
+   * Persist new exchange information for a given breadcrumb id
+   *
+   * @param id the breadcrumb id
+   * @param value the extra exchange information
+   */
+  def persist(id: String, value: MongoDBObject)
+
+}

Added: servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAuditProcessor.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAuditProcessor.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAuditProcessor.scala (added)
+++ servicemix/smx5/trunk/audit/audit-mongodb/src/main/scala/org/apache/servicemix/audit/mongodb/MongoAuditProcessor.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,84 @@
+package org.apache.servicemix.audit.mongodb
+
+import scala.beans.BeanProperty
+import scala.collection.JavaConversions._
+
+import com.mongodb.DBCollection
+import com.mongodb.casbah.Imports._
+import com.mongodb.casbah.commons
+import org.apache.camel.{Processor, Message, Exchange}
+import org.slf4j.LoggerFactory
+
+/**
+ * Camel {@link Processor} that stores every {@link Exchange} into MongoDB.
+ *
+ * This will be added to the OSGi Service Registry as an intercept processor for {@link ServiceMix} to pick up.
+ */
+class MongoAuditProcessor extends Processor with MongoAdapter {
+
+  val logger = LoggerFactory.getLogger(classOf[MongoAuditProcessor])
+
+  @BeanProperty
+  var host = "localhost"
+
+  @BeanProperty
+  var port = 27017
+
+  @BeanProperty
+  var database = "servicemix"
+
+  @BeanProperty
+  var collection = "camel"
+
+  lazy val mongoCollection: DBCollection = MongoConnection(host, port).getDB(database).getCollection(collection)
+
+  override def process(exchange: Exchange) = {
+    try {
+      // use Camel's breadcrumb id by default, fall-back to the plain exchange id if that's not available
+      val id = Option(exchange.getIn.getHeader(Exchange.BREADCRUMB_ID, classOf[String])).getOrElse(exchange.getExchangeId)
+      persist(id, toMongo(exchange))
+    } catch {
+      case e: Exception => logger.error("Error while saving exchange in MongoDB", e)
+    }
+  }
+
+  /*
+   * Convert a Camel exchange to a MongoDB representation
+   */
+  def toMongo(exchange: Exchange) : MongoDBObject = {
+    val properties = MongoDBObject()
+    for (key <- exchange.getProperties.keySet()) {
+      properties.put(key, exchange.getProperty(key, classOf[String]))
+    }
+
+    val result = MongoDBObject("id" -> exchange.getExchangeId,
+      "properties" -> properties,
+      "in" -> toMongo(exchange.getIn))
+
+    if (exchange.hasOut) {
+      result.put("out", toMongo(exchange.getOut))
+    }
+
+    result
+  }
+
+  /*
+   * Convert a Camel message to a MongoDB representation
+   */
+  def toMongo(message: Message) : MongoDBObject = {
+    val headers = MongoDBObject()
+    for (key <- message.getHeaders.keySet()) {
+      headers.put(key, message.getHeader(key, classOf[String]))
+    }
+
+    MongoDBObject("body" -> Option(message.getBody(classOf[String])).getOrElse(""),
+      "headers" -> headers)
+  }
+
+  def persist(id: String, value: commons.MongoDBObject) = {
+    val query = MongoDBObject("breadcrumb" -> id)
+    val update = $set("breadcrumb" -> id) ++ $push("exchanges" -> value)
+    mongoCollection.update(query, update, true, false)
+  }
+
+}

Added: servicemix/smx5/trunk/audit/audit-mongodb/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/audit/audit-mongodb/src/test/resources/log4j.properties?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/audit/audit-mongodb/src/test/resources/log4j.properties (added)
+++ servicemix/smx5/trunk/audit/audit-mongodb/src/test/resources/log4j.properties Mon Aug  5 05:52:53 2013
@@ -0,0 +1,41 @@
+#
+# 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.
+#
+
+#
+# The logging properties used
+#
+log4j.rootLogger=INFO, file
+
+# uncomment the following line to turn on Camel debugging
+#log4j.logger.org.apache.camel=DEBUG
+log4j.logger.org.springframework=WARN
+
+
+# CONSOLE appender not used by default
+log4j.appender.out=org.apache.log4j.ConsoleAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
+#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+
+# File appender
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+log4j.appender.file.file=target/mongodb.log
+log4j.appender.file.append=false
+
+log4j.throwableRenderer=org.apache.log4j.EnhancedThrowableRenderer

Added: servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/audit/mongodb/MongoAuditInterceptStrategyTest.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/audit/mongodb/MongoAuditInterceptStrategyTest.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/audit/mongodb/MongoAuditInterceptStrategyTest.scala (added)
+++ servicemix/smx5/trunk/audit/audit-mongodb/src/test/scala/org/apache/servicemix/audit/mongodb/MongoAuditInterceptStrategyTest.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,60 @@
+package org.apache.servicemix.audit.mongodb
+
+import org.apache.camel.test.junit4.CamelTestSupport
+import org.apache.camel.{Processor, Exchange, CamelContext}
+import com.mongodb.DBCollection
+import com.mongodb.casbah.commons.MongoDBObject
+import scala.collection.mutable.ListBuffer
+import org.apache.camel.builder.RouteBuilder
+import org.junit.Test
+import org.junit.Assert._
+import java.io.{ObjectOutputStream, ByteArrayOutputStream}
+import org.apache.servicemix.core.camel.ServiceMix
+
+/**
+ * Basic test for the {@link MongoAuditProcessor}
+ */
+class MongoAuditInterceptStrategyTest extends CamelTestSupport {
+
+  val servicemix = ServiceMix()
+
+  val persisted = scala.collection.mutable.Map.empty[String, Seq[MongoDBObject]].withDefaultValue(Seq.empty[MongoDBObject])
+
+  servicemix.addIntercept(new MongoAuditProcessor() {
+    override def persist(id: String, value: MongoDBObject) : Unit = persisted.put(id, value +: persisted(id))
+  })
+
+  @Test
+  def testSimplePersistence() {
+    val mock = getMockEndpoint("mock:test")
+    mock.expectedMessageCount(1)
+
+    val exchange = template.send("direct:test", new Processor() {
+      override def process(exchange: Exchange) = exchange.getIn.setBody("Initial body text")
+    })
+
+    val breadcrumb = exchange.getIn.getHeader(Exchange.BREADCRUMB_ID, classOf[String])
+
+    assertMockEndpointsSatisfied()
+
+    assertEquals("Exchange has been audited twice for the same breadcrumb id", 2, persisted(breadcrumb).size)
+
+    for (dbo <- persisted(breadcrumb)) {
+      assertEquals(exchange.getExchangeId, dbo.get("id").get)
+      assertSome("Properties should be in the persistent object", dbo.get("properties"))
+      assertSome("In message should be in the persistent object", dbo.get("in"))
+    }
+
+  }
+
+  def assertSome(message: String, option: Option[AnyRef]) = option match {
+    case None => fail(message)
+    case _    =>
+  }
+
+  override def createRouteBuilder(): RouteBuilder = new RouteBuilder() {
+    def configure() {
+      from("direct:test").transform().simple("Transformed body text at ${date:now:yyyyMMdd-hhMMssSSS}").to("mock:test")
+    }
+  }
+}

Added: servicemix/smx5/trunk/audit/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/audit/pom.xml?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/audit/pom.xml (added)
+++ servicemix/smx5/trunk/audit/pom.xml Mon Aug  5 05:52:53 2013
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.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</groupId>
+        <artifactId>parent</artifactId>
+        <version>5.0.0-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+
+    <groupId>org.apache.servicemix</groupId>
+    <artifactId>audit</artifactId>
+    <packaging>pom</packaging>
+    <name>Apache ServiceMix :: Audit</name>
+
+    <modules>
+        <module>audit-mongodb</module>
+    </modules>
+
+</project>

Added: servicemix/smx5/trunk/core/camel/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/pom.xml?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/pom.xml (added)
+++ servicemix/smx5/trunk/core/camel/pom.xml Mon Aug  5 05:52:53 2013
@@ -0,0 +1,88 @@
+<?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/xsd/maven-4.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</groupId>
+        <artifactId>core</artifactId>
+        <version>5.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.servicemix.core</groupId>
+    <artifactId>camel</artifactId>
+    <packaging>bundle</packaging>
+    <name>Apache ServiceMix :: Core :: Camel</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.scala-lang</groupId>
+            <artifactId>scala-library</artifactId>
+            <version>${scala.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.scala-tools</groupId>
+                <artifactId>maven-scala-plugin</artifactId>
+                <version>2.15.2</version>
+                <executions>
+                    <execution>
+                        <id>compile</id>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>testCompile</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Import-Package>*</Import-Package>
+                        <Private-Package>org.apache.servicemix.core.camel</Private-Package>
+                        <Bundle-Description>${project.description}</Bundle-Description>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+
+</project>

Added: servicemix/smx5/trunk/core/camel/src/main/resources/OSGI-INF/blueprint/servicemix-camel.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/main/resources/OSGI-INF/blueprint/servicemix-camel.xml?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/main/resources/OSGI-INF/blueprint/servicemix-camel.xml (added)
+++ servicemix/smx5/trunk/core/camel/src/main/resources/OSGI-INF/blueprint/servicemix-camel.xml Mon Aug  5 05:52:53 2013
@@ -0,0 +1,35 @@
+<?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">
+
+    <!-- perhaps we should move this bit into an Activator to ensure it gets done asap -->
+    <bean id="servicemix" class="org.apache.servicemix.core.camel.ServiceMix" init-method="start" />
+
+    <reference-list availability="optional" interface="org.apache.camel.spi.InterceptStrategy">
+        <reference-listener ref="servicemix" bind-method="addInterceptStrategy" unbind-method="removeInterceptStrategy" />
+    </reference-list>
+
+    <reference-list availability="optional" interface="org.apache.camel.Processor" filter="(servicemix=intercept)">
+        <reference-listener ref="servicemix" bind-method="addIntercept" unbind-method="removeIntercept" />
+    </reference-list>
+
+    <reference-list availability="optional" interface="org.apache.servicemix.core.camel.DelegateProcessorFactory">
+        <reference-listener ref="servicemix" bind-method="addProcessorFactory" unbind-method="removeProcessorFactory" />
+    </reference-list>
+
+</blueprint>
\ No newline at end of file

Added: servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/DelegateProcessorFactory.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/DelegateProcessorFactory.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/DelegateProcessorFactory.scala (added)
+++ servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/DelegateProcessorFactory.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,33 @@
+/**
+ * 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.core.camel
+
+import org.apache.camel._
+import org.apache.camel.model.ProcessorDefinition
+import org.apache.camel.spi.RouteContext
+
+/**
+ * Trait to allow creating delegate processor on demand
+ */
+trait DelegateProcessorFactory {
+
+  /**
+   * Create a new AsyncProcessor instance that can delegate part of its work to the Processor instance provided
+   */
+  def create(context: RouteContext, definition: ProcessorDefinition[_], target: Processor) : AsyncProcessor
+
+}
\ No newline at end of file

Added: servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/GlobalProcessorFactory.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/GlobalProcessorFactory.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/GlobalProcessorFactory.scala (added)
+++ servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/GlobalProcessorFactory.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,88 @@
+/**
+ * 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.core.camel
+
+import org.apache.camel.spi.{RouteContext, ProcessorFactory}
+import org.apache.camel.model.ProcessorDefinition
+import java.util.concurrent.atomic.AtomicInteger
+import collection.mutable.ListBuffer
+import org.apache.camel._
+import processor.DelegateAsyncProcessor
+import GlobalProcessorFactory._
+
+/**
+ * Global ServiceMix ProcessorFactory implementation, which will take care of wrapping processors with the additional
+ * functionality provided by the {@link DelegateProcessorFactory} instances
+ */
+class GlobalProcessorFactory extends ProcessorFactory {
+
+  val factories = new ListBuffer[DelegateProcessorFactory]
+  val version = new AtomicInteger(1)
+
+  def addFactory(factory: DelegateProcessorFactory) = triggerUpdate(factories += factory);
+  def removeFactory(factory: DelegateProcessorFactory) = triggerUpdate(factories -= factory);
+
+  def createChildProcessor(context: RouteContext, definition: ProcessorDefinition[_], mandatory: Boolean) = {
+    null
+  }
+
+  def createProcessor(context: RouteContext, definition: ProcessorDefinition[_]) = {
+    nullOrElse(definition.createProcessor(context))(new GlobalDelegateProcessor(context, definition, _))
+  }
+
+  def triggerUpdate(block: => Unit) = {
+    block
+    version.incrementAndGet()
+  }
+
+  class GlobalDelegateProcessor(routeContext: RouteContext, definition: ProcessorDefinition[_], target: Processor) extends DelegateAsyncProcessor(target) {
+
+    var currentProcessor = configure(getProcessor)
+    var version = GlobalProcessorFactory.this.version.get()
+
+    override def process(exchange: Exchange, callback: AsyncCallback) = {
+      // let's check if processor factories have changed and reconfigure things if necessary
+      if (version < GlobalProcessorFactory.this.version.get) {
+        currentProcessor = configure(getProcessor)
+        version = GlobalProcessorFactory.this.version.get
+      }
+
+      currentProcessor.process(exchange, callback)
+    }
+
+    override def toString = "ServiceMix Wrapper[" + processor + "]"
+
+    def configure(original: AsyncProcessor) : AsyncProcessor = {
+      factories.foldLeft(original) { (delegate: AsyncProcessor, factory: DelegateProcessorFactory) => {
+          factory.create(routeContext, definition, delegate)
+        }
+      }
+    }
+
+  }
+}
+
+object GlobalProcessorFactory {
+
+  private def nullOrElse[S,T](value: S)(function: S => T) = if (value == null) {
+    null.asInstanceOf[T]
+  } else {
+    function(value)
+  }
+
+}
+

Added: servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ProfilerStrategy.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ProfilerStrategy.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ProfilerStrategy.scala (added)
+++ servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ProfilerStrategy.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,101 @@
+/**
+ * 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.core.camel
+
+import org.apache.camel._
+import model.{RouteDefinition, ProcessorDefinition}
+import processor.DelegateAsyncProcessor
+import spi.{RouteContext}
+import collection.mutable.LinkedHashMap
+
+class ProfilerStrategy extends DelegateProcessorFactory {
+
+  val proc = new LinkedHashMap[ProcessorDefinition[_], Stats]
+
+
+
+
+  def getStats(definition: ProcessorDefinition[_]) : Stats = {
+    if (definition == null) {
+      null
+    } else {
+      proc.getOrElseUpdate(definition, new Stats(definition, getStats(definition.getParent())))
+    }
+  }
+
+  class ProcessorWrapper(definition: ProcessorDefinition[_], target: Processor, stats: Stats) extends DelegateAsyncProcessor(target) {
+
+    override def process(exchange: Exchange, callback: AsyncCallback) : Boolean = {
+      val t0 = System.nanoTime()
+      try {
+        super.process(exchange, callback)
+      } finally {
+        val t1 = System.nanoTime()
+        stats.addTime(t1 - t0)
+      }
+    }
+    override def toString: String = {
+      "ProfilerWrapper[" + processor + "]"
+    }
+  }
+
+  /**
+   * Create a new AsyncProcessor instance that can delegate part of its work to the Processor instance provided
+   */
+  def create(context: RouteContext, definition: ProcessorDefinition[_], target: Processor): AsyncProcessor =
+    new ProcessorWrapper(definition, target, getStats(definition))
+}
+
+class Stats(_definition: ProcessorDefinition[_], _parent : Stats) {
+
+  var count : Long = 0
+  var time : Long = 0
+  var total : Long = 0
+  def parent = _parent
+  def definition = _definition
+
+  def addTime(nanos: Long) {
+    count = count + 1
+    time = time + nanos
+    total = total + nanos
+    if (parent != null) {
+      parent.addChildTime(nanos)
+    }
+  }
+
+  def timeIncludesChildren() = {
+    definition.getClass != classOf[RouteDefinition]
+  }
+
+  def addChildTime(nanos: Long) {
+    if (timeIncludesChildren()) {
+      time = time - nanos
+    } else {
+      total = total + nanos
+      if (parent != null) {
+        parent.addChildTime(nanos)
+      }
+    }
+  }
+
+  override def toString = if (definition.isInstanceOf[RouteDefinition]) {
+    s"Route processing took ${total/1000} ms"
+  } else {
+    s"${count} times (${time/1000} ms self time, ${total/1000} ms total time)"
+  }
+}
+

Added: servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ServiceMix.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ServiceMix.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ServiceMix.scala (added)
+++ servicemix/smx5/trunk/core/camel/src/main/scala/org/apache/servicemix/core/camel/ServiceMix.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,85 @@
+package org.apache.servicemix.core.camel
+
+import scala.collection.mutable.ListBuffer
+
+import org.apache.camel.spi.{InterceptStrategy, Container}
+import org.apache.camel._
+import org.slf4j.LoggerFactory
+import org.apache.camel.model.ProcessorDefinition
+import org.apache.camel.processor.DelegateAsyncProcessor
+
+/**
+ * ServiceMix implementation for the Camel {@link Container} SPI.  It supports:
+ * - adding global {@link InterceptStrategy} instances
+ * - adding global intercept {@link Processor} instances
+ * - adding global {@link DelegateProcessorFactory} instances
+ */
+class ServiceMix extends Container {
+
+  val logger = LoggerFactory.getLogger(classOf[ServiceMix])
+  val interceptStrategies = ListBuffer.empty[InterceptStrategy]
+  val intercepts = ListBuffer.empty[Processor]
+
+  val factory = new GlobalProcessorFactory()
+
+  def start = Container.Instance.set(this)
+
+  def manage(context: CamelContext) {
+    logger.info("ServiceMix now manages CamelContext {}", context)
+    interceptStrategies foreach { strategy => context.addInterceptStrategy(strategy) }
+
+    if (context.getProcessorFactory == null) {
+      context.setProcessorFactory(factory)
+    }
+
+    context.addInterceptStrategy(new InterceptStrategy {
+      def wrapProcessorInInterceptors(context: CamelContext, processor: ProcessorDefinition[_], target: Processor, next: Processor): Processor =
+        new DelegateAsyncProcessor(target) {
+          override def process(exchange: Exchange, callback: AsyncCallback): Boolean = {
+            intercepts foreach { intercept => intercept.process(exchange) }
+            super.process(exchange, callback)
+          }
+        }
+    })
+  }
+
+  def addInterceptStrategy(strategy: InterceptStrategy) : Unit = {
+    logger.info("Adding global intercept strategy: {}", strategy)
+    interceptStrategies += strategy
+  }
+
+  def removeInterceptStrategy(strategy: InterceptStrategy) : Unit = {
+    logger.info("Removing global intercept strategy: {}", strategy)
+    interceptStrategies -= strategy
+  }
+
+  def addIntercept(intercept: Processor) : Unit = {
+    logger.info("Adding global intercept processor: {}", intercept)
+    intercepts += intercept
+  }
+
+  def removeIntercept(intercept: Processor) : Unit = {
+    logger.info("Removing global intercept processor: {}", intercept)
+    intercepts -= intercept
+  }
+
+  def addProcessorFactory(dpf: DelegateProcessorFactory) = {
+    logger.info("Adding global processor factory: {}", dpf)
+    factory.addFactory(dpf)
+  }
+
+  def removeProcessorFactory(dpf: DelegateProcessorFactory) = {
+    logger.info("Removing global processor factory: {}", dpf)
+    factory.removeFactory(dpf)
+  }
+
+}
+
+object ServiceMix {
+
+  def apply() : ServiceMix = {
+    val result = new ServiceMix
+    result.start
+    result
+  }
+}

Added: servicemix/smx5/trunk/core/camel/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/test/resources/log4j.properties?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/test/resources/log4j.properties (added)
+++ servicemix/smx5/trunk/core/camel/src/test/resources/log4j.properties Mon Aug  5 05:52:53 2013
@@ -0,0 +1,41 @@
+#
+# 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.
+#
+
+#
+# The logging properties used
+#
+log4j.rootLogger=INFO, file
+
+# uncomment the following line to turn on Camel debugging
+#log4j.logger.org.apache.camel=DEBUG
+log4j.logger.org.springframework=WARN
+
+
+# CONSOLE appender not used by default
+log4j.appender.out=org.apache.log4j.ConsoleAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
+#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+
+# File appender
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+log4j.appender.file.file=target/camel.log
+log4j.appender.file.append=false
+
+log4j.throwableRenderer=org.apache.log4j.EnhancedThrowableRenderer

Added: servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ProfilerStrategyTest.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ProfilerStrategyTest.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ProfilerStrategyTest.scala (added)
+++ servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ProfilerStrategyTest.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,83 @@
+package org.apache.servicemix.core.camel
+
+import org.apache.camel.test.junit4.CamelTestSupport
+import org.apache.camel.builder.RouteBuilder
+import org.apache.camel.{AsyncCallback, Exchange, AsyncProcessor, Processor}
+import org.junit.Test
+import org.junit.Assert.assertEquals
+import org.apache.camel.processor.DelegateAsyncProcessor
+import java.util.concurrent.atomic.AtomicInteger
+import org.apache.camel.model.{RouteDefinition, ProcessorDefinition}
+import org.apache.camel.spi.RouteContext
+import scala.collection.mutable
+
+/**
+ * Test scenario for the {@link ProfilerStrategy}
+ */
+class ProfilerStrategyTest extends CamelTestSupport {
+
+  val servicemix = ServiceMix()
+  val profiler = new ProfilerStrategy()
+
+  servicemix.addProcessorFactory(profiler)
+
+  @Test
+  def testSimpleStats() {
+    val mock = getMockEndpoint("mock:test")
+
+    // we start off with out delegate processor enabled
+    mock.expectedMessageCount(1)
+    template.sendBody("direct:test", "Some random body")
+    assertMockEndpointsSatisfied()
+
+    doPrint(profiler.proc)
+  }
+
+  @Test
+  def testChoiceWithOtherwise() {
+    val ok = getMockEndpoint("mock:ok")
+    ok.expectedMessageCount(2)
+    val nok = getMockEndpoint("mock:nok")
+    nok.expectedMessageCount(1)
+
+    template.sendBody("direct:choice", "This one will not be okay")
+    template.sendBody("direct:choice", "But this one is OK")
+    template.sendBody("direct:choice", "And this one is OK as well")
+    assertMockEndpointsSatisfied()
+
+    doPrint(profiler.proc)
+  }
+
+
+  def doPrint(map: mutable.LinkedHashMap[ProcessorDefinition[_], Stats]) : Unit =
+    (map filterKeys { definition => definition.isInstanceOf[RouteDefinition] } keys) foreach { definition => doPrint(map, 0, definition)}
+
+  def doPrint(map: mutable.LinkedHashMap[ProcessorDefinition[_], Stats], indent: Int, current: ProcessorDefinition[_]) : Unit = {
+    val lead = (for (i <- 0 to indent) yield " ") mkString " "
+    if (current.isInstanceOf[RouteDefinition]) {
+      println(s"${lead} Route processing took ${map(current).total / 1000} ms")
+    } else {
+      println(s"${lead} ${current} took ${map(current).total / 1000} ms for ${map(current).count} messages")
+    }
+
+    (map filter { isChildOf(current) } keys) foreach { definition => doPrint(map, indent + 1, definition)}
+  }
+
+  def isChildOf(current: ProcessorDefinition[_])(tuple: (ProcessorDefinition[_], Stats)) = Option(tuple._2.parent) match {
+    case Some(parent) => parent.definition == current
+    case None         => false
+  }
+
+  override def createRouteBuilder(): RouteBuilder = new RouteBuilder() {
+    def configure() {
+
+      from("direct:test").log("Some logging goes here").to("mock:test")
+
+      from("direct:choice")
+        .choice().when(simple("${body} contains 'OK'"))
+          .to("mock:ok")
+        .otherwise()
+          .to("mock:nok")
+    }
+  }
+}

Added: servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixDelegateProcessorFactoryTest.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixDelegateProcessorFactoryTest.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixDelegateProcessorFactoryTest.scala (added)
+++ servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixDelegateProcessorFactoryTest.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,69 @@
+package org.apache.servicemix.core.camel
+
+import org.apache.camel.test.junit4.CamelTestSupport
+import org.apache.camel.builder.RouteBuilder
+import org.apache.camel.{AsyncCallback, Exchange, AsyncProcessor, Processor}
+import org.junit.Test
+import org.junit.Assert.assertEquals
+import org.apache.camel.processor.DelegateAsyncProcessor
+import java.util.concurrent.atomic.AtomicInteger
+import org.apache.camel.model.ProcessorDefinition
+import org.apache.camel.spi.RouteContext
+
+/**
+ * Basic tests for adding and removing {@link DelegateProcessorFactory} instances at runtime
+ */
+class ServiceMixDelegateProcessorFactoryTest extends CamelTestSupport {
+
+  val servicemix = ServiceMix()
+
+  val invocations = new AtomicInteger(0)
+  val factory = new DelegateProcessorFactory {
+    /**
+     * Create a new AsyncProcessor instance that can delegate part of its work to the Processor instance provided
+     */
+    def create(context: RouteContext, definition: ProcessorDefinition[_], delegate: Processor): AsyncProcessor = {
+      new DelegateAsyncProcessor(delegate) {
+        override def process(exchange: Exchange, callback: AsyncCallback): Boolean = {
+          invocations.incrementAndGet()
+          super.process(exchange, callback)
+        }
+      }
+    }
+
+    override def toString: String = "CountingDelegateProcessorFactory"
+  }
+  servicemix.addProcessorFactory(factory)
+
+  @Test
+  def testDelegateProcessorInvoked() {
+    val mock = getMockEndpoint("mock:test")
+
+    // we start off with out delegate processor enabled
+    mock.expectedMessageCount(1)
+    template.sendBody("direct:test", "Some random body")
+    assertMockEndpointsSatisfied()
+    assertEquals(2, invocations.get())
+
+    // for the next message, we disable it so we don't expect any extra method invocations
+    mock.expectedMessageCount(2)
+    servicemix.removeProcessorFactory(factory)
+    template.sendBody("direct:test", "Some random body")
+    assertMockEndpointsSatisfied()
+    assertEquals(2, invocations.get())
+
+    // and finally, we re-enable the processor factory and expect 2 more callbacks
+    mock.expectedMessageCount(3)
+    servicemix.addProcessorFactory(factory)
+    template.sendBody("direct:test", "Some random body")
+    assertMockEndpointsSatisfied()
+    assertEquals(4, invocations.get())
+  }
+
+
+  override def createRouteBuilder(): RouteBuilder = new RouteBuilder() {
+    def configure() {
+      from("direct:test").log("Some logging goes here").to("mock:test")
+    }
+  }
+}

Added: servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixInterceptTest.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixInterceptTest.scala?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixInterceptTest.scala (added)
+++ servicemix/smx5/trunk/core/camel/src/test/scala/org/apache/servicemix/core/camel/ServiceMixInterceptTest.scala Mon Aug  5 05:52:53 2013
@@ -0,0 +1,61 @@
+package org.apache.servicemix.core.camel
+
+import org.apache.camel.test.junit4.CamelTestSupport
+import org.apache.camel.builder.RouteBuilder
+import org.apache.camel.spi.InterceptStrategy
+import org.apache.camel.{Exchange, Processor, CamelContext}
+import org.apache.camel.model.ProcessorDefinition
+import org.apache.camel.processor.DelegateAsyncProcessor
+import org.junit.Test
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: gertv
+ * Date: 17/07/13
+ * Time: 20:05
+ * To change this template use File | Settings | File Templates.
+ */
+class ServiceMixInterceptTest extends CamelTestSupport {
+
+  val servicemix = ServiceMix()
+
+  @Test
+  def testGlobalIntercept() = {
+    val test = getMockEndpoint("mock:test")
+    test.expectedMessageCount(1)
+    val intercept = getMockEndpoint("mock:intercept")
+    intercept.expectedMessageCount(0)
+
+    template.sendBody("direct:test", "No global intercept processor added")
+
+    assertMockEndpointsSatisfied()
+
+    val processor = new Processor() {
+      def process(exchange: Exchange) = template.send("mock:intercept", exchange.copy())
+    }
+    servicemix.addIntercept(processor)
+
+    test.expectedMessageCount(2)
+    intercept.expectedMessageCount(1)
+
+    template.sendBody("direct:test", "Global intercept processor added")
+
+    assertMockEndpointsSatisfied()
+
+    servicemix.removeIntercept(processor)
+
+    test.expectedMessageCount(3)
+    intercept.expectedMessageCount(1)
+
+    template.sendBody("direct:test", "Global intercept processor removed again")
+
+    assertMockEndpointsSatisfied()
+
+  }
+
+  override def createRouteBuilder(): RouteBuilder = new RouteBuilder() {
+    def configure() {
+      from("direct:test").to("mock:test")
+    }
+  }
+}

Added: servicemix/smx5/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/core/pom.xml?rev=1510371&view=auto
==============================================================================
--- servicemix/smx5/trunk/core/pom.xml (added)
+++ servicemix/smx5/trunk/core/pom.xml Mon Aug  5 05:52:53 2013
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.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</groupId>
+        <artifactId>parent</artifactId>
+        <version>5.0.0-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+
+    <groupId>org.apache.servicemix</groupId>
+    <artifactId>core</artifactId>
+    <packaging>pom</packaging>
+    <name>Apache ServiceMix :: Core</name>
+
+    <modules>
+        <module>camel</module>
+    </modules>
+
+</project>

Modified: servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestConfigurations.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestConfigurations.scala?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestConfigurations.scala (original)
+++ servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestConfigurations.scala Mon Aug  5 05:52:53 2013
@@ -38,7 +38,7 @@ trait IntegrationTestConfigurations {
    * Add support for Scala-based integration tests
    */
   def scalaTestConfiguration =
-    Array(mavenBundle("org.apache.servicemix.bundles", "org.apache.servicemix.bundles.scala-library").versionAsInProject().start())
+    Array(mavenBundle("org.apache.servicemix.bundles", "org.apache.servicemix.bundles.scala-library").versionAsInProject())
 
   /**
    * Add an Apache ServiceMix container configuration

Modified: servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestSupport.scala
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestSupport.scala?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestSupport.scala (original)
+++ servicemix/smx5/trunk/itests/src/test/scala/org/apache/servicemix/itests/IntegrationTestSupport.scala Mon Aug  5 05:52:53 2013
@@ -47,7 +47,7 @@ abstract class IntegrationTestSupport ex
    */
   val registrations = ArrayBuffer.empty[ServiceRegistration[_]]
 
-  @Before
+  @After
   def clearLogging = logging.clear
 
   /*

Modified: servicemix/smx5/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/parent/pom.xml?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/parent/pom.xml (original)
+++ servicemix/smx5/trunk/parent/pom.xml Mon Aug  5 05:52:53 2013
@@ -39,12 +39,12 @@
   <properties>
     <activemq.version>5.8.0</activemq.version>
     <activiti.version>5.10</activiti.version>
-    <camel.version>2.11.0</camel.version>
-    <cxf.version>2.7.5</cxf.version>
+    <camel.version>2.12-SNAPSHOT</camel.version>
+    <cxf.version>2.7.4</cxf.version>
 
     <felix.obr.version>1.6.6</felix.obr.version>
 
-    <karaf.version>2.3.2-SNAPSHOT</karaf.version>
+    <karaf.version>2.3.2</karaf.version>
     <aries.version>1.0.0</aries.version>
     <aries.transaction.version>1.0.1</aries.transaction.version>
     <pax.logging.version>1.7.0</pax.logging.version>

Modified: servicemix/smx5/trunk/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx5/trunk/pom.xml?rev=1510371&r1=1510370&r2=1510371&view=diff
==============================================================================
--- servicemix/smx5/trunk/pom.xml (original)
+++ servicemix/smx5/trunk/pom.xml Mon Aug  5 05:52:53 2013
@@ -37,7 +37,9 @@
 
     <modules>
         <module>parent</module>
+        <module>core</module>
         <module>activiti</module>
+        <module>audit</module>
         <module>akka</module>
         <module>branding</module>
         <module>logging</module>
@@ -156,6 +158,7 @@
         <antlr.bundle.version>3.0.1_6</antlr.bundle.version>
         <antlr-runtime.bundle.version>3.0.1_2</antlr-runtime.bundle.version>
         <bcel.bundle.version>5.2_3</bcel.bundle.version>
+        <casbah.bundle.version>2.6.2_1-SNAPSHOT</casbah.bundle.version>
         <commons-beanutils.bundle.version>1.8.2_1</commons-beanutils.bundle.version>
         <commons-codec.bundle.version>1.4</commons-codec.bundle.version>
         <commons-dbcp.bundle.version>1.4_3</commons-dbcp.bundle.version>
@@ -230,6 +233,7 @@
         <jettison.version>1.3</jettison.version>
         <joda-time.version>1.6.2</joda-time.version>
         <lingo.version>1.3</lingo.version>
+        <mongodb.version>2.11.2</mongodb.version>
         <mybatis.version>3.1.1</mybatis.version>
         <pax.tinybundle.version>1.0.0</pax.tinybundle.version>
         <pojosr.version>0.2.1</pojosr.version>



Mime
View raw message