git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/information-system/gCubeIS/Registry@617 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
639cc77d80
commit
5ff9a7a309
|
@ -30,6 +30,7 @@ import org.gcube.common.core.resources.GCUBEVRE;
|
||||||
import org.gcube.common.core.scope.GCUBEScope;
|
import org.gcube.common.core.scope.GCUBEScope;
|
||||||
import org.gcube.common.core.state.GCUBEWSResourceKey;
|
import org.gcube.common.core.state.GCUBEWSResourceKey;
|
||||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||||
|
import org.gcube.informationsystem.registry.impl.contexts.FactoryContext;
|
||||||
import org.gcube.informationsystem.registry.impl.contexts.ProfileContext;
|
import org.gcube.informationsystem.registry.impl.contexts.ProfileContext;
|
||||||
import org.gcube.informationsystem.registry.impl.contexts.ServiceContext;
|
import org.gcube.informationsystem.registry.impl.contexts.ServiceContext;
|
||||||
import org.gcube.informationsystem.registry.impl.state.ProfileResource;
|
import org.gcube.informationsystem.registry.impl.state.ProfileResource;
|
||||||
|
@ -54,6 +55,8 @@ import org.gcube.informationsystem.registry.stubs.service.RegistryServiceAddress
|
||||||
import org.globus.wsrf.security.SecurityManager;
|
import org.globus.wsrf.security.SecurityManager;
|
||||||
import org.oasis.wsrf.lifetime.Destroy;
|
import org.oasis.wsrf.lifetime.Destroy;
|
||||||
|
|
||||||
|
import static org.gcube.informationsystem.registry.impl.core.RegistryConfiguration.ResourceType;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of the <em>Registry Factory</em> portType
|
* Implementation of the <em>Registry Factory</em> portType
|
||||||
|
@ -63,24 +66,7 @@ import org.oasis.wsrf.lifetime.Destroy;
|
||||||
*/
|
*/
|
||||||
public class RegistryFactory extends GCUBEStartupPortType{
|
public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
|
|
||||||
public enum ResourceType {
|
|
||||||
RunningInstance,
|
|
||||||
ExternalRunningInstance,
|
|
||||||
Service,
|
|
||||||
Collection,
|
|
||||||
CS,
|
|
||||||
CSInstance,
|
|
||||||
GHN,
|
|
||||||
gLiteSE,
|
|
||||||
gLiteCE,
|
|
||||||
gLiteSite,
|
|
||||||
gLiteService,
|
|
||||||
VRE,
|
|
||||||
Generic,
|
|
||||||
TransformationProgram,
|
|
||||||
MetadataCollection
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -146,25 +132,25 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
* @throws RemoteException
|
* @throws RemoteException
|
||||||
* @throws ProfileAlreadyRegisteredFault
|
* @throws ProfileAlreadyRegisteredFault
|
||||||
*/
|
*/
|
||||||
public String createResource(CreateResourceMessage inputMessage) throws SchemaValidationFault,RemoteException,ProfileAlreadyRegisteredFault {
|
public String createResource(CreateResourceMessage mess) throws SchemaValidationFault,RemoteException,ProfileAlreadyRegisteredFault {
|
||||||
|
|
||||||
GCUBEResource resource = null;
|
GCUBEResource resource = null;
|
||||||
logger.info("CreateResource operation invoked");
|
logger.info("CreateResource operation invoked");
|
||||||
logSecurityInfo("createResource");
|
logSecurityInfo("createResource");
|
||||||
|
|
||||||
String profile = inputMessage.getProfile();
|
String profile = mess.getProfile();
|
||||||
if (profile == null || profile.compareTo("") == 0) {
|
if (profile == null || profile.compareTo("") == 0) {
|
||||||
String msg = "Profile file empty";
|
String msg = "Profile file empty";
|
||||||
logger.debug(msg);
|
logger.debug(msg);
|
||||||
throw new RemoteException(msg);
|
throw new RemoteException(msg);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
resource = this.getResourceClass(inputMessage.getType());
|
resource = ResourceType.valueOf(mess.getType()).getResourceClass();
|
||||||
resource.load(new StringReader(profile));
|
resource.load(new StringReader(profile));
|
||||||
//the parse Profile class allows to extract from profiles information about type/SCOPE/UniqueID
|
//the parse Profile class allows to extract from profiles information about type/SCOPE/UniqueID
|
||||||
//in order to distinguish among different Resource Type
|
//in order to distinguish among different Resource Type
|
||||||
//Adding scopes to Profile
|
//Adding scopes to Profile
|
||||||
String [] scopes = inputMessage.getScopes();
|
String [] scopes = mess.getScopes();
|
||||||
if (scopes != null) {
|
if (scopes != null) {
|
||||||
for (String scope : scopes) {
|
for (String scope : scopes) {
|
||||||
logger.debug("Adding Scopes to Profile "+ scope);
|
logger.debug("Adding Scopes to Profile "+ scope);
|
||||||
|
@ -182,11 +168,11 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
if (isResourceCreated(resource.getID())) {
|
if (isResourceCreated(resource.getID())) {
|
||||||
// update the existing resource
|
// update the existing resource
|
||||||
logger.warn("A Resource with ID "+ resource.getID()+" is already registered");
|
logger.warn("A Resource with ID "+ resource.getID()+" is already registered");
|
||||||
UpdateResourceMessage mess = new UpdateResourceMessage();
|
UpdateResourceMessage upmess = new UpdateResourceMessage();
|
||||||
mess.setUniqueID(resource.getID());
|
upmess.setUniqueID(resource.getID());
|
||||||
mess.setXmlProfile(inputMessage.getProfile());
|
upmess.setXmlProfile(mess.getProfile());
|
||||||
mess.setType(inputMessage.getType());
|
upmess.setType(mess.getType());
|
||||||
this.updateResource(mess);
|
this.updateResource(upmess);
|
||||||
//throw new ProfileAlreadyRegisteredFault();
|
//throw new ProfileAlreadyRegisteredFault();
|
||||||
} else {
|
} else {
|
||||||
//try to create resource
|
//try to create resource
|
||||||
|
@ -201,9 +187,9 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
throw new RemoteException(msg);
|
throw new RemoteException(msg);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
updateCounterInfo (resource.getID(),inputMessage.getType(), OperationType.create.name(),Calendar.getInstance());
|
updateCounterInfo (resource.getID(), ResourceType.valueOf(mess.getType()), OperationType.create, Calendar.getInstance());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.warn("Error updating Counting info for resource with ID " + resource.getID());
|
logger.warn("Error updating Counting info for resource with ID " + resource.getID(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,7 +239,7 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
return new UpdateResourceResponse();
|
return new UpdateResourceResponse();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
resource = this.getResourceClass(mess.getType());
|
resource = ResourceType.valueOf(mess.getType()).getResourceClass();
|
||||||
resource.load(new StringReader(xmlProfile));
|
resource.load(new StringReader(xmlProfile));
|
||||||
getProfileResource(ID).updateResource(resource);
|
getProfileResource(ID).updateResource(resource);
|
||||||
}
|
}
|
||||||
|
@ -263,9 +249,9 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
updateCounterInfo (ID,mess.getType(), OperationType.update.name(),Calendar.getInstance());
|
updateCounterInfo (ID,ResourceType.valueOf(mess.getType()),OperationType.update, Calendar.getInstance());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.warn("Error updating counting info for resource with ID " + resource.getID());
|
logger.warn("Error updating counting info for resource with ID " + resource.getID(), e);
|
||||||
}
|
}
|
||||||
logger.info("Profile " + mess.getUniqueID() + " updated");
|
logger.info("Profile " + mess.getUniqueID() + " updated");
|
||||||
return new UpdateResourceResponse();
|
return new UpdateResourceResponse();
|
||||||
|
@ -331,10 +317,10 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
throw new RemoteException();
|
throw new RemoteException();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
updateCounterInfo(ID,type,OperationType.destroy.name(),Calendar.getInstance());
|
updateCounterInfo(ID, ResourceType.valueOf(type), OperationType.destroy, Calendar.getInstance());
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
logger.warn("Error updating counting info for resource with ID " + ID);
|
logger.warn("Error updating counting info for resource with ID " + ID ,e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new RemoveResourceResponse();
|
return new RemoveResourceResponse();
|
||||||
|
@ -383,7 +369,7 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the Registry Factory RPs
|
* Updates the RegistryFactoryResource RPs for notification
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @param ID resource ID
|
* @param ID resource ID
|
||||||
|
@ -394,16 +380,15 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private synchronized void updateCounterInfo(String ID, String type, String operationType, Calendar updateTime) throws Exception{
|
private synchronized void updateCounterInfo(String ID, ResourceType resType, OperationType opType, Calendar updateTime) throws Exception{
|
||||||
|
|
||||||
RegistryProperty property = new RegistryProperty();
|
RegistryProperty property = new RegistryProperty();
|
||||||
|
|
||||||
property.setUniqueID(ID);
|
property.setUniqueID(ID);
|
||||||
property.setOperationType(operationType);
|
property.setOperationType(opType.name());
|
||||||
property.setChangeTime(updateTime);
|
property.setChangeTime(updateTime);
|
||||||
//select the type of the resource to update
|
//select the type of the resource to update
|
||||||
for (Method method :this.getResource().getClass().getDeclaredMethods()) {
|
for (Method method :this.getResource().getClass().getDeclaredMethods()) {
|
||||||
if (method.getName().contains(type) && method.getName().contains("set")) {
|
if (method.getName().contains(resType.name()) && method.getName().contains("set")) {
|
||||||
method.invoke(this.getResource(),property);
|
method.invoke(this.getResource(),property);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -420,7 +405,7 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
private RegistryFactoryResource getResource() throws RemoteException {
|
private RegistryFactoryResource getResource() throws RemoteException {
|
||||||
Object resource = null;
|
Object resource = null;
|
||||||
try {
|
try {
|
||||||
//resource = FactoryContext.getContext().getWSHome().find(FactoryContext.getContext().makeKey(NOTIFICATOR_RESOURCE_KEY));
|
resource = FactoryContext.getContext().getWSHome().find(FactoryContext.getContext().makeKey(NOTIFICATOR_RESOURCE_KEY));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(" Unable to access resource", e);
|
logger.error(" Unable to access resource", e);
|
||||||
}
|
}
|
||||||
|
@ -429,29 +414,6 @@ public class RegistryFactory extends GCUBEStartupPortType{
|
||||||
return factoryResource;
|
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;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String updateScopeInProfile(UpdateScopeInProfileMessage message)throws GCUBEFault{return null;}
|
public String updateScopeInProfile(UpdateScopeInProfileMessage message)throws GCUBEFault{return null;}
|
||||||
|
|
||||||
public String removeScopeInProfile(RemoveScopeInProfileMessage message)throws GCUBEFault{return null;}
|
public String removeScopeInProfile(RemoveScopeInProfileMessage message)throws GCUBEFault{return null;}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package org.gcube.informationsystem.registry.impl.contexts;
|
package org.gcube.informationsystem.registry.impl.contexts;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
|
|
||||||
|
import javax.xml.namespace.QName;
|
||||||
|
import org.apache.axis.encoding.TypeMappingRegistry;
|
||||||
|
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
|
||||||
|
import org.apache.axis.encoding.ser.BeanSerializerFactory;
|
||||||
import org.gcube.common.core.contexts.GCUBEServiceContext;
|
import org.gcube.common.core.contexts.GCUBEServiceContext;
|
||||||
import org.gcube.common.core.contexts.GHNContext;
|
import org.gcube.common.core.contexts.GHNContext;
|
||||||
import org.gcube.common.core.informationsystem.client.ISClient;
|
import org.gcube.common.core.informationsystem.client.ISClient;
|
||||||
|
@ -21,16 +23,18 @@ import org.gcube.common.core.utils.handlers.GCUBEScheduledHandler;
|
||||||
import org.gcube.informationsystem.registry.impl.RegistryFactory;
|
import org.gcube.informationsystem.registry.impl.RegistryFactory;
|
||||||
import org.gcube.informationsystem.registry.impl.core.RegistryConfiguration.ROOT_SERVICES;
|
import org.gcube.informationsystem.registry.impl.core.RegistryConfiguration.ROOT_SERVICES;
|
||||||
import org.gcube.informationsystem.registry.impl.state.RegistryFactoryResource;
|
import org.gcube.informationsystem.registry.impl.state.RegistryFactoryResource;
|
||||||
|
import org.globus.mds.aggregator.types.AggregatorContent;
|
||||||
import org.globus.mds.servicegroup.client.ServiceGroupRegistrationParameters;
|
import org.globus.mds.servicegroup.client.ServiceGroupRegistrationParameters;
|
||||||
|
import org.globus.wsrf.config.ContainerConfig;
|
||||||
import org.globus.wsrf.encoding.ObjectDeserializer;
|
import org.globus.wsrf.encoding.ObjectDeserializer;
|
||||||
import org.globus.wsrf.utils.XmlUtils;
|
import org.globus.wsrf.utils.XmlUtils;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IS-Registry service context
|
* IS-Registry service context
|
||||||
*
|
*
|
||||||
* @author Andrea Manzi, Manuele SImi (CNR)
|
* @author Andrea Manzi, Manuele Simi (CNR)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class ServiceContext extends GCUBEServiceContext {
|
public class ServiceContext extends GCUBEServiceContext {
|
||||||
|
@ -58,11 +62,11 @@ public class ServiceContext extends GCUBEServiceContext {
|
||||||
|
|
||||||
protected boolean repeat(Exception exception, int exceptionCount) {
|
protected boolean repeat(Exception exception, int exceptionCount) {
|
||||||
if (exception!=null) {
|
if (exception!=null) {
|
||||||
/*logger.warn("Failed to create the notification resource (attempt "+exceptionCount+" out of 20)",exception);
|
logger.warn("Failed to create the notification resource (attempt "+exceptionCount+" out of 20)",exception);
|
||||||
if (exceptionCount >= 20) {
|
if (exceptionCount >= 20) {
|
||||||
logger.error("Max attempts reached, no more chance to register the notification resource");
|
logger.error("Max attempts reached, no more chance to register the notification resource");
|
||||||
return false;
|
return false;
|
||||||
} else*/
|
} else
|
||||||
return true;
|
return true;
|
||||||
} else
|
} else
|
||||||
return false;
|
return false;
|
||||||
|
@ -72,8 +76,23 @@ public class ServiceContext extends GCUBEServiceContext {
|
||||||
|
|
||||||
/** Tries to create the resource */
|
/** Tries to create the resource */
|
||||||
protected class NotificationResource extends GCUBEHandler<Object> {
|
protected class NotificationResource extends GCUBEHandler<Object> {
|
||||||
|
|
||||||
|
public NotificationResource() {
|
||||||
|
//register the aggregator content mapping in the current thread. This is because of the container
|
||||||
|
//behavior: it seems that
|
||||||
|
//this mapping is available only in the Main thread of the container, but not in the others
|
||||||
|
TypeMappingRegistry registry = ContainerConfig.getContext().getTypeMappingRegistry();
|
||||||
|
javax.xml.rpc.encoding.TypeMapping mapping = registry.createTypeMapping();
|
||||||
|
QName qname = new QName("http://mds.globus.org/aggregator/types","AggregatorContent");
|
||||||
|
mapping.register(AggregatorContent.class, qname,
|
||||||
|
new BeanSerializerFactory(AggregatorContent.class, qname),
|
||||||
|
new BeanDeserializerFactory(AggregatorContent.class,qname));
|
||||||
|
registry.register("", mapping);
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void run() throws Exception {
|
public void run() throws Exception {
|
||||||
|
|
||||||
ServiceContext.getContext().setScope(ServiceContext.getContext().getInstance().getScopes().values().toArray(new GCUBEScope[0])[0]);
|
ServiceContext.getContext().setScope(ServiceContext.getContext().getInstance().getScopes().values().toArray(new GCUBEScope[0])[0]);
|
||||||
RegistryFactoryResource resource = (RegistryFactoryResource) FactoryContext.getContext().getWSHome().create(
|
RegistryFactoryResource resource = (RegistryFactoryResource) FactoryContext.getContext().getWSHome().create(
|
||||||
FactoryContext.getContext().makeKey(RegistryFactory.NOTIFICATOR_RESOURCE_KEY));
|
FactoryContext.getContext().makeKey(RegistryFactory.NOTIFICATOR_RESOURCE_KEY));
|
||||||
|
@ -93,9 +112,6 @@ public class ServiceContext extends GCUBEServiceContext {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onReady() throws Exception {
|
protected void onReady() throws Exception {
|
||||||
//GCUBERunningInstance GHNManagerProfile = null;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//creates the single RegistryResource used to raise notifications about profiles' changes
|
//creates the single RegistryResource used to raise notifications about profiles' changes
|
||||||
logger.info("Creating IS-Registry notification resource...");
|
logger.info("Creating IS-Registry notification resource...");
|
||||||
|
@ -112,9 +128,9 @@ public class ServiceContext extends GCUBEServiceContext {
|
||||||
}
|
}
|
||||||
}}.start();*/
|
}}.start();*/
|
||||||
|
|
||||||
/*NotificationResourceScheduler scheduler = new NotificationResourceScheduler(10, GCUBEScheduledHandler.Mode.LAZY);
|
NotificationResourceScheduler scheduler = new NotificationResourceScheduler(10, GCUBEScheduledHandler.Mode.LAZY);
|
||||||
scheduler.setHandled(new NotificationResource());
|
scheduler.setHandled(new NotificationResource());
|
||||||
scheduler.run();*/
|
scheduler.run();
|
||||||
|
|
||||||
logger.info("IS-Registry notification resource registered");
|
logger.info("IS-Registry notification resource registered");
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,19 @@
|
||||||
package org.gcube.informationsystem.registry.impl.core;
|
package org.gcube.informationsystem.registry.impl.core;
|
||||||
|
|
||||||
|
import org.gcube.common.core.contexts.GHNContext;
|
||||||
|
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Local Configuration of the IS-Registry
|
* Local Configuration of the IS-Registry
|
||||||
|
@ -21,6 +35,28 @@ public class RegistryConfiguration {
|
||||||
abstract public String getClazz();
|
abstract public String getClazz();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static enum ResourceType {
|
||||||
|
RunningInstance() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBERunningInstance.class);}},
|
||||||
|
ExternalRunningInstance() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBEExternalRunningInstance.class);}},
|
||||||
|
Service() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBEService.class);}},
|
||||||
|
Collection() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBECollection.class);}},
|
||||||
|
CS() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBECS.class);}},
|
||||||
|
CSInstance() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBECSInstance.class);}},
|
||||||
|
GHN() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBEHostingNode.class);}},
|
||||||
|
gLiteSE() {public GCUBEResource getResourceClass() throws Exception {return null;}},
|
||||||
|
gLiteCE() {public GCUBEResource getResourceClass() throws Exception {return null;}},
|
||||||
|
gLiteSite() {public GCUBEResource getResourceClass()throws Exception {return null;}},
|
||||||
|
gLiteService() {public GCUBEResource getResourceClass() throws Exception {return null;}},
|
||||||
|
VRE() {public GCUBEResource getResourceClass()throws Exception {return GHNContext.getImplementation(GCUBEVRE.class);}},
|
||||||
|
GenericResource() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBEGenericResource.class);}},
|
||||||
|
TransformationProgram() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBETransformationProgram.class);}},
|
||||||
|
MetadataCollection() {public GCUBEResource getResourceClass() throws Exception {return GHNContext.getImplementation(GCUBEMCollection.class);}};
|
||||||
|
|
||||||
|
abstract public GCUBEResource getResourceClass() throws Exception;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -23,10 +23,10 @@ public class RegistryFactoryPersistenceDelegate extends GCUBEWSFilePersistenceDe
|
||||||
resource.setCSInstance((RegistryProperty)ois.readObject());
|
resource.setCSInstance((RegistryProperty)ois.readObject());
|
||||||
resource.setGHN((RegistryProperty)ois.readObject());
|
resource.setGHN((RegistryProperty)ois.readObject());
|
||||||
resource.setExternalRunningInstance((RegistryProperty)ois.readObject());
|
resource.setExternalRunningInstance((RegistryProperty)ois.readObject());
|
||||||
resource.setMetaColl((RegistryProperty)ois.readObject());
|
resource.setMetadataCollection((RegistryProperty)ois.readObject());
|
||||||
resource.setRunningInstance((RegistryProperty)ois.readObject());
|
resource.setRunningInstance((RegistryProperty)ois.readObject());
|
||||||
resource.setService((RegistryProperty)ois.readObject());
|
resource.setService((RegistryProperty)ois.readObject());
|
||||||
resource.setTransProgram((RegistryProperty)ois.readObject());
|
resource.setTransformationProgram((RegistryProperty)ois.readObject());
|
||||||
resource.setVRE((RegistryProperty)ois.readObject());
|
resource.setVRE((RegistryProperty)ois.readObject());
|
||||||
resource.setGenericResource((RegistryProperty)ois.readObject());
|
resource.setGenericResource((RegistryProperty)ois.readObject());
|
||||||
SubscriptionPersistenceUtils.loadSubscriptionListeners(
|
SubscriptionPersistenceUtils.loadSubscriptionListeners(
|
||||||
|
@ -46,10 +46,10 @@ public class RegistryFactoryPersistenceDelegate extends GCUBEWSFilePersistenceDe
|
||||||
oos.writeObject(resource.getCSInstance());
|
oos.writeObject(resource.getCSInstance());
|
||||||
oos.writeObject(resource.getGHN());
|
oos.writeObject(resource.getGHN());
|
||||||
oos.writeObject(resource.getExternalRunningInstance());
|
oos.writeObject(resource.getExternalRunningInstance());
|
||||||
oos.writeObject(resource.getMetaColl());
|
oos.writeObject(resource.getMetadataCollection());
|
||||||
oos.writeObject(resource.getRunningInstance());
|
oos.writeObject(resource.getRunningInstance());
|
||||||
oos.writeObject(resource.getService());
|
oos.writeObject(resource.getService());
|
||||||
oos.writeObject(resource.getTransProgram());
|
oos.writeObject(resource.getTransformationProgram());
|
||||||
oos.writeObject(resource.getVRE());
|
oos.writeObject(resource.getVRE());
|
||||||
oos.writeObject(resource.getGenericResource());
|
oos.writeObject(resource.getGenericResource());
|
||||||
|
|
||||||
|
|
|
@ -430,7 +430,7 @@ public class RegistryFactoryResource extends GCUBEWSResource {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void setMetaColl (RegistryProperty property) {
|
public void setMetadataCollection (RegistryProperty property) {
|
||||||
this.getResourcePropertySet().get(MetadataCollectionRP).clear();
|
this.getResourcePropertySet().get(MetadataCollectionRP).clear();
|
||||||
this.getResourcePropertySet().get(MetadataCollectionRP).add(property);
|
this.getResourcePropertySet().get(MetadataCollectionRP).add(property);
|
||||||
//this.getPersistenceDelegate().store(this);
|
//this.getPersistenceDelegate().store(this);
|
||||||
|
@ -443,7 +443,7 @@ public class RegistryFactoryResource extends GCUBEWSResource {
|
||||||
* @return The RegistryProperty
|
* @return The RegistryProperty
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public RegistryProperty getMetaColl () {
|
public RegistryProperty getMetadataCollection () {
|
||||||
return (RegistryProperty) this.getResourcePropertySet().get(MetadataCollectionRP).get(0);
|
return (RegistryProperty) this.getResourcePropertySet().get(MetadataCollectionRP).get(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -455,7 +455,7 @@ public class RegistryFactoryResource extends GCUBEWSResource {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void setTransProgram (RegistryProperty property) {
|
public void setTransformationProgram(RegistryProperty property) {
|
||||||
this.getResourcePropertySet().get(TransformationProgramRP).clear();
|
this.getResourcePropertySet().get(TransformationProgramRP).clear();
|
||||||
this.getResourcePropertySet().get(TransformationProgramRP).add(property);
|
this.getResourcePropertySet().get(TransformationProgramRP).add(property);
|
||||||
//this.getPersistenceDelegate().store(this);
|
//this.getPersistenceDelegate().store(this);
|
||||||
|
@ -468,7 +468,7 @@ public class RegistryFactoryResource extends GCUBEWSResource {
|
||||||
* @return The RegistryProperty
|
* @return The RegistryProperty
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public RegistryProperty getTransProgram () {
|
public RegistryProperty getTransformationProgram() {
|
||||||
return (RegistryProperty) this.getResourcePropertySet().get(TransformationProgramRP).get(0);
|
return (RegistryProperty) this.getResourcePropertySet().get(TransformationProgramRP).get(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class RegistryRemoveTest {
|
||||||
registryFactoryPortType =GCUBERemotePortTypeContext.getProxy(registryFactoryPortType,GCUBEScope.getScope(args[2]),managerSec);
|
registryFactoryPortType =GCUBERemotePortTypeContext.getProxy(registryFactoryPortType,GCUBEScope.getScope(args[2]),managerSec);
|
||||||
try {
|
try {
|
||||||
StringWriter writer =new StringWriter();
|
StringWriter writer =new StringWriter();
|
||||||
message.setType(GCUBEHostingNode.TYPE);
|
message.setType(GCUBERunningInstance.TYPE);
|
||||||
message.setUniqueID(args[1]);
|
message.setUniqueID(args[1]);
|
||||||
registryFactoryPortType.removeResource(message);
|
registryFactoryPortType.removeResource(message);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue