Fixing service

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/vre-management/smart-executor@111784 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Luca Frosini 2015-02-06 16:53:33 +00:00
parent 8b3fc0305b
commit 3693e6b0c5
1 changed files with 19 additions and 8 deletions

View File

@ -21,6 +21,7 @@ import org.gcube.common.resources.gcore.ServiceEndpoint;
import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint;
import org.gcube.common.resources.gcore.ServiceEndpoint.Profile;
import org.gcube.common.resources.gcore.ServiceEndpoint.Property;
import org.gcube.common.resources.gcore.ServiceEndpoint.Runtime;
import org.gcube.common.resources.gcore.common.Platform;
import org.gcube.common.resources.gcore.utils.Group;
import org.gcube.informationsystem.publisher.RegistryPublisherFactory;
@ -29,7 +30,6 @@ import org.gcube.informationsystem.publisher.exception.RegistryNotFoundException
import org.gcube.smartgears.context.application.ApplicationContext;
import org.gcube.smartgears.handlers.application.ApplicationLifecycleEvent;
import org.gcube.smartgears.handlers.application.ApplicationLifecycleHandler;
import org.gcube.vremanagement.executor.api.Executor;
import org.gcube.vremanagement.executor.persistence.JDBCPersistenceConnector;
import org.gcube.vremanagement.executor.plugin.Plugin;
import org.gcube.vremanagement.executor.plugin.PluginDeclaration;
@ -158,11 +158,19 @@ public class ExecutorInitalizator extends ApplicationLifecycleHandler {
logger.debug("Creating ServiceEndpoint to publish on IS available plugins and their own supported capabilities");
ServiceEndpoint serviceEndpoint = new ServiceEndpoint();
Profile profile = serviceEndpoint.newProfile();
profile.category(Executor.SERVICE_NAME);
profile.name("SmartExecutor");
profile.description("Smart Executor Service");
profile.category(ctx.configuration().serviceClass());
profile.name(ctx.configuration().name());
profile.version(ctx.configuration().version());
profile.description(ctx.configuration().description());
Platform platform = profile.newPlatform();
platform.name("SmartExecutor");
platform.name(ctx.container().configuration().hostname());
short version = 1;
platform.version(version);
Runtime runtime = profile.newRuntime();
runtime.hostedOn(ctx.container().configuration().hostname());
runtime.status(ctx.configuration().mode().toString());
Group<AccessPoint> accessPoints = profile.accessPoints();
Map<String, PluginDeclaration> availablePlugins = pluginManager.getAvailablePlugins();
@ -174,9 +182,12 @@ public class ExecutorInitalizator extends ApplicationLifecycleHandler {
PluginDeclaration pluginDeclaration = availablePlugins.get(pluginName);
accessPointElement.description(pluginDeclaration.getDescription());
accessPointElement.description(pluginDeclaration.getVersion());
Group<Property> properties = accessPointElement.properties();
Property propertyVersionElement = new Property();
propertyVersionElement.nameAndValue("Version", pluginDeclaration.getVersion());
properties.add(propertyVersionElement);
Map<String, String> pluginCapablities = pluginDeclaration.getSupportedCapabilities();
for(String capabilityName : pluginCapablities.keySet()){
@ -221,13 +232,13 @@ public class ExecutorInitalizator extends ApplicationLifecycleHandler {
logger.debug("Smart Executor is Starting");
logger.debug("-------------------------------------------------------");
ctx = applicationLifecycleEventStart.context();
pool = Executors.newCachedThreadPool();
serviceEndpoint = createServiceEndpoint();
pluginInstances = new HashMap<UUID, PluginThread<Plugin<? extends PluginDeclaration>>>();
ctx = applicationLifecycleEventStart.context();
// TODO Before publishing the new Resource check if on IS there is
// an old published ServiceEndpoint resource that where not unpublished
// correctly