From: Steve L. <st...@us...> - 2004-09-16 22:59:40
|
Update of /cvsroot/smartfrog/core/components/cddlm/src/org/smartfrog/services/cddlm/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24206/components/cddlm/src/org/smartfrog/services/cddlm/engine Modified Files: ActionWorker.java JobState.java NotificationAction.java Removed Files: CallbackAction.java Log Message: Callbacks are nearly working. nearly doesnt mean they will be working by monday; --- CallbackAction.java DELETED --- Index: ActionWorker.java =================================================================== RCS file: /cvsroot/smartfrog/core/components/cddlm/src/org/smartfrog/services/cddlm/engine/ActionWorker.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ActionWorker.java 9 Sep 2004 17:06:15 -0000 1.1 --- ActionWorker.java 16 Sep 2004 22:58:50 -0000 1.2 *************** *** 86,90 **** private void processException(Exception ex) { ! log.error(ex); } --- 86,90 ---- private void processException(Exception ex) { ! log.error("Received when invoking endpoint",ex); } Index: NotificationAction.java =================================================================== RCS file: /cvsroot/smartfrog/core/components/cddlm/src/org/smartfrog/services/cddlm/engine/NotificationAction.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NotificationAction.java 9 Sep 2004 17:06:15 -0000 1.1 --- NotificationAction.java 16 Sep 2004 22:58:51 -0000 1.2 *************** *** 20,24 **** package org.smartfrog.services.cddlm.engine; ! import org.apache.axis.types.URI; import org.smartfrog.services.cddlm.generated.api.callbacks.DeploymentCallbackSoapBindingStub; import org.smartfrog.services.cddlm.generated.api.types._lifecycleEventCallbackRequest; --- 20,25 ---- package org.smartfrog.services.cddlm.engine; ! import org.apache.commons.logging.Log; ! import org.apache.commons.logging.LogFactory; import org.smartfrog.services.cddlm.generated.api.callbacks.DeploymentCallbackSoapBindingStub; import org.smartfrog.services.cddlm.generated.api.types._lifecycleEventCallbackRequest; *************** *** 33,60 **** public class NotificationAction extends BaseAction { ! /** * uri to notify */ ! private URI uri; /** * data to send */ ! private _lifecycleEventCallbackRequest data; private Integer timeout; /** * constructor * ! * @param uri * @param data */ ! public NotificationAction(URI uri, _lifecycleEventCallbackRequest data) { assert data != null; ! assert uri != null; ! this.uri = uri; ! this.data = data; } --- 34,73 ---- public class NotificationAction extends BaseAction { ! /** ! * log ! */ ! private static final Log log = LogFactory.getLog(NotificationAction.class); /** * uri to notify */ ! private URL url; /** * data to send */ ! private _lifecycleEventCallbackRequest message; + /** + * callback timeout + */ private Integer timeout; /** + * sleep time. this is mostly for demos + */ + + private int sleepTime; + + /** * constructor * ! * @param url * @param data */ ! public NotificationAction(URL url, _lifecycleEventCallbackRequest data) { assert data != null; ! assert url != null; ! this.url = url; ! this.message = data; } *************** *** 69,72 **** --- 82,109 ---- /** + * set the optional sleep time in seconds + * @param sleepTimeInSeconds + */ + public void setSleepTime(int sleepTimeInSeconds) { + this.sleepTime = sleepTimeInSeconds; + } + + public _lifecycleEventCallbackRequest getMessage() { + return message; + } + + public void setMessage(_lifecycleEventCallbackRequest message) { + this.message = message; + } + + public URL getUrl() { + return url; + } + + public void setUrl(URL url) { + this.url = url; + } + + /** * issue a notification * *************** *** 75,79 **** */ public void execute() throws SmartFrogException, RemoteException { ! URL url = URIHelper.toJavaURL(uri); DeploymentCallbackSoapBindingStub callback = new DeploymentCallbackSoapBindingStub( url, null); --- 112,122 ---- */ public void execute() throws SmartFrogException, RemoteException { ! if(sleepTime>0) { ! try { ! Thread.sleep(sleepTime*1000); ! } catch (InterruptedException e) { ! ! } ! } DeploymentCallbackSoapBindingStub callback = new DeploymentCallbackSoapBindingStub( url, null); *************** *** 81,85 **** callback.setTimeout(timeout.intValue()); } ! callback.callback(data); } --- 124,129 ---- callback.setTimeout(timeout.intValue()); } ! log.info("sending notification to "+url); ! callback.callback(message); } Index: JobState.java =================================================================== RCS file: /cvsroot/smartfrog/core/components/cddlm/src/org/smartfrog/services/cddlm/engine/JobState.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** JobState.java 15 Sep 2004 12:59:13 -0000 1.5 --- JobState.java 16 Sep 2004 22:58:51 -0000 1.6 *************** *** 32,41 **** --- 32,44 ---- import org.smartfrog.services.cddlm.generated.api.types.ApplicationStatusType; import org.smartfrog.services.cddlm.generated.api.types.DeploymentDescriptorType; + import org.smartfrog.services.cddlm.generated.api.types.LifecycleStateEnum; import org.smartfrog.services.cddlm.generated.api.types._deployRequest; import org.smartfrog.sfcore.prim.Prim; + import org.smartfrog.sfcore.prim.TerminationRecord; import javax.xml.namespace.QName; import java.lang.ref.WeakReference; import java.net.URL; + import java.rmi.RemoteException; /** *************** *** 109,122 **** private CdlDocument cdlDocument; /** ! * type of the callback */ ! private String callbackType; /** ! * */ ! private URL callbackURL; /** --- 112,131 ---- private CdlDocument cdlDocument; + /** ! * description string from the JSDL */ ! private String description; /** ! * lifecycle state */ ! private LifecycleStateEnum state=LifecycleStateEnum.undefined; ! ! /** ! * state information string ! */ ! private String stateInfo; /** *************** *** 129,132 **** --- 138,155 ---- */ private String languageName = null; + /** + * type of the callback + */ + private String callbackType; + + /** + * url for callbacks + */ + private URL callbackURL; + + /** + * enter terminated state + */ + private TerminationRecord terminationRecord; /** *************** *** 135,139 **** private String callbackIdentifier; - public String getCallbackIdentifier() { return callbackIdentifier; --- 158,161 ---- *************** *** 220,223 **** --- 242,253 ---- } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + /** * set the request. The name is extracted here; it remains null if currently *************** *** 354,361 **** ! public ApplicationStatusType createApplicationStatus() throws AxisFault { ApplicationStatusType status = new ApplicationStatusType(); status.setName(new NCName(name)); status.setReference(getUri()); if (fault != null) { /* TODO: implement. this doesnt compile on jikes --- 384,394 ---- ! public ApplicationStatusType createApplicationStatus() { ApplicationStatusType status = new ApplicationStatusType(); status.setName(new NCName(name)); status.setReference(getUri()); + status.setState(getState()); + status.setStateInfo(stateInfo); + if (fault != null) { /* TODO: implement. this doesnt compile on jikes *************** *** 380,382 **** --- 413,463 ---- return status; } + + public LifecycleStateEnum getState() { + return state; + } + + public void setState(LifecycleStateEnum state) { + this.state = state; + } + + public String getStateInfo() { + return stateInfo; + } + + public void setStateInfo(String stateInfo) { + this.stateInfo = stateInfo; + } + + public TerminationRecord getTerminationRecord() { + return terminationRecord; + } + + /** + * enter a state, send notification if this is different + * from a state we were in before + * This method is synchronous, you cannot enter a state till the + * last one was processed. + * @param newState new state to enter + */ + public synchronized void enterStateNotifying(LifecycleStateEnum newState,String info) { + stateInfo=info; + if(!newState.equals(state)) { + state=newState; + if(callbackRaiser!=null) { + callbackRaiser.raiseLifecycleEvent(this,resolvePrimNonFaulting(), null); + } + } + } + + /** + * terminate, send a message out + * @param record + */ + public synchronized void enterTerminatedStateNotifying(TerminationRecord record) { + this.terminationRecord=record; + enterStateNotifying(LifecycleStateEnum.terminated,record.toString()); + } + + } |