CVS: plexus-container-new/src/java/org/apache/plexus/lifecycle AbstractLifecycleHandler.java,1.2,1.3
| Newsgroups | gmane.comp.java.plexus.devel |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/plexus/plexus-container-new/src/java/org/apache/plexus/lifecycle
In directory eng.werken.com:/tmp/cvs-serv18947
Modified Files:
AbstractLifecycleHandler.java
Log Message:
o Deal with begin/suspend/resume/end segments of the lifecycle.
Index: AbstractLifecycleHandler.java
===================================================================
RCS file: /cvsroot/plexus/plexus-container-new/src/java/org/apache/plexus/lifecycle/AbstractLifecycleHandler.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- AbstractLifecycleHandler.java 24 Apr 2003 14:49:01 -0000 1.2
+++ AbstractLifecycleHandler.java 25 Apr 2003 19:22:33 -0000 1.3
@@ -1,15 +1,32 @@
package org.apache.plexus.lifecycle;
import org.apache.plexus.logging.AbstractLogEnabled;
+import org.apache.plexus.lifecycle.phase.Phase;
+import org.apache.plexus.service.repository.ServiceCapsule;
import java.util.HashMap;
import java.util.Map;
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
public abstract class AbstractLifecycleHandler
extends AbstractLogEnabled
implements LifecycleHandler
{
private Map entities;
+ private List beginSegment;
+ private List suspendSegment;
+ private List resumeSegment;
+ private List endSegment;
+
+ public AbstractLifecycleHandler()
+ {
+ beginSegment = new ArrayList();
+ suspendSegment = new ArrayList();
+ resumeSegment = new ArrayList();
+ endSegment = new ArrayList();
+ }
public Map getEntities()
{
@@ -31,5 +48,117 @@
getEntities().put( key, entity );
}
- public abstract void assembleSegments();
+ // ----------------------------------------------------------------------
+ // Begin Segment
+ // ----------------------------------------------------------------------
+
+ public void setBeginSegment( List beginSegment )
+ {
+ this.beginSegment = beginSegment;
+ }
+
+ public void addBeginSegmentPhase( Phase phase )
+ {
+ getBeginSegment().add( phase );
+ }
+
+ public List getBeginSegment()
+ {
+ return beginSegment;
+ }
+
+ // ----------------------------------------------------------------------
+ // Suspend Segment
+ // ----------------------------------------------------------------------
+
+ public void setSuspendSegment( List suspendSegment )
+ {
+ this.suspendSegment = suspendSegment;
+ }
+
+ public void addSuspendSegmentPhase( Phase phase )
+ {
+ getSuspendSegment().add( phase );
+ }
+
+ public List getSuspendSegment()
+ {
+ return suspendSegment;
+ }
+
+ // ----------------------------------------------------------------------
+ // Resume Segment
+ // ----------------------------------------------------------------------
+
+ public void setResumeSegment( List resumeSegment )
+ {
+ this.resumeSegment = resumeSegment;
+ }
+
+ public void addResumeSegmentPhase( Phase phase )
+ {
+ getResumeSegment().add( phase );
+ }
+
+ public List getResumeSegment()
+ {
+ return resumeSegment;
+ }
+
+ // ----------------------------------------------------------------------
+ // End Segment
+ // ----------------------------------------------------------------------
+
+ public void setEndSegment( List endSegment )
+ {
+ this.endSegment = endSegment;
+ }
+
+ public void addEndSegmentPhase( Phase phase )
+ {
+ getEndSegment().add( phase );
+ }
+
+ public List getEndSegment()
+ {
+ return endSegment;
+ }
+
+ // ----------------------------------------------------------------------
+ // Lifecylce Management
+ // ----------------------------------------------------------------------
+
+ /** Start a component's lifecycle.
+ *
+ * @param service The component service.
+ *
+ * @throws java.lang.Exception If an error occurs while attempting to beginSegment
+ * the component's lifecycle.
+ */
+ public void startLifecycle( ServiceCapsule service )
+ throws Exception
+ {
+ for ( Iterator i = getBeginSegment().iterator(); i.hasNext(); )
+ {
+ Phase phase = (Phase) i.next();
+ phase.execute( service, this );
+ }
+ }
+
+ /** End a component's lifecycle.
+ *
+ * @param service The component service.
+ *
+ * @throws java.lang.Exception If an error occurs while attempting to endSegment
+ * the component's lifecycle.
+ */
+ public void endLifecycle( ServiceCapsule service )
+ throws Exception
+ {
+ for ( Iterator i = getEndSegment().iterator(); i.hasNext(); )
+ {
+ Phase phase = (Phase) i.next();
+ phase.execute( service, this );
+ }
+ }
}