cziegeler 2003/03/03 13:25:18
Modified: src/java/org/apache/cocoon Cocoon.java
src/java/org/apache/cocoon/environment/wrapper
EnvironmentWrapper.java
src/java/org/apache/cocoon/components
CocoonComponentManager.java
src/java/org/apache/cocoon/environment
AbstractEnvironment.java Environment.java
Log:
Finished refactoring - now we can polish everything and fix remaining problems
Revision Changes Path
1.54 +1 -2 xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java
Index: Cocoon.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- Cocoon.java 3 Mar 2003 18:39:35 -0000 1.53
+++ Cocoon.java 3 Mar 2003 21:25:18 -0000 1.54
@@ -584,7 +584,6 @@
throw new IllegalStateException("You cannot process a Disposed Cocoon
engine.");
}
- environment.setComponents( this.sourceResolver, this.xmlizer );
Object key = CocoonComponentManager.startProcessing(environment);
try {
CocoonComponentManager.enterEnvironment(environment,
1.29 +2 -2
xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
Index: EnvironmentWrapper.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- EnvironmentWrapper.java 3 Mar 2003 18:39:35 -0000 1.28
+++ EnvironmentWrapper.java 3 Mar 2003 21:25:18 -0000 1.29
@@ -146,7 +146,7 @@
boolean rawMode)
throws MalformedURLException {
super(env.getURI(), env.getView(), env.getRootContext(), env.getAction());
- this.setComponents(env.getSourceResolver(), env.getXMLizer());
+
this.enableLogging(logger);
this.environment = env;
1.49 +3 -1
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.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- CocoonComponentManager.java 3 Mar 2003 18:39:36 -0000 1.48
+++ CocoonComponentManager.java 3 Mar 2003 21:25:18 -0000 1.49
@@ -174,6 +174,7 @@
public static Object startProcessing(Environment env) {
EnvironmentDescription desc = new EnvironmentDescription(env);
env.getObjectModel().put(PROCESS_KEY, desc);
+ env.startingProcessing();
return desc;
}
@@ -185,6 +186,7 @@
* [EMAIL PROTECTED] #startProcessing(Environment)}.
*/
public static void endProcessing(Environment env, Object key) {
+ env.finishingProcessing();
EnvironmentDescription desc = (EnvironmentDescription)key;
desc.release();
env.getObjectModel().remove(PROCESS_KEY);
1.45 +38 -25
xml-cocoon2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java
Index: AbstractEnvironment.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- AbstractEnvironment.java 3 Mar 2003 18:39:36 -0000 1.44
+++ AbstractEnvironment.java 3 Mar 2003 21:25:18 -0000 1.45
@@ -52,9 +52,14 @@
import org.apache.commons.collections.IteratorEnumeration;
+import org.apache.avalon.framework.CascadingRuntimeException;
+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.logger.AbstractLogEnabled;
import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.components.CocoonComponentManager;
import org.apache.cocoon.components.source.SourceUtil;
import org.apache.cocoon.util.BufferedOutputStream;
@@ -110,6 +115,9 @@
/** The real xmlizer */
protected org.apache.excalibur.xmlizer.XMLizer xmlizer;
+ /** The component manager */
+ protected ComponentManager manager;
+
/** The attributes */
private Map attributes = new HashMap();
@@ -164,30 +172,6 @@
this.rootContext = context;
}
- /**
- * Set the <code>SourceResolver</code> and the <code>XMLizer</code>
- */
- public void setComponents(org.apache.excalibur.source.SourceResolver resolver,
- XMLizer xmlizer) {
- this.xmlizer = xmlizer;
- this.sourceResolver = resolver;
- }
-
- /**
- * Get the <code>SourceResolver</code>
- */
- public org.apache.excalibur.source.SourceResolver getSourceResolver() {
- return this.sourceResolver;
- }
-
- /**
- * Get the <code>XMLizer</code>
- * This is an internal method, use it at your own risk!
- */
- public XMLizer getXMLizer() {
- return this.xmlizer;
- }
-
// Sitemap methods
/**
@@ -543,4 +527,33 @@
throw e;
}
}
+
+ /**
+ * Notify that the processing starts.
+ */
+ public void startingProcessing() {
+ try {
+ this.manager =
CocoonComponentManager.getSitemapComponentManager();
+ this.xmlizer = (XMLizer)this.manager.lookup(XMLizer.ROLE);
+ this.sourceResolver =
(org.apache.excalibur.source.SourceResolver)this.manager.lookup(org.apache.excalibur.source.SourceResolver.ROLE);
+ } catch (ComponentException ce) {
+ // this should never happen!
+ throw new CascadingRuntimeException("Unable to lookup
component.", ce);
+ }
+ }
+
+ /**
+ * Notify that the processing is finished
+ * This can be used to cleanup the environment object
+ */
+ public void finishingProcessing() {
+ if ( null != this.manager ) {
+ this.manager.release( (Component)this.xmlizer );
+ this.manager.release( this.sourceResolver );
+ this.manager = null;
+ this.xmlizer = null;
+ this.sourceResolver = null;
+ }
+ }
+
}
1.21 +11 -22
xml-cocoon2/src/java/org/apache/cocoon/environment/Environment.java
Index: Environment.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/Environment.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- Environment.java 3 Mar 2003 18:39:36 -0000 1.20
+++ Environment.java 3 Mar 2003 21:25:18 -0000 1.21
@@ -56,8 +56,6 @@
import java.util.Enumeration;
import java.util.Map;
-import org.apache.excalibur.xmlizer.XMLizer;
-
/**
* Base interface for an environment abstraction
*
@@ -70,25 +68,6 @@
extends SourceResolver {
/**
- * Set the <code>SourceResolver</code> and the <code>XMLizer</code>
- * This is an internal method, use it at your own risk!
- */
- void setComponents(org.apache.excalibur.source.SourceResolver resolver,
- XMLizer xmlizer);
-
- /**
- * Get the <code>SourceResolver</code>
- * This is an internal method, use it at your own risk!
- */
- org.apache.excalibur.source.SourceResolver getSourceResolver();
-
- /**
- * Get the <code>XMLizer</code>
- * This is an internal method, use it at your own risk!
- */
- XMLizer getXMLizer();
-
- /**
* Get the URI to process. The prefix is stripped off.
*/
String getURI();
@@ -244,5 +223,15 @@
*/
void commitResponse() throws IOException;
+ /**
+ * Notify that the processing starts.
+ */
+ void startingProcessing();
+
+ /**
+ * Notify that the processing is finished
+ * This can be used to cleanup the environment object
+ */
+ void finishingProcessing();
}