Author: upayavira Date: Wed Mar 30 12:31:30 2005 New Revision: 159521 URL: http://svn.apache.org/viewcvs?view=rev&rev=159521 Log: Allow the CocoonBean to use an existing Cocoon object, if one exists. You just need to do cocoonBean.setUseExistingCocoon(true);
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/bean/CocoonWrapper.java Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/bean/CocoonWrapper.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/bean/CocoonWrapper.java?view=diff&r1=159520&r2=159521 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/bean/CocoonWrapper.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/bean/CocoonWrapper.java Wed Mar 30 12:31:30 2005 @@ -40,6 +40,7 @@ import org.apache.avalon.framework.logger.Logger; import org.apache.cocoon.Cocoon; +import org.apache.cocoon.CocoonAccess; import org.apache.cocoon.Constants; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.components.CocoonComponentManager; @@ -100,6 +101,7 @@ private HashMap empty = new HashMap(); private boolean initialized = false; + private boolean useExistingCocoon = false; // // INITIALISATION METHOD @@ -164,12 +166,16 @@ loadClasses(classList); - cocoon = new Cocoon(); - ContainerUtil.enableLogging(cocoon, log); - ContainerUtil.contextualize(cocoon, appContext); - cocoon.setLoggerManager(logManager); - ContainerUtil.initialize(cocoon); - + if (this.useExistingCocoon) { + cocoon = getCocoon(); + } + if (cocoon == null) { + cocoon = new Cocoon(); + ContainerUtil.enableLogging(cocoon, log); + ContainerUtil.contextualize(cocoon, appContext); + cocoon.setLoggerManager(logManager); + ContainerUtil.initialize(cocoon); + } } catch (Exception e) { log.fatalError("Exception caught", e); throw e; @@ -177,6 +183,14 @@ initialized = true; } + private Cocoon getCocoon() { + return new CocoonAccess() { + final Cocoon instance() { + return super.getCocoon(); + } + }.instance(); + } + protected ExcaliburComponentManager getComponentManager() { return cocoon.getComponentManager(); } @@ -367,6 +381,11 @@ public void addLoadedClasses(List classList) { this.classList.addAll(classList); } + + public void setUseExistingCocoon(boolean useExistingCocoon) { + this.useExistingCocoon = useExistingCocoon; + } + /** * Process single URI into given output stream. *