mcconnell 2002/12/17 03:35:50 Modified: assembly/src/java/org/apache/avalon/assembly/engine DefaultAssemblyService.java assembly/src/java/org/apache/avalon/assembly/lifecycle DefaultDeploymentService.java DeploymentService.java assembly/src/java/org/apache/avalon/assembly/lifestyle AbstractLifestyleHandler.java TransientLifestyleHandler.java assembly/src/test/org/apache/avalon/playground DemoManager.xinfo ExploitationManager.xinfo Log: Updates to the transient lifestyle handling. Revision Changes Path 1.3 +5 -1 avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/engine/DefaultAssemblyService.java Index: DefaultAssemblyService.java =================================================================== RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/engine/DefaultAssemblyService.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DefaultAssemblyService.java 17 Dec 2002 04:54:07 -0000 1.2 +++ DefaultAssemblyService.java 17 Dec 2002 11:35:50 -0000 1.3 @@ -205,6 +205,10 @@ for( int i=0; i<consumers.length; i++ ) { Appliance consumer = consumers[i]; + if( getLogger().isDebugEnabled() ) + { + getLogger().debug("terminating consumer: " + consumer ); + } consumer.terminate(); m_map.remove( consumer ); } 1.7 +18 -3 avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifecycle/DefaultDeploymentService.java Index: DefaultDeploymentService.java =================================================================== RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifecycle/DefaultDeploymentService.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DefaultDeploymentService.java 17 Dec 2002 04:56:34 -0000 1.6 +++ DefaultDeploymentService.java 17 Dec 2002 11:35:50 -0000 1.7 @@ -381,15 +381,30 @@ /** * Destroy an appliance. - * @param appliance the appliance to destroy + * @param appliance the object's appliance + * @param instance the object to decommission */ public void decommission( Appliance appliance, Object instance ) { + decommission( appliance, instance, true ); + } + + /** + * Destroy an appliance. + * @param appliance the object's appliance + * @param instance the object to decommission + * @param disassemble TRUE if the appliance should be dissasembled + */ + public void decommission( Appliance appliance, Object instance, boolean disassemble ) + { // // make sure all dependent components are decommissioned // - m_assembly.disassemble( appliance ); + if( disassemble ) + { + m_assembly.disassemble( appliance ); + } try { 1.3 +7 -1 avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifecycle/DeploymentService.java Index: DeploymentService.java =================================================================== RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifecycle/DeploymentService.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DeploymentService.java 3 Dec 2002 06:57:26 -0000 1.2 +++ DeploymentService.java 17 Dec 2002 11:35:50 -0000 1.3 @@ -88,4 +88,10 @@ * @param object the object to decommission */ void decommission( Appliance appliance, Object object ); + + /** + * Destroy an appliance. + * @param appliance the appliance to destroy + */ + public void decommission( Appliance appliance, Object instance, boolean disassemble ); } 1.10 +4 -4 avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifestyle/AbstractLifestyleHandler.java Index: AbstractLifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifestyle/AbstractLifestyleHandler.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- AbstractLifestyleHandler.java 17 Dec 2002 04:57:20 -0000 1.9 +++ AbstractLifestyleHandler.java 17 Dec 2002 11:35:50 -0000 1.10 @@ -101,7 +101,7 @@ * The deplyment service to handle lifecycle processing of * component implementations established by this handler. */ - private DeploymentService m_deployment; + protected DeploymentService m_deployment; /** * The deplyment context. @@ -294,7 +294,7 @@ */ protected void processAccessStage( Object object ) throws LifestyleException { - StageDescriptor[] phases = m_appliance.getProfile().getType().getStages(); + StageDescriptor[] phases = getAppliance().getProfile().getType().getStages(); for( int i = 0; i < phases.length; i++ ) { StageDescriptor stage = phases[ i ]; @@ -308,7 +308,7 @@ */ protected void processReleaseStage( Object object ) { - StageDescriptor[] phases = m_appliance.getProfile().getType().getStages(); + StageDescriptor[] phases = getAppliance().getProfile().getType().getStages(); for( int i = ( phases.length - 1 ); i > -1; i-- ) { StageDescriptor stage = phases[ i ]; 1.6 +3 -3 avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifestyle/TransientLifestyleHandler.java Index: TransientLifestyleHandler.java =================================================================== RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/lifestyle/TransientLifestyleHandler.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- TransientLifestyleHandler.java 17 Dec 2002 04:57:20 -0000 1.5 +++ TransientLifestyleHandler.java 17 Dec 2002 11:35:50 -0000 1.6 @@ -125,7 +125,8 @@ */ public void release( Object object ) { - super.release( object ); + processReleaseStage( object ); + m_deployment.decommission( getAppliance(), object, false ); synchronized( m_instances ) { m_instances.remove( object ); @@ -151,5 +152,4 @@ } super.dispose(); } - } 1.4 +0 -3 avalon-sandbox/assembly/src/test/org/apache/avalon/playground/DemoManager.xinfo Index: DemoManager.xinfo =================================================================== RCS file: /home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/DemoManager.xinfo,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DemoManager.xinfo 17 Dec 2002 09:55:24 -0000 1.3 +++ DemoManager.xinfo 17 Dec 2002 11:35:50 -0000 1.4 @@ -22,9 +22,6 @@ <info> <name>demonstrator</name> - <attributes> - <attribute key="urn:avalon:lifestyle" value="thread"/> - </attributes> </info> <!-- 1.3 +3 -0 avalon-sandbox/assembly/src/test/org/apache/avalon/playground/ExploitationManager.xinfo Index: ExploitationManager.xinfo =================================================================== RCS file: /home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/ExploitationManager.xinfo,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ExploitationManager.xinfo 17 Dec 2002 09:55:24 -0000 1.2 +++ ExploitationManager.xinfo 17 Dec 2002 11:35:50 -0000 1.3 @@ -21,6 +21,9 @@ <info> <name>exploit</name> + <attributes> + <attribute key="urn:avalon:lifestyle" value="thread"/> + </attributes> </info> <!--
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>