diff --git a/.classpath b/.classpath index f0df118..cc3a6f0 100644 --- a/.classpath +++ b/.classpath @@ -2,7 +2,7 @@ - + diff --git a/etc/deploy-jndi-config.xml b/etc/deploy-jndi-config.xml index 5b5d585..71fec56 100644 --- a/etc/deploy-jndi-config.xml +++ b/etc/deploy-jndi-config.xml @@ -55,7 +55,7 @@ - + @@ -65,11 +65,11 @@ resourceClass - org.gcube.informationsystem.registry.impl.core.ProfileResource + org.gcube.informationsystem.registry.impl.state.ProfileResource persistenceDelegateClass - org.gcube.informationsystem.registry.impl.core.RegistryPersistenceDelegate + org.gcube.informationsystem.registry.impl.persistence.RegistryPersistenceDelegate sweeperDelay @@ -118,21 +118,19 @@ - - + - factory org.globus.wsrf.jndi.BeanFactory resourceClass - org.gcube.informationsystem.registry.impl.core.RegistryFactoryResource + org.gcube.informationsystem.registry.impl.state.RegistryFactoryResource persistenceDelegateClass - org.gcube.informationsystem.registry.impl.core.RegistryFactoryPersistenceDelegate + org.gcube.informationsystem.registry.impl.persistence.RegistryFactoryPersistenceDelegate diff --git a/etc/deploy-server.wsdd b/etc/deploy-server.wsdd index fad18ff..4bf7ed1 100644 --- a/etc/deploy-server.wsdd +++ b/etc/deploy-server.wsdd @@ -6,7 +6,7 @@ xmlns:aggr="http://mds.globus.org/aggregator/types"> - + share/schema/org.gcube.informationsystem.registry/Registry_service.wsdl - + share/schema/org.gcube.informationsystem.registry/RegistryFactory_service.wsdl 1.0
- IS-Registry-Service + IS-Registry-service 1.0 - - + + + + + + InformationSystem + IS-Registry + + IS-Registry-stubs + 1.0 + + false + + org.gcube.informationsystem.registry.gar gcube/informationsystem/registry/registryFactory @@ -34,7 +46,7 @@ - + text library diff --git a/schema/Registry.wsdl b/schema/Registry.wsdl index daaa96b..0d782c3 100644 --- a/schema/Registry.wsdl +++ b/schema/Registry.wsdl @@ -70,10 +70,10 @@ - + - + @@ -91,9 +91,9 @@ provider:GCUBEProvider" wsrp:ResourceProperties="tns:ProfileResourceProperties"> - - - + + + diff --git a/src/org/gcube/informationsystem/registry/impl/Registry.java b/src/org/gcube/informationsystem/registry/impl/Registry.java new file mode 100644 index 0000000..72b85e4 --- /dev/null +++ b/src/org/gcube/informationsystem/registry/impl/Registry.java @@ -0,0 +1,34 @@ +package org.gcube.informationsystem.registry.impl; + +import org.apache.axis.utils.XMLUtils; +import org.gcube.common.core.faults.GCUBEFault; +import org.gcube.informationsystem.registry.impl.contexts.ProfileContext; +import org.gcube.informationsystem.registry.impl.state.ProfileResource; +import org.gcube.informationsystem.registry.stubs.GetProfileString; +import org.globus.wsrf.ResourceException; + + +/** + * Implementation of the Registry portType + * + * @author Manuele Simi (CNR) + * + */ +public class Registry { + + /** + * Gets a string representation of the profile + * @param voidType + * @return a string representation of the profile + * @throws GCUBEFault + */ + public String getProfileAsString(GetProfileString voidType) throws GCUBEFault{ + + try { + return XMLUtils.DocumentToString(((ProfileResource)ProfileContext.getContext().getWSHome().find()).getProfile()); + } catch (ResourceException e) { + e.printStackTrace(); + throw new GCUBEFault(); + } + } +} diff --git a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactory.java b/src/org/gcube/informationsystem/registry/impl/RegistryFactory.java similarity index 95% rename from src/org/gcube/informationsystem/registry/impl/core/RegistryFactory.java rename to src/org/gcube/informationsystem/registry/impl/RegistryFactory.java index 1daea05..dfe5be6 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactory.java +++ b/src/org/gcube/informationsystem/registry/impl/RegistryFactory.java @@ -1,4 +1,4 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl; import java.io.StringReader; import java.io.StringWriter; @@ -30,6 +30,10 @@ import org.gcube.common.core.resources.GCUBEVRE; import org.gcube.common.core.scope.GCUBEScope; import org.gcube.common.core.state.GCUBEWSResourceKey; import org.gcube.common.core.utils.logging.GCUBELog; +import org.gcube.informationsystem.registry.impl.contexts.ProfileContext; +import org.gcube.informationsystem.registry.impl.contexts.ServiceContext; +import org.gcube.informationsystem.registry.impl.state.ProfileResource; +import org.gcube.informationsystem.registry.impl.state.RegistryFactoryResource; import org.gcube.informationsystem.registry.impl.util.ProfileManager; import org.gcube.informationsystem.registry.impl.util.RegistryUtil; import org.gcube.informationsystem.registry.stubs.CreateResourceMessage; @@ -52,9 +56,9 @@ import org.oasis.wsrf.lifetime.Destroy; /** - * Registry Factory implementation + * Implementation of the Registry Factory portType * - * @author Andrea Manzi, Manuele SImi (ISTI-CNR) + * @author Andrea Manzi, Manuele Simi (ISTI-CNR) * */ public class RegistryFactory extends GCUBEStartupPortType{ @@ -94,7 +98,7 @@ public class RegistryFactory extends GCUBEStartupPortType{ * * */ - public enum OperationType {create,update,destroy}; + enum OperationType {create,update,destroy}; /** * Map of registration to Notification @@ -102,7 +106,7 @@ public class RegistryFactory extends GCUBEStartupPortType{ public static List notificationMap = Collections.synchronizedList(new ArrayList()); /** the key used to label the Factory Resource */ - protected static final String NOTIFICATOR_RESOURCE_KEY = "RegistryResource"; + public static final String NOTIFICATOR_RESOURCE_KEY = "RegistryResource"; @Override protected GCUBEServiceContext getServiceContext() { @@ -134,10 +138,10 @@ public class RegistryFactory extends GCUBEStartupPortType{ /** * - * Creates a GCUBEResource + * Creates a new GCUBEResource's profile manager * * @param inputMessage - * @return + * @return the profile as string * @throws SchemaValidationFault * @throws RemoteException * @throws ProfileAlreadyRegisteredFault diff --git a/src/org/gcube/informationsystem/registry/impl/core/FactoryContext.java b/src/org/gcube/informationsystem/registry/impl/contexts/FactoryContext.java similarity index 94% rename from src/org/gcube/informationsystem/registry/impl/core/FactoryContext.java rename to src/org/gcube/informationsystem/registry/impl/contexts/FactoryContext.java index 1e7df48..5d8458f 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/FactoryContext.java +++ b/src/org/gcube/informationsystem/registry/impl/contexts/FactoryContext.java @@ -1,4 +1,4 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.contexts; import org.gcube.common.core.contexts.GCUBEServiceContext; import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; diff --git a/src/org/gcube/informationsystem/registry/impl/core/ProfileContext.java b/src/org/gcube/informationsystem/registry/impl/contexts/ProfileContext.java similarity index 93% rename from src/org/gcube/informationsystem/registry/impl/core/ProfileContext.java rename to src/org/gcube/informationsystem/registry/impl/contexts/ProfileContext.java index 010b4f9..05b036e 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/ProfileContext.java +++ b/src/org/gcube/informationsystem/registry/impl/contexts/ProfileContext.java @@ -1,4 +1,4 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.contexts; import org.gcube.common.core.contexts.GCUBEServiceContext; import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; diff --git a/src/org/gcube/informationsystem/registry/impl/core/ServiceContext.java b/src/org/gcube/informationsystem/registry/impl/contexts/ServiceContext.java similarity index 98% rename from src/org/gcube/informationsystem/registry/impl/core/ServiceContext.java rename to src/org/gcube/informationsystem/registry/impl/contexts/ServiceContext.java index 2370a79..137d0d7 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/ServiceContext.java +++ b/src/org/gcube/informationsystem/registry/impl/contexts/ServiceContext.java @@ -1,4 +1,4 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.contexts; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -18,7 +18,9 @@ import org.gcube.common.core.resources.GCUBERunningInstance; import org.gcube.common.core.scope.GCUBEScope; import org.gcube.common.core.utils.handlers.GCUBEHandler; import org.gcube.common.core.utils.handlers.GCUBEScheduledHandler; +import org.gcube.informationsystem.registry.impl.RegistryFactory; import org.gcube.informationsystem.registry.impl.core.RegistryConfiguration.ROOT_SERVICES; +import org.gcube.informationsystem.registry.impl.state.RegistryFactoryResource; import org.globus.mds.servicegroup.client.ServiceGroupRegistrationParameters; import org.globus.wsrf.encoding.ObjectDeserializer; import org.globus.wsrf.utils.XmlUtils; diff --git a/src/org/gcube/informationsystem/registry/impl/core/Registry.java b/src/org/gcube/informationsystem/registry/impl/core/Registry.java deleted file mode 100644 index ef11e51..0000000 --- a/src/org/gcube/informationsystem/registry/impl/core/Registry.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import org.apache.axis.utils.XMLUtils; -import org.gcube.common.core.faults.GCUBEFault; -import org.gcube.informationsystem.registry.impl.core.ProfileResource; -import org.gcube.informationsystem.registry.stubs.GetProfileString; -import org.globus.wsrf.ResourceException; - - -public class Registry { - - public String getProfileString(GetProfileString voidType) throws GCUBEFault{ - - try { - return XMLUtils.DocumentToString(((ProfileResource)ProfileContext.getContext().getWSHome().find()).getProfile()); - } catch (ResourceException e) { - e.printStackTrace(); - throw new GCUBEFault(); - } - } -} diff --git a/src/org/gcube/informationsystem/registry/impl/core/RegistryConfiguration.java b/src/org/gcube/informationsystem/registry/impl/core/RegistryConfiguration.java index 863a47f..faf43e8 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/RegistryConfiguration.java +++ b/src/org/gcube/informationsystem/registry/impl/core/RegistryConfiguration.java @@ -13,12 +13,12 @@ public class RegistryConfiguration { /** The root service to take care at service's startup */ public static enum ROOT_SERVICES { - ISIC() {String getClazz() {return "InformationSystem";} String getName() {return "IS-IC";}}, - ISNOTIFIER() {String getClazz() {return "InformationSystem";} String getName() {return "IS-Notifier";}}, - GHNMANAGER() {String getClazz() {return "VREManagement";} String getName() {return "GHNManager";}}; + ISIC() {public String getClazz() {return "InformationSystem";} public String getName() {return "IS-IC";}}, + ISNOTIFIER() {public String getClazz() {return "InformationSystem";} public String getName() {return "IS-Notifier";}}, + GHNMANAGER() {public String getClazz() {return "VREManagement";} public String getName() {return "GHNManager";}}; - abstract String getName(); - abstract String getClazz(); + abstract public String getName(); + abstract public String getClazz(); } /** diff --git a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryPersistenceDelegate.java b/src/org/gcube/informationsystem/registry/impl/persistence/RegistryFactoryPersistenceDelegate.java similarity index 94% rename from src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryPersistenceDelegate.java rename to src/org/gcube/informationsystem/registry/impl/persistence/RegistryFactoryPersistenceDelegate.java index 81991a7..732faba 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryPersistenceDelegate.java +++ b/src/org/gcube/informationsystem/registry/impl/persistence/RegistryFactoryPersistenceDelegate.java @@ -1,9 +1,10 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.persistence; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.gcube.common.core.persistence.GCUBEWSFilePersistenceDelegate; +import org.gcube.informationsystem.registry.impl.state.RegistryFactoryResource; import org.gcube.informationsystem.registry.stubs.RegistryProperty; import org.globus.wsrf.utils.SubscriptionPersistenceUtils; diff --git a/src/org/gcube/informationsystem/registry/impl/core/RegistryPersistenceDelegate.java b/src/org/gcube/informationsystem/registry/impl/persistence/RegistryPersistenceDelegate.java similarity index 83% rename from src/org/gcube/informationsystem/registry/impl/core/RegistryPersistenceDelegate.java rename to src/org/gcube/informationsystem/registry/impl/persistence/RegistryPersistenceDelegate.java index 2724809..92b17cb 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/RegistryPersistenceDelegate.java +++ b/src/org/gcube/informationsystem/registry/impl/persistence/RegistryPersistenceDelegate.java @@ -1,8 +1,9 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.persistence; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.gcube.common.core.persistence.GCUBEWSFilePersistenceDelegate; +import org.gcube.informationsystem.registry.impl.state.ProfileResource; import org.w3c.dom.Document; public class RegistryPersistenceDelegate extends GCUBEWSFilePersistenceDelegate { diff --git a/src/org/gcube/informationsystem/registry/impl/core/ProfileResource.java b/src/org/gcube/informationsystem/registry/impl/state/ProfileResource.java similarity index 95% rename from src/org/gcube/informationsystem/registry/impl/core/ProfileResource.java rename to src/org/gcube/informationsystem/registry/impl/state/ProfileResource.java index 36286b8..68340e0 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/ProfileResource.java +++ b/src/org/gcube/informationsystem/registry/impl/state/ProfileResource.java @@ -1,4 +1,4 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.state; import java.io.StringReader; import java.io.StringWriter; @@ -18,6 +18,8 @@ import org.gcube.common.core.resources.GCUBERunningInstance; import org.gcube.common.core.resources.GCUBEService; import org.gcube.common.core.state.GCUBEWSResource; import org.gcube.common.core.utils.logging.GCUBELog; +import org.gcube.informationsystem.registry.impl.RegistryFactory; +import org.gcube.informationsystem.registry.impl.contexts.ServiceContext; import org.globus.wsrf.ResourceException; import org.w3c.dom.Document; import org.xml.sax.InputSource; @@ -189,7 +191,7 @@ public class ProfileResource extends GCUBEWSResource { } - protected void removeProfile() throws ResourceException { + public void removeProfile() throws ResourceException { this.getPersistenceDelegate().remove(this); } diff --git a/src/org/gcube/informationsystem/registry/impl/core/ProfileResourceHome.java b/src/org/gcube/informationsystem/registry/impl/state/ProfileResourceHome.java similarity index 68% rename from src/org/gcube/informationsystem/registry/impl/core/ProfileResourceHome.java rename to src/org/gcube/informationsystem/registry/impl/state/ProfileResourceHome.java index 1fa1d9a..0f5b863 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/ProfileResourceHome.java +++ b/src/org/gcube/informationsystem/registry/impl/state/ProfileResourceHome.java @@ -1,8 +1,9 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.state; import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; import org.gcube.common.core.state.GCUBEWSHome; +import org.gcube.informationsystem.registry.impl.contexts.ProfileContext; public class ProfileResourceHome extends GCUBEWSHome { diff --git a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResource.java b/src/org/gcube/informationsystem/registry/impl/state/RegistryFactoryResource.java similarity index 99% rename from src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResource.java rename to src/org/gcube/informationsystem/registry/impl/state/RegistryFactoryResource.java index f35c3f0..0e113e6 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResource.java +++ b/src/org/gcube/informationsystem/registry/impl/state/RegistryFactoryResource.java @@ -1,4 +1,4 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.state; import java.util.ArrayList; diff --git a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResourceHome.java b/src/org/gcube/informationsystem/registry/impl/state/RegistryFactoryResourceHome.java similarity index 68% rename from src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResourceHome.java rename to src/org/gcube/informationsystem/registry/impl/state/RegistryFactoryResourceHome.java index 2af0b51..700e1a3 100644 --- a/src/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResourceHome.java +++ b/src/org/gcube/informationsystem/registry/impl/state/RegistryFactoryResourceHome.java @@ -1,7 +1,8 @@ -package org.gcube.informationsystem.registry.impl.core; +package org.gcube.informationsystem.registry.impl.state; import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; import org.gcube.common.core.state.GCUBEWSHome; +import org.gcube.informationsystem.registry.impl.contexts.FactoryContext; public class RegistryFactoryResourceHome extends GCUBEWSHome { diff --git a/src/org/gcube/informationsystem/registry/impl/util/ProfileManager.java b/src/org/gcube/informationsystem/registry/impl/util/ProfileManager.java index 40d1c01..1b1866a 100644 --- a/src/org/gcube/informationsystem/registry/impl/util/ProfileManager.java +++ b/src/org/gcube/informationsystem/registry/impl/util/ProfileManager.java @@ -11,7 +11,7 @@ import org.gcube.common.core.scope.GCUBEScopeNotSupportedException; import org.gcube.common.core.scope.ServiceMap; import org.gcube.common.core.scope.ServiceMap.ServiceType; import org.gcube.common.core.utils.logging.GCUBELog; -import org.gcube.informationsystem.registry.impl.core.ServiceContext; +import org.gcube.informationsystem.registry.impl.contexts.ServiceContext; import org.ietf.jgss.GSSCredential; public class ProfileManager { diff --git a/src/org/gcube/informationsystem/registry/impl/util/RegistrationThread.java b/src/org/gcube/informationsystem/registry/impl/util/RegistrationThread.java index 004b255..18f82e7 100644 --- a/src/org/gcube/informationsystem/registry/impl/util/RegistrationThread.java +++ b/src/org/gcube/informationsystem/registry/impl/util/RegistrationThread.java @@ -7,8 +7,8 @@ import javax.xml.namespace.QName; import org.gcube.common.core.informationsystem.publisher.ISPublisher; import org.gcube.common.core.contexts.GHNContext; import org.gcube.common.core.utils.logging.GCUBELog; -import org.gcube.informationsystem.registry.impl.core.FactoryContext; -import org.gcube.informationsystem.registry.impl.core.ServiceContext; +import org.gcube.informationsystem.registry.impl.contexts.FactoryContext; +import org.gcube.informationsystem.registry.impl.contexts.ServiceContext; /** * Registration Thread class diff --git a/src/org/gcube/informationsystem/registry/impl/util/RegistryUtil.java b/src/org/gcube/informationsystem/registry/impl/util/RegistryUtil.java index 1112500..88db5ea 100644 --- a/src/org/gcube/informationsystem/registry/impl/util/RegistryUtil.java +++ b/src/org/gcube/informationsystem/registry/impl/util/RegistryUtil.java @@ -13,7 +13,7 @@ import org.gcube.common.core.informationsystem.client.queries.GCUBERIsOnGHNQuery import org.gcube.common.core.informationsystem.client.queries.GCUBEResourceFromIDQuery; import org.gcube.common.core.resources.GCUBEResource; import org.gcube.common.core.resources.GCUBERunningInstance; -import org.gcube.informationsystem.registry.impl.core.RegistryFactory; +import org.gcube.informationsystem.registry.impl.RegistryFactory; import org.gcube.informationsystem.registry.stubs.RemoveResourceMessage; diff --git a/src/org/gcube/informationsystem/registry/test/RegistryRemoveTest.java b/src/org/gcube/informationsystem/registry/test/RegistryRemoveTest.java index 6d06eb2..7d22424 100644 --- a/src/org/gcube/informationsystem/registry/test/RegistryRemoveTest.java +++ b/src/org/gcube/informationsystem/registry/test/RegistryRemoveTest.java @@ -6,6 +6,7 @@ import org.apache.axis.message.addressing.Address; import org.apache.axis.message.addressing.EndpointReferenceType; import org.gcube.common.core.contexts.GCUBERemotePortTypeContext; import org.gcube.common.core.resources.GCUBEHostingNode; +import org.gcube.common.core.resources.GCUBERunningInstance; import org.gcube.common.core.resources.GCUBEService; import org.gcube.common.core.scope.GCUBEScope; import org.gcube.common.core.security.GCUBESecurityManagerImpl;