This commit is contained in:
Manuele Simi 2008-04-10 00:42:28 +00:00
parent 19cf6a6a3a
commit f84ab38293
21 changed files with 598 additions and 594 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="src/|build/" kind="src" path=""/>
<classpathentry excluding="src/|build/|schema/|etc/" kind="src" path=""/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/CONTAINERLIB"/>
<classpathentry combineaccessrules="false" kind="src" path="/GCUBE_CORE"/>

View File

@ -1,6 +0,0 @@
package = org.gcube.informationsystem.registry
package.dir = org/gcube/informationsystem/registry
lib.dir = SERVICELIBS/GCUBE_ISREGISTRY
wsdl.1 = RegistryFactory
wsdl.2 = Registry

987
build.xml

File diff suppressed because it is too large Load Diff

7
etc/build.properties Executable file
View File

@ -0,0 +1,7 @@
package = org.gcube.informationsystem.registry
lib.dir = SERVICELIBS/GCUBE_ISREGISTRY
wsdl.1.name = RegistryFactory
wsdl.1.namespace=http://gcube-system.org/namespaces/informationsystem/registry
wsdl.2.name = Registry
wsdl.2.namespace=http://gcube-system.org/namespaces/informationsystem/registry

View File

@ -8,6 +8,13 @@
value="@config.dir@"
type="java.lang.String"
override="false" />
<environment
name="securityManagerClass"
value="org.gcube.common.core.security.GCUBESimpleServiceSecurityManager"
type="java.lang.String"
override="false" />
</service>
@ -43,7 +50,7 @@
</parameter>
<parameter>
<name>fileName</name>
<value>@config.dir@/registration.xml</value>
<value>registration.xml</value>
</parameter>
</resourceParams>
</resource>
@ -106,7 +113,7 @@
</parameter>
<parameter>
<name>fileName</name>
<value>@config.dir@/registrationFactory.xml</value>
<value>registrationFactory.xml</value>
</parameter>
</resourceParams>
</resource>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultServerConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<service name="gcube/informationsystem/registry/Registry" provider="Handler" use="literal" style="document">
<parameter name="className" value="org.gcube.informationservice.registry.impl.core.Registry"/>
<wsdlFile>share/schema/org.gcube.informationsystem.registry/Registry_service.wsdl</wsdlFile>
<parameter name="allowedMethods" value="*"/>
<parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/>
<parameter name="scope" value="Application"/>
<parameter name="providers" value="GCUBEProvider SubscribeProvider DestroyProvider GetCurrentMessageProvider "/>
<parameter name="loadOnStartup" value="false"/>
</service>
<!-- Factory service -->
<service name="gcube/informationsystem/registry/RegistryFactory" provider="Handler" use="literal" style="document">
<parameter name="className" value="org.gcube.informationsystem.registry.impl.core.RegistryFactory"/>
<wsdlFile>share/schema/org.gcube.informationsystem.registry/RegistryFactory_service.wsdl</wsdlFile>
<parameter name="allowedMethods" value="*"/>
<parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/>
<parameter name="scope" value="Application"/>
<parameter name="instance" value="gcube/informationsystem/registry/Registry"/>
<parameter name="providers" value="GCUBEProvider SubscribeProvider GetCurrentMessageProvider"/>
<parameter name="loadOnStartup" value="true"/>
</service>
</deployment>

View File

@ -5,6 +5,7 @@
<Profile>
<Class>InformationSystem</Class>
<Name>IS-Registry</Name>
<Version>1.0</Version>
<Packages>
<Main>
<Name>IS-Registry-Service</Name>
@ -12,7 +13,7 @@
<Mandatory level="VO"/>
<Shareable level="VO"/>
<GHNRequirements>
<Requirement category="Site" requirement="string" value="java1.5" operator="le"/>
<Requirement category="Site" requirement="string" value="java1.5" operator="le"/>
</GHNRequirements>
<GARArchive>org.gcube.informationsystem.registry.gar</GARArchive>
<PortType>

View File

@ -1,4 +0,0 @@
http\://gcube-system.org/namespaces/informationsystem/registry=org.gcube.informationsystem.registry.stubs
http\://gcube-system.org/namespaces/informationsystem/registry/bindings=org.gcube.informationsystem.registry.stubs.bindings
http\://gcube-system.org/namespaces/informationsystem/registry/service=org.gcube.informationsystem.registry.stubs.service
http\://gcube-system.org/namespaces/informationsystem/registry/common=org.gcube.informationsystem.registry.stubs

View File

@ -3,6 +3,12 @@ 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 <em>gcube/informationsystem/registry/RegistryFactory</em>
*
* @author Manuele Simi (CNR)
*
*/
public class FactoryContext extends GCUBEStatefulPortTypeContext{
static private final String PORTTYPE_NAME = "gcube/informationsystem/registry/RegistryFactory";

View File

@ -3,6 +3,12 @@ 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 <em>gcube/informationsystem/registry/Registry</em>
*
* @author Manuele Simi (CNR)
*
*/
public class ProfileContext extends GCUBEStatefulPortTypeContext{
static private final String PORTTYPE_NAME = "gcube/informationsystem/registry/Registry";

View File

@ -9,8 +9,8 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.gcube.common.core.is.publisher.ISPublisher;
import org.gcube.common.core.is.publisher.ISPublisherException;
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;

View File

@ -2,8 +2,8 @@ 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.stubs.GetProfileString;
import org.gcube.informationsystem.registry.impl.core.ProfileResource;
import org.gcube.informationsystem.registry.stubs.registry.GetProfileString;
import org.globus.wsrf.ResourceException;

View File

@ -6,6 +6,8 @@ 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;
@ -27,26 +29,24 @@ 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.common.is.publisher.impl.GCUBEPublisher;
import org.gcube.common.is.publisher.impl.GCUBEPublisherException;
import org.gcube.common.is.publisher.impl.ProfileManager;
import org.gcube.informationsystem.registry.impl.util.ProfileManager;
import org.gcube.informationsystem.registry.impl.util.RegistryUtil;
import org.gcube.informationsystem.registry.stubs.CreateResourceMessage;
import org.gcube.informationsystem.registry.stubs.ProfileAlreadyRegisteredFault;
import org.gcube.informationsystem.registry.stubs.RegistryPortType;
import org.gcube.informationsystem.registry.stubs.RegistryProperty;
import org.gcube.informationsystem.registry.stubs.RemoveResourceMessage;
import org.gcube.informationsystem.registry.stubs.RemoveResourceResponse;
import org.gcube.informationsystem.registry.stubs.RemoveScopeInProfileMessage;
import org.gcube.informationsystem.registry.stubs.SchemaValidationFault;
import org.gcube.informationsystem.registry.stubs.StartRegistration;
import org.gcube.informationsystem.registry.stubs.StartRegistrationResponse;
import org.gcube.informationsystem.registry.stubs.UpdateProfileMessage;
import org.gcube.informationsystem.registry.stubs.UpdateResourceResponse;
import org.gcube.informationsystem.registry.stubs.UpdateScopeInProfileMessage;
import org.gcube.informationsystem.registry.stubs.UpdateStateMessage;
import org.gcube.informationsystem.registry.stubs.service.RegistryServiceAddressingLocator;
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;
@ -79,7 +79,7 @@ public class RegistryFactory extends GCUBEStartupPortType{
/**
* Map of registration to Notification
*/
public static ArrayList notificationMap = new ArrayList<String>();
public static List<GCUBEWSResourceKey> notificationMap = Collections.synchronizedList(new ArrayList<GCUBEWSResourceKey>());
@Override
@ -96,7 +96,7 @@ public class RegistryFactory extends GCUBEStartupPortType{
* @return void
* @throws RemoteException Exception
*/
public StartRegistrationResponse startRegistration(StartRegistration start ) throws GCUBEFault{
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 {
@ -187,7 +187,7 @@ public class RegistryFactory extends GCUBEStartupPortType{
/**
* Update Resource Profiles ( in case of an update of an ID not present it simply calls the Create resource method)
* 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
@ -266,23 +266,22 @@ public class RegistryFactory extends GCUBEStartupPortType{
}
if( resource == null) return new RemoveResourceResponse();
else {
logger.debug("Try to remove the resource from the IS-IC");
ProfileManager manager;
logger.debug("Try to remove the resource from the IS-IC");
try {
manager = new GCUBEPublisher().getProfileManager(null, GHNContext.getContext().getDefaultScope());
manager.removeFromDISIC(ID,resource.getType());
} catch (GCUBEPublisherException e) {
e.printStackTrace();
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());
@ -294,7 +293,7 @@ public class RegistryFactory extends GCUBEStartupPortType{
}
try {
if (type.compareTo(GCUBEHostingNode.TYPE) == 0) {
RegistryUtil.unregisterRIRelatedToDHN(ID,this);
RegistryUtil.unregisterRIRelatedToGHN(ID,this);
}
}
catch (Exception e) {

View File

@ -4,7 +4,7 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.gcube.common.core.persistence.GCUBEWSFilePersistenceDelegate;
import org.gcube.informationsystem.registry.stubs.RegistryProperty;
import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryProperty;
import org.globus.wsrf.utils.SubscriptionPersistenceUtils;
public class RegistryFactoryPersistenceDelegate extends GCUBEWSFilePersistenceDelegate<RegistryFactoryResource>{

View File

@ -5,10 +5,10 @@ import java.util.ArrayList;
import javax.xml.namespace.QName;
import org.gcube.common.core.contexts.GHNContext;
import org.gcube.common.core.is.publisher.ISPublisher;
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.RegistryProperty;
import org.gcube.informationsystem.registry.stubs.registryfactory.RegistryProperty;
import org.globus.wsrf.ResourceException;
/**

View File

@ -1,20 +1,18 @@
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.is.client.ISClient;
import org.gcube.common.core.is.client.queries.GCUBERIsFromClassAndName;
import org.gcube.common.core.is.client.queries.GCUBEResourceXPathQuery;
import org.gcube.common.core.is.publisher.ISPublisher;
import org.gcube.common.core.is.publisher.ISPublisherException;
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;
/**
*
* IS-Registry service context
*
* @author Andrea Manzi (ISTI-CNR)
*

View File

@ -4,7 +4,7 @@ import java.util.ArrayList;
import javax.xml.namespace.QName;
import org.gcube.common.core.is.publisher.ISPublisher;
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;

View File

@ -5,16 +5,17 @@ import java.util.List;
import org.gcube.common.core.contexts.GHNContext;
import org.gcube.common.core.faults.GCUBEFault;
import org.gcube.common.core.is.ISException;
import org.gcube.common.core.is.client.ISClient;
import org.gcube.common.core.is.client.ISClient.ISInvalidQueryException;
import org.gcube.common.core.is.client.ISClient.ISMalformedQueryException;
import org.gcube.common.core.is.client.queries.GCUBERIsOnGHNQuery;
import org.gcube.common.core.is.client.queries.GCUBEResourceFromIDQuery;
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.RemoveResourceMessage;
import org.gcube.informationsystem.registry.stubs.registryfactory.RemoveResourceMessage;
/**
*
@ -56,7 +57,7 @@ public class RegistryUtil {
}
/**
*
* Unregister all the RIs hosted on a given gHN
*
* @param id
* @param service
@ -66,7 +67,7 @@ public class RegistryUtil {
* @throws GCUBEFault
* @throws RemoteException
*/
public static void unregisterRIRelatedToDHN(String id ,RegistryFactory service) throws ISMalformedQueryException, ISInvalidQueryException, ISException, GCUBEFault, 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);

View File

@ -8,9 +8,10 @@ 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.RegistryFactoryPortType;
import org.gcube.informationsystem.registry.stubs.RemoveResourceMessage;
import org.gcube.informationsystem.registry.stubs.service.RegistryFactoryServiceAddressingLocator;
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 {
@ -32,7 +33,7 @@ public class RegistryRemoveTest {
}catch(Exception e){
e.printStackTrace();
}
RemoveResourceMessage message = new RemoveResourceMessage();
RemoveResourceMessage message = new org.gcube.informationsystem.registry.stubs.registryfactory.RemoveResourceMessage();
managerSec.useCredentials(cred);
registryFactoryPortType =GCUBERemotePortTypeContext.getProxy(registryFactoryPortType,GCUBEScope.getScope("/gcube/devsec"),managerSec);

View File

@ -11,9 +11,9 @@ 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.CreateResourceMessage;
import org.gcube.informationsystem.registry.stubs.RegistryFactoryPortType;
import org.gcube.informationsystem.registry.stubs.service.RegistryFactoryServiceAddressingLocator;
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 {
@ -32,9 +32,6 @@ public class RegistryTest {
EndpointReferenceType factoryEPR = new EndpointReferenceType();
resource.load(fis);
//resource.store(fir);
RegistryFactoryPortType registryFactoryPortType= null;
try {
factoryEPR.setAddress(new Address(args[0]));

View File

@ -10,9 +10,9 @@ 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.RegistryFactoryPortType;
import org.gcube.informationsystem.registry.stubs.UpdateProfileMessage;
import org.gcube.informationsystem.registry.stubs.service.RegistryFactoryServiceAddressingLocator;
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 {