You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by da...@apache.org on 2005/06/01 00:32:44 UTC
svn commit: r179298 -
/cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java
/cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlocksManager.java
Author: danielf
Date: Tue May 31 15:32:42 2005
New Revision: 179298
URL: http://svn.apache.org/viewcvs?rev=179298&view=rev
Log:
Setting of the current block should only be done in the BlocksManager. This is the only entry point for a block call. Polymorphism will also be easier to implement if it is the caller of the BlockManager rather than the BlockManager it self that set current block.
Modified:
cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java
cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlocksManager.java
Modified: cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java?rev=179298&r1=179297&r2=179298&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java Tue May 31 15:32:42 2005
@@ -225,6 +225,12 @@
this.blocksManager = blocksManager;
}
+ // This is for being able to call EnvironmentHelper.enterProcessor
+ // in BlocksManager, don't know if it really is needed
+ public ServiceManager getServiceManager() {
+ return this.serviceManager;
+ }
+
// The Processor methods
public boolean process(Environment environment) throws Exception {
@@ -241,15 +247,8 @@
getLogger().debug("Resolving block: " + blockName + " to " + blockId);
return this.blocksManager.process(blockId, environment);
} else {
- getLogger().debug("Enter processing in block " + this.id);
// Request to the own block
- EnvironmentHelper.enterProcessor(this, this.serviceManager, environment);
- try {
- return this.processor.process(environment);
- } finally {
- EnvironmentHelper.leaveProcessor();
- getLogger().debug("Leaving processing in block " + this.id);
- }
+ return this.processor.process(environment);
}
}
Modified: cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlocksManager.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlocksManager.java?rev=179298&r1=179297&r2=179298&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlocksManager.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlocksManager.java Tue May 31 15:32:42 2005
@@ -43,6 +43,7 @@
import org.apache.cocoon.core.Core;
import org.apache.cocoon.core.CoreUtil;
import org.apache.cocoon.environment.Environment;
+import org.apache.cocoon.environment.internal.EnvironmentHelper;
import org.xml.sax.SAXException;
/**
@@ -212,11 +213,18 @@
} else {
// Resolve the URI relative to the mount point
uri = uri.substring(mountPoint.length());
+ getLogger().debug("Enter processing in block at " + mountPoint);
try {
environment.setURI("", uri);
+ // It is important to set the current block each time
+ // a new block is entered, this is used for the block
+ // protocol
+ EnvironmentHelper.enterProcessor(block, block.getServiceManager(), environment);
return block.process(environment);
} finally {
+ EnvironmentHelper.leaveProcessor();
environment.setURI(oldPrefix, oldURI);
+ getLogger().debug("Leaving processing in block at " + mountPoint);
}
}
}
@@ -226,7 +234,17 @@
if (block == null) {
return false;
} else {
- return block.process(environment);
+ getLogger().debug("Enter processing in block " + blockId);
+ try {
+ // It is important to set the current block each time
+ // a new block is entered, this is used for the block
+ // protocol
+ EnvironmentHelper.enterProcessor(block, block.getServiceManager(), environment);
+ return block.process(environment);
+ } finally {
+ EnvironmentHelper.leaveProcessor();
+ getLogger().debug("Leaving processing in block " + blockId);
+ }
}
}