Delete basic plugin's Activator
Define the PluginInstaller Component
diff --git a/platform/sensinact-application/basic-plugin/pom.xml b/platform/sensinact-application/basic-plugin/pom.xml
index b5b8cae..ffdb34f 100644
--- a/platform/sensinact-application/basic-plugin/pom.xml
+++ b/platform/sensinact-application/basic-plugin/pom.xml
@@ -36,7 +36,6 @@
<configuration>
<instructions>
<Import-Package>*</Import-Package>
- <Bundle-Activator>org.eclipse.sensinact.gateway.app.basic.osgi.Activator</Bundle-Activator>
<Include-Resource>
about.html,
src/main/resources/
diff --git a/platform/sensinact-application/basic-plugin/src/main/java/org/eclipse/sensinact/gateway/app/basic/installer/BasicInstaller.java b/platform/sensinact-application/basic-plugin/src/main/java/org/eclipse/sensinact/gateway/app/basic/installer/BasicInstaller.java
index 17581b3..4fbb2fd 100644
--- a/platform/sensinact-application/basic-plugin/src/main/java/org/eclipse/sensinact/gateway/app/basic/installer/BasicInstaller.java
+++ b/platform/sensinact-application/basic-plugin/src/main/java/org/eclipse/sensinact/gateway/app/basic/installer/BasicInstaller.java
@@ -12,6 +12,7 @@
import org.eclipse.sensinact.gateway.app.api.function.AbstractFunction;
import org.eclipse.sensinact.gateway.app.api.plugin.AbstractPlugin;
+import org.eclipse.sensinact.gateway.app.api.plugin.PluginInstaller;
import org.eclipse.sensinact.gateway.app.basic.logic.BetweenFunction;
import org.eclipse.sensinact.gateway.app.basic.logic.DoubleConditionFunction;
import org.eclipse.sensinact.gateway.app.basic.logic.SimpleConditionFunction;
@@ -33,16 +34,21 @@
import org.eclipse.sensinact.gateway.app.manager.json.AppFunction;
import org.eclipse.sensinact.gateway.common.bundle.Mediator;
import org.json.JSONObject;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
/**
- * @author Remi Druilhe
* @see PluginInstaller
*/
+@Component(immediate = true, service = PluginInstaller.class, property = {"plugin.name=BasicPlugin"})
public class BasicInstaller extends AbstractPlugin {
+
protected Mediator mediator;
- public BasicInstaller(Mediator mediator) {
- this.mediator = mediator;
+ @Activate
+ public void activate(ComponentContext context) {
+ this.mediator = new Mediator(context.getBundleContext());
}
/**
diff --git a/platform/sensinact-application/basic-plugin/src/main/java/org/eclipse/sensinact/gateway/app/basic/osgi/Activator.java b/platform/sensinact-application/basic-plugin/src/main/java/org/eclipse/sensinact/gateway/app/basic/osgi/Activator.java
deleted file mode 100644
index 3b5ac84..0000000
--- a/platform/sensinact-application/basic-plugin/src/main/java/org/eclipse/sensinact/gateway/app/basic/osgi/Activator.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2020 Kentyou.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
-* Kentyou - initial API and implementation
- */
-package org.eclipse.sensinact.gateway.app.basic.osgi;
-
-import org.eclipse.sensinact.gateway.app.api.plugin.PluginInstaller;
-import org.eclipse.sensinact.gateway.app.basic.installer.BasicInstaller;
-import org.eclipse.sensinact.gateway.common.bundle.AbstractActivator;
-import org.eclipse.sensinact.gateway.common.bundle.Mediator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-/**
- * @author Remi Druilhe
- * @see BundleActivator
- */
-public class Activator extends AbstractActivator<Mediator> {
- private static final String PLUGIN_NAME = "BasicPlugin";
- private ServiceRegistration basicInstallerRegistration;
-
- /**
- * @see BundleActivator#start(BundleContext)
- */
- public void doStart() throws Exception {
- Dictionary<String, String> installProperties = new Hashtable<String, String>();
- installProperties.put("plugin.name", PLUGIN_NAME);
- basicInstallerRegistration = super.mediator.getContext().registerService(PluginInstaller.class.getCanonicalName(), new BasicInstaller(super.mediator), installProperties);
- }
-
- /**
- * @see BundleActivator#stop(BundleContext)
- */
- public void doStop() throws Exception {
- this.basicInstallerRegistration.unregister();
- }
-
- /**
- * @inheritDoc
- * @see AbstractActivator#doInstantiate(BundleContext, int, FileOutputStream)
- */
- @Override
- public Mediator doInstantiate(BundleContext context) {
- return new Mediator(context);
- }
-}