You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by pr...@apache.org on 2002/08/02 17:13:51 UTC
cvs commit: jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel DefaultKernel.java
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: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>