org.globus.exec.service.multi
Class ManagedMultiJobResource

java.lang.Object
  extended byorg.globus.wsrf.impl.ReflectionResource
      extended byorg.globus.rendezvous.service.RendezvousResourceImpl
          extended byorg.globus.exec.service.job.ManagedJobResourceImpl
              extended byorg.globus.exec.service.multi.ManagedMultiJobResource
All Implemented Interfaces:
ManagedJobResource, NotifyCallback, RemoveCallback, org.globus.rendezvous.service.RendezvousResource, Resource, ResourceIdentifier, ResourceLifetime, ResourceProperties, java.lang.Runnable, SecureResource, TopicListAccessor
Direct Known Subclasses:
PersistentManagedMultiJobResource

public class ManagedMultiJobResource
extends ManagedJobResourceImpl
implements RemoveCallback, SecureResource, NotifyCallback, java.lang.Runnable


Field Summary
private static org.globus.util.I18n coreI18n
           
private static org.globus.util.I18n i18n
           
private static org.apache.commons.logging.Log logger
           
private  ResourceSecurityDescriptor securityDescriptor
          Timestamp of last stage change event.
 
Fields inherited from class org.globus.exec.service.job.ManagedJobResourceImpl
 
Fields inherited from class org.globus.rendezvous.service.RendezvousResourceImpl
 
Fields inherited from class org.globus.wsrf.impl.ReflectionResource
 
Constructor Summary
ManagedMultiJobResource()
           
 
Method Summary
private static JobDescriptionType[] breakUpMultiJobDescription(MultiJobDescriptionType multiJobDescription, java.lang.String multiJobHandle)
           
private  org.apache.axis.message.addressing.EndpointReferenceType createSubJob(JobDescriptionType subJobDescription, int subJobIndex)
           
private  void createSubJobs()
           
 void deliver(java.util.List topicPath, org.apache.axis.message.addressing.EndpointReferenceType producerEndpoint, java.lang.Object messageWrapper)
           
private  void destroySubJob(org.apache.axis.message.addressing.EndpointReferenceType subJobEndpoint, JobDescriptionType subJobDescription)
           
private  void destroySubJobs()
           
 NotifyCallback getCallback(java.util.List topicPath)
           
private static java.lang.String getResourceIdFromEndpoint(org.apache.axis.message.addressing.EndpointReferenceType endpoint)
           
 ResourceSecurityDescriptor getSecurityDescriptor()
           
 void initialize(java.lang.Object resourceBean, javax.xml.namespace.QName resourceElementQName, java.lang.Object key)
           
protected  void initializeTopics()
           
 void initializeWholeState(java.lang.Object wholeResourceState, javax.xml.namespace.QName resourceElementQName, java.lang.Object key)
          Initialize the whole state of the resource.
 void initSecurity()
           
 void processStateNotification(StateEnumeration state, boolean holding, FaultResourcePropertyType faultWrapper)
           
 void registerCallback(java.util.List topicPath, NotifyCallback callback)
           
private  void releaseSubJob(org.apache.axis.message.addressing.EndpointReferenceType subJobEndpoint, JobDescriptionType subJobDescription)
           
(package private)  void releaseSubJobs()
           
 void remove()
           
 void run()
           
 void setState(StateEnumeration state)
           
private  void setStubSecurity(javax.xml.rpc.Stub stub)
           
 void start()
           
private  void unsubscribeToNotificationsForSubJobs()
           
 
Methods inherited from class org.globus.exec.service.job.ManagedJobResourceImpl
getFault, getJobCredential, getJobDescription, getResourceData, getResourceDatum, getResourceProperty, getStagingCredential, getState, setFault, setJobDescription, setResourceData, setResourceDatum, setResourceDatum, setResourceDatum, setResourceProperty, setResourceProperty
 
Methods inherited from class org.globus.rendezvous.service.RendezvousResourceImpl
createNewResourceProperty, getInternalRendezvousState, getTopicList, isFull, register, setInternalRendezvousState
 
Methods inherited from class org.globus.wsrf.impl.ReflectionResource
createNewResourceProperty, getCurrentTime, getID, getResourceBean, getResourcePropertySet, getTerminationTime, setTerminationTime
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.globus.wsrf.ResourceProperties
getResourcePropertySet
 
Methods inherited from interface org.globus.wsrf.ResourceIdentifier
getID
 

Field Detail

securityDescriptor

private ResourceSecurityDescriptor securityDescriptor
Timestamp of last stage change event. This may need to be persistent. private Date lastStateTimestamp = new java.util.Date();


logger

private static org.apache.commons.logging.Log logger

i18n

private static org.globus.util.I18n i18n

coreI18n

private static org.globus.util.I18n coreI18n
Constructor Detail

ManagedMultiJobResource

public ManagedMultiJobResource()
Method Detail

initializeWholeState

public void initializeWholeState(java.lang.Object wholeResourceState,
                                 javax.xml.namespace.QName resourceElementQName,
                                 java.lang.Object key)
                          throws ResourceException
Description copied from interface: ManagedJobResource
Initialize the whole state of the resource. Called by the Home or the persistence layer.

The implementation must call initialize().

Specified by:
initializeWholeState in interface ManagedJobResource
Overrides:
initializeWholeState in class ManagedJobResourceImpl
Throws:
ResourceException

initialize

public void initialize(java.lang.Object resourceBean,
                       javax.xml.namespace.QName resourceElementQName,
                       java.lang.Object key)
                throws ResourceException
Throws:
ResourceException

initSecurity

public void initSecurity()
                  throws ResourceException
Throws:
ResourceException

initializeTopics

protected void initializeTopics()

remove

public void remove()
            throws ResourceException
Specified by:
remove in interface RemoveCallback
Throws:
ResourceException

start

public void start()
Specified by:
start in interface ManagedJobResource

run

public void run()
Specified by:
run in interface java.lang.Runnable

createSubJobs

private void createSubJobs()
                    throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

breakUpMultiJobDescription

private static JobDescriptionType[] breakUpMultiJobDescription(MultiJobDescriptionType multiJobDescription,
                                                               java.lang.String multiJobHandle)
                                                        throws ResourceException
Throws:
ResourceException

createSubJob

private org.apache.axis.message.addressing.EndpointReferenceType createSubJob(JobDescriptionType subJobDescription,
                                                                              int subJobIndex)
                                                                       throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getResourceIdFromEndpoint

private static java.lang.String getResourceIdFromEndpoint(org.apache.axis.message.addressing.EndpointReferenceType endpoint)

releaseSubJobs

void releaseSubJobs()
              throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

releaseSubJob

private void releaseSubJob(org.apache.axis.message.addressing.EndpointReferenceType subJobEndpoint,
                           JobDescriptionType subJobDescription)
                    throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

destroySubJobs

private void destroySubJobs()
                     throws ResourceException
Throws:
ResourceException

unsubscribeToNotificationsForSubJobs

private void unsubscribeToNotificationsForSubJobs()
                                           throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

destroySubJob

private void destroySubJob(org.apache.axis.message.addressing.EndpointReferenceType subJobEndpoint,
                           JobDescriptionType subJobDescription)
                    throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

setStubSecurity

private void setStubSecurity(javax.xml.rpc.Stub stub)
                      throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

setState

public void setState(StateEnumeration state)
              throws java.lang.Exception
Specified by:
setState in interface ManagedJobResource
Overrides:
setState in class ManagedJobResourceImpl
Throws:
java.lang.Exception

registerCallback

public void registerCallback(java.util.List topicPath,
                             NotifyCallback callback)

getCallback

public NotifyCallback getCallback(java.util.List topicPath)

deliver

public void deliver(java.util.List topicPath,
                    org.apache.axis.message.addressing.EndpointReferenceType producerEndpoint,
                    java.lang.Object messageWrapper)
Specified by:
deliver in interface NotifyCallback

processStateNotification

public void processStateNotification(StateEnumeration state,
                                     boolean holding,
                                     FaultResourcePropertyType faultWrapper)
                              throws java.lang.Exception
Throws:
java.lang.Exception

getSecurityDescriptor

public ResourceSecurityDescriptor getSecurityDescriptor()
Specified by:
getSecurityDescriptor in interface SecureResource