diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 77149fa..9641a6c 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -56,7 +56,6 @@
                 <jenkins.build.dependency>org.eclipse.osbp.ui.api</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ui.common</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.utils</jenkins.build.dependency>
-                <jenkins.build.dependency>org.eclipse.osbp.utils.bpmn</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.utils.functionnormalizer</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.utils.js</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.utils.themes.ui</jenkins.build.dependency>
diff --git "a/org.eclipse.osbp.softwarefactory.feature/about_files/DAY-Spec\303\255fication-License.txt" "b/org.eclipse.osbp.softwarefactory.feature/about_files/DAY-Spec\303\255fication-License.txt"
deleted file mode 100644
index 13cc940..0000000
--- "a/org.eclipse.osbp.softwarefactory.feature/about_files/DAY-Spec\303\255fication-License.txt"
+++ /dev/null
@@ -1,106 +0,0 @@
-Day Specification License
-
-Day Management AG ("Licensor") is willing to license this specification to you #
-ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS LICENSE AGREEMENT ("Agreement"). 
-Please read the terms and conditions of this Agreement carefully.
-
-Content Repository for JavaTM Technology API Specification ("Specification") 
-
-Version: 1.0 
-Status: FCS 
-Release: 11 May 2005
-Copyright 2005 Day Management AG
-Barfüsserplatz 6, 4001 Basel, Switzerland.
-All rights reserved.
-
-NOTICE; LIMITED LICENSE GRANTS
-
-1. License for Purposes of Evaluation and Developing Applications. Licensor hereby grants you 
-   a fully-paid, non-exclusive, non-transferable, worldwide, limited license (without the right 
-   to sublicense), under Licensor's applicable intellectual property rights to view, download, 
-   use and reproduce the Specification only for the purpose of internal evaluation. This includes 
-   developing applications intended to run on an implementation of the Specification provided that 
-   such applications do not themselves implement any portion(s) of the Specification.
-2. License for the Distribution of Compliant Implementations. Licensor also grants you a perpetual, 
-   non-exclusive, non-transferable, worldwide, fully paid-up, royalty free, limited license (without 
-   the right to sublicense) under any applicable copyrights or, subject to the provisions of subsection 
-   4 below, patent rights it may have covering the Specification to create and/or distribute an 
-   Independent Implementation of the Specification that: (a) fully implements the Specification including 
-   all its required interfaces and functionality; (b) does not modify, subset, superset or otherwise extend 
-   the Licensor Name Space, or include any public or protected packages, classes, Java interfaces, fields
-   or methods within the Licensor Name Space other than those required/authorized by the Specification or 
-   Specifications being implemented; and (c) passes the Technology Compatibility Kit (including satisfying 
-   the requirements of the applicable TCK Users Guide) for such Specification ("Compliant Implementation"). 
-   In addition, the foregoing license is expressly conditioned on your not acting outside its scope. 
-   No license is granted hereunder for any other purpose (including, for example, modifying the Specification, 
-   other than to the extent of your fair use rights, or distributing the Specification to third parties).
-3. Pass-through Conditions. You need not include limitations (a)-(c) from the previous paragraph or any other 
-   particular "pass through" requirements in any license You grant concerning the use of your Independent 
-   Implementation or products derived from it. However, except with respect to Independent Implementations 
-   (and products derived from them) that satisfy limitations (a)-(c) from the previous paragraph, 
-   You may neither: 
-      (a) grant or otherwise pass through to your licensees any licenses under Licensor's applicable 
-	      intellectual property rights; nor 
-	  (b) authorize your licensees to make any claims concerning their implementation's compliance with the Specification.
-	  
-4. Reciprocity Concerning Patent Licenses. With respect to any patent claims covered by the license granted 
-   under subparagraph 2 above that would be infringed by all technically feasible implementations of the 
-   Specification, such license is conditioned upon your offering on fair, reasonable and non-discriminatory 
-   terms, to any party seeking it from You, a perpetual, non-exclusive, non-transferable, worldwide license 
-   under Your patent rights that are or would be infringed by all technically feasible implementations of the 
-   Specification to develop, distribute and use a Compliant Implementation.
-   
-5. Definitions. For the purposes of this Agreement: "Independent Implementation" shall mean an implementation
-   of the Specification that neither derives from any of Licensor's source code or binary code materials nor, 
-   except with an appropriate and separate license from Licensor, includes any of Licensor's source code or 
-   binary code materials; "Licensor Name Space" shall mean the public class or interface declarations whose 
-   names begin with "java", "javax", "javax.jcr" or their equivalents in any subsequent naming convention 
-   adopted by Licensor through the Java Community Process, or any recognized successors or replacements thereof; 
-   and "Technology Compatibility Kit" or "TCK" shall mean the test suite and accompanying TCK User's Guide 
-   provided by Licensor which corresponds to the particular version of the Specification being tested.
-   
-6. Termination. This Agreement will terminate immediately without notice from Licensor if you fail to comply 
-   with any material provision of or act outside the scope of the licenses granted above.
-   
-7. Trademarks. No right, title, or interest in or to any trademarks, service marks, or trade names of Licensor 
-   is granted hereunder. Java is a registered trademark of Sun Microsystems, Inc. in the United States and 
-   other countries.
-   
-8. Disclaimer of Warranties. The Specification is provided "AS IS". LICENSOR MAKES NO REPRESENTATIONS OR 
-   WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, 
-   FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT (INCLUDING AS A CONSEQUENCE OF ANY PRACTICE OR 
-   IMPLEMENTATION OF THE SPECIFICATION), OR THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY 
-   PURPOSE. This document does not represent any commitment to release or implement any portion of the 
-   Specification in any product.
-   
-   The Specification could include technical inaccuracies or typographical errors. Changes are periodically 
-   added to the information therein; these changes will be incorporated into new versions of the Specification, 
-   if any. Licensor may make improvements and/or changes to the product(s) and/or the program(s) described in the 
-   Specification at any time. Any use of such changes in the Specification will be governed by the then-current 
-   license for the applicable version of the Specification.
-
-9. Limitation of Liability. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL LICENSOR BE LIABLE FOR ANY 
-   DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUE, PROFITS OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, 
-   INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR 
-   RELATED TO ANY FURNISHING, PRACTICING, MODIFYING OR ANY USE OF THE SPECIFICATION, EVEN IF LICENSOR HAS BEEN 
-   ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-   
-10. Report. If you provide Licensor with any comments or suggestions in connection with your use of the 
-   Specification ("Feedback"), you hereby: (i) agree that such Feedback is provided on a non-proprietary 
-   and non-confidential basis, and (ii) grant Licensor a perpetual, non-exclusive, worldwide, fully paid-up, 
-   irrevocable license, with the right to sublicense through multiple levels of sublicensees, to incorporate, 
-   disclose, and use without limitation the Feedback for any purpose related to the Specification and future 
-   versions, implementations, and test suites thereof.
-   
-Day JCR License
----------------
-In addition to the permissions granted under the Specification License, Day Management AG hereby grants to 
-You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable license to reproduce, publicly 
-display, publicly perform, sublicense, and distribute unmodified copies of the Content Repository for 
-Java Technology API (JCR 2.0) Java Archive (JAR) file ("jcr-2.0.jar") and to make, have made, use, offer to sell, 
-sell, import, and otherwise transfer said file on its own or as part of a larger work that makes use of the 
-JCR API. With respect to any patent claims covered by this license that would be infringed by all technically 
-feasible implementations of the Specification, such license is conditioned upon your offering on fair, reasonable
-and non-discriminatory terms, to any party seeking it from You, a perpetual, non-exclusive, non-transferable, 
-worldwide license under Your patent rights that are or would be infringed by all technically feasible implementations 
-of the Specification to develop, distribute and use a Compliant Implementation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.softwarefactory.runtime.feature/feature.xml b/org.eclipse.osbp.softwarefactory.runtime.feature/feature.xml
index b65e108..9ea783b 100644
--- a/org.eclipse.osbp.softwarefactory.runtime.feature/feature.xml
+++ b/org.eclipse.osbp.softwarefactory.runtime.feature/feature.xml
@@ -18,6 +18,10 @@
    </license>
 
    <includes
+         id="org.eclipse.osbp.dependencies.feature.activemq"
+         version="0.0.0"/>
+
+   <includes
          id="org.eclipse.osbp.dependencies.feature.apache.batik.1.7.0"
          version="0.0.0"/>
 
@@ -780,13 +784,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.osbp.utils.bpmn"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.osbp.utils.entitymock.dbfill.ui"
          download-size="0"
          install-size="0"
diff --git a/org.eclipse.osbp.softwarefactory.runtime.feature/pom.xml b/org.eclipse.osbp.softwarefactory.runtime.feature/pom.xml
index b63f57c..92c6c4d 100644
--- a/org.eclipse.osbp.softwarefactory.runtime.feature/pom.xml
+++ b/org.eclipse.osbp.softwarefactory.runtime.feature/pom.xml
@@ -186,6 +186,30 @@
 			<version>${project.version}</version>
 			<classifier>sources</classifier>
 		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.dependencies</groupId>
+			<artifactId>org.eclipse.osbp.dependencies.feature.vaadin.external</artifactId>
+			<version>0.9.0-SNAPSHOT</version>
+			<type>eclipse-feature</type>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.dependencies</groupId>
+			<artifactId>org.eclipse.osbp.dependencies.feature.vaadin.addons</artifactId>
+			<version>0.9.0-SNAPSHOT</version>
+			<type>eclipse-feature</type>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.dependencies</groupId>
+			<artifactId>org.eclipse.osbp.dependencies.feature.vaadin</artifactId>
+			<version>${vaadin.version}-SNAPSHOT</version>
+			<type>eclipse-feature</type>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.dependencies</groupId>
+			<artifactId>org.eclipse.osbp.dependencies.feature.activemq</artifactId>
+			<version>5.14.5-SNAPSHOT</version>
+			<type>eclipse-feature</type>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>
@@ -217,6 +241,7 @@
 						<feature id="org.eclipse.osbp.dependencies.feature.assert_utilities" />
 						<feature
 							id="org.eclipse.osbp.dependencies.feature.eclipse.persistence" />
+						<feature id="org.eclipse.osbp.dependencies.feature.activemq" />
 						<feature id="org.eclipse.osbp.dependencies.feature.h2" />
 						<feature id="org.eclipse.osbp.dependencies.feature.javax.transaction" />
 						<feature id="org.eclipse.osbp.dependencies.feature.jetty" />
diff --git "a/org.eclipse.osbp.softwarefactory.target.feature/about_files/DAY-Spec\303\255fication-License.txt" "b/org.eclipse.osbp.softwarefactory.target.feature/about_files/DAY-Spec\303\255fication-License.txt"
deleted file mode 100644
index 13cc940..0000000
--- "a/org.eclipse.osbp.softwarefactory.target.feature/about_files/DAY-Spec\303\255fication-License.txt"
+++ /dev/null
@@ -1,106 +0,0 @@
-Day Specification License
-
-Day Management AG ("Licensor") is willing to license this specification to you #
-ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS LICENSE AGREEMENT ("Agreement"). 
-Please read the terms and conditions of this Agreement carefully.
-
-Content Repository for JavaTM Technology API Specification ("Specification") 
-
-Version: 1.0 
-Status: FCS 
-Release: 11 May 2005
-Copyright 2005 Day Management AG
-Barfüsserplatz 6, 4001 Basel, Switzerland.
-All rights reserved.
-
-NOTICE; LIMITED LICENSE GRANTS
-
-1. License for Purposes of Evaluation and Developing Applications. Licensor hereby grants you 
-   a fully-paid, non-exclusive, non-transferable, worldwide, limited license (without the right 
-   to sublicense), under Licensor's applicable intellectual property rights to view, download, 
-   use and reproduce the Specification only for the purpose of internal evaluation. This includes 
-   developing applications intended to run on an implementation of the Specification provided that 
-   such applications do not themselves implement any portion(s) of the Specification.
-2. License for the Distribution of Compliant Implementations. Licensor also grants you a perpetual, 
-   non-exclusive, non-transferable, worldwide, fully paid-up, royalty free, limited license (without 
-   the right to sublicense) under any applicable copyrights or, subject to the provisions of subsection 
-   4 below, patent rights it may have covering the Specification to create and/or distribute an 
-   Independent Implementation of the Specification that: (a) fully implements the Specification including 
-   all its required interfaces and functionality; (b) does not modify, subset, superset or otherwise extend 
-   the Licensor Name Space, or include any public or protected packages, classes, Java interfaces, fields
-   or methods within the Licensor Name Space other than those required/authorized by the Specification or 
-   Specifications being implemented; and (c) passes the Technology Compatibility Kit (including satisfying 
-   the requirements of the applicable TCK Users Guide) for such Specification ("Compliant Implementation"). 
-   In addition, the foregoing license is expressly conditioned on your not acting outside its scope. 
-   No license is granted hereunder for any other purpose (including, for example, modifying the Specification, 
-   other than to the extent of your fair use rights, or distributing the Specification to third parties).
-3. Pass-through Conditions. You need not include limitations (a)-(c) from the previous paragraph or any other 
-   particular "pass through" requirements in any license You grant concerning the use of your Independent 
-   Implementation or products derived from it. However, except with respect to Independent Implementations 
-   (and products derived from them) that satisfy limitations (a)-(c) from the previous paragraph, 
-   You may neither: 
-      (a) grant or otherwise pass through to your licensees any licenses under Licensor's applicable 
-	      intellectual property rights; nor 
-	  (b) authorize your licensees to make any claims concerning their implementation's compliance with the Specification.
-	  
-4. Reciprocity Concerning Patent Licenses. With respect to any patent claims covered by the license granted 
-   under subparagraph 2 above that would be infringed by all technically feasible implementations of the 
-   Specification, such license is conditioned upon your offering on fair, reasonable and non-discriminatory 
-   terms, to any party seeking it from You, a perpetual, non-exclusive, non-transferable, worldwide license 
-   under Your patent rights that are or would be infringed by all technically feasible implementations of the 
-   Specification to develop, distribute and use a Compliant Implementation.
-   
-5. Definitions. For the purposes of this Agreement: "Independent Implementation" shall mean an implementation
-   of the Specification that neither derives from any of Licensor's source code or binary code materials nor, 
-   except with an appropriate and separate license from Licensor, includes any of Licensor's source code or 
-   binary code materials; "Licensor Name Space" shall mean the public class or interface declarations whose 
-   names begin with "java", "javax", "javax.jcr" or their equivalents in any subsequent naming convention 
-   adopted by Licensor through the Java Community Process, or any recognized successors or replacements thereof; 
-   and "Technology Compatibility Kit" or "TCK" shall mean the test suite and accompanying TCK User's Guide 
-   provided by Licensor which corresponds to the particular version of the Specification being tested.
-   
-6. Termination. This Agreement will terminate immediately without notice from Licensor if you fail to comply 
-   with any material provision of or act outside the scope of the licenses granted above.
-   
-7. Trademarks. No right, title, or interest in or to any trademarks, service marks, or trade names of Licensor 
-   is granted hereunder. Java is a registered trademark of Sun Microsystems, Inc. in the United States and 
-   other countries.
-   
-8. Disclaimer of Warranties. The Specification is provided "AS IS". LICENSOR MAKES NO REPRESENTATIONS OR 
-   WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, 
-   FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT (INCLUDING AS A CONSEQUENCE OF ANY PRACTICE OR 
-   IMPLEMENTATION OF THE SPECIFICATION), OR THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY 
-   PURPOSE. This document does not represent any commitment to release or implement any portion of the 
-   Specification in any product.
-   
-   The Specification could include technical inaccuracies or typographical errors. Changes are periodically 
-   added to the information therein; these changes will be incorporated into new versions of the Specification, 
-   if any. Licensor may make improvements and/or changes to the product(s) and/or the program(s) described in the 
-   Specification at any time. Any use of such changes in the Specification will be governed by the then-current 
-   license for the applicable version of the Specification.
-
-9. Limitation of Liability. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL LICENSOR BE LIABLE FOR ANY 
-   DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUE, PROFITS OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, 
-   INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR 
-   RELATED TO ANY FURNISHING, PRACTICING, MODIFYING OR ANY USE OF THE SPECIFICATION, EVEN IF LICENSOR HAS BEEN 
-   ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-   
-10. Report. If you provide Licensor with any comments or suggestions in connection with your use of the 
-   Specification ("Feedback"), you hereby: (i) agree that such Feedback is provided on a non-proprietary 
-   and non-confidential basis, and (ii) grant Licensor a perpetual, non-exclusive, worldwide, fully paid-up, 
-   irrevocable license, with the right to sublicense through multiple levels of sublicensees, to incorporate, 
-   disclose, and use without limitation the Feedback for any purpose related to the Specification and future 
-   versions, implementations, and test suites thereof.
-   
-Day JCR License
----------------
-In addition to the permissions granted under the Specification License, Day Management AG hereby grants to 
-You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable license to reproduce, publicly 
-display, publicly perform, sublicense, and distribute unmodified copies of the Content Repository for 
-Java Technology API (JCR 2.0) Java Archive (JAR) file ("jcr-2.0.jar") and to make, have made, use, offer to sell, 
-sell, import, and otherwise transfer said file on its own or as part of a larger work that makes use of the 
-JCR API. With respect to any patent claims covered by this license that would be infringed by all technically 
-feasible implementations of the Specification, such license is conditioned upon your offering on fair, reasonable
-and non-discriminatory terms, to any party seeking it from You, a perpetual, non-exclusive, non-transferable, 
-worldwide license under Your patent rights that are or would be infringed by all technically feasible implementations 
-of the Specification to develop, distribute and use a Compliant Implementation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.softwarefactory.target.feature/feature.xml b/org.eclipse.osbp.softwarefactory.target.feature/feature.xml
index bd964dc..77f8e28 100644
--- a/org.eclipse.osbp.softwarefactory.target.feature/feature.xml
+++ b/org.eclipse.osbp.softwarefactory.target.feature/feature.xml
@@ -51,10 +51,6 @@
          version="0.0.0"/>
 
    <includes
-         id="org.eclipse.osbp.utils.bpmn.feature"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.osbp.utils.js.feature"
          version="0.0.0"/>
 
