You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2004/01/05 09:16:01 UTC
cvs commit: cocoon-2.2/src/java/org/apache/cocoon Cocoon.java
cziegeler 2004/01/05 00:16:01
Modified: src/java/org/apache/cocoon/components/source/impl
SitemapSource.java
src/java/org/apache/cocoon/bean CocoonBean.java
src/java/org/apache/cocoon/components/cprocessor/sitemap
MountNode.java
src/java/org/apache/cocoon/components/classloader
NonStaticClassLoaderManager.java
ClassLoaderManagerImpl.java ClassLoaderManager.java
src/java/org/apache/cocoon/environment
EnvironmentHelper.java
src/java/org/apache/cocoon/components/cprocessor
ProcessingNode.java InvokeContext.java
SitemapContainer.java TreeProcessor.java
src/java/org/apache/cocoon/components/pipeline
AbstractProcessingPipeline.java
src/java/org/apache/cocoon Cocoon.java
Log:
Another step: mounts now work partially - the environment handling is not bug free yet :(
Revision Changes Path
1.18 +2 -1 cocoon-2.2/src/java/org/apache/cocoon/components/source/impl/SitemapSource.java
Index: SitemapSource.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/source/impl/SitemapSource.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- SitemapSource.java 31 Oct 2003 07:22:35 -0000 1.17
+++ SitemapSource.java 5 Jan 2004 08:16:00 -0000 1.18
@@ -381,6 +381,7 @@
this.processKey = EnvironmentHelper.startProcessing(this.environment);
this.processingPipeline = this.processor.buildPipeline(this.environment);
this.pipelineProcessor = EnvironmentHelper.getLastProcessor(this.environment);
+ //FIXME - set the context of the environment to the context of the pipeline processor
this.pipelineProcessor.getEnvironmentHelper().setContext(this.environment);
String redirectURL = this.environment.getRedirectURL();
1.44 +2 -1 cocoon-2.2/src/java/org/apache/cocoon/bean/CocoonBean.java
Index: CocoonBean.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/bean/CocoonBean.java,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- CocoonBean.java 28 Dec 2003 20:50:52 -0000 1.43
+++ CocoonBean.java 5 Jan 2004 08:16:00 -0000 1.44
@@ -70,6 +70,7 @@
import org.apache.cocoon.CompilingProcessor;
import org.apache.cocoon.Constants;
import org.apache.cocoon.components.CocoonContainer;
+import org.apache.cocoon.components.ComponentContext;
import org.apache.cocoon.components.SitemapConfigurableAccessor;
/**
@@ -310,7 +311,7 @@
m_confBuilder.setLifecycleExtensionManager( getLifecycleExtensionManager() );
- DefaultContext initContext = new DefaultContext( m_confBuilder.getContext() );
+ DefaultContext initContext = new ComponentContext( m_confBuilder.getContext() );
Iterator it = m_properties.entrySet().iterator();
while (it.hasNext())
{
1.3 +7 -10 cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/sitemap/MountNode.java
Index: MountNode.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/sitemap/MountNode.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MountNode.java 30 Dec 2003 11:33:16 -0000 1.2
+++ MountNode.java 5 Jan 2004 08:16:00 -0000 1.3
@@ -61,8 +61,6 @@
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.components.cprocessor.AbstractProcessingNode;
import org.apache.cocoon.components.cprocessor.InvokeContext;
import org.apache.cocoon.components.cprocessor.ProcessingNode;
@@ -72,8 +70,6 @@
import org.apache.cocoon.components.pipeline.ProcessingPipeline;
import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.sitemap.PatternException;
-import org.apache.excalibur.source.Source;
-import org.apache.excalibur.source.SourceResolver;
/**
*
@@ -126,14 +122,14 @@
}
public final boolean invoke(Environment env, InvokeContext context)
- throws Exception {
+ throws Exception {
Map objectModel = env.getObjectModel();
String resolvedSource = m_source.resolve(context, objectModel);
String resolvedPrefix = m_prefix.resolve(context, objectModel);
- TreeProcessor processor = getProcessor(resolvedSource);
+ TreeProcessor processor = this.getProcessor(resolvedSource, resolvedPrefix);
String oldPrefix = env.getURIPrefix();
String oldURI = env.getURI();
@@ -155,6 +151,7 @@
}
} finally {
// Restore context
+ //FIXME - Reset the context
processor.getEnvironmentHelper().setContext(env);
// Turning recomposing as a test, according to:
@@ -168,9 +165,9 @@
* Get the processor for the sub sitemap
* FIXME Better synchronization strategy
*/
- private synchronized TreeProcessor getProcessor(String source)
+ private synchronized TreeProcessor getProcessor(String source, String prefix)
throws Exception {
-
+ // FIXME - source is only relative, so we might get into name clashes, or?
TreeProcessor processor = (TreeProcessor) m_processors.get(source);
if (processor == null) {
// Handle directory mounts
@@ -181,7 +178,7 @@
actualSource = source;
}
- processor = this.m_parentProcessor.createChildProcessor(actualSource,m_checkReload);
+ processor = this.m_parentProcessor.createChildProcessor(actualSource, m_checkReload, prefix);
// Associate to the original source
m_processors.put(source, processor);
1.3 +1 -3 cocoon-2.2/src/java/org/apache/cocoon/components/classloader/NonStaticClassLoaderManager.java
Index: NonStaticClassLoaderManager.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/classloader/NonStaticClassLoaderManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NonStaticClassLoaderManager.java 29 Dec 2003 13:27:36 -0000 1.2
+++ NonStaticClassLoaderManager.java 5 Jan 2004 08:16:00 -0000 1.3
@@ -57,8 +57,6 @@
import java.util.Set;
import java.util.Vector;
-import org.apache.avalon.framework.thread.ThreadSafe;
-
/**
* A singleton-like implementation of <code>ClassLoaderManager</code>
*
1.3 +1 -3 cocoon-2.2/src/java/org/apache/cocoon/components/classloader/ClassLoaderManagerImpl.java
Index: ClassLoaderManagerImpl.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/classloader/ClassLoaderManagerImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClassLoaderManagerImpl.java 29 Dec 2003 13:27:37 -0000 1.2
+++ ClassLoaderManagerImpl.java 5 Jan 2004 08:16:00 -0000 1.3
@@ -50,8 +50,6 @@
*/
package org.apache.cocoon.components.classloader;
-import org.apache.avalon.framework.thread.ThreadSafe;
-
import java.io.File;
import java.io.IOException;
import java.util.Collections;
1.3 +1 -3 cocoon-2.2/src/java/org/apache/cocoon/components/classloader/ClassLoaderManager.java
Index: ClassLoaderManager.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/classloader/ClassLoaderManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClassLoaderManager.java 29 Dec 2003 13:27:36 -0000 1.2
+++ ClassLoaderManager.java 5 Jan 2004 08:16:00 -0000 1.3
@@ -50,8 +50,6 @@
*/
package org.apache.cocoon.components.classloader;
-import org.apache.avalon.framework.component.Component;
-
import java.io.File;
import java.io.IOException;
1.12 +7 -3 cocoon-2.2/src/java/org/apache/cocoon/environment/EnvironmentHelper.java
Index: EnvironmentHelper.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/environment/EnvironmentHelper.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- EnvironmentHelper.java 31 Oct 2003 07:22:36 -0000 1.11
+++ EnvironmentHelper.java 5 Jan 2004 08:16:00 -0000 1.12
@@ -140,7 +140,7 @@
} finally {
this.resolver.release(source);
}
- this.context = null;
+ //this.context = null;
}
}
@@ -214,6 +214,8 @@
public void setContext(Environment env)
throws ProcessingException {
+ //TODO
+ /*
if ( this.prefix != null ) {
String uris = env.getURI();
if (!uris.startsWith(this.prefix)) {
@@ -226,13 +228,15 @@
final int l = this.prefix.length();
env.setURI(this.prefix, uris.substring(l));
}
+ */
}
/**
* Adds an prefix to the overall stripped off prefix from the request uri
*/
- public void changeContext(String newPrefix, String newContext)
+ public void changeContext(Source newSource, String newPrefix)
throws IOException {
+ String newContext = newSource.getURI();
if (getLogger().isDebugEnabled()) {
getLogger().debug("Changing Cocoon context");
getLogger().debug(" from context(" + this.context + ") and prefix(" + this.prefix + ")");
1.2 +1 -2 cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/ProcessingNode.java
Index: ProcessingNode.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/ProcessingNode.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessingNode.java 28 Dec 2003 21:03:17 -0000 1.1
+++ ProcessingNode.java 5 Jan 2004 08:16:00 -0000 1.2
@@ -50,7 +50,6 @@
*/
package org.apache.cocoon.components.cprocessor;
-import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.environment.Environment;
/**
1.2 +1 -3 cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/InvokeContext.java
Index: InvokeContext.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/InvokeContext.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InvokeContext.java 28 Dec 2003 21:03:17 -0000 1.1
+++ InvokeContext.java 5 Jan 2004 08:16:00 -0000 1.2
@@ -58,8 +58,6 @@
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.logger.LogEnabled;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
1.2 +0 -1 cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/SitemapContainer.java
Index: SitemapContainer.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/SitemapContainer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SitemapContainer.java 28 Dec 2003 21:03:17 -0000 1.1
+++ SitemapContainer.java 5 Jan 2004 08:16:00 -0000 1.2
@@ -53,7 +53,6 @@
import org.apache.avalon.fortress.impl.ComponentHandlerMetaData;
import org.apache.avalon.fortress.impl.DefaultContainer;
import org.apache.avalon.fortress.util.CompositeException;
-import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.service.ServiceException;
1.4 +14 -11 cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/TreeProcessor.java
Index: TreeProcessor.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/TreeProcessor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TreeProcessor.java 30 Dec 2003 12:24:00 -0000 1.3
+++ TreeProcessor.java 5 Jan 2004 08:16:00 -0000 1.4
@@ -51,7 +51,6 @@
package org.apache.cocoon.components.cprocessor;
import java.net.MalformedURLException;
-import java.net.URL;
import java.util.Map;
import javax.xml.transform.sax.SAXResult;
@@ -68,7 +67,6 @@
import org.apache.avalon.framework.configuration.NamespacedSAXConfigurationHandler;
import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.context.DefaultContext;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
@@ -77,7 +75,6 @@
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.Constants;
-import org.apache.cocoon.Modifiable;
import org.apache.cocoon.Processor;
import org.apache.cocoon.components.pipeline.ProcessingPipeline;
import org.apache.cocoon.components.source.impl.DelayedRefreshSourceWrapper;
@@ -151,16 +148,19 @@
public TreeProcessor() {
}
- private TreeProcessor(TreeProcessor parent, Source source, boolean checkReload) throws Exception {
+ private TreeProcessor(TreeProcessor parent, Source source, boolean checkReload, String prefix) throws Exception {
m_parent = parent;
m_transform = parent.m_transform;
m_checkReload = checkReload;
m_source = source;
- m_environmentHelper = new EnvironmentHelper(parent.m_environmentHelper);
- ContainerUtil.enableLogging(this,parent.getLogger());
- ContainerUtil.contextualize(this,parent.m_context);
- ContainerUtil.service(this,parent.m_container.getServiceManager());
+ ContainerUtil.enableLogging(this, parent.getLogger());
+ ContainerUtil.contextualize(this, parent.m_context);
+ ContainerUtil.service(this, parent.m_container.getServiceManager());
ContainerUtil.initialize(this);
+ m_environmentHelper = new EnvironmentHelper(parent.m_environmentHelper);
+ ContainerUtil.enableLogging(m_environmentHelper, this.getLogger());
+ ContainerUtil.service(m_environmentHelper, this.m_manager);
+ m_environmentHelper.changeContext(source, prefix);
}
public void contextualize(Context context) {
@@ -438,10 +438,13 @@
* @param source the location of the child sitemap.
* @return a new child processor.
*/
- public TreeProcessor createChildProcessor(String src, boolean checkReload) throws Exception {
+ public TreeProcessor createChildProcessor(String src,
+ boolean checkReload,
+ String prefix)
+ throws Exception {
Source delayedSource = new DelayedRefreshSourceWrapper(
- m_resolver.resolveURI(src),m_lastModifiedDelay);
- return new TreeProcessor(this, delayedSource, checkReload);
+ m_resolver.resolveURI(src), m_lastModifiedDelay);
+ return new TreeProcessor(this, delayedSource, checkReload, prefix);
}
/**
1.22 +1 -2 cocoon-2.2/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java
Index: AbstractProcessingPipeline.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/pipeline/AbstractProcessingPipeline.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- AbstractProcessingPipeline.java 28 Dec 2003 22:11:19 -0000 1.21
+++ AbstractProcessingPipeline.java 5 Jan 2004 08:16:01 -0000 1.22
@@ -65,7 +65,6 @@
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceSelector;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.ConnectionResetException;
import org.apache.cocoon.ProcessingException;
1.32 +2 -4 cocoon-2.2/src/java/org/apache/cocoon/Cocoon.java
Index: Cocoon.java
===================================================================
RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/Cocoon.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- Cocoon.java 30 Dec 2003 11:24:15 -0000 1.31
+++ Cocoon.java 5 Jan 2004 08:16:01 -0000 1.32
@@ -60,7 +60,6 @@
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
@@ -69,7 +68,6 @@
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
-import org.apache.cocoon.components.ComponentContext;
import org.apache.cocoon.components.language.generator.ProgramGenerator;
import org.apache.cocoon.components.pipeline.ProcessingPipeline;
import org.apache.cocoon.components.source.impl.DelayedRefreshSourceWrapper;
@@ -168,7 +166,7 @@
* @exception ContextException if a required context entry is missing.
*/
public void contextualize(Context context) throws ContextException {
- this.context = new ComponentContext(context);
+ this.context = context;
configUrl = (URL) context.get(Constants.CONTEXT_CONFIG_URL);
}