Temporary resources lifetime as parameter in the JNDI config

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/information-system/gCubeIS/Registry@12013 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Manuele Simi 2009-05-12 18:14:29 +00:00
parent fffd2fd2b3
commit ff45baf3b1
4 changed files with 35 additions and 27 deletions

Binary file not shown.

View File

@ -4,16 +4,24 @@
<service name="gcube/informationsystem/registry"> <service name="gcube/informationsystem/registry">
<environment <environment
name="configDir" name="configDir"
value="@config.dir@" value="@config.dir@"
type="java.lang.String" type="java.lang.String"
override="false" /> override="false" />
<environment <environment
name="securityManagerClass" name="securityManagerClass"
value="org.gcube.common.core.security.GCUBESimpleServiceSecurityManager" value="org.gcube.common.core.security.GCUBESimpleServiceSecurityManager"
type="java.lang.String" type="java.lang.String"
override="false" /> override="false" />
<!-- Lifetime for temporary resources, after this period temporary resources are destroyed-->
<environment
name="temporaryResourceLifetimeInMs"
value="240000"
type="java.lang.Long"
override="false" />
<!-- <!--
<environment <environment
name="startScopes" name="startScopes"
@ -37,12 +45,7 @@
value="ProfileResourceProperties" value="ProfileResourceProperties"
type="java.lang.String" type="java.lang.String"
override="false"/> override="false"/>
<!--<environment
name="lifeTime"
value="120"
type="java.lang.Integer"
override="false" /> -->
<resource name="publicationProfile" type="org.gcube.common.core.state.GCUBEPublicationProfile"> <resource name="publicationProfile" type="org.gcube.common.core.state.GCUBEPublicationProfile">
<resourceParams> <resourceParams>

Binary file not shown.

View File

@ -55,24 +55,21 @@ import static org.gcube.informationsystem.registry.impl.core.RegistryConfigurati
*/ */
public class RegistryFactory extends GCUBEPortType { public class RegistryFactory extends GCUBEPortType {
private final long delayRemoveTyme= 120000; /**Name of temporaryResourceLifetimeInMs JNDI environment.*/
private static final String LIFETIME_JNDI_NAME = "temporaryResourceLifetimeInMs";
/** /**
* The UUIDGen * Lifetime of temporary resources
*/ */
private static long temporaryResourceLifetimeInMs= 120000;
/**The UUIDGen */
private static final UUIDGen uuidgen = UUIDGenFactory.getUUIDGen(); private static final UUIDGen uuidgen = UUIDGenFactory.getUUIDGen();
/**Object logger*/
/**
* Object logger.
* */
protected final GCUBELog logger = new GCUBELog(RegistryFactory.class); protected final GCUBELog logger = new GCUBELog(RegistryFactory.class);
/**
*
*
*/
enum OperationType {create,update,destroy}; enum OperationType {create,update,destroy};
/** /**
@ -83,7 +80,15 @@ public class RegistryFactory extends GCUBEPortType {
/** the key used to label the Factory Resource */ /** the key used to label the Factory Resource */
public static final String NOTIFICATOR_RESOURCE_KEY = "RegistryResource"; public static final String NOTIFICATOR_RESOURCE_KEY = "RegistryResource";
/**
* {@inheritDoc}
*/
@Override
protected void onInitialisation() throws Exception {
temporaryResourceLifetimeInMs = (Long)ServiceContext.getContext().getProperty(LIFETIME_JNDI_NAME);
logger.info("Temporary resources lifetime = " + temporaryResourceLifetimeInMs);
}
/** /**
* Use to Load from Disk persistence profiles and registers it into the IS-IC ( in case the IS-IC is empty) * Use to Load from Disk persistence profiles and registers it into the IS-IC ( in case the IS-IC is empty)
* *
@ -179,7 +184,7 @@ public class RegistryFactory extends GCUBEPortType {
long timestamp; long timestamp;
if (resource.getType().compareTo(GCUBEHostingNode.TYPE)!=0){ if (resource.getType().compareTo(GCUBEHostingNode.TYPE)!=0){
GCUBEScope tmpScope= ServiceContext.getContext().getScope().getType() == GCUBEScope.Type.VRE ? ServiceContext.getContext().getScope().getEnclosingScope() : ServiceContext.getContext().getScope(); GCUBEScope tmpScope= ServiceContext.getContext().getScope().getType() == GCUBEScope.Type.VRE ? ServiceContext.getContext().getScope().getEnclosingScope() : ServiceContext.getContext().getScope();
timestamp=System.currentTimeMillis()+delayRemoveTyme; timestamp=System.currentTimeMillis()+temporaryResourceLifetimeInMs;
Couple c= new Couple(timestamp, presource); Couple c= new Couple(timestamp, presource);
if(!ServiceContext.threadTable.get(tmpScope.getName()).getStack().contains(c)){ if(!ServiceContext.threadTable.get(tmpScope.getName()).getStack().contains(c)){
@ -187,7 +192,7 @@ public class RegistryFactory extends GCUBEPortType {
logger.trace("Adding resource to EliminatePoolingThread "+presource.getGCubeResource().getID()); logger.trace("Adding resource to EliminatePoolingThread "+presource.getGCubeResource().getID());
}else{ }else{
int index= ServiceContext.threadTable.get(tmpScope.getName()).getStack().indexOf(c); int index= ServiceContext.threadTable.get(tmpScope.getName()).getStack().indexOf(c);
ServiceContext.threadTable.get(tmpScope.getName()).getStack().get(index).timestamp=timestamp+delayRemoveTyme; ServiceContext.threadTable.get(tmpScope.getName()).getStack().get(index).timestamp=timestamp+temporaryResourceLifetimeInMs;
} }
} }
} }
@ -265,14 +270,14 @@ public class RegistryFactory extends GCUBEPortType {
long timestamp; long timestamp;
if (resource.getType().compareTo(GCUBEHostingNode.TYPE)!=0){ if (resource.getType().compareTo(GCUBEHostingNode.TYPE)!=0){
GCUBEScope tmpScope= ServiceContext.getContext().getScope().getType() == GCUBEScope.Type.VRE ? ServiceContext.getContext().getScope().getEnclosingScope() : ServiceContext.getContext().getScope(); GCUBEScope tmpScope= ServiceContext.getContext().getScope().getType() == GCUBEScope.Type.VRE ? ServiceContext.getContext().getScope().getEnclosingScope() : ServiceContext.getContext().getScope();
timestamp=System.currentTimeMillis()+delayRemoveTyme; timestamp=System.currentTimeMillis()+temporaryResourceLifetimeInMs;
Couple c= new Couple(timestamp, pr); Couple c= new Couple(timestamp, pr);
if(!ServiceContext.threadTable.get(tmpScope.getName()).getStack().contains(c)){ if(!ServiceContext.threadTable.get(tmpScope.getName()).getStack().contains(c)){
ServiceContext.threadTable.get(tmpScope.getName()).getStack().add(c); ServiceContext.threadTable.get(tmpScope.getName()).getStack().add(c);
logger.trace("Adding resource to EliminatePoolingThread "+pr.getGCubeResource().getID()); logger.trace("Adding resource to EliminatePoolingThread "+pr.getGCubeResource().getID());
}else{ }else{
int index= ServiceContext.threadTable.get(tmpScope.getName()).getStack().indexOf(c); int index= ServiceContext.threadTable.get(tmpScope.getName()).getStack().indexOf(c);
ServiceContext.threadTable.get(tmpScope.getName()).getStack().get(index).timestamp=timestamp+delayRemoveTyme; ServiceContext.threadTable.get(tmpScope.getName()).getStack().get(index).timestamp=timestamp+temporaryResourceLifetimeInMs;
} }
} }
} }