You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gh...@apache.org on 2003/10/26 00:31:39 UTC
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/components/source/impl PartSource.java PartSourceFactory.java
ghoward 2003/10/25 15:31:39
Modified: src/java/org/apache/cocoon/components/source/impl
PartSource.java PartSourceFactory.java
Log:
use contextualize instead of static
CocoonComponentManager.getCurrentEnvironment()
Revision Changes Path
1.2 +2 -7 cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSource.java
Index: PartSource.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSource.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PartSource.java 23 Oct 2003 01:45:34 -0000 1.1
+++ PartSource.java 25 Oct 2003 22:31:39 -0000 1.2
@@ -58,8 +58,6 @@
import org.apache.cocoon.servlet.multipart.Part;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.components.CocoonComponentManager;
-
import java.net.MalformedURLException;
import java.util.Map;
import java.io.IOException;
@@ -91,7 +89,7 @@
* @throws SourceException
* @throws MalformedURLException
*/
- public PartSource(String uri) throws MalformedURLException, SourceException
+ public PartSource(String uri, Map objectModel) throws MalformedURLException, SourceException
{
// set the uri for use in getURI()
this.uri = uri;
@@ -110,9 +108,6 @@
// get the request parameter name: the bit after ://
String location = uri.substring(position + 2);
-
- // get the object model from the component managers curr env.
- Map objectModel = CocoonComponentManager.getCurrentEnvironment().getObjectModel();
// get the cocoon request from the object model.
Request request = ObjectModelHelper.getRequest(objectModel);
1.2 +16 -3 cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSourceFactory.java
Index: PartSourceFactory.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSourceFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PartSourceFactory.java 23 Oct 2003 01:45:34 -0000 1.1
+++ PartSourceFactory.java 25 Oct 2003 22:31:39 -0000 1.2
@@ -50,6 +50,9 @@
*/
package org.apache.cocoon.components.source.impl;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.context.Contextualizable;
+import org.apache.cocoon.components.ContextHelper;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceFactory;
@@ -62,16 +65,18 @@
*
* @author <a href="mailto:paul.crabtree@dna.co.uk">Paul Crabtree</a>
*/
-public class PartSourceFactory implements SourceFactory
+public class PartSourceFactory implements SourceFactory, Contextualizable
{
- /*
+ Map objectModel;
+
+ /*
* Returns a new {@link PartSource} based on the uri.
*
* @see org.apache.excalibur.source.SourceFactory#getSource(java.lang.String, java.util.Map)
*/
public Source getSource(String uri, Map parameters) throws IOException, MalformedURLException
{
- return new PartSource(uri);
+ return new PartSource(uri, this.objectModel);
}
/**
@@ -82,5 +87,13 @@
public void release(Source source)
{
// Nothing to do here
+ }
+
+ /**
+ * Get the objectModel from the Context
+ */
+ public void contextualize(org.apache.avalon.framework.context.Context context)
+ throws ContextException {
+ this.objectModel = ContextHelper.getObjectModel(context);
}
}
Re: cvs commit: cocoon-2.1/src/java/org/apache/cocoon/components/source/impl
PartSource.java PartSourceFactory.java
Posted by Geoff Howard <co...@leverageweb.com>.
Oh, by the way - when I was testing this I traced things through a few
times with the debugger and found that contextualize() is being called
twice for each request. Is that expected? Is there any conceivable
mis-coding or mis-configuration of the component that could cause this?
Geoff
ghoward@apache.org wrote:
>ghoward 2003/10/25 15:31:39
>
> Modified: src/java/org/apache/cocoon/components/source/impl
> PartSource.java PartSourceFactory.java
> Log:
> use contextualize instead of static
>
> CocoonComponentManager.getCurrentEnvironment()
>
>
>
>
> Revision Changes Path
> 1.2 +2 -7 cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSource.java
>
> Index: PartSource.java
> ===================================================================
> RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSource.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- PartSource.java 23 Oct 2003 01:45:34 -0000 1.1
> +++ PartSource.java 25 Oct 2003 22:31:39 -0000 1.2
> @@ -58,8 +58,6 @@
> import org.apache.cocoon.servlet.multipart.Part;
> import org.apache.cocoon.environment.ObjectModelHelper;
> import org.apache.cocoon.environment.Request;
> -import org.apache.cocoon.components.CocoonComponentManager;
> -
> import java.net.MalformedURLException;
> import java.util.Map;
> import java.io.IOException;
> @@ -91,7 +89,7 @@
> * @throws SourceException
> * @throws MalformedURLException
> */
> - public PartSource(String uri) throws MalformedURLException, SourceException
> + public PartSource(String uri, Map objectModel) throws MalformedURLException, SourceException
> {
> // set the uri for use in getURI()
> this.uri = uri;
> @@ -110,9 +108,6 @@
>
> // get the request parameter name: the bit after ://
> String location = uri.substring(position + 2);
> -
> - // get the object model from the component managers curr env.
> - Map objectModel = CocoonComponentManager.getCurrentEnvironment().getObjectModel();
>
> // get the cocoon request from the object model.
> Request request = ObjectModelHelper.getRequest(objectModel);
>
>
>
> 1.2 +16 -3 cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSourceFactory.java
>
> Index: PartSourceFactory.java
> ===================================================================
> RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/PartSourceFactory.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- PartSourceFactory.java 23 Oct 2003 01:45:34 -0000 1.1
> +++ PartSourceFactory.java 25 Oct 2003 22:31:39 -0000 1.2
> @@ -50,6 +50,9 @@
> */
> package org.apache.cocoon.components.source.impl;
>
> +import org.apache.avalon.framework.context.ContextException;
> +import org.apache.avalon.framework.context.Contextualizable;
> +import org.apache.cocoon.components.ContextHelper;
> import org.apache.excalibur.source.Source;
> import org.apache.excalibur.source.SourceFactory;
>
> @@ -62,16 +65,18 @@
> *
> * @author <a href="mailto:paul.crabtree@dna.co.uk">Paul Crabtree</a>
> */
> -public class PartSourceFactory implements SourceFactory
> +public class PartSourceFactory implements SourceFactory, Contextualizable
> {
> - /*
> + Map objectModel;
> +
> + /*
> * Returns a new {@link PartSource} based on the uri.
> *
> * @see org.apache.excalibur.source.SourceFactory#getSource(java.lang.String, java.util.Map)
> */
> public Source getSource(String uri, Map parameters) throws IOException, MalformedURLException
> {
> - return new PartSource(uri);
> + return new PartSource(uri, this.objectModel);
> }
>
> /**
> @@ -82,5 +87,13 @@
> public void release(Source source)
> {
> // Nothing to do here
> + }
> +
> + /**
> + * Get the objectModel from the Context
> + */
> + public void contextualize(org.apache.avalon.framework.context.Context context)
> + throws ContextException {
> + this.objectModel = ContextHelper.getObjectModel(context);
> }
> }
>
>
>
>
>
>
>
>