001 /**
002 *
003 * Copyright 2003-2004 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 //
019 // This source code implements specifications defined by the Java
020 // Community Process. In order to remain compliant with the specification
021 // DO NOT add / change / or delete method signatures!
022 //
023
024 package javax.enterprise.deploy.spi.status;
025
026 import javax.enterprise.deploy.spi.TargetModuleID;
027 import javax.enterprise.deploy.spi.exceptions.OperationUnsupportedException;
028
029 /**
030 * The ProgressObject interface tracks and reports the progress of the
031 * deployment activities: distribute, start, stop, undeploy.
032 *
033 * This class has an <i>optional</i> cancel method. The support of the cancel
034 * function can be tested by the isCancelSupported method.
035 *
036 * The ProgressObject structure allows the user the option of polling for
037 * status or to provide a callback.
038 *
039 * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $
040 */
041 public interface ProgressObject {
042 /**
043 * Retrieve the status of this activity.
044 *
045 * @return An object containing the status information.
046 */
047 public DeploymentStatus getDeploymentStatus();
048
049 /**
050 * Retrieve the list of TargetModuleIDs successfully processed or created
051 * by the associated DeploymentManager operation.
052 *
053 * @return a list of TargetModuleIDs.
054 */
055 public TargetModuleID[] getResultTargetModuleIDs();
056
057 /**
058 * Return the ClientConfiguration object associated with the
059 * TargetModuleID.
060 *
061 * @return ClientConfiguration for a given TargetModuleID or <tt>null</tt>
062 * if none exists.
063 */
064 public ClientConfiguration getClientConfiguration(TargetModuleID id);
065
066 /**
067 * Tests whether the vendor supports a cancel operation for this
068 * deployment action.
069 *
070 * @return <tt>true</tt> if this platform allows this action to be
071 * canceled.
072 */
073 public boolean isCancelSupported();
074
075 /**
076 * (optional) A cancel request on an in-process operation stops all further
077 * processing of the operation and returns the environment to it original
078 * state before the operation was executed. An operation that has run to
079 * completion cannot be cancelled.
080 *
081 * @throws OperationUnsupportedException occurs when this optional command
082 * is not supported by this implementation.
083 */
084 public void cancel() throws OperationUnsupportedException;
085
086 /**
087 * Tests whether the vendor supports a stop operation for the deployment
088 * action.
089 *
090 * @return <tt>true</tt> if this platform allows this action to be
091 * stopped.
092 */
093 public boolean isStopSupported();
094
095 /**
096 * (optional) A stop request on an in-process operation allows the
097 * operation on the current TargetModuleID to run to completion but does
098 * not process any of the remaining unprocessed TargetModuleID objects.
099 * The processed TargetModuleIDs must be returned by the method
100 * getResultTargetModuleIDs.
101 *
102 * @throws OperationUnsupportedException occurs when this optional command
103 * is not supported by this implementation.
104 */
105 public void stop() throws OperationUnsupportedException;
106
107 /**
108 * Add a listener to receive progress events on deployment actions.
109 *
110 * @param pol the listener to receive events
111 */
112 public void addProgressListener(ProgressListener pol);
113
114 /**
115 * Remove a progress listener.
116 *
117 * @param pol the listener to remove
118 */
119 public void removeProgressListener(ProgressListener pol);
120 }