Replace Activator by a Component
diff --git a/platform/sensinact-application/application-manager/pom.xml b/platform/sensinact-application/application-manager/pom.xml
index 21c6392..1a07027 100644
--- a/platform/sensinact-application/application-manager/pom.xml
+++ b/platform/sensinact-application/application-manager/pom.xml
@@ -41,7 +41,7 @@
 							org.eclipse.sensinact.gateway.app.manager.component.data,
 							org.eclipse.sensinact.gateway.app.manager.json
 						</Export-Package>
-						<Bundle-Activator>org.eclipse.sensinact.gateway.app.manager.osgi.Activator</Bundle-Activator>
+						<!-- <Bundle-Activator>org.eclipse.sensinact.gateway.app.manager.osgi.Activator</Bundle-Activator>-->
 						<Include-Resource>
 							about.html,
 							src/main/resources/
diff --git a/platform/sensinact-application/application-manager/src/main/java/org/eclipse/sensinact/gateway/app/manager/osgi/Activator.java b/platform/sensinact-application/application-manager/src/main/java/org/eclipse/sensinact/gateway/app/manager/osgi/ApplicationManagerConfigurator.java
similarity index 63%
rename from platform/sensinact-application/application-manager/src/main/java/org/eclipse/sensinact/gateway/app/manager/osgi/Activator.java
rename to platform/sensinact-application/application-manager/src/main/java/org/eclipse/sensinact/gateway/app/manager/osgi/ApplicationManagerConfigurator.java
index 03efd05..1c79a42 100644
--- a/platform/sensinact-application/application-manager/src/main/java/org/eclipse/sensinact/gateway/app/manager/osgi/Activator.java
+++ b/platform/sensinact-application/application-manager/src/main/java/org/eclipse/sensinact/gateway/app/manager/osgi/ApplicationManagerConfigurator.java
@@ -10,39 +10,63 @@
  */
 package org.eclipse.sensinact.gateway.app.manager.osgi;
 
+import java.io.File;
+import java.util.Map;
+
 import org.eclipse.sensinact.gateway.app.api.persistence.ApplicationPersistenceService;
 import org.eclipse.sensinact.gateway.app.manager.application.persistence.SNAPersistApplicationFileSystem;
 import org.eclipse.sensinact.gateway.app.manager.application.persistence.SNAPersistApplicationInMemory;
 import org.eclipse.sensinact.gateway.app.manager.internal.AppManagerFactory;
 import org.eclipse.sensinact.gateway.common.annotation.Property;
-import org.eclipse.sensinact.gateway.common.bundle.AbstractActivator;
-import org.osgi.framework.BundleContext;
+import org.eclipse.sensinact.gateway.common.interpolator.Interpolator;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-
 /**
- * @author Remi Druilhe
- * @see AbstractActivator
+ * 
  */
-public class Activator extends AbstractActivator<AppServiceMediator> {
-    private static Logger LOG = LoggerFactory.getLogger(Activator.class);
+@Component(immediate=true)
+public class ApplicationManagerConfigurator  {
+	
+    private static Logger LOG = LoggerFactory.getLogger(ApplicationManagerConfigurator.class);
+    
     private AppManagerFactory appManagerFactory;
     private Thread persistenceThread;
+    
     @Property(defaultValue = "application")
     private String directory;
+    
     @Property(validationRegex = Property.INTEGER, mandatory=false, defaultValue="0")
     private Long updateFileCheck;
+    
     @Property(mandatory = false, defaultValue="false")
     private Boolean applicationPersist;
+    
     @Property(defaultValue = "json", validationRegex = Property.ALPHANUMERIC)
     private String applicationFileExtension;
 
-    /**
-     * @see AbstractActivator#doStart()
-     */
-    public void doStart() throws Exception {
+	private AppServiceMediator mediator;
+
+    protected void injectPropertyFields() throws Exception {
+        this.mediator.debug("Starting introspection in bundle %s", mediator.getContext().getBundle().getSymbolicName());
+        Interpolator interpolator = new Interpolator(this.mediator);
+        interpolator.getInstance(this);
+        for(Map.Entry<String,String> entry:interpolator.getPropertiesInjected().entrySet()){
+            if(!this.mediator.getProperties().containsKey(entry.getKey()))
+                mediator.setProperty(entry.getKey(),entry.getValue());
+        }
+    }
+    
+    @Activate
+	public void activate(ComponentContext componentContext) throws Exception {
+    	
+    	this.mediator = new AppServiceMediator(componentContext.getBundleContext());
+        injectPropertyFields();
+        
         ApplicationPersistenceService directoryMonitor = null;
         if (applicationPersist) {
             LOG.info("Filesystem Persistence mechanism is ON");
@@ -60,18 +84,9 @@
         persistenceThread.start();
     }
 
-    /**
-     * @see AbstractActivator#doStop()
-     */
-    public void doStop() throws Exception {
+    @Deactivate
+    public void deactivate() throws Exception {
         if (persistenceThread != null) persistenceThread.interrupt();
         this.appManagerFactory.deleteAppManager();
     }
-
-    /**
-     * @see AbstractActivator#doInstantiate(BundleContext)
-     */
-    public AppServiceMediator doInstantiate(BundleContext context) {
-        return new AppServiceMediator(context);
-    }
 }