mcconnell 2003/06/07 14:12:47
Modified: merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl
DefaultAppliance.java
merlin/assembly/src/java/org/apache/avalon/assembly/lifecycle/impl
DefaultContextualizationService.java
DefaultDeploymentService.java
merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/impl
AbstractLifestyleHandler.java
Log:
Applied patches from David Bernard dealing with case where a component uses a custom
stage but does not declare a contextualization stage.
Revision Changes Path
1.9 +5 -1
avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl/DefaultAppliance.java
Index: DefaultAppliance.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/appliance/impl/DefaultAppliance.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- DefaultAppliance.java 29 May 2003 21:00:03 -0000 1.8
+++ DefaultAppliance.java 7 Jun 2003 21:12:47 -0000 1.9
@@ -749,6 +749,10 @@
{
return true;
}
+ else if ( getType().getStages().length > 0 )
+ {
+ return true;
+ }
else if( Contextualizable.class.isAssignableFrom( m_class ) )
{
return true;
1.4 +3 -16
avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifecycle/impl/DefaultContextualizationService.java
Index: DefaultContextualizationService.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifecycle/impl/DefaultContextualizationService.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DefaultContextualizationService.java 4 Jun 2003 09:28:44 -0000 1.3
+++ DefaultContextualizationService.java 7 Jun 2003 21:12:47 -0000 1.4
@@ -125,7 +125,8 @@
loader, appliance.getContextDirective(), object, context );
provider.release( handler, this );
return;
- } catch( Throwable e )
+ }
+ catch( Throwable e )
{
final String error =
"Contextualization handler failure in appliance: " +
appliance;
@@ -192,20 +193,6 @@
"Unexpected exception during contextualization of target: " +
appliance;
throw new ContextException( error, e );
}
- }
- else
- {
- //
- // the appliance has established a context argument for classic
Avalon
- // contextualization but the target object does not implement the
- // Avalon or Locator Contextualization interface
- //
-
- final String error =
- "Appliance "
- + appliance
- + " is handling an object that is declaring a contextualization
dependency but does not implement the Avalon or Locator Contextualization interface.";
- throw new ContextException( error );
}
}
}
1.10 +13 -7
avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifecycle/impl/DefaultDeploymentService.java
Index: DefaultDeploymentService.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifecycle/impl/DefaultDeploymentService.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- DefaultDeploymentService.java 4 Jun 2003 09:43:44 -0000 1.9
+++ DefaultDeploymentService.java 7 Jun 2003 21:12:47 -0000 1.10
@@ -542,9 +542,12 @@
try
{
- Creator handler = (Creator) provider.resolve( this );
- handler.create(
- object, new DefaultLocator( appliance.getContextMap() ) );
+ Object handler = provider.resolve( this );
+ if (handler instanceof Creator)
+ {
+ ((Creator)handler).create(
+ object, new DefaultLocator( appliance.getContextMap() ) );
+ }
provider.release( handler, this );
}
catch( Throwable e )
@@ -592,9 +595,12 @@
try
{
- Creator handler = (Creator) provider.resolve( this );
- handler.destroy(
- object, new DefaultLocator( appliance.getContextMap() ) );
+ Object handler = provider.resolve( this );
+ if (handler instanceof Creator)
+ {
+ ((Creator) handler).destroy(
+ object, new DefaultLocator( appliance.getContextMap() ) );
+ }
provider.release( handler, this );
}
catch( Throwable e )
1.4 +3 -2
avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/impl/AbstractLifestyleHandler.java
Index: AbstractLifestyleHandler.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/merlin/assembly/src/java/org/apache/avalon/assembly/lifestyle/impl/AbstractLifestyleHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractLifestyleHandler.java 3 Jun 2003 17:14:51 -0000 1.3
+++ AbstractLifestyleHandler.java 7 Jun 2003 21:12:47 -0000 1.4
@@ -74,7 +74,8 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
* @version $Revision$ $Date$
*/
-public abstract class AbstractLifestyleHandler extends AbstractLogEnabled
implements Contextualizable, Initializable, Disposable, LifestyleHandler
+public abstract class AbstractLifestyleHandler extends AbstractLogEnabled
+ implements Contextualizable, Initializable, Disposable, LifestyleHandler
{
//==============================================================
// state
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]