From 97a7036929fc151f8675a388ea263692fbf3e78a Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Wed, 30 Sep 2020 11:19:07 +0200 Subject: [PATCH] Removed the need of PluginDeclaration class --- .../vremanagement/executor/json/SEMapper.java | 4 +- .../executor/persistence/Persistence.java | 56 ------------- .../persistence/PersistenceConnector.java | 82 ------------------- .../vremanagement/executor/plugin/Plugin.java | 69 +++++++++++++--- .../executor/plugin/PluginDeclaration.java | 67 --------------- .../plugin/PluginDeclarationImpl.java | 64 --------------- .../executor/plugin/PluginDefinition.java | 58 +++++++++++++ .../executor/plugin/PluginDefinitionImpl.java | 81 ++++++++++++++++++ .../executor/plugin/PluginStateEvolution.java | 25 ++---- .../executor/api/types/SerializationTest.java | 38 ++++----- .../plugin/PluginStateEvolutionTest.java | 27 +++--- 11 files changed, 236 insertions(+), 335 deletions(-) delete mode 100644 src/main/java/org/gcube/vremanagement/executor/persistence/Persistence.java delete mode 100644 src/main/java/org/gcube/vremanagement/executor/persistence/PersistenceConnector.java delete mode 100644 src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclaration.java delete mode 100644 src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclarationImpl.java create mode 100644 src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinition.java create mode 100644 src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinitionImpl.java diff --git a/src/main/java/org/gcube/vremanagement/executor/json/SEMapper.java b/src/main/java/org/gcube/vremanagement/executor/json/SEMapper.java index 2f50183..6e8ca2d 100644 --- a/src/main/java/org/gcube/vremanagement/executor/json/SEMapper.java +++ b/src/main/java/org/gcube/vremanagement/executor/json/SEMapper.java @@ -20,7 +20,7 @@ import org.gcube.com.fasterxml.jackson.databind.JsonMappingException; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.vremanagement.executor.api.types.LaunchParameter; import org.gcube.vremanagement.executor.api.types.Scheduling; -import org.gcube.vremanagement.executor.plugin.PluginDeclaration; +import org.gcube.vremanagement.executor.plugin.PluginDefinition; import org.gcube.vremanagement.executor.plugin.PluginStateEvolution; import org.gcube.vremanagement.executor.plugin.Ref; import org.gcube.vremanagement.executor.plugin.RunOn; @@ -54,7 +54,7 @@ public class SEMapper { mapper.registerSubtypes(RunOn.class); mapper.registerSubtypes(Ref.class); - mapper.registerSubtypes(PluginDeclaration.class); + mapper.registerSubtypes(PluginDefinition.class); mapper.registerSubtypes(PluginStateEvolution.class); mapper.registerSubtypes(LaunchParameter.class); diff --git a/src/main/java/org/gcube/vremanagement/executor/persistence/Persistence.java b/src/main/java/org/gcube/vremanagement/executor/persistence/Persistence.java deleted file mode 100644 index e18fdb1..0000000 --- a/src/main/java/org/gcube/vremanagement/executor/persistence/Persistence.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.gcube.vremanagement.executor.persistence; - -import java.util.UUID; - -import org.gcube.vremanagement.executor.plugin.Plugin; -import org.gcube.vremanagement.executor.plugin.PluginDeclaration; -import org.gcube.vremanagement.executor.plugin.PluginState; - -/** - * This class is used to persist the execution state - * @author Luca Frosini (ISTI - CNR) - */ -@Deprecated -public abstract class Persistence

{ - - protected final String name; - protected final P persistenceConnector; - protected final UUID uuid; - - /** - * Constructor - * @param persistenceConnector the {@link PersistenceConnector} which - * created and/or opened the connection to DB - * @param name the name get from {@link PluginDeclaration}) related to the - * running {@link Plugin} - * @param uuid the execution identifier - */ - @Deprecated - public Persistence(P persistenceConnector, String name, UUID uuid){ - this.name = name; - this.persistenceConnector = persistenceConnector; - this.uuid = uuid; - } - - - /** - * Persist the new state of plugin - * @param timestamp the time of the new {@link PluginState} - * @param pluginState the {@link PluginState} value - * @throws Exception if fails - */ - @Deprecated - public abstract void addEvolution(long timestamp, PluginState pluginState) - throws Exception; - - - /** - * @return the actual (or the last temporal) {@link PluginState} value - * @throws Exception if fails to retrieve the {@link PluginState} from DB - */ - @Deprecated - public PluginState getState() throws Exception { - return persistenceConnector.getLastPluginInstanceState(uuid); - } - -} diff --git a/src/main/java/org/gcube/vremanagement/executor/persistence/PersistenceConnector.java b/src/main/java/org/gcube/vremanagement/executor/persistence/PersistenceConnector.java deleted file mode 100644 index 4f8b9ec..0000000 --- a/src/main/java/org/gcube/vremanagement/executor/persistence/PersistenceConnector.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * - */ -package org.gcube.vremanagement.executor.persistence; - -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.gcube.vremanagement.executor.plugin.Plugin; -import org.gcube.vremanagement.executor.plugin.PluginState; -import org.gcube.vremanagement.executor.plugin.PluginStateNotification; - -/** - * Model the connector which create or open the connection to DB - * @author Luca Frosini (ISTI - CNR) - */ -@Deprecated -public abstract class PersistenceConnector extends PluginStateNotification { - - public PersistenceConnector(){ - super(new HashMap()); - } - - public PersistenceConnector(Map inputs){ - super(inputs); - } - - protected static PersistenceConnector persistenceConnector; - - /** - * @return the persistenceConnector - */ - public static PersistenceConnector getPersistenceConnector() { - return persistenceConnector; - } - - /** - * @param persistenceConnector the persistenceConnector to set - */ - public static void setPersistenceConnector( - PersistenceConnector persistenceConnector) { - PersistenceConnector.persistenceConnector = persistenceConnector; - } - - /** - * This constructor is used to provide a location where creating persistence - * files - * @param location directory where creating the DB file - */ - public PersistenceConnector(String location) { - this(); - } - - /** - * Close the connection to DB - * @throws Exception if fails - */ - public abstract void close() throws Exception; - - /** - * Retrieve the status of the iterationNumber (passed as parameter) of a running/run {@link Plugin} which is/was identified - * by the UUID passed as parameter - * @param uuid the execution identifier of the running/run {@link Plugin} - * @param iterationNumber the - * @return the actual/last {@link PluginState} of the Plugin - * @throws Exception if fails - */ - public abstract PluginState getPluginInstanceState(UUID uuid, int iterationNumber) - throws Exception; - /** - * Retrieve the status of the iterationNumber of the last running/run {@link Plugin} which is/was identified - * by the UUID passed as parameter - * @param uuid the execution identifier of the running/run {@link Plugin} - * @return the actual/last {@link PluginState} of the Plugin - * @throws Exception if fails - */ - public abstract PluginState getLastPluginInstanceState(UUID uuid) - throws Exception; - - -} diff --git a/src/main/java/org/gcube/vremanagement/executor/plugin/Plugin.java b/src/main/java/org/gcube/vremanagement/executor/plugin/Plugin.java index 719abf0..9e99a1e 100644 --- a/src/main/java/org/gcube/vremanagement/executor/plugin/Plugin.java +++ b/src/main/java/org/gcube/vremanagement/executor/plugin/Plugin.java @@ -1,23 +1,41 @@ package org.gcube.vremanagement.executor.plugin; +import java.io.IOException; +import java.io.InputStream; import java.util.Map; +import java.util.Properties; import java.util.UUID; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** - * This interface represent the contract for a plugin runnable by the executor. + * This class represent the contract for a plugin runnable by the executor. * @author Luca Frosini (ISTI - CNR) - * + * This class is deprecated use {@link ExecutorPlugin} instead */ -public abstract class Plugin { +public abstract class Plugin implements PluginDefinition { + + private static Logger logger = LoggerFactory.getLogger(Plugin.class); + + + public static final String PLUGIN_PROPERTIES_FILENAME = "plugin.properties"; + + public static final String GROUP_PROPERTY = "groupId"; + public static final String NAME_PROPERTY = "artifactId"; + public static final String VERSION_PROPERTY = "version"; + public static final String DESCRIPTION_PROPERTY = "description"; + + protected Properties properties; protected UUID uuid; protected int iterationNumber; - protected T pluginDeclaration; protected PercentageSetter percentageSetter; - public Plugin(T pluginDeclaration){ - this.pluginDeclaration = pluginDeclaration; + public Plugin(){ + logger.debug(String.format("Initializing %s", this.getClass().getSimpleName())); + this.percentageSetter = new PercentageSetter() { @SuppressWarnings("unused") @@ -29,13 +47,42 @@ public abstract class Plugin { } }; + + properties = new Properties(); + + try { + InputStream input = getClass().getClassLoader().getResourceAsStream(PLUGIN_PROPERTIES_FILENAME); + properties.load(input); + } catch(IOException e) { + throw new RuntimeException(e); + } + + logger.debug(String.format("%s initialized", this.getClass().getSimpleName())); } - /** - * @return the pluginDeclaration - */ - public T getPluginDeclaration() { - return pluginDeclaration; + @Override + public String getGroup() { + return properties.getProperty(GROUP_PROPERTY); + } + + @Override + public String getName() { + return properties.getProperty(NAME_PROPERTY); + } + + @Override + public String getVersion() { + return properties.getProperty(VERSION_PROPERTY); + } + + @Override + public String getDescription() { + return properties.getProperty(DESCRIPTION_PROPERTY); + } + + @Override + public Map getSupportedCapabilities() { + return null; } /** diff --git a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclaration.java b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclaration.java deleted file mode 100644 index 6ebce32..0000000 --- a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclaration.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * - */ -package org.gcube.vremanagement.executor.plugin; - -import java.util.Map; - -import org.gcube.com.fasterxml.jackson.annotation.JsonIgnore; -import org.gcube.com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; -import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import org.gcube.vremanagement.executor.json.SEMapper; - -/** - * @author Luca Frosini (ISTI - CNR) - * - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property=SEMapper.CLASS_PROPERTY) -@JsonDeserialize(as=PluginDeclarationImpl.class) -@JsonTypeName(value="PluginDeclaration") -public interface PluginDeclaration { - - /** - * This method is used by executor to ask to Plugin to initialize itself. - * In some cases the plugin does not need the initialization. In that case - * the plugin can just implement an empty method. - */ - public void init() throws Exception; - - /** - * This method is used by executor to retrieve the name of the Plugin - * @return the name of the plugin used by the Executor to refer to the - * plugin implementation class. - */ - public String getName(); - - /** - * This method is used by executor to retrieve an human oriented description - * and it will be published on the ServiceEndpoint created by the executor - * @return the plugin description. - */ - public String getDescription(); - - /** - * This method is used by executor to retrieve the plugin version. - * It will be published on the ServiceEndpoint created by the executor - * @return the plugin version - */ - public String getVersion(); - - /** - * This method is used by the Executor to get a key-value {@link Map} - * to be published on IS (on Generic Resource), so a client which want to - * launch a Plugin only under certain condition can query the Generic - * Resource in the proper way to obtain its own filtered list. - * @return the {@link Map} with the supported capabilities - */ - public Map getSupportedCapabilities(); - - /** - * Used to retrieve the class which run the plugin - * @return the class which run the plugin - */ - @JsonIgnore - public Class> getPluginImplementation(); - -} diff --git a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclarationImpl.java b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclarationImpl.java deleted file mode 100644 index b67a369..0000000 --- a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDeclarationImpl.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * - */ -package org.gcube.vremanagement.executor.plugin; - -import java.util.HashMap; -import java.util.Map; - -import org.gcube.vremanagement.executor.json.SEMapper; - -/** - * @author Luca Frosini (ISTI - CNR) - */ -class PluginDeclarationImpl implements PluginDeclaration { - - protected String name; - protected String description; - protected String version; - protected Map supportedCapabilities; - - protected PluginDeclarationImpl() { - supportedCapabilities = new HashMap(); - } - - @Override - public void init() throws Exception { - } - - @Override - public String getName() { - return name; - } - - @Override - public String getDescription() { - return description; - } - - @Override - public String getVersion() { - return version; - } - - @Override - public Map getSupportedCapabilities() { - return supportedCapabilities; - } - - @Override - public Class> getPluginImplementation() { - return null; - } - - @Override - public String toString() { - try { - return SEMapper.getInstance().marshal(this); - } catch(Exception e) { - return "PluginDeclarationImpl [name=" + name + ", description=" + description + ", version=" + version - + ", supportedCapabilities=" + supportedCapabilities + "]"; - } - } - -} diff --git a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinition.java b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinition.java new file mode 100644 index 0000000..47ac107 --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinition.java @@ -0,0 +1,58 @@ +/** + * + */ +package org.gcube.vremanagement.executor.plugin; + +import java.util.Map; + +import org.gcube.com.fasterxml.jackson.annotation.JsonTypeInfo; +import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; +import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import org.gcube.vremanagement.executor.json.SEMapper; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property=SEMapper.CLASS_PROPERTY) +@JsonDeserialize(as=PluginDefinitionImpl.class) +@JsonTypeName(value="PluginDefinition") +public interface PluginDefinition { + + /** + * This method is used by executor to retrieve the Plugin group + * It will be published on the IS instance created by the executor + * @return the plugin group. + */ + public String getGroup(); + + /** + * This method is used by executor to retrieve the Plugin name + * It will be published on the IS instance created by the executor + * @return the plugin name. + */ + public String getName(); + + /** + * This method is used by executor to retrieve the plugin version. + * It will be published on the IS instance created by the executor + * @return the plugin version. + */ + public String getVersion(); + + /** + * This method is used by executor to retrieve the Plugin human oriented description. + * It will be published on the IS instance created by the executor + * @return the plugin description. + */ + public String getDescription(); + + /** + * This method is used by the Executor to get a key-value {@link Map} + * to be published on IS , so a client which want to + * launch a Plugin only under certain condition can query the IS + * to obtain its own filtered list. + * @return the {@link Map} with the supported capabilities + */ + public Map getSupportedCapabilities(); + +} diff --git a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinitionImpl.java b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinitionImpl.java new file mode 100644 index 0000000..7490135 --- /dev/null +++ b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginDefinitionImpl.java @@ -0,0 +1,81 @@ +/** + * + */ +package org.gcube.vremanagement.executor.plugin; + +import java.util.Map; + +import org.gcube.vremanagement.executor.json.SEMapper; + +/** + * @author Luca Frosini (ISTI - CNR) + * Used for JSON serialization only + */ +class PluginDefinitionImpl implements PluginDefinition { + + protected String group; + protected String name; + protected String version; + protected String description; + protected Map supportedCapabilities; + + protected PluginDefinitionImpl() {} + + @Override + public String getGroup() { + return group; + } + + public void setGroup(String group) { + this.group = group; + } + + @Override + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + @Override + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public Map getSupportedCapabilities() { + return supportedCapabilities; + } + + public void setSupportedCapabilities(Map supportedCapabilities) { + this.supportedCapabilities = supportedCapabilities; + } + + @Override + public String toString() { + try { + return SEMapper.getInstance().marshal(this); + } catch(Exception e) { + return "PluginDefinitionImpl [group=" + group + ", name=" + name + ", version=" + version + ", description=" + + description + "]"; + } + } + + + +} diff --git a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolution.java b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolution.java index 87d2069..bd655c0 100644 --- a/src/main/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolution.java +++ b/src/main/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolution.java @@ -5,8 +5,6 @@ package org.gcube.vremanagement.executor.plugin; import java.util.UUID; -import javax.xml.bind.annotation.XmlElement; - import org.gcube.com.fasterxml.jackson.annotation.JsonGetter; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeInfo; import org.gcube.vremanagement.executor.exception.InvalidPluginStateEvolutionException; @@ -19,27 +17,20 @@ import org.gcube.vremanagement.executor.json.SEMapper; @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property=SEMapper.CLASS_PROPERTY) public class PluginStateEvolution { - @XmlElement protected UUID uuid; - @XmlElement protected int iteration; - @XmlElement protected long timestamp; - protected PluginDeclaration pluginDeclaration; + protected PluginDefinition pluginDefinition; - @XmlElement protected PluginState pluginState; - @XmlElement protected int percentage; - @XmlElement protected RunOn runOn; - public PluginStateEvolution(){ } @@ -48,17 +39,17 @@ public class PluginStateEvolution { * * @param uuid the UUID which identify the current execution * @param timestamp the time of the new {@link PluginState} - * @param pluginDeclaration the pluginDeclaration + * @param pluginDefinition the pluginDeclaration * @param pluginState the {@link PluginState} value * @throws Exception if fails */ public PluginStateEvolution(UUID uuid, int iteration, long timestamp, - PluginDeclaration pluginDeclaration, + PluginDefinition pluginDefinition, PluginState pluginState, Integer percentage) throws InvalidPluginStateEvolutionException { this.uuid = uuid; this.iteration = iteration; this.timestamp = timestamp; - this.pluginDeclaration = pluginDeclaration; + this.pluginDefinition = pluginDefinition; this.pluginState = pluginState; switch (pluginState) { case CREATED: @@ -100,8 +91,8 @@ public class PluginStateEvolution { * @return the pluginDeclaration */ @JsonGetter - public PluginDeclaration getPluginDeclaration() { - return pluginDeclaration; + public PluginDefinition getPluginDefinition() { + return pluginDefinition; } /** @@ -140,14 +131,14 @@ public class PluginStateEvolution { + "uuid:%s," + "iteration:%d," + "timestamp:%d," - + "pluginDeclaration:%s," + + "pluginDefinition:%s," + "pluginState:%s," + "percentage:%d" + "}", uuid, iteration, timestamp, - pluginDeclaration, + pluginDefinition, pluginState, percentage); } diff --git a/src/test/java/org/gcube/vremanagement/executor/api/types/SerializationTest.java b/src/test/java/org/gcube/vremanagement/executor/api/types/SerializationTest.java index ee4f1bd..ca32ee8 100644 --- a/src/test/java/org/gcube/vremanagement/executor/api/types/SerializationTest.java +++ b/src/test/java/org/gcube/vremanagement/executor/api/types/SerializationTest.java @@ -23,8 +23,7 @@ import org.gcube.com.fasterxml.jackson.core.JsonParseException; import org.gcube.com.fasterxml.jackson.databind.JsonMappingException; import org.gcube.vremanagement.executor.exception.InvalidPluginStateEvolutionException; import org.gcube.vremanagement.executor.json.SEMapper; -import org.gcube.vremanagement.executor.plugin.Plugin; -import org.gcube.vremanagement.executor.plugin.PluginDeclaration; +import org.gcube.vremanagement.executor.plugin.PluginDefinition; import org.gcube.vremanagement.executor.plugin.PluginState; import org.gcube.vremanagement.executor.plugin.PluginStateEvolution; import org.junit.Test; @@ -80,19 +79,16 @@ public class SerializationTest { @Test public void testPluginEvolutionState() throws InvalidPluginStateEvolutionException, JAXBException { - PluginDeclaration pluginDeclaration = new PluginDeclaration(){ - + PluginDefinition pluginDeclaration = new PluginDefinition() { + @Override - public void init() throws Exception {} - + public String getGroup() { + return "SmartExecutorGroup"; + } + @Override public String getName() { - return PluginDeclaration.class.getSimpleName(); - } - - @Override - public String getDescription() { - return PluginDeclaration.class.getSimpleName() + " Description"; + return PluginDefinition.class.getSimpleName(); } @Override @@ -100,23 +96,23 @@ public class SerializationTest { return "1.0.0"; } + @Override + public String getDescription() { + return PluginDefinition.class.getSimpleName() + " Description"; + } + @Override public Map getSupportedCapabilities() { return new HashMap(); } - @Override - public Class> getPluginImplementation() { - return null; - } - @Override public String toString(){ return String.format("%s :{ %s - %s - %s }", - PluginDeclaration.class.getSimpleName(), + PluginDefinition.class.getSimpleName(), getName(), getVersion(), getDescription()); } - + }; @@ -145,7 +141,7 @@ public class SerializationTest { @Test public void testUnmarshallPluginList() throws JsonParseException, JsonMappingException, IOException { String pluginList = "[{\"@class\":\"PluginDeclaration\",\"description\":\"Hello World Description\",\"supportedCapabilities\":{\"FakeKey\":\"FakeValue\"},\"version\":\"1.1.2\",\"name\":\"HelloWorld\"}]"; - List list = SEMapper.getInstance().unmarshalList(PluginDeclaration.class, pluginList); - logger.debug("{}", SEMapper.getInstance().marshal(PluginDeclaration.class, list)); + List list = SEMapper.getInstance().unmarshalList(PluginDefinition.class, pluginList); + logger.debug("{}", SEMapper.getInstance().marshal(PluginDefinition.class, list)); } } diff --git a/src/test/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolutionTest.java b/src/test/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolutionTest.java index c60a967..6e38c11 100644 --- a/src/test/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolutionTest.java +++ b/src/test/java/org/gcube/vremanagement/executor/plugin/PluginStateEvolutionTest.java @@ -26,19 +26,16 @@ public class PluginStateEvolutionTest { UUID uuid = UUID.randomUUID(); int iteration = 2; long timestamp = Calendar.getInstance().getTimeInMillis(); - PluginDeclaration pluginDeclaration = new PluginDeclaration(){ + PluginDefinition pluginDeclaration = new PluginDefinition(){ @Override - public void init() throws Exception {} - + public String getGroup() { + return "SmartExecutorGroup"; + } + @Override public String getName() { - return PluginDeclaration.class.getSimpleName(); - } - - @Override - public String getDescription() { - return PluginDeclaration.class.getSimpleName() + " Description"; + return PluginDefinition.class.getSimpleName(); } @Override @@ -46,20 +43,20 @@ public class PluginStateEvolutionTest { return "1.0.0"; } + @Override + public String getDescription() { + return PluginDefinition.class.getSimpleName() + " Description"; + } + @Override public Map getSupportedCapabilities() { return new HashMap(); } - @Override - public Class> getPluginImplementation() { - return null; - } - @Override public String toString(){ return String.format("%s :{ %s - %s - %s }", - PluginDeclaration.class.getSimpleName(), + PluginDefinition.class.getSimpleName(), getName(), getVersion(), getDescription()); }