Return-Path: Delivered-To: apmail-avalon-cvs-archive@avalon.apache.org Received: (qmail 44866 invoked by uid 500); 8 Mar 2003 15:28:16 -0000 Mailing-List: contact cvs-help@avalon.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Avalon CVS List" Reply-To: "Avalon Developers List" Delivered-To: mailing list cvs@avalon.apache.org Received: (qmail 44851 invoked by uid 500); 8 Mar 2003 15:28:16 -0000 Received: (qmail 44847 invoked from network); 8 Mar 2003 15:28:16 -0000 Received: from icarus.apache.org (208.185.179.13) by daedalus.apache.org with SMTP; 8 Mar 2003 15:28:16 -0000 Received: (qmail 83557 invoked by uid 1438); 8 Mar 2003 15:28:16 -0000 Date: 8 Mar 2003 15:28:16 -0000 Message-ID: <20030308152816.83556.qmail@icarus.apache.org> From: mcconnell@apache.org To: avalon-sandbox-cvs@apache.org Subject: cvs commit: avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/kernel/impl DefaultKernelLoader.java KernelLoader.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N mcconnell 2003/03/08 07:28:16 Added: merlin/src/java/org/apache/avalon/merlin/kernel/impl DefaultKernelLoader.java Removed: merlin/src/java/org/apache/avalon/merlin/kernel/impl KernelLoader.java Log: KernelLoader moved to DefaultKernelLoader. Revision Changes Path 1.1 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/kernel/impl/DefaultKernelLoader.java Index: DefaultKernelLoader.java =================================================================== package org.apache.avalon.merlin.kernel.impl; import java.io.File; import java.io.IOException; import java.io.FileInputStream; import java.io.InputStream; import java.io.IOException; import java.io.FileNotFoundException; import java.util.StringTokenizer; import java.util.Enumeration; import java.util.List; import java.util.Iterator; import java.util.jar.JarFile; import java.util.ArrayList; import java.util.Map; import java.util.jar.Attributes; import java.util.jar.Manifest; import java.net.URLClassLoader; import java.net.URL; import java.util.zip.ZipEntry; import java.net.MalformedURLException; import java.net.JarURLConnection; import org.xml.sax.SAXException; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; import org.apache.avalon.framework.configuration.DefaultConfiguration; import org.apache.avalon.framework.context.Context; import org.apache.avalon.framework.context.DefaultContext; import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.merlin.block.Block; import org.apache.avalon.merlin.block.BlockException; import org.apache.avalon.assembly.util.ExceptionHelper; import org.apache.avalon.assembly.locator.Contextualizable; import org.apache.avalon.assembly.locator.DefaultLocator; import org.apache.avalon.assembly.locator.Locator; import org.apache.avalon.merlin.kernel.Kernel; import org.apache.avalon.merlin.kernel.KernelLoader; import org.apache.avalon.merlin.kernel.KernelException; import org.apache.avalon.merlin.kernel.KernelRuntimeException; /** * The DefaultKernelLoader provides support for the establishment of a kernel * instance assuming a file system deployment environment. * * @see Kernel * @see KernelLoader * @see DefaultKernel */ public class DefaultKernelLoader { /** * Creation of a new Kernel instance. Arguments passed * passed to the kernel build operation are detailed in the following * table. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
keytypedescription
urn:merlin:home{@link java.io.File}The working home directory.
urn:merlin:system{@link java.io.File}The Merlin system directory.
urn:merlin:classloader.common{@link java.lang.ClassLoader}The shared classloader.
urn:merlin:classloader.system{@link java.lang.ClassLoader}The Merlin internal classloader.
urn:merlin:debug{@link java.lang.String}An optional system logging priority (a value of INFO, WARN, ERROR, or DEBUG) to * be used for internal Merlin execution.
* * @param map a map of initialization arguments * @return the kernel instance */ public Kernel build( Map map ) throws KernelException { // // get the kernel configuration profile // File profile = (File) map.get( "urn:merlin:kernel.profile" ); // // contextualize, configure, initialize and start the kernel // Throwable cause = null; DefaultLocator context = new DefaultLocator( map ); context.makeReadOnly(); DefaultKernel kernel = null; try { kernel = new DefaultKernel(); kernel.contextualize( context ); kernel.configure( getKernelConfiguration( profile ) ); kernel.initialize(); } catch( KernelException e ) { // its already been logged cause = e; } catch( BlockException e ) { // its already been logged cause = e; } catch( Throwable e ) { final String error = "Unexpected kernel deployment failure."; String message = ExceptionHelper.packException( error, e ); System.err.println( message ); cause = new Exception( error ); } finally { if( cause != null ) { throw new KernelException( "Kernel error.", cause ); } else { return kernel; } } } private Configuration getKernelConfiguration( final File file ) throws ConfigurationException, IOException, SAXException { DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); InputStream is = new FileInputStream( file ); if( is == null ) { throw new IOException( "Could not load kernel configuration resource \"" + file + "\"" ); } return builder.build( is ); } } --------------------------------------------------------------------- To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org For additional commands, e-mail: cvs-help@avalon.apache.org