cziegeler 02/03/13 06:50:57 Modified: src/java/org/apache/cocoon/components CocoonComponentManager.java Added: lib/core avalon-excalibur-20020313.jar avalon-scratchpad-20020313.jar src/java/org/apache/cocoon/components CocoonSourceResolver.java Removed: lib/core avalon-excalibur-4.1.jar avalon-scratchpad-20020212.jar Log: Updating to latest avalon excalibur and (finally) starting to integrate the new avalon source resolving Revision Changes Path 1.1 xml-cocoon2/lib/core/avalon-excalibur-20020313.jar <<Binary file>> 1.1 xml-cocoon2/lib/core/avalon-scratchpad-20020313.jar <<Binary file>> 1.10 +19 -7 xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java Index: CocoonComponentManager.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- CocoonComponentManager.java 22 Feb 2002 07:00:06 -0000 1.9 +++ CocoonComponentManager.java 13 Mar 2002 14:50:57 -0000 1.10 @@ -56,23 +56,25 @@ import java.util.Map; import java.util.Stack; import org.apache.avalon.excalibur.component.ExcaliburComponentManager; +import org.apache.avalon.excalibur.source.SourceResolver; import org.apache.avalon.framework.component.Component; import org.apache.avalon.framework.component.ComponentException; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.Recomposable; import org.apache.cocoon.ProcessingException; +import org.apache.cocoon.environment.Environment; import org.apache.cocoon.environment.Source; -import org.apache.cocoon.environment.SourceResolver; import org.xml.sax.SAXException; /** * Cocoon Component Manager. * This manager extends the <code>ExcaliburComponentManager</code> - * by a special lifecycle handling for a RequestLifecycleComponent. + * by a special lifecycle handling for a RequestLifecycleComponent + * and by handling the lookup of the <code>SourceResolver</code> (in development) * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Id: CocoonComponentManager.java,v 1.9 2002/02/22 07:00:06 cziegeler Exp $ + * @version CVS $Id: CocoonComponentManager.java,v 1.10 2002/03/13 14:50:57 cziegeler Exp $ */ public final class CocoonComponentManager extends ExcaliburComponentManager @@ -110,7 +112,7 @@ /** * This hook must be called by the sitemap each time a sitemap is entered */ - public static void enterEnvironment(SourceResolver resolver, Map objectModel) { + public static void enterEnvironment(Environment env, Map objectModel) { if (environmentStack.get() == null) { environmentStack.set(new Stack()); } @@ -118,11 +120,11 @@ if ( !stack.empty() ) { final Object[] objects = (Object[])stack.peek(); if ( objects[1] == objectModel ) { - stack.push(new Object[] {resolver, objectModel, objects[2], TWO}); + stack.push(new Object[] {env, objectModel, objects[2], TWO}); return; } } - stack.push(new Object[] {resolver, objectModel, new HashMap(5), ONE}); + stack.push(new Object[] {env, objectModel, new HashMap(5), ONE}); } /** @@ -162,6 +164,12 @@ return component; } } + + if ( role.equals(SourceResolver.ROLE) ) { + SourceResolver resolver = (SourceResolver) super.lookup( role ); + // wrap resolver here: + return new CocoonSourceResolver((Environment)objects[0], resolver); + } } final Component component = super.lookup( role ); @@ -175,7 +183,7 @@ if (component instanceof Recomposable) { ((Recomposable) component).recompose(this); } - ((RequestLifecycleComponent) component).setup((SourceResolver)objects[0], + ((RequestLifecycleComponent) component).setup((org.apache.cocoon.environment.SourceResolver)objects[0], (Map)objects[1]); } catch (Exception local) { throw new ComponentException("Exception during setup of RequestLifecycleComponent with role '"+role+"'", local); @@ -195,6 +203,10 @@ } if ( component instanceof RequestLifecycleComponent) { + return; + } + if ( component instanceof CocoonSourceResolver ) { + super.release(((CocoonSourceResolver)component).getSourceResolver()); return; } super.release( component); 1.1 xml-cocoon2/src/java/org/apache/cocoon/components/CocoonSourceResolver.java Index: CocoonSourceResolver.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ package org.apache.cocoon.components; import org.apache.avalon.excalibur.source.Source; import org.apache.avalon.excalibur.source.SourceResolver; import org.apache.avalon.framework.component.ComponentException; import org.apache.cocoon.environment.Environment; import java.io.IOException; import java.net.MalformedURLException; import java.util.Map; /** * This SourceResolver enables the relative resolving and the special cocoon * protocol. * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> * @version $Id: CocoonSourceResolver.java,v 1.1 2002/03/13 14:50:57 cziegeler Exp $ */ public final class CocoonSourceResolver implements SourceResolver { /** The real SourceResolver */ private SourceResolver resolver; /** The current environment */ private Environment environment; /** Constructor */ public CocoonSourceResolver(Environment environment, SourceResolver resolver) { this.environment = environment; this.resolver = resolver; } /** * Get a <code>Source</code> object. */ public Source resolve(String location) throws MalformedURLException, IOException, ComponentException { return this.resolve(location, null, null); } /** * Get a <code>Source</code> object. */ public Source resolve(String location, String baseURI, Map parameters) throws MalformedURLException, IOException, ComponentException { return this.resolver.resolve(location, baseURI, parameters); } /** * Releases a resolved resource */ public void release( Source source ) { this.resolver.release( source ); } /** * Get the real SourceResolver */ public SourceResolver getSourceResolver() { return this.resolver; } }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]