diff --git a/org/gcube/informationsystem/registry/impl/core/FactoryContext.java b/org/gcube/informationsystem/registry/impl/core/FactoryContext.java deleted file mode 100644 index 1e7df48..0000000 --- a/org/gcube/informationsystem/registry/impl/core/FactoryContext.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import org.gcube.common.core.contexts.GCUBEServiceContext; -import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; - -/** - * Stateful port-type context for gcube/informationsystem/registry/RegistryFactory - * - * @author Manuele Simi (CNR) - * - */ -public class FactoryContext extends GCUBEStatefulPortTypeContext{ - - static private final String PORTTYPE_NAME = "gcube/informationsystem/registry/RegistryFactory"; - - static FactoryContext cache = new FactoryContext(); - - private FactoryContext() {} - - public static FactoryContext getContext() { - return cache; - } - - - public String getJNDIName() { - - return PORTTYPE_NAME; - } - - - public String getNamespace() { - return "http://gcube-system.org/namespaces/informationsystem/registry"; - } - - public String getServiceName() { - return ServiceContext.getContext().getName(); - } - - @Override - public GCUBEServiceContext getServiceContext() { - return ServiceContext.getContext(); - } - -} diff --git a/org/gcube/informationsystem/registry/impl/core/ProfileContext.java b/org/gcube/informationsystem/registry/impl/core/ProfileContext.java deleted file mode 100644 index 010b4f9..0000000 --- a/org/gcube/informationsystem/registry/impl/core/ProfileContext.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import org.gcube.common.core.contexts.GCUBEServiceContext; -import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; - -/** - * Stateful port-type context for gcube/informationsystem/registry/Registry - * - * @author Manuele Simi (CNR) - * - */ -public class ProfileContext extends GCUBEStatefulPortTypeContext{ - - static private final String PORTTYPE_NAME = "gcube/informationsystem/registry/Registry"; - - private ProfileContext(){} - - protected static ProfileContext cache = new ProfileContext(); - - - public static ProfileContext getContext() { - return cache; - } - - - public final String getJNDIName() { - return PORTTYPE_NAME; - } - - public final String getNamespace() { - return "http://gcube-system.org/namespaces/informationsystem/registry"; - } - - - public GCUBEServiceContext getServiceContext() { - return ServiceContext.getContext(); - } -} diff --git a/org/gcube/informationsystem/registry/impl/core/ProfileResource.java b/org/gcube/informationsystem/registry/impl/core/ProfileResource.java deleted file mode 100644 index d2b9a2f..0000000 --- a/org/gcube/informationsystem/registry/impl/core/ProfileResource.java +++ /dev/null @@ -1,219 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import java.io.StringReader; -import java.io.StringWriter; -import java.util.ArrayList; - -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - - -import org.gcube.common.core.informationsystem.publisher.ISPublisher; -import org.gcube.common.core.informationsystem.publisher.ISPublisherException; -import org.gcube.common.core.contexts.GHNContext; -import org.gcube.common.core.resources.GCUBEHostingNode; -import org.gcube.common.core.resources.GCUBEResource; -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.globus.wsrf.ResourceException; -import org.w3c.dom.Document; -import org.xml.sax.InputSource; - - -/** - * @author Andrea Manzi - * - */ -public class ProfileResource extends GCUBEWSResource { - - private static GCUBELog logger = new GCUBELog(ProfileResource.class.getName()); - - private ISPublisher publisher = null; - - ArrayList listQname = new ArrayList(); - - protected static final String NotificationProfileRP="NotificationProfile"; - - protected GCUBEResource gCubeResource; - - protected static final String ProfileRP="Profile"; - - @Override - protected String[] getTopicNames(){ - return new String[] {NotificationProfileRP}; - } - - @Override - protected String[] getPropertyNames(){ - return new String[] {ProfileRP}; - } - - /* Constructor - * @throws Exception Exception - */ - public ProfileResource() throws Exception{}; - - - @Override - public void initialise(Object... params) throws ResourceException { - GCUBEResource resource = (GCUBEResource) params[0]; - Document dom = null; - StringWriter writer =new StringWriter(); - - try { - resource.store(writer); - - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - - StringReader reader = new StringReader(writer.toString().substring(writer.toString().indexOf("?>")+2, writer.toString().length())); - InputSource source = new InputSource(reader); - dom =builder.parse(source); - } catch (Exception e1) { - throw new ResourceException(e1); - } - - this.setProfile(dom); - this.setNotificationProfile(dom); - this.setGCubeResource(resource); - - if (hasToLive(resource)) this.setTerminationTime(null); - - if (hasToLive(resource)) { - //registration of Topic To IS-Notifier - - listQname.add(this.generateQName()); - synchronized(RegistryFactory.notificationMap) { - if (!(RegistryFactory.notificationMap.contains(this.getID()))) { - try { - publisher = GHNContext.getImplementation(ISPublisher.class); - publisher.registerToISNotification(this.getEPR(), listQname, GHNContext.getContext().getDefaultScope(), ServiceContext.getContext()); - } catch (Exception e){ - e.printStackTrace(); - throw new ResourceException(e); - } - - RegistryFactory.notificationMap.add(this.getID()); - } - } - } - - } - - public void setNotificationProfile(Document profile) { - this.getResourcePropertySet().get(NotificationProfileRP).clear(); - this.getResourcePropertySet().get(NotificationProfileRP).add(profile); - this.getPersistenceDelegate().store(this); - } - - public Document getNotificationProfile() { - return (Document)this.getResourcePropertySet().get(NotificationProfileRP).get(0); - } - - - - public void setProfile(Document profile) { - this.getResourcePropertySet().get(ProfileRP).clear(); - this.getResourcePropertySet().get(ProfileRP).add(profile); - this.getPersistenceDelegate().store(this); - } - - public Document getProfile() { - return (Document)this.getResourcePropertySet().get(ProfileRP).get(0); - } - - - - /** - * Check if the profile has to live or not - * return true/false - */ - private boolean hasToLive(GCUBEResource resource) { - if (resource.getType().compareTo(GCUBERunningInstance.TYPE)==0 || - resource.getType().compareTo(GCUBEHostingNode.TYPE)==0 || - resource.getType().compareTo(GCUBEService.TYPE)==0) return true; - else return false; - } - - /** - * Get the Resource Qname - * @return the Resource Qname - */ - private QName generateQName() { - return QName.valueOf(NotificationProfileRP.toString()+"_"+this.getID()); - } - - public GCUBEResource getGCubeResource() { - return this.gCubeResource; - } - - - public void setGCubeResource(GCUBEResource resource) { - this.gCubeResource = resource; - } - - @Override - public void remove() throws ResourceException{ - super.remove(); - logger.info("Resource " + this.getID()+ " is going to be removed."); - - try { - publisher = GHNContext.getImplementation(ISPublisher.class); - } catch (Exception e) { - e.printStackTrace(); - } - - - if (RegistryFactory.notificationMap.contains(this.getID())) - { - try { - - publisher.unregisterFromISNotification(this.getEPR(),listQname,GHNContext.getContext().getDefaultScope(),ServiceContext.getContext()); - } catch (ISPublisherException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - - synchronized(RegistryFactory.notificationMap) { - RegistryFactory.notificationMap.remove(this.getID()); - } - } - - try { - publisher.removeWSResource(this,GHNContext.getContext().getDefaultScope()); - } catch (ISPublisherException e) { - e.printStackTrace(); - } - - } - - protected void removeProfile() throws ResourceException { - this.getPersistenceDelegate().remove(this); - } - - - public void updateResource(GCUBEResource resource) throws Exception{ - - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - StringWriter writer = new StringWriter(); - resource.store(writer); - StringReader reader = new StringReader(writer.toString()); - InputSource source = new InputSource(reader); - Document dom = builder.parse(source); - - - this.setProfile(dom); - this.setGCubeResource(resource); - - if (this.hasToLive(resource)) - this.setNotificationProfile(dom); - - } - - -} diff --git a/org/gcube/informationsystem/registry/impl/core/ProfileResourceHome.java b/org/gcube/informationsystem/registry/impl/core/ProfileResourceHome.java deleted file mode 100644 index 1fa1d9a..0000000 --- a/org/gcube/informationsystem/registry/impl/core/ProfileResourceHome.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; - -import org.gcube.common.core.state.GCUBEWSHome; - -public class ProfileResourceHome extends GCUBEWSHome { - - public GCUBEStatefulPortTypeContext getPortTypeContext() { - return ProfileContext.getContext(); - } - -} diff --git a/org/gcube/informationsystem/registry/impl/core/Registry.java b/org/gcube/informationsystem/registry/impl/core/Registry.java deleted file mode 100644 index 707a725..0000000 --- a/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.registry.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/org/gcube/informationsystem/registry/impl/core/RegistryConfiguration.java b/org/gcube/informationsystem/registry/impl/core/RegistryConfiguration.java deleted file mode 100644 index 863a47f..0000000 --- a/org/gcube/informationsystem/registry/impl/core/RegistryConfiguration.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -/** -* -* Local Configuration of the IS-Registry -* -* @author Andrea Manzi, Manuele Simi (CNR) -* -*/ - - -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";}}; - - abstract String getName(); - abstract String getClazz(); - } - - /** - * - */ - private String profilesBase = null; - /** - * - */ - private String propertiesFile = null; - /** - * - */ - private String registrationType = null; - /** - * - */ - private int registrationRemovalInterval = 140; - /** - * Constructor - */ - public RegistryConfiguration () {} - /** - * Get the profile base folder - * @return the profile base folder - */ - public String getProfilesBase() { - return profilesBase; - } - - /** - * Set the profile base folder - * - * @param b the profile base folder - */ - public void setProfilesBase(String b) { - profilesBase = b; - } - - /** - * The propertie file dir - * @return The propertie file dir - */ - public String getPropertiesFile() { - return propertiesFile; - } - /** - * Set the propertyFile dir - * @param file the file - */ - public void setPropertiesFile(String file) { - propertiesFile = file; - } - - /** - * Get The Registration Type - * @return The registration Type - */ - public String getRegistrationType() { - return registrationType; - } - - /** - * Set registration Type - * @param file the registration Type - */ - public void setRegistrationType(String type) { - registrationType = type; - } - - /** - * Set the Registration time - * @param sec the interval - */ - public void setRegistrationRemovalInterval(int sec) { - registrationRemovalInterval = sec; - } - /** - * Get the registration time interval - * @return The Registration time - */ - public int getRegistrationRemovalInterval() { - return registrationRemovalInterval; - } -} - - - diff --git a/org/gcube/informationsystem/registry/impl/core/RegistryFactory.java b/org/gcube/informationsystem/registry/impl/core/RegistryFactory.java deleted file mode 100644 index 302c449..0000000 --- a/org/gcube/informationsystem/registry/impl/core/RegistryFactory.java +++ /dev/null @@ -1,458 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import java.io.StringReader; -import java.io.StringWriter; -import java.lang.reflect.Method; -import java.rmi.RemoteException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.List; - -import org.apache.axis.components.uuid.UUIDGen; -import org.apache.axis.components.uuid.UUIDGenFactory; -import org.gcube.common.core.contexts.GCUBEServiceContext; -import org.gcube.common.core.contexts.GHNContext; -import org.gcube.common.core.faults.GCUBEFault; -import org.gcube.common.core.porttypes.GCUBEStartupPortType; -import org.gcube.common.core.resources.GCUBECS; -import org.gcube.common.core.resources.GCUBECSInstance; -import org.gcube.common.core.resources.GCUBECollection; -import org.gcube.common.core.resources.GCUBEExternalRunningInstance; -import org.gcube.common.core.resources.GCUBEGenericResource; -import org.gcube.common.core.resources.GCUBEHostingNode; -import org.gcube.common.core.resources.GCUBEMCollection; -import org.gcube.common.core.resources.GCUBEResource; -import org.gcube.common.core.resources.GCUBERunningInstance; -import org.gcube.common.core.resources.GCUBEService; -import org.gcube.common.core.resources.GCUBETransformationProgram; -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.util.ProfileManager; -import org.gcube.informationsystem.registry.impl.util.RegistryUtil; -import org.gcube.informationsystem.registry.stubs.registry.RegistryPortType; -import org.gcube.informationsystem.registry.stubs.registry.service.RegistryServiceAddressingLocator; -import org.gcube.informationsystem.registry.stubs.registryfactory.CreateResourceMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.ProfileAlreadyRegisteredFault; -import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryProperty; -import org.gcube.informationsystem.registry.stubs.registryfactory.RemoveResourceMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.RemoveResourceResponse; -import org.gcube.informationsystem.registry.stubs.registryfactory.RemoveScopeInProfileMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.SchemaValidationFault; -import org.gcube.informationsystem.registry.stubs.registryfactory.StartRegistrationResponse; -import org.gcube.informationsystem.registry.stubs.registryfactory.UpdateProfileMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.UpdateResourceResponse; -import org.gcube.informationsystem.registry.stubs.registryfactory.UpdateScopeInProfileMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.UpdateStateMessage; -import org.globus.wsrf.ResourceKey; -import org.globus.wsrf.security.SecurityManager; -import org.oasis.wsrf.lifetime.Destroy; - - -/** - * @author Andrea Manzi (ISTI-CNR) - * - */ -public class RegistryFactory extends GCUBEStartupPortType{ - - - /** - * The UUIDGen - */ - private static final UUIDGen uuidgen = UUIDGenFactory.getUUIDGen(); - - - /** - * Object logger. - * */ - protected final GCUBELog logger = new GCUBELog(RegistryFactory.class); - - /** - * - * - */ - public enum operationType {create,update,destroy}; - - /** - * Map of registration to Notification - */ - public static List notificationMap = Collections.synchronizedList(new ArrayList()); - - /** the key used to label the Factory Resource */ - protected static final String NOTIFICATOR_RESOURCE_KEY = "RegistryResource"; - - @Override - protected GCUBEServiceContext getServiceContext() { - return ServiceContext.getContext(); - } - - - /** - * Use to Load from Disk persistence profiles and registers it into the IS-IC ( in case the IS-IC is empty) - * - * - * @param start same as void - * @return void - * @throws RemoteException Exception - */ - public org.gcube.informationsystem.registry.stubs.registryfactory.StartRegistrationResponse startRegistration(org.gcube.informationsystem.registry.stubs.registryfactory.StartRegistration start ) throws GCUBEFault{ - //start registration to broker and new profiles registration - logger.debug("Starting profile registration from disk"); - try { - //loadProfiles(); - } catch (Exception e) { - logger.error("Error Loading profiles"); - throw new GCUBEFault(e.getMessage()); - } - return new StartRegistrationResponse(); - - } - - - /** - * - * Creates a GCUBEResource - * - * @param inputMessage - * @return - * @throws SchemaValidationFault - * @throws RemoteException - * @throws ProfileAlreadyRegisteredFault - */ - public String createResource(CreateResourceMessage inputMessage) throws SchemaValidationFault,RemoteException,ProfileAlreadyRegisteredFault { - GCUBEResource resource = null; - logSecurityInfo("createResource"); - - logger.info("CreateResource operation invoked"); - - String profile = inputMessage.getProfile(); - - if (profile == null || profile.compareTo("") == 0) { - String msg = "Profile file empty"; - logger.debug(msg); - throw new RemoteException(msg); - } - try { - resource = this.getResourceClass(inputMessage.getType()); - resource.load(new StringReader(profile)); - //the parse Profile class allows to extract from profiles information about type/SCOPE/UniqueID - //in order to distiguish among different Resource Type - //Adding scopes to Profile - String [] scopes = inputMessage.getScopes(); - if (scopes != null) { - for (String scope : scopes) { - logger.debug("Adding Scopes to Profile "+ scope); - resource.addScope(GCUBEScope.getScope(scope)); - } - } - //check ID - if (resource.getID()== null || resource.getID().compareTo("")==0) {resource.setID(uuidgen.nextUUID()); } - } - catch (Exception ex) - { - logger.error("Error trying to load profile", ex); - throw new SchemaValidationFault(); - } - //check if the Resource already exists - if (isResourceCreated(resource.getID())) { - logger.debug("A Resource with ID "+ resource.getID()+" is already registered"); - throw new ProfileAlreadyRegisteredFault(); - } - //try to create resource - try { - logger.debug("Creating the stateful resource for " + resource.getID()); - ProfileContext.getContext().getWSHome().create(ProfileContext.getContext().makeKey(resource.getID()),resource); - } - catch (Exception ex) { - String msg = "Error creating Resource"; - logger.error(msg,ex); - throw new RemoteException(msg); - } - try { - updateCounterInfo (resource.getID(),inputMessage.getType(),operationType.create.name(),Calendar.getInstance()); - } catch (Exception e) { - logger.error("Error updating Counting info for resource with ID " + resource.getID()); - } - - StringWriter writer = new StringWriter(); - try { - logger.debug("Persisting the stateful resource for " + resource.getID()); - resource.store(writer); - } catch (Exception e) { - logger.error("Persistence failed for " + resource.getID(), e); - } - return writer.toString(); - } - - - /** - * Updates Resource Profiles ( in case of an update of an ID not present it simply calls the Create resource method) - * - * - * @param mess Complex Object that contains a String representing the xml profile to update and the diligentID - * @return UpdateResourceResponse - * @throws RemoteException Exception - * @throws SchemaValidationException Exception - */ - public UpdateResourceResponse updateResource(UpdateProfileMessage mess) throws RemoteException,SchemaValidationFault,GCUBEFault { - - logSecurityInfo("updateResource"); - logger.info("UpdateResource operation invoked"); - String ID = mess.getUniqueID(); - String xmlProfile = mess.getXmlProfile(); - GCUBEResource resource = null; - CreateResourceMessage input =null; - //validating input parameters - if (ID == null || ID.compareTo("") ==0) { - logger.debug(" ID missing "); - throw new RemoteException("Error, ID missing"); - } - if (xmlProfile == null || xmlProfile.compareTo("") ==0) { - logger.debug("Profile missing" ); - throw new RemoteException("Error, profile missing"); - } - //check if the profile exist - if (!isResourceCreated(ID)) { - input = new CreateResourceMessage(); - input.setProfile(xmlProfile); - input.setType(mess.getType()); - this.createResource(input); - return new UpdateResourceResponse(); - } - try { - resource = this.getResourceClass(mess.getType()); - resource.load(new StringReader(xmlProfile)); - getProfileResource(ID).updateResource(resource); - } - catch (Exception e) { - logger.error("Error updating profile for ID "+ e); - throw new RemoteException(e.toString()); - } - - try { - updateCounterInfo (ID,mess.getType(),operationType.update.name(),Calendar.getInstance()); - } catch (Exception e) { - logger.error("Error updating Counting info for resource with ID " + resource.getID()); - e.printStackTrace(); - } - logger.info("Profile updated"); - return new UpdateResourceResponse(); - } - - /** - * Remove a Resource profile given the ID - * - * - * @param inputMessage Defined into WSDL file - * @return RemoveResourceResponse - * @throws RemoteException Exceptions - */ - public RemoveResourceResponse removeResource (RemoveResourceMessage inputMessage) throws RemoteException,GCUBEFault{ - logSecurityInfo("removeResource"); - logger.info("RemoveResource operation invoked"); - String ID = inputMessage.getUniqueID(); - String type = inputMessage.getType(); - if (ID == null || ID.compareTo("") ==0) { - logger.debug("ID missing "); - throw new RemoteException("Error, ID missing"); - } - //check if the UniqueID exist - if (!(isResourceCreated(ID))){ - GCUBEResource resource = null; - try { - resource = RegistryUtil.getProfileFromIS(ID,this.getResourceClass(type).getClass()); - } catch (Exception e1) { - logger.error("Error gettign profile from IS "); - return new RemoveResourceResponse(); - } - if( resource == null) return new RemoveResourceResponse(); - else { - logger.debug("Try to remove the resource from the IS-IC"); - try { - new ProfileManager().removeFromISIC(ID, resource.getType(), ServiceContext.getContext().getCredentials()); - } catch (Exception e) { - logger.error("Unable to remove the resource", e); - throw ServiceContext.getContext().getDefaultException("", e).toFault("Unable to remove the resource: the remote IS-IC returns an error"); - } - } - return new RemoveResourceResponse(); - } - - try{ - ProfileResource resource = getProfileResource(ID ); - resource.removeProfile(); - RegistryServiceAddressingLocator locator = new RegistryServiceAddressingLocator(); - RegistryPortType portType = locator.getRegistryPortTypePort(resource.getEPR()); - //destroy resource - portType.destroy(new Destroy()); - - } - catch (Exception e) { - e.printStackTrace(); - logger.error("Error removing resource for ID "+ e); - throw new RemoteException(); - } - try { - if (type.compareTo(GCUBEHostingNode.TYPE) == 0) { - RegistryUtil.unregisterRIRelatedToGHN(ID,this); - } - } - catch (Exception e) { - logger.error("Error removing profile related to this GHNID for ID "+ e); - e.printStackTrace(); - } - logger.info(" Profile destroyed"); - try { - updateCounterInfo(ID,type,operationType.destroy.name(),Calendar.getInstance()); - } - catch (Exception e) { - logger.error("Error updating Counting info for resource with ID " + ID); - e.printStackTrace(); - } - - return new RemoveResourceResponse(); - - } - - - /** - * Log Security info - * - * @param methodName The Method Name - */ - private void logSecurityInfo(String methodName) { - - logger.info("Security info for method "+ methodName ); - String identity = SecurityManager.getManager().getCaller(); - logger.info("The caller is: " + identity); - - } - - /** - * Check if the Resource has been created - * - * @param id the Resource ID - * @return the resource ( null if the resource has not been created yet - */ - protected synchronized ProfileResource getProfileResource(String id ){ - ProfileResource resource = null; - ResourceKey key = ProfileContext.getContext().makeKey( id); - try { - resource = (ProfileResource) ProfileContext.getContext().getWSHome().find(key); - } - catch (Exception e ){ - logger.debug("A profile with the given id has not been created yet"); - return null; - } - return resource; - - } - - /** - * - * @param id - * @return - */ - protected synchronized boolean isResourceCreated(String id) { - if (getProfileResource(id) != null) return true; else return false; - } - - - - /** - * Update the Registry Factory RPs - * - * - * @param ID resource ID - * @param type the resource type - * @param operationType the type of Operation performed on the Profile - * @param updateTime The last operation Time - * @throws Exception Exception - */ - - private synchronized void updateCounterInfo(String ID, String type, String operationType, Calendar updateTime) throws Exception{ - - RegistryProperty property = new RegistryProperty(); - - property.setUniqueID(ID); - property.setOperationType(operationType); - property.setChangeTime(updateTime); - //select the type of the resource to update - for (Method method :this.getResource().getClass().getDeclaredMethods()) { - if (method.getName().contains(type) && method.getName().contains("set")) { - method.invoke(this.getResource(),property); - break; - } - - } - this.getResource().getPersistenceDelegate().store(this.getResource()); - } - /** - * return the resource - * - * @return NotifierResource - * @throws RemoteException Exception - */ - private RegistryFactoryResource getResource() throws RemoteException { - Object resource = null; - try { - resource = FactoryContext.getContext().getWSHome().find(FactoryContext.getContext().makeKey(NOTIFICATOR_RESOURCE_KEY)); - } catch (Exception e) { - logger.error(" Unable to access resource", e); - } - - RegistryFactoryResource factoryResource = (RegistryFactoryResource) resource; - return factoryResource; - } - - - - private GCUBEResource getResourceClass(String type) throws Exception { - - - switch (ResourceType.valueOf(type)){ - case RunningInstance:return GHNContext.getImplementation(GCUBERunningInstance.class); - case ExternalRunningInstance:return GHNContext.getImplementation(GCUBEExternalRunningInstance.class); - case Service: return GHNContext.getImplementation(GCUBEService.class); - case Collection: return GHNContext.getImplementation(GCUBECollection.class); - case CS: return GHNContext.getImplementation(GCUBECS.class); - case CSInstance: return GHNContext.getImplementation(GCUBECSInstance.class); - case GHN: return GHNContext.getImplementation(GCUBEHostingNode.class); - case VRE: return GHNContext.getImplementation(GCUBEVRE.class); - case TransformationProgram: return GHNContext.getImplementation(GCUBETransformationProgram.class); - case MetadataCollection: return GHNContext.getImplementation(GCUBEMCollection.class); - case Generic: return GHNContext.getImplementation(GCUBEGenericResource.class); - } - return null; - - } - - enum ResourceType { - RunningInstance, - ExternalRunningInstance, - Service, - Collection, - CS, - CSInstance, - GHN, - gLiteSE, - gLiteCE, - gLiteSite, - gLiteService, - VRE, - Generic, - TransformationProgram, - MetadataCollection - - }; - - - public String updateScopeInProfile(UpdateScopeInProfileMessage message)throws GCUBEFault{return null;} - - public String removeScopeInProfile(RemoveScopeInProfileMessage message)throws GCUBEFault{return null;} - - public String updateState(UpdateStateMessage message)throws GCUBEFault{return null;} - -} diff --git a/org/gcube/informationsystem/registry/impl/core/RegistryFactoryPersistenceDelegate.java b/org/gcube/informationsystem/registry/impl/core/RegistryFactoryPersistenceDelegate.java deleted file mode 100644 index f0505ef..0000000 --- a/org/gcube/informationsystem/registry/impl/core/RegistryFactoryPersistenceDelegate.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; - -import org.gcube.common.core.persistence.GCUBEWSFilePersistenceDelegate; -import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryProperty; -import org.globus.wsrf.utils.SubscriptionPersistenceUtils; - -public class RegistryFactoryPersistenceDelegate extends GCUBEWSFilePersistenceDelegate{ - - - protected void onLoad(RegistryFactoryResource resource, ObjectInputStream ois) throws Exception { - - super.onLoad(resource, ois); - resource.setGLiteCE((RegistryProperty)ois.readObject()); - resource.setGLiteSE((RegistryProperty)ois.readObject()); - resource.setGLiteService((RegistryProperty)ois.readObject()); - resource.setGLiteSite((RegistryProperty)ois.readObject()); - resource.setCollection((RegistryProperty)ois.readObject()); - resource.setCS((RegistryProperty)ois.readObject()); - resource.setCSInstance((RegistryProperty)ois.readObject()); - resource.setGHN((RegistryProperty)ois.readObject()); - resource.setExternalRunningInstance((RegistryProperty)ois.readObject()); - resource.setMetaColl((RegistryProperty)ois.readObject()); - resource.setRunningInstance((RegistryProperty)ois.readObject()); - resource.setService((RegistryProperty)ois.readObject()); - resource.setTransProgram((RegistryProperty)ois.readObject()); - resource.setVRE((RegistryProperty)ois.readObject()); - resource.setGenericResource((RegistryProperty)ois.readObject()); - SubscriptionPersistenceUtils.loadSubscriptionListeners( - resource.getTopicList(), ois); - - } - - protected void onStore(RegistryFactoryResource resource,ObjectOutputStream oos) throws Exception { - - super.onStore(resource, oos); - oos.writeObject(resource.getGLiteCE()); - oos.writeObject(resource.getGLiteSE()); - oos.writeObject(resource.getGLiteService()); - oos.writeObject(resource.getGLiteSite()); - oos.writeObject(resource.getCollection()); - oos.writeObject(resource.getCS()); - oos.writeObject(resource.getCSInstance()); - oos.writeObject(resource.getGHN()); - oos.writeObject(resource.getExternalRunningInstance()); - oos.writeObject(resource.getMetaColl()); - oos.writeObject(resource.getRunningInstance()); - oos.writeObject(resource.getService()); - oos.writeObject(resource.getTransProgram()); - oos.writeObject(resource.getVRE()); - oos.writeObject(resource.getGenericResource()); - - - SubscriptionPersistenceUtils.storeSubscriptionListeners( - resource.getTopicList(), oos); - - } -} diff --git a/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResource.java b/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResource.java deleted file mode 100644 index 22515d8..0000000 --- a/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResource.java +++ /dev/null @@ -1,481 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import java.util.ArrayList; - -import javax.xml.namespace.QName; - -import org.gcube.common.core.contexts.GHNContext; -import org.gcube.common.core.informationsystem.publisher.ISPublisher; -import org.gcube.common.core.state.GCUBEWSResource; -import org.gcube.informationsystem.registry.impl.util.RegistrationThread; -import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryProperty; -import org.globus.wsrf.ResourceException; - -/** - * - * The RegistryFactoryResource has the role to maintain WS-Topics used to notify changes each time - * a GCUBEResource profile is created/removed/updated. A single instance of this class is created within - * each instance of the IS-Registry service. - * - * @author Andrea Manzi, Manuele Simi (CNR) - * - */ -public class RegistryFactoryResource extends GCUBEWSResource { - - protected static final String ExternalRunningInstanceRP="ExternalRunningInstance"; - - protected static final String ServiceRP="Service"; - - protected static final String CollectionRP="Collection"; - - protected static final String CSRP="CS"; - - protected static final String CSInstanceRP="CSInstance"; - - protected static final String GHNRP="GHN"; - - protected static final String gLiteSERP="gLiteSE"; - - protected static final String gLiteCERP="gLiteCE"; - - protected static final String gLiteSiteRP="gLiteSite"; - - protected static final String gLiteServiceRP="gLiteService"; - - protected static final String VRERP="VRE"; - - protected static final String GenericRP="Generic"; - - protected static final String TransformationProgramRP="TransformationProgram"; - - protected static final String MetadataCollectionRP="MetadataCollection"; - - protected static final String RunningInstanceRP="RunningInstance"; - - - @Override - protected String[] getTopicNames() { - return RPNames; - } - - protected static String[] RPNames = { - RunningInstanceRP, - ExternalRunningInstanceRP, - ServiceRP, - CollectionRP, - CSRP, - CSInstanceRP, - GHNRP, - gLiteSERP, - gLiteCERP, - gLiteSiteRP, - gLiteServiceRP, - VRERP, - GenericRP, - TransformationProgramRP, - MetadataCollectionRP - - }; - - - /** - * - */ - private ArrayList listQname; - - /** - * - * Initializes Resource Properties. - * @throws Exception Exception - */ - protected void initialise(Object... o) throws ResourceException { - logger.debug("Starting RegistryFactoryService"); - /* Initialize the RP's */ - - try { - -// Topic List creation for registrationto is-Notifier - listQname = new ArrayList(); - for (String rpName : RPNames) - listQname.add(new QName(this.getPorttypeContext().getNamespace(),rpName)); - try { - RegistrationThread thread = new RegistrationThread(listQname); - Thread t = new Thread(thread); - t.start(); - }catch (Exception e) { - e.printStackTrace(); - logger.error("Error on Registration Thread",e); - } - //GHNContext.getImplementation(ISPublisher.class).registerWSResource(this,GHNContext.getContext().getDefaultScope()); - - } catch (Exception e) { - logger.error("Error on Initialization of Resource",e); - } - - } - - - - /** - * Default Setter for the RP runningInstanceRP - * - * @param property The RI property - * - */ - public void setRunningInstance (RegistryProperty property) { - this.getResourcePropertySet().get(RunningInstanceRP).clear(); - this.getResourcePropertySet().get(RunningInstanceRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP runningInstanceRP - * - * @return The RegistryProperty - */ - public RegistryProperty getRunningInstance () { - return (RegistryProperty) this.getResourcePropertySet().get(RunningInstanceRP).get(0); - - } - - - /** - * Default Setter for the RP ExternalRunningInstanceRP - * - * @param property The RegistryProperty - * - */ - public void setExternalRunningInstance (RegistryProperty property) { - this.getResourcePropertySet().get(ExternalRunningInstanceRP).clear(); - this.getResourcePropertySet().get(ExternalRunningInstanceRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP ExternalRunningInstanceRP - * - * @return The RegistryProperty - * - */ - public RegistryProperty getExternalRunningInstance () { - return (RegistryProperty) this.getResourcePropertySet().get(ExternalRunningInstanceRP).get(0); - - } - - - /** - * Default Setter for the RP Service - * - * @param property The RegistryProperty - - * - */ - public void setService (RegistryProperty property) { - this.getResourcePropertySet().get(ServiceRP).clear(); - this.getResourcePropertySet().get(ServiceRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP Service - * - * @return The RegistryProperty - * - */ - public RegistryProperty getService () { - return (RegistryProperty) this.getResourcePropertySet().get(ServiceRP).get(0); - - } - - - /** - * Default Setter for the RP Collection - * - * @param property The RegistryProperty - * - */ - public void setCollection (RegistryProperty property) { - this.getResourcePropertySet().get(CollectionRP).clear(); - this.getResourcePropertySet().get(CollectionRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP Collection - * @return The RegistryProperty - * - */ - public RegistryProperty getCollection () { - return (RegistryProperty) this.getResourcePropertySet().get(CollectionRP).get(0); - - } - - - /** - * Default Setter for the RP CS - * - * @param property The RegistryProperty - * - */ - public void setCS (RegistryProperty property) { - this.getResourcePropertySet().get(CSRP).clear(); - this.getResourcePropertySet().get(CSRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP CS - * - * @return The RegistryProperty - * - */ - public RegistryProperty getCS () { - return (RegistryProperty) this.getResourcePropertySet().get(CSRP).get(0); - - } - - /** - * Default Setter for the RP CSInstance - * - * @param property The RegistryProperty - * - */ - public void setCSInstance (RegistryProperty property) { - this.getResourcePropertySet().get(CSInstanceRP).clear(); - this.getResourcePropertySet().get(CSInstanceRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP CSInstance - * - * @return The RegistryProperty - - * - */ - public RegistryProperty getCSInstance () { - return (RegistryProperty) this.getResourcePropertySet().get(CSInstanceRP).get(0); - - } - - /** - * Default Setter for the RP ghn - * - * @param property The RegistryProperty - * - */ - public void setGHN (RegistryProperty property) { - this.getResourcePropertySet().get(GHNRP).clear(); - this.getResourcePropertySet().get(GHNRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP ghn - * - * @return The RegistryProperty - */ - public RegistryProperty getGHN () { - return (RegistryProperty) this.getResourcePropertySet().get(GHNRP).get(0); - - } - - /** - * Default Setter for the RP gLiteSE - * - * @param property The RegistryProperty - * - */ - public void setGLiteSE (RegistryProperty property) { - this.getResourcePropertySet().get(gLiteSERP).clear(); - this.getResourcePropertySet().get(gLiteSERP).add(property); - this.getPersistenceDelegate().store(this); - } - - /** - * Default getter for the RP gLiteSE - * - * @return The RegistryProperty - * - */ - public RegistryProperty getGLiteSE () { - return (RegistryProperty) this.getResourcePropertySet().get(gLiteSERP).get(0); - - } - - /** - * Default Setter for the RP gLiteCE - * - * @param property The RegistryProperty - * - */ - public void setGLiteCE (RegistryProperty property) { - this.getResourcePropertySet().get(gLiteCERP).clear(); - this.getResourcePropertySet().get(gLiteCERP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP gLiteCE - * @return The RegistryProperty - * - */ - public RegistryProperty getGLiteCE () { - return (RegistryProperty) this.getResourcePropertySet().get(gLiteCERP).get(0); - - } - - - - /** - * Default Setter for the RP gLiteSite - * - * @param property The RegistryProperty - * - */ - public void setGLiteSite (RegistryProperty property) { - this.getResourcePropertySet().get(gLiteSiteRP).clear(); - this.getResourcePropertySet().get(gLiteSiteRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP gLiteSite - * - * @return The RegistryProperty - * - */ - public RegistryProperty getGLiteSite () { - return (RegistryProperty) this.getResourcePropertySet().get(gLiteSiteRP).get(0); - - } - - /** - * Default Setter for the RP gLiteSite - * - * @param property The RegistryProperty - * - */ - public void setGLiteService (RegistryProperty property) { - this.getResourcePropertySet().get(gLiteServiceRP).clear(); - this.getResourcePropertySet().get(gLiteServiceRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP gLiteSite - * @return The RegistryProperty - * - */ - public RegistryProperty getGLiteService () { - return (RegistryProperty) this.getResourcePropertySet().get(gLiteServiceRP).get(0); - - } - - /** - * Default Setter for the RP VRE - * - * @param property The RegistryProperty - * - */ - public void setVRE (RegistryProperty property) { - this.getResourcePropertySet().get(VRERP).clear(); - this.getResourcePropertySet().get(VRERP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP VRE - * @return The RegistryProperty - * - */ - public RegistryProperty getVRE () { - return (RegistryProperty) this.getResourcePropertySet().get(gLiteServiceRP).get(0); - - } - - - /** - * Default Setter for the RP MetadataColletion - * - * @param property The RegistryProperty - * - */ - public void setMetaColl (RegistryProperty property) { - this.getResourcePropertySet().get(MetadataCollectionRP).clear(); - this.getResourcePropertySet().get(MetadataCollectionRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP MetadataColletion - * - * @return The RegistryProperty - * - */ - public RegistryProperty getMetaColl () { - return (RegistryProperty) this.getResourcePropertySet().get(MetadataCollectionRP).get(0); - - } - - /** - * Default Setter for the RP TransRule - * - * @param property The RegistryProperty - * - */ - public void setTransProgram (RegistryProperty property) { - this.getResourcePropertySet().get(TransformationProgramRP).clear(); - this.getResourcePropertySet().get(TransformationProgramRP).add(property); - this.getPersistenceDelegate().store(this); - - } - - /** - * Default getter for the RP TransRule - * - * @return The RegistryProperty - * - */ - public RegistryProperty getTransProgram () { - return (RegistryProperty) this.getResourcePropertySet().get(TransformationProgramRP).get(0); - - } - - /** - * Default Setter for the RP Generic - * - * @param property The RegistryProperty - * - */ - public void setGenericResource (RegistryProperty property) { - this.getResourcePropertySet().get(GenericRP).clear(); - this.getResourcePropertySet().get(GenericRP).add(property); - this.getPersistenceDelegate().store(this); - } - - /** - * Default getter for the RP Generic - * - * @return The RegistryProperty - * - */ - public RegistryProperty getGenericResource () { - return (RegistryProperty) this.getResourcePropertySet().get(GenericRP).get(0); - - } - - -} diff --git a/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResourceHome.java b/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResourceHome.java deleted file mode 100644 index 2af0b51..0000000 --- a/org/gcube/informationsystem/registry/impl/core/RegistryFactoryResourceHome.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; -import org.gcube.common.core.state.GCUBEWSHome; - -public class RegistryFactoryResourceHome extends GCUBEWSHome { - - public GCUBEStatefulPortTypeContext getPortTypeContext() { - return FactoryContext.getContext(); - } -} diff --git a/org/gcube/informationsystem/registry/impl/core/RegistryPersistenceDelegate.java b/org/gcube/informationsystem/registry/impl/core/RegistryPersistenceDelegate.java deleted file mode 100644 index 2724809..0000000 --- a/org/gcube/informationsystem/registry/impl/core/RegistryPersistenceDelegate.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import org.gcube.common.core.persistence.GCUBEWSFilePersistenceDelegate; -import org.w3c.dom.Document; - -public class RegistryPersistenceDelegate extends GCUBEWSFilePersistenceDelegate { - - -protected void onLoad(ProfileResource resource, ObjectInputStream ois) throws Exception { - - super.onLoad(resource, ois); - resource.setProfile((Document)ois.readObject()); - resource.setNotificationProfile(resource.getProfile()); - } - - protected void onStore(ProfileResource resource,ObjectOutputStream oos) throws Exception { - - super.onStore(resource, oos); - oos.writeObject((Document)resource.getProfile()); - - } -} diff --git a/org/gcube/informationsystem/registry/impl/core/ServiceContext.java b/org/gcube/informationsystem/registry/impl/core/ServiceContext.java deleted file mode 100644 index 3f497c5..0000000 --- a/org/gcube/informationsystem/registry/impl/core/ServiceContext.java +++ /dev/null @@ -1,185 +0,0 @@ -package org.gcube.informationsystem.registry.impl.core; - -import org.gcube.common.core.contexts.GCUBEServiceContext; -import org.gcube.common.core.contexts.GHNContext; -import org.gcube.common.core.informationsystem.client.ISClient; -import org.gcube.common.core.informationsystem.client.queries.GCUBERIsFromClassAndName; -import org.gcube.common.core.informationsystem.client.queries.GCUBEResourceXPathQuery; -import org.gcube.common.core.informationsystem.publisher.ISPublisher; -import org.gcube.common.core.informationsystem.publisher.ISPublisherException; -import org.gcube.common.core.resources.GCUBEHostingNode; -import org.gcube.common.core.resources.GCUBEResource; -import org.gcube.common.core.resources.GCUBERunningInstance; -import org.gcube.informationsystem.registry.impl.core.RegistryConfiguration.ROOT_SERVICES; - - -/** - * IS-Registry service context - * - * @author Andrea Manzi, Manuele SImi (CNR) - * - */ -public class ServiceContext extends GCUBEServiceContext { - - public static final String JNDI_NAME = "gcube/informationsystem/registry"; - - protected static ServiceContext cache = new ServiceContext(); - - private ServiceContext() {} - - public static ServiceContext getContext() { - return cache; - } - - public String getJNDIName() { - return JNDI_NAME; - } - - @Override - protected void onReady() throws Exception { - - GCUBERunningInstance RegistryRIProfile = null; - - GCUBERunningInstance NotifierRIProfile = null; - - GCUBERunningInstance ISICRIProfile = null; - - GCUBERunningInstance GHNManagerProfile = null; - - GCUBEHostingNode ghnProfile = null; - - String ghnName = ""; - - GCUBERIsFromClassAndName queryRI = null; - - GCUBEResourceXPathQuery queryGHN = null; - - boolean isNotifierCodeployed = false; - - boolean isICCodeployed = false; - - ISClient client = null; - - - //creates the single RegistryResource used to raise notifications about profiles' changes - logger.info("Creating IS-Registry notification resource..."); - FactoryContext.getContext().getWSHome().create( - FactoryContext.getContext().makeKey(RegistryFactory.NOTIFICATOR_RESOURCE_KEY)); - logger.info("IS-Registry notification resource registered"); - - // create GeneralQueryManager - try { - client = GHNContext.getImplementation(ISClient.class); - queryRI = client.getQuery(GCUBERIsFromClassAndName.class); - queryGHN = client.getQuery(GCUBEResourceXPathQuery.class); - } catch (Exception e) { - logger.error("Failed to create a QueryManger", e); - } - - try { - RegistryRIProfile = ServiceContext.getContext().getInstance(); - } catch (Exception e) { - logger.error("Unable to get the service instance profile", e); - throw e; - } - - try { - NotifierRIProfile = GHNContext.getContext().getServiceContext( - ROOT_SERVICES.ISNOTIFIER.getClazz(), ROOT_SERVICES.ISNOTIFIER.getName()).getInstance(); - isNotifierCodeployed = true; - } catch (Exception e) { - logger.warn("Unable to detect if the " + ROOT_SERVICES.ISNOTIFIER.getName() + " is co-deployed"); - } - - try { - GHNManagerProfile = GHNContext.getContext().getServiceContext(ROOT_SERVICES.GHNMANAGER.getClazz(), ROOT_SERVICES.GHNMANAGER.getName()).getInstance(); - } catch (Exception e) { - logger.warn("Unable to detect if the " + ROOT_SERVICES.GHNMANAGER.getName() + " is co-deployed"); - } - - try { - ISICRIProfile = GHNContext.getContext().getServiceContext( ROOT_SERVICES.ISIC.getClazz(), ROOT_SERVICES.ISIC.getName()).getInstance(); - isICCodeployed = true; - } catch (Exception e) { - logger.warn("Unable to detect if the " + ROOT_SERVICES.ISIC.getName() + " is co-deployed"); - } - - try { - ghnProfile = GHNContext.getContext().getGHN(); - ghnName = ghnProfile.getNodeDescription().getName(); - } catch (Exception e) { - logger.error("Unable to get the GHN profile", e); - throw e; - } - - try { - Thread.sleep(20000); - } catch (InterruptedException e1) { - logger.error("Unable to get the servce instance profile", e1); - } - - // Check if the Registry profile is already registered - - try { - // registers the my profile - queryRI.setEntryName("gcube/informationsystem/registry/RegistryFactory"); - queryRI.setResourceClass(this.getServiceClass()); - queryRI.setResourceName(this.getName()); - if (client.execute(queryRI, - GHNContext.getContext().getDefaultScope()).size() == 0) - registerProfile(RegistryRIProfile, GCUBERunningInstance.TYPE); - - // registers the local IS-Notifier profile - if (isNotifierCodeployed) { - queryRI.setEntryName("gcube/informationsystem/notifier/Notifier"); - queryRI.setResourceClass(ROOT_SERVICES.ISNOTIFIER.getClazz()); - queryRI.setResourceName(ROOT_SERVICES.ISNOTIFIER.getName()); - if (client.execute(queryRI, - GHNContext.getContext().getDefaultScope()).size() == 0) - registerProfile(NotifierRIProfile, GCUBERunningInstance.TYPE); - } - - // registers the local IS-IC profile - if (isICCodeployed) { - queryRI.setEntryName("gcube/informationsystem/isic/ISICFactoryService"); - queryRI.setResourceClass(ROOT_SERVICES.ISIC.getClazz()); - queryRI.setResourceName(ROOT_SERVICES.ISIC.getName()); - if (client.execute(queryRI, GHNContext.getContext().getDefaultScope()).size() == 0) - registerProfile(ISICRIProfile, GCUBERunningInstance.TYPE); - } - // registers the local GHNManager profile - queryGHN.setResourceType(GCUBEHostingNode.TYPE); - queryGHN.setXPath("/GHNDescription/Name/string() eq '" + ghnName + "'"); - if (client.execute(queryGHN, GHNContext.getContext().getDefaultScope()).size() == 0) - registerProfile(ghnProfile, GCUBEHostingNode.TYPE); - - } catch (Exception e) { - logger.error("Failed to register co-deployed services", e); - throw e; - } - - } - - @Override - protected void onInitialisation() throws Exception {} - - /** - * Register the Profile - * - * @param resource - * teh gCUBEResource - * @param type - * The profile Type - * @throws Exception - * @throws ISPublisherException - */ - private void registerProfile(GCUBEResource resource, String type) - throws ISPublisherException, Exception { - if (GHNContext.getContext().getMode() == GHNContext.Mode.ROOT) - GHNContext.getImplementation(ISPublisher.class).registerGCUBEResource( - resource, GHNContext.getContext().getDefaultScope(), - ServiceContext.getContext()); - - } - -} \ No newline at end of file diff --git a/org/gcube/informationsystem/registry/impl/util/ProfileManager.java b/org/gcube/informationsystem/registry/impl/util/ProfileManager.java deleted file mode 100644 index cd5582e..0000000 --- a/org/gcube/informationsystem/registry/impl/util/ProfileManager.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.gcube.informationsystem.registry.impl.util; - -import java.net.MalformedURLException; -import java.net.URL; - -import org.diligentproject.informationservice.disic.stubs.DISICServiceLocator; -import org.diligentproject.informationservice.disic.stubs.DISICServicePortType; -import org.diligentproject.informationservice.disic.stubs.DeleteProfileParams; -import org.gcube.common.core.scope.GCUBEScope; -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.ietf.jgss.GSSCredential; - -public class ProfileManager { - - protected static final GCUBELog logger=new GCUBELog(ProfileManager.class); - - protected static final String ISICpostfix = "ISICService"; - - protected URL isIcAddress; - - protected String VOMapName; - - public enum ResourceTypes { - Service, - CS, - CSInstance, - Collection, - RunningInstance, - ExternalRunningInstance, - DHN, - gLiteResource, - VDL, - TransformationProgram, - MetadataCollection, - GenericResource - } - - public ProfileManager() throws Exception { - - GCUBEScope scope = ServiceContext.getContext().getScope(); - - ServiceMap map; - try { - map = scope.getServiceMap(); - } catch (GCUBEScopeNotSupportedException e1) { - logger.error("error retrieving service map for scope " + scope.toString(), e1); - throw new Exception(e1); - } - isIcAddress = this.getICRegistratinAddress(map); - VOMapName = scope.getName(); - } - - /** - * Removes from IS-IC a GCUBEResource profile ( not knowing the Resurce Type the removal has been done once for every type of GCUBE Resource - * - * @param uniqueID the uniqueID to of the GCUBEResource to remove - * @param type the type of Profile - - * @throws Exception if the unregistration fails - */ - - public void removeFromISIC(String uniqueID, String type, GSSCredential ... credentials) throws Exception { - - - logger.debug(" Removing profile from IS-IC " + isIcAddress.toString()); - - //check if the type has been specified - DISICServiceLocator locator_disic = new DISICServiceLocator(); - DeleteProfileParams params = new DeleteProfileParams(); - params.setDILIGENTResourceID(uniqueID); - if (type != null && type.compareTo("") !=0) { - params.setProfileType(type); - try { - DISICServicePortType dis_ic = locator_disic.getDISICServicePortTypePort(isIcAddress); - dis_ic.deleteProfile(params); - } catch (Exception e) { - logger.error("An error occurs while trying to remove the GCUBE Profile with ID " + uniqueID, e); - throw new Exception("Unregistration failed for the GCUBE Profile with ID " + uniqueID); - } - - } else { - try { - //the typeof the resource to delete is not specified, try all the resource types - logger.debug(" trying to remove profile with UniqueID" + uniqueID); - for ( int n = 0 ; n < ResourceTypes.values().length ;n++) { - params.setProfileType(ResourceTypes.values()[n].toString()); - logger.debug(" Removing profile from IS-IC " + isIcAddress.toString()); - DISICServicePortType dis_ic = locator_disic.getDISICServicePortTypePort(isIcAddress); - dis_ic.deleteProfile(params); - } - } catch (Exception e) { - logger.error(" An error occurs while trying to remove the GCUBE Profile with ID " - + uniqueID, e); - throw new Exception("Unregistration failed for the GCUBE Profile with ID " + uniqueID); - } - } - - } - - private URL getICRegistratinAddress(ServiceMap map) throws MalformedURLException { - - String addressISIC = (String) map.getEndpoint(ServiceType.ISPublishService).getAddress().toString(); - addressISIC = addressISIC.substring(0, addressISIC.lastIndexOf("/") + 1) + ISICpostfix; - return new URL(addressISIC); - } -} diff --git a/org/gcube/informationsystem/registry/impl/util/RegistrationThread.java b/org/gcube/informationsystem/registry/impl/util/RegistrationThread.java deleted file mode 100644 index 004b255..0000000 --- a/org/gcube/informationsystem/registry/impl/util/RegistrationThread.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.gcube.informationsystem.registry.impl.util; - -import java.util.ArrayList; - -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; - -/** - * Registration Thread class - * @author Andrea Manzi (ISTI-CNR) - * - * - */ -public class RegistrationThread implements Runnable{ - /** - * - */ - private static GCUBELog logger = new GCUBELog(RegistrationThread.class); - - /** - * - */ - private ArrayList topics; - /** - * - */ - - /** - * The constructor - * @param qname an Array list of RP qname - * @throws Exception Exception - */ - public RegistrationThread ( ArrayList qname) throws Exception{ - this.topics = qname; - } - /** - * - */ - public void run() { - - while (true) { - try { - // This is the time interval - Thread.sleep(10000); - } - catch(InterruptedException e){ - } - try { - ISPublisher publisher = GHNContext.getImplementation(ISPublisher.class); - publisher.registerToISNotification(FactoryContext.getContext().getEPR(),topics, GHNContext.getContext().getDefaultScope(), ServiceContext.getContext() ); - return; - - } catch (Exception e) { - e.printStackTrace(); - logger.error("Error starting registration:Retrying in 10 seconds"); - } - } - - } - -} diff --git a/org/gcube/informationsystem/registry/impl/util/RegistryUtil.java b/org/gcube/informationsystem/registry/impl/util/RegistryUtil.java deleted file mode 100644 index ea020ac..0000000 --- a/org/gcube/informationsystem/registry/impl/util/RegistryUtil.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.gcube.informationsystem.registry.impl.util; - -import java.rmi.RemoteException; -import java.util.List; - -import org.gcube.common.core.contexts.GHNContext; -import org.gcube.common.core.faults.GCUBEFault; -import org.gcube.common.core.informationsystem.ISException; -import org.gcube.common.core.informationsystem.client.ISClient; -import org.gcube.common.core.informationsystem.client.ISClient.ISInvalidQueryException; -import org.gcube.common.core.informationsystem.client.ISClient.ISMalformedQueryException; -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.stubs.registryfactory.RemoveResourceMessage; - - -/** - * - * - * - * @author Andrea Manzi(ISTI_CNR) - * - */ -public class RegistryUtil { - - public static ISClient client = null; - - public RegistryUtil () { - try { - client = GHNContext.getImplementation(ISClient.class); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * - * - * @param ID - * @param resourceClass - * @return - * @throws ISMalformedQueryException - * @throws ISInvalidQueryException - * @throws ISException - */ - public static GCUBEResource getProfileFromIS(String ID, Class resourceClass) throws ISMalformedQueryException, ISInvalidQueryException, ISException { - GCUBEResourceFromIDQuery query =client.getQuery(GCUBEResourceFromIDQuery.class); - query.setResourceClass(resourceClass); - query.setResourceID(ID); - List resource = client.execute(query, GHNContext.getContext().getDefaultScope()); - if (resource != null) return resource.get(0); - else return null; - - } - - /** - * Unregister all the RIs hosted on a given gHN - * - * @param id - * @param service - * @throws ISMalformedQueryException - * @throws ISInvalidQueryException - * @throws ISException - * @throws GCUBEFault - * @throws RemoteException - */ - public static void unregisterRIRelatedToGHN(String id ,RegistryFactory service) throws ISMalformedQueryException, ISInvalidQueryException, ISException, GCUBEFault, RemoteException{ - RemoveResourceMessage message = null; - GCUBERIsOnGHNQuery query= client.getQuery(GCUBERIsOnGHNQuery.class); - query.setResourceID(id); - //query to IS on order to retrieve the RI deployed on the GHN; - List resources = client.execute(query, GHNContext.getContext().getDefaultScope()); - - if (resources.size() != 0){ - for (GCUBEResource resource : resources) { - message = new RemoveResourceMessage(); - message.setType(GCUBERunningInstance.TYPE); - message.setUniqueID(resource.getID()); - service.removeResource(message); - - } - - } - } -} diff --git a/org/gcube/informationsystem/registry/test/RegistryRemoveTest.java b/org/gcube/informationsystem/registry/test/RegistryRemoveTest.java deleted file mode 100644 index 4cc0a1a..0000000 --- a/org/gcube/informationsystem/registry/test/RegistryRemoveTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.gcube.informationsystem.registry.test; - -import java.io.StringWriter; - -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.GCUBEService; -import org.gcube.common.core.scope.GCUBEScope; -import org.gcube.common.core.security.GCUBESecurityManagerImpl; -import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryFactoryPortType; -import org.gcube.informationsystem.registry.stubs.registryfactory.RemoveResourceMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.service.RegistryFactoryServiceAddressingLocator; - -import org.gridforum.jgss.ExtendedGSSCredential; - -public class RegistryRemoveTest { - - public static void main (String[]args ) throws Exception { - - RegistryFactoryServiceAddressingLocator registryLocator = new RegistryFactoryServiceAddressingLocator(); - - GCUBESecurityManagerImpl managerSec = new GCUBESecurityManagerImpl() { public boolean isSecurityEnabled() {return true;}}; - - ExtendedGSSCredential cred =org.diligentproject.dvos.authentication.util.ProxyUtil.loadProxyCredentials(args[2]); - - EndpointReferenceType factoryEPR = new EndpointReferenceType(); - - RegistryFactoryPortType registryFactoryPortType= null; - try { - factoryEPR.setAddress(new Address(args[0])); - registryFactoryPortType = registryLocator.getRegistryFactoryPortTypePort(factoryEPR); - }catch(Exception e){ - e.printStackTrace(); - } - RemoveResourceMessage message = new org.gcube.informationsystem.registry.stubs.registryfactory.RemoveResourceMessage(); - - managerSec.useCredentials(cred); - registryFactoryPortType =GCUBERemotePortTypeContext.getProxy(registryFactoryPortType,GCUBEScope.getScope("/gcube/devsec"),managerSec); - try { - StringWriter writer =new StringWriter(); - message.setType(GCUBEService.TYPE); - message.setUniqueID(args[1]); - registryFactoryPortType.removeResource(message); - - } catch(Exception e) { - e.printStackTrace(); - } - System.out.println("Profile with ID "+ args[1]+ "has been succesfully removed"); - } - -} diff --git a/org/gcube/informationsystem/registry/test/RegistryTest.java b/org/gcube/informationsystem/registry/test/RegistryTest.java deleted file mode 100644 index 09d1f6b..0000000 --- a/org/gcube/informationsystem/registry/test/RegistryTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.gcube.informationsystem.registry.test; - -import java.io.FileReader; -import java.io.StringWriter; - -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.contexts.GHNContext; -import org.gcube.common.core.resources.GCUBEService; -import org.gcube.common.core.scope.GCUBEScope; -import org.gcube.common.core.security.GCUBESecurityManager; -import org.gcube.common.core.security.GCUBESecurityManagerImpl; -import org.gcube.informationsystem.registry.stubs.registryfactory.CreateResourceMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryFactoryPortType; -import org.gcube.informationsystem.registry.stubs.registryfactory.service.RegistryFactoryServiceAddressingLocator; -import org.gridforum.jgss.ExtendedGSSCredential; - -public class RegistryTest { - - public static void main (String[]args ) throws Exception { - - RegistryFactoryServiceAddressingLocator registryLocator = new RegistryFactoryServiceAddressingLocator(); - - GCUBESecurityManagerImpl managerSec = new GCUBESecurityManagerImpl() { public boolean isSecurityEnabled() {return true;}}; - - ExtendedGSSCredential cred =org.diligentproject.dvos.authentication.util.ProxyUtil.loadProxyCredentials(args[2]); - - FileReader fis = new FileReader (args[1]); -// GHNContext.getImplementation(GCUBEService.class); - GCUBEService resource =GHNContext.getImplementation(GCUBEService.class); - EndpointReferenceType factoryEPR = new EndpointReferenceType(); - resource.load(fis); - //resource.store(fir); - RegistryFactoryPortType registryFactoryPortType= null; - try { - factoryEPR.setAddress(new Address(args[0])); - registryFactoryPortType = registryLocator.getRegistryFactoryPortTypePort(factoryEPR); - }catch(Exception e){ - e.printStackTrace(); - } - CreateResourceMessage message = new CreateResourceMessage(); - String profile =""; - managerSec.useCredentials(cred); - registryFactoryPortType =GCUBERemotePortTypeContext.getProxy(registryFactoryPortType,GCUBEScope.getScope("/gcube/devsec"),managerSec); - try { - StringWriter writer =new StringWriter(); - resource.store(writer); - message.setProfile(writer.toString()); - message.setType(resource.getType()); - profile =registryFactoryPortType.createResource(message); - - } catch(Exception e) { - e.printStackTrace(); - } - System.out.println(profile); - } -} diff --git a/org/gcube/informationsystem/registry/test/RegistryUpdateTest.java b/org/gcube/informationsystem/registry/test/RegistryUpdateTest.java deleted file mode 100644 index 2f07f88..0000000 --- a/org/gcube/informationsystem/registry/test/RegistryUpdateTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.gcube.informationsystem.registry.test; - -import java.io.FileReader; -import java.io.StringWriter; - -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.contexts.GHNContext; -import org.gcube.common.core.resources.GCUBEService; -import org.gcube.common.core.scope.GCUBEScope; -import org.gcube.common.core.security.GCUBESecurityManagerImpl; -import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryFactoryPortType; -import org.gcube.informationsystem.registry.stubs.registryfactory.UpdateProfileMessage; -import org.gcube.informationsystem.registry.stubs.registryfactory.service.RegistryFactoryServiceAddressingLocator; -import org.gridforum.jgss.ExtendedGSSCredential; - -public class RegistryUpdateTest { - -public static void main (String[]args ) throws Exception { - - RegistryFactoryServiceAddressingLocator registryLocator = new RegistryFactoryServiceAddressingLocator(); - - GCUBESecurityManagerImpl managerSec = new GCUBESecurityManagerImpl() { public boolean isSecurityEnabled() {return true;}}; - - ExtendedGSSCredential cred =org.diligentproject.dvos.authentication.util.ProxyUtil.loadProxyCredentials(args[2]); - - FileReader fis = new FileReader (args[1]); - GCUBEService resource =GHNContext.getImplementation(GCUBEService.class); - EndpointReferenceType factoryEPR = new EndpointReferenceType(); - resource.load(fis); - - - RegistryFactoryPortType registryFactoryPortType= null; - try { - factoryEPR.setAddress(new Address(args[0])); - registryFactoryPortType = registryLocator.getRegistryFactoryPortTypePort(factoryEPR); - }catch(Exception e){ - e.printStackTrace(); - } - UpdateProfileMessage message = new UpdateProfileMessage(); - - managerSec.useCredentials(cred); - - registryFactoryPortType =GCUBERemotePortTypeContext.getProxy(registryFactoryPortType,GCUBEScope.getScope("/gcube/devsec"),managerSec); - try { - StringWriter writer =new StringWriter(); - resource.store(writer); - message.setXmlProfile(writer.toString()); - message.setUniqueID(resource.getID()); - message.setType(GCUBEService.TYPE); - - registryFactoryPortType.updateResource(message); - - } catch(Exception e) { - e.printStackTrace(); - } - System.out.println("Profile has been updated"); - } -}