You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2018/02/27 15:24:12 UTC

[2/7] incubator-unomi git commit: UNOMI-5 Upgrade to Karaf 4

UNOMI-5 Upgrade to Karaf 4

Signed-off-by: Serge Huber <sh...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/e9637dc5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/e9637dc5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/e9637dc5

Branch: refs/heads/feature-UNOMI-5-KARAF4-1
Commit: e9637dc590ec01716de951cdbac374cc3cd61f2c
Parents: 95a34b8
Author: Serge Huber <sh...@apache.org>
Authored: Mon Jan 30 20:24:45 2017 +0100
Committer: Serge Huber <sh...@jahia.com>
Committed: Thu Feb 22 11:35:33 2018 +0100

----------------------------------------------------------------------
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  2 +-
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  2 +-
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  2 +-
 kar/src/main/feature/feature.xml                |  2 +-
 package/pom.xml                                 | 43 +++++++++++++++-----
 .../resources/OSGI-INF/blueprint/blueprint.xml  | 16 ++++----
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  2 +-
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  4 +-
 pom.xml                                         | 19 ++++++---
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  2 +-
 services/pom.xml                                |  5 ---
 .../services/services/SegmentServiceImpl.java   | 33 ---------------
 .../resources/OSGI-INF/blueprint/blueprint.xml  | 26 ++++++------
 .../resources/OSGI-INF/blueprint/blueprint.xml  | 14 ++++++-
 14 files changed, 86 insertions(+), 86 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/extensions/geonames/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/geonames/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/geonames/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 95a7366..767cc09 100644
--- a/extensions/geonames/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/geonames/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -44,6 +44,6 @@
         <property name="pathToGeonamesDatabase" value="${request.geonamesDatabase.location}"/>
         <property name="forceDbImport" value="${request.geonamesDatabase.forceImport}"/>
     </bean>
-    <service id="geonamesService" ref="geonamesServiceImpl" auto-export="interfaces"/>
+    <service id="geonamesService" ref="geonamesServiceImpl" interface="org.apache.unomi.geonames.services.GeonamesService"/>
 
 </blueprint>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/extensions/lists-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/lists-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/lists-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 9b1f44b..9398d0e 100644
--- a/extensions/lists-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/lists-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -31,5 +31,5 @@
         <property name="persistenceService" ref="persistenceService"/>
         <property name="definitionsService" ref="definitionsService"/>
     </bean>
-    <service id="userListService" ref="userListServiceImpl" auto-export="interfaces"/>
+    <service id="userListService" ref="userListServiceImpl" interface="org.apache.unomi.services.UserListService"/>
 </blueprint>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 8a5d2a2..1b56fe9 100644
--- a/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/privacy-extension/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -37,5 +37,5 @@
         <property name="profileService" ref="profileService" />
         <property name="bundleContext" ref="blueprintBundleContext"/>
     </bean>
-    <service id="privacyService" ref="privacyServiceImpl" auto-export="interfaces"/>
+    <service id="privacyService" ref="privacyServiceImpl" interface="org.apache.unomi.api.services.PrivacyService"/>
 </blueprint>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/kar/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/kar/src/main/feature/feature.xml b/kar/src/main/feature/feature.xml
index d48e0c5..f9e37e9 100644
--- a/kar/src/main/feature/feature.xml
+++ b/kar/src/main/feature/feature.xml
@@ -16,7 +16,7 @@
   ~ limitations under the License.
   -->
 
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.1" name="unomi-kar">
+<features name="unomi-kar" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
     <feature description="unomi-kar" version="${project.version}" name="unomi-kar"
              start-level="70">
         <feature>war</feature>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/package/pom.xml
----------------------------------------------------------------------
diff --git a/package/pom.xml b/package/pom.xml
index 3114040..ae5afd7 100644
--- a/package/pom.xml
+++ b/package/pom.xml
@@ -36,6 +36,8 @@
 
     <dependencies>
 
+        <!-- Standard Apache Karaf Features -->
+
         <dependency>
             <!-- scope is compile so all features (there is only one) are installed into startup.properties and the feature repo itself is not installed -->
             <groupId>org.apache.karaf.features</groupId>
@@ -45,13 +47,19 @@
         <dependency>
             <!-- scope is runtime so the feature repo is listed in the features service config file, and features may be installed using the karaf-maven-plugin configuration -->
             <groupId>org.apache.karaf.features</groupId>
-            <artifactId>standard</artifactId>
+            <artifactId>framework</artifactId>
             <classifier>features</classifier>
             <type>xml</type>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.karaf.features</groupId>
+            <artifactId>standard</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.features</groupId>
             <artifactId>spring</artifactId>
             <classifier>features</classifier>
             <type>xml</type>
@@ -65,7 +73,8 @@
             <scope>runtime</scope>
         </dependency>
 
-        <!--
+        <!-- Aditionnal Apache Unomi features -->
+
         <dependency>
             <groupId>org.apache.cxf.karaf</groupId>
             <artifactId>apache-cxf</artifactId>
@@ -73,7 +82,6 @@
             <type>xml</type>
             <scope>runtime</scope>
         </dependency>
-        -->
         <dependency>
             <groupId>org.apache.karaf.cellar</groupId>
             <artifactId>apache-karaf-cellar</artifactId>
@@ -309,16 +317,16 @@
                         <artifactId>karaf-maven-plugin</artifactId>
                         <executions>
                             <execution>
-                                <id>install-kar</id>
-                                <phase>compile</phase>
+                                <id>process-resources</id>
+                                <phase>process-resources</phase>
                                 <goals>
-                                    <goal>install-kars</goal>
+                                    <goal>assembly</goal>
                                 </goals>
                             </execution>
                             <execution>
                                 <id>package</id>
                                 <goals>
-                                    <goal>instance-create-archive</goal>
+                                    <goal>archive</goal>
                                 </goals>
                             </execution>
                         </executions>
@@ -327,13 +335,26 @@
                                 <feature>wrapper</feature>
                             </installedFeatures>
                             <bootFeatures>
-                                <feature>standard</feature>
-                                <feature>management</feature>
+                                <feature>framework</feature>
+                                <feature>wrap</feature>
+                                <feature>aries-blueprint</feature>
+                                <feature>shell</feature>
+                                <feature>shell-compat</feature>
+                                <feature>feature</feature>
+                                <feature>jaas</feature>
                                 <feature>ssh</feature>
+                                <feature>management</feature>
+                                <feature>bundle</feature>
                                 <feature>config</feature>
-                                <feature>region</feature>
-                                <feature>package</feature>
+                                <feature>deployer</feature>
+                                <feature>diagnostic</feature>
+                                <feature>feature</feature>
+                                <feature>instance</feature>
                                 <feature>kar</feature>
+                                <feature>log</feature>
+                                <feature>package</feature>
+                                <feature>service</feature>
+                                <feature>system</feature>
                                 <feature>war</feature>
                                 <feature>cxf</feature>
                                 <feature>cellar</feature>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 37f7ab1..2838aaa 100644
--- a/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/plugins/baseplugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -157,7 +157,7 @@
 
     <!-- Action executors -->
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="allEventToProfileProperties"/>
         </service-properties>
@@ -166,14 +166,14 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="eventToProfileProperty"/>
         </service-properties>
         <bean class="org.apache.unomi.plugins.baseplugin.actions.EventToProfilePropertyAction"/>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="setProperty"/>
         </service-properties>
@@ -201,7 +201,7 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="evaluateProfileSegments"/>
         </service-properties>
@@ -210,14 +210,14 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="evaluateProfileAge"/>
         </service-properties>
         <bean class="org.apache.unomi.plugins.baseplugin.actions.EvaluateProfileAgeAction"/>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="setEventOccurenceCount"/>
         </service-properties>
@@ -227,7 +227,7 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="sendEvent"/>
         </service-properties>
@@ -236,7 +236,7 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="mergeProfilesOnProperty"/>
         </service-properties>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/plugins/mail/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/plugins/mail/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/plugins/mail/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index e8e1849..0d9fa50 100644
--- a/plugins/mail/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/plugins/mail/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -42,7 +42,7 @@
         <property name="mailServerPassword" value="${mail.server.password}"/>
         <property name="mailServerSSLOnConnect" value="${mail.server.sslOnConnect}"/>
     </bean>
-    <service id="sendMailAction" ref="sendMailActionImpl" auto-export="interfaces">
+    <service id="sendMailAction" ref="sendMailActionImpl" interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="sendMail"/>
         </service-properties>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/plugins/request/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/plugins/request/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/plugins/request/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 478657a..839ad18 100644
--- a/plugins/request/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/plugins/request/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -45,7 +45,7 @@
           class="org.apache.unomi.plugins.request.actions.RequestHeaderToProfilePropertyAction">
     </bean>
     <service id="requestHeaderToProfilePropertyAction" ref="requestHeaderToProfilePropertyActionImpl"
-             auto-export="interfaces">
+             interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="requestHeaderToProfileProperty"/>
         </service-properties>
@@ -55,7 +55,7 @@
           class="org.apache.unomi.plugins.request.actions.RequestParameterToProfilePropertyAction">
     </bean>
     <service id="RequestParameterToProfilePropertyAction" ref="requestParameterToProfilePropertyActionImpl"
-             auto-export="interfaces">
+             interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="requestParameterToProfileProperty"/>
         </service-properties>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b8177dd..cf3a182 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,12 +64,12 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <cxf.version>3.0.2</cxf.version>
+        <cxf.version>3.1.0</cxf.version>
         <version.jackson.core>2.6.6</version.jackson.core> <!-- version used by CXF -->
         <version.jackson.jaxb>2.6.6</version.jackson.jaxb> <!-- version used by CXF -->
-        <version.karaf>3.0.8</version.karaf>
-        <version.karaf.cellar>3.0.3</version.karaf.cellar>
-        <version.pax.exam>4.11.0</version.pax.exam>
+        <version.karaf>4.0.8</version.karaf>
+        <version.karaf.cellar>4.0.3</version.karaf.cellar>
+        <version.pax.exam>4.11.2</version.pax.exam>
         <elasticsearch.version>5.6.3</elasticsearch.version>
 
         <maven.compiler.source>1.7</maven.compiler.source>
@@ -624,14 +624,20 @@
 
             <!-- Apache Karaf dependencies -->
             <dependency>
-                <!-- scope is compile so all features (there is only one) are installed into startup.properties and the feature repo itself is not installed -->
                 <groupId>org.apache.karaf.features</groupId>
                 <artifactId>framework</artifactId>
                 <version>${version.karaf}</version>
                 <type>kar</type>
             </dependency>
             <dependency>
-                <!-- scope is runtime so the feature repo is listed in the features service config file, and features may be installed using the karaf-maven-plugin configuration -->
+                <groupId>org.apache.karaf.features</groupId>
+                <artifactId>framework</artifactId>
+                <classifier>features</classifier>
+                <version>${version.karaf}</version>
+                <type>xml</type>
+                <scope>runtime</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.karaf.features</groupId>
                 <artifactId>standard</artifactId>
                 <classifier>features</classifier>
@@ -878,6 +884,7 @@
                     <groupId>org.apache.felix</groupId>
                     <artifactId>maven-bundle-plugin</artifactId>
                     <version>3.2.0</version>
+                    <extensions>true</extensions>
                     <configuration>
                         <instructions>
                             <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/samples/tweet-button-plugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/samples/tweet-button-plugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/samples/tweet-button-plugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 101c07c..0059ec7 100644
--- a/samples/tweet-button-plugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/samples/tweet-button-plugin/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -23,7 +23,7 @@
     <reference id="profileService" interface="org.apache.unomi.api.services.ProfileService"/>
 
     <!-- Action executor -->
-    <service id="incrementTweetNumberAction" auto-export="interfaces">
+    <service id="incrementTweetNumberAction" interface="org.apache.unomi.api.actions.ActionExecutor">
         <service-properties>
             <entry key="actionExecutorId" value="incrementTweetNumber"/>
         </service-properties>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/services/pom.xml
----------------------------------------------------------------------
diff --git a/services/pom.xml b/services/pom.xml
index 9707991..acd584d 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -80,11 +80,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.glassfish</groupId>
-            <artifactId>javax.json</artifactId>
-        </dependency>
-
-        <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-core</artifactId>
           <scope>provided</scope>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/services/src/main/java/org/apache/unomi/services/services/SegmentServiceImpl.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/services/SegmentServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/SegmentServiceImpl.java
index e11f8a6..77bb225 100644
--- a/services/src/main/java/org/apache/unomi/services/services/SegmentServiceImpl.java
+++ b/services/src/main/java/org/apache/unomi/services/services/SegmentServiceImpl.java
@@ -39,7 +39,6 @@ import org.osgi.framework.SynchronousBundleListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.json.*;
 import java.io.IOException;
 import java.net.URL;
 import java.security.MessageDigest;
@@ -65,38 +64,6 @@ public class SegmentServiceImpl extends AbstractServiceImpl implements SegmentSe
         logger.info("Initializing segment service...");
     }
 
-    public static void dumpJSON(JsonValue tree, String key, String depthPrefix) {
-        if (key != null)
-            logger.info(depthPrefix + "Key " + key + ": ");
-        switch (tree.getValueType()) {
-            case OBJECT:
-                logger.info(depthPrefix + "OBJECT");
-                JsonObject object = (JsonObject) tree;
-                for (String name : object.keySet())
-                    dumpJSON(object.get(name), name, depthPrefix + "  ");
-                break;
-            case ARRAY:
-                logger.info(depthPrefix + "ARRAY");
-                JsonArray array = (JsonArray) tree;
-                for (JsonValue val : array)
-                    dumpJSON(val, null, depthPrefix + "  ");
-                break;
-            case STRING:
-                JsonString st = (JsonString) tree;
-                logger.info(depthPrefix + "STRING " + st.getString());
-                break;
-            case NUMBER:
-                JsonNumber num = (JsonNumber) tree;
-                logger.info(depthPrefix + "NUMBER " + num.toString());
-                break;
-            case TRUE:
-            case FALSE:
-            case NULL:
-                logger.info(depthPrefix + tree.getValueType().toString());
-                break;
-        }
-    }
-
     public void setBundleContext(BundleContext bundleContext) {
         this.bundleContext = bundleContext;
     }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 08e344c..7ff000a 100644
--- a/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -60,7 +60,7 @@
         <property name="persistenceService" ref="persistenceService"/>
         <property name="bundleContext" ref="blueprintBundleContext"/>
     </bean>
-    <service id="definitionsService" ref="definitionsServiceImpl" auto-export="interfaces"/>
+    <service id="definitionsService" ref="definitionsServiceImpl" interface="org.apache.unomi.api.services.DefinitionsService"/>
 
     <bean id="eventServiceImpl" class="org.apache.unomi.services.services.EventServiceImpl"
         init-method="init" destroy-method="destroy">
@@ -89,7 +89,7 @@
             <cm:cm-properties persistent-id="org.apache.unomi.thirdparty" update="true" />
         </property>
     </bean>
-    <service id="eventService" ref="eventServiceImpl" auto-export="interfaces"/>
+    <service id="eventService" ref="eventServiceImpl" interface="org.apache.unomi.api.services.EventService"/>
 
     <bean id="goalsServiceImpl" class="org.apache.unomi.services.services.GoalsServiceImpl"
           init-method="postConstruct" destroy-method="preDestroy">
@@ -98,7 +98,7 @@
         <property name="rulesService" ref="rulesServiceImpl"/>
         <property name="bundleContext" ref="blueprintBundleContext"/>
     </bean>
-    <service id="goalsService" ref="goalsServiceImpl" auto-export="interfaces"/>
+    <service id="goalsService" ref="goalsServiceImpl" interface="org.apache.unomi.api.services.GoalsService"/>
 
     <bean id="actionExecutorDispatcherImpl"
           class="org.apache.unomi.services.actions.ActionExecutorDispatcher">
@@ -113,7 +113,7 @@
         <property name="actionExecutorDispatcher" ref="actionExecutorDispatcherImpl"/>
         <property name="bundleContext" ref="blueprintBundleContext"/>
     </bean>
-    <service id="rulesService" ref="rulesServiceImpl" auto-export="interfaces"/>
+    <service id="rulesService" ref="rulesServiceImpl" interface="org.apache.unomi.api.services.RulesService"/>
 
     <bean id="segmentServiceImpl" class="org.apache.unomi.services.services.SegmentServiceImpl"
           init-method="postConstruct" destroy-method="preDestroy">
@@ -125,7 +125,7 @@
         <property name="taskExecutionPeriod" value="86400000"/>
         <property name="segmentUpdateBatchSize" value="${services.segment.update.batchSize}" />
     </bean>
-    <service id="segmentService" ref="segmentServiceImpl" auto-export="interfaces"/>
+    <service id="segmentService" ref="segmentServiceImpl" interface="org.apache.unomi.api.services.SegmentService"/>
 
     <bean id="userListServiceImpl" class="org.apache.unomi.services.services.UserListServiceImpl"
           init-method="postConstruct" destroy-method="preDestroy">
@@ -148,14 +148,14 @@
         <property name="purgeSessionsAndEventsTime" value="${services.event.purge.existTime}"/>
         <property name="forceRefreshOnSave" value="${services.profile.forceRefreshOnSave}" />
     </bean>
-    <service id="profileService" ref="profileServiceImpl" auto-export="interfaces"/>
+    <service id="profileService" ref="profileServiceImpl" interface="org.apache.unomi.api.services.ProfileService"/>
 
     <bean id="queryServiceImpl" class="org.apache.unomi.services.services.QueryServiceImpl"
           init-method="postConstruct" destroy-method="preDestroy">
         <property name="persistenceService" ref="persistenceService"/>
         <property name="definitionsService" ref="definitionsServiceImpl"/>
     </bean>
-    <service id="queryService" ref="queryServiceImpl" auto-export="interfaces"/>
+    <service id="queryService" ref="queryServiceImpl" interface="org.apache.unomi.api.services.QueryService"/>
 
     <bean id="clusterServiceImpl" class="org.apache.unomi.services.services.ClusterServiceImpl"
           init-method="init" destroy-method="destroy">
@@ -169,7 +169,7 @@
         <property name="osgiConfigurationAdmin" ref="osgiConfigurationAdmin" />
         <property name="nodeStatisticsUpdateFrequency" value="${cluster.nodeStatisticsUpdateFrequency}" />
     </bean>
-    <service id="clusterService" ref="clusterServiceImpl" auto-export="interfaces"/>
+    <service id="clusterService" ref="clusterServiceImpl" interface="org.apache.unomi.api.services.ClusterService"/>
 
 
     <bean id="personalizationServiceImpl" class="org.apache.unomi.services.services.PersonalizationServiceImpl">
@@ -202,7 +202,7 @@
 
     <!-- Property merge strategy executors -->
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.PropertyMergeStrategyExecutor">
         <service-properties>
             <entry key="propertyMergeStrategyExecutorId" value="defaultPropertyMergeStrategyExecutor"/>
         </service-properties>
@@ -210,7 +210,7 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.PropertyMergeStrategyExecutor">
         <service-properties>
             <entry key="propertyMergeStrategyExecutorId" value="addPropertyMergeStrategyExecutor"/>
         </service-properties>
@@ -218,7 +218,7 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.PropertyMergeStrategyExecutor">
         <service-properties>
             <entry key="propertyMergeStrategyExecutorId" value="mostRecentPropertyMergeStrategyExecutor"/>
         </service-properties>
@@ -226,7 +226,7 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.PropertyMergeStrategyExecutor">
         <service-properties>
             <entry key="propertyMergeStrategyExecutorId" value="oldestPropertyMergeStrategyExecutor"/>
         </service-properties>
@@ -234,7 +234,7 @@
         </bean>
     </service>
 
-    <service auto-export="interfaces">
+    <service interface="org.apache.unomi.api.PropertyMergeStrategyExecutor">
         <service-properties>
             <entry key="propertyMergeStrategyExecutorId" value="nonEmptyPropertyMergeStrategyExecutor"/>
         </service-properties>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/e9637dc5/wab/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/wab/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/wab/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index ead1758..6fd6ca4 100644
--- a/wab/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/wab/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -52,7 +52,12 @@
         <property name="profileIdCookieMaxAgeInSeconds" value="${web.contextserver.profileIdCookieMaxAgeInSeconds}"/>
     </bean>
 
-    <service id="contextServletService" auto-export="interfaces" ref="contextServlet">
+    <service id="contextServletService" ref="contextServlet">
+        <interfaces>
+            <value>javax.servlet.Servlet</value>
+            <value>javax.servlet.ServletConfig</value>
+            <value>java.io.Serializable</value>
+        </interfaces>
         <service-properties>
             <entry key="urlPatterns">
                 <array value-type="java.lang.String">
@@ -68,7 +73,12 @@
         <property name="eventService" ref="eventService"/>
         <property name="privacyService" ref="privacyService" />
     </bean>
-    <service id="eventsCollectorServletService" auto-export="interfaces" ref="eventsCollectorServlet">
+    <service id="eventsCollectorServletService" ref="eventsCollectorServlet">
+        <interfaces>
+            <value>javax.servlet.Servlet</value>
+            <value>javax.servlet.ServletConfig</value>
+            <value>java.io.Serializable</value>
+        </interfaces>
         <service-properties>
             <entry key="urlPatterns" value="/eventcollector"/>
         </service-properties>