From 625ed37d888ff03cde1644cfa8f3a251416c5af5 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 26 Oct 2020 14:25:54 +0100 Subject: [PATCH] Fixed handlers --- .../resourceregistry/EServiceHandler.java | 10 +++++----- .../resourcemanager/EServiceManager.java | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gcube/smartgears/handler/resourceregistry/EServiceHandler.java b/src/main/java/org/gcube/smartgears/handler/resourceregistry/EServiceHandler.java index 439b5c0..6a5f8d7 100644 --- a/src/main/java/org/gcube/smartgears/handler/resourceregistry/EServiceHandler.java +++ b/src/main/java/org/gcube/smartgears/handler/resourceregistry/EServiceHandler.java @@ -111,8 +111,7 @@ public class EServiceHandler extends ApplicationLifecycleHandler { applicationContext.events().subscribe(new Object() { - // @Observes({ activation, stop, failure }) - @Observes({ activation }) + @Observes({ activation, stop, failure }) void onChanged(ApplicationLifecycle lc) { ClassLoader contextCL = Thread.currentThread().getContextClassLoader(); String previousToken = SecurityTokenProvider.instance.get(); @@ -129,9 +128,9 @@ public class EServiceHandler extends ApplicationLifecycleHandler { ContextUtility.setContextFromToken(previousToken); Thread.currentThread().setContextClassLoader(contextCL); } - } - + + /* @Observes({ stop, failure }) void onStop(ApplicationLifecycle lc) { ClassLoader contextCL = Thread.currentThread().getContextClassLoader(); @@ -151,7 +150,8 @@ public class EServiceHandler extends ApplicationLifecycleHandler { } } - + */ + @Observes(value = addToContext) void addTo(String token) { ClassLoader contextCL = Thread.currentThread().getContextClassLoader(); diff --git a/src/main/java/org/gcube/smartgears/handler/resourceregistry/resourcemanager/EServiceManager.java b/src/main/java/org/gcube/smartgears/handler/resourceregistry/resourcemanager/EServiceManager.java index 1251a03..261e63d 100644 --- a/src/main/java/org/gcube/smartgears/handler/resourceregistry/resourcemanager/EServiceManager.java +++ b/src/main/java/org/gcube/smartgears/handler/resourceregistry/resourcemanager/EServiceManager.java @@ -181,6 +181,16 @@ public class EServiceManager { try { resourceRegistryClient.exists(EService.class, eServiceUUID); eService = resourceRegistryClient.getInstance(EService.class, eServiceUUID); + serviceStateFacet = eService.getFacets(ServiceStateFacet.class).get(0); + if(serviceStateFacet==null) { + serviceStateFacet = new ServiceStateFacetImpl(); + String state = getState(); + serviceStateFacet.setValue(state); + eService.addFacet(serviceStateFacet); + resourceRegistryPublisher.update(eService); + }else{ + updateServiceStateFacet(); + } } catch (NotFoundException e) { eService = instantiateEService(); createActivatesRelation(eService); @@ -196,6 +206,16 @@ public class EServiceManager { // already be in the context due to propagation constraint. createActivatesRelation(eService); } + serviceStateFacet = eService.getFacets(ServiceStateFacet.class).get(0); + if(serviceStateFacet==null) { + serviceStateFacet = new ServiceStateFacetImpl(); + String state = getState(); + serviceStateFacet.setValue(state); + eService.addFacet(serviceStateFacet); + resourceRegistryPublisher.update(eService); + }else{ + updateServiceStateFacet(); + } } catch (ResourceRegistryException e) { throw e; }