proyal 2002/08/02 08:13:51 Modified: src/java/org/apache/avalon/phoenix/components/kernel DefaultKernel.java Log: Add switch to allow invalid applications to be added at startup. Revision Changes Path 1.76 +37 -3 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/DefaultKernel.java Index: DefaultKernel.java =================================================================== RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/DefaultKernel.java,v retrieving revision 1.75 retrieving revision 1.76 diff -u -r1.75 -r1.76 --- DefaultKernel.java 26 Jul 2002 09:49:21 -0000 1.75 +++ DefaultKernel.java 2 Aug 2002 15:13:51 -0000 1.76 @@ -14,6 +14,8 @@ import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.configuration.Configuration; +import org.apache.avalon.framework.configuration.Configurable; +import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.container.ContainerUtil; import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.logger.Logger; @@ -47,7 +49,7 @@ */ public class DefaultKernel extends AbstractLogEnabled - implements Kernel, KernelMBean, Initializable, Serviceable, Disposable + implements Kernel, KernelMBean, Initializable, Serviceable, Disposable, Configurable { private static final Resources REZ = ResourceManager.getPackageResources( DefaultKernel.class ); @@ -65,6 +67,8 @@ private HashMap m_entries = new HashMap(); + private boolean m_addInvalidApplications; + public void service( final ServiceManager serviceManager ) throws ServiceException { @@ -74,6 +78,13 @@ m_validator = (ConfigurationValidator)serviceManager.lookup( ConfigurationValidator.ROLE ); } + public void configure( Configuration configuration ) + throws ConfigurationException + { + m_addInvalidApplications = + configuration.getChild( "add-invalid-applications" ).getValueAsBoolean( false ); + } + public void initialize() throws Exception { @@ -146,9 +157,7 @@ newApp.setApplicationContext( context ); ContainerUtil.initialize( newApp ); - ContainerUtil.start( newApp ); - entry.setApplication( newApp ); application = newApp; } catch( final Throwable t ) @@ -162,6 +171,31 @@ entry.getMetaData().getName() ); throw new CascadingException( message, t ); } + + try + { + ContainerUtil.start( application ); + } + catch( final Throwable t ) + { + final String message = + REZ.getString( "kernel.error.entry.start", entry.getMetaData().getName() ); + + if( m_addInvalidApplications ) + { + getLogger().warn( message, t ); + } + else + { + //Initialization failed so clean entry + //so invalid instance is not used + entry.setApplication( null ); + + throw new CascadingException( message, t ); + } + } + + entry.setApplication( application ); // manage application try
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>