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/04/19 16:47:31 UTC
cvs commit: cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/source CopletSource.java CopletSourceFactory.java
cziegeler 2004/04/19 07:47:31
Modified: src/blocks/portal/java/org/apache/cocoon/portal/source
CopletSource.java CopletSourceFactory.java
Log:
Use offical way to get service manager
Revision Changes Path
1.8 +36 -23 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/source/CopletSource.java
Index: CopletSource.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/source/CopletSource.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- CopletSource.java 5 Mar 2004 13:02:16 -0000 1.7
+++ CopletSource.java 19 Apr 2004 14:47:31 -0000 1.8
@@ -20,15 +20,15 @@
import java.io.IOException;
import java.io.InputStream;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.ComponentSelector;
+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.avalon.framework.service.ServiceSelector;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.CascadingIOException;
-import org.apache.cocoon.components.CocoonComponentManager;
+import org.apache.cocoon.components.ContextHelper;
import org.apache.cocoon.portal.coplet.CopletInstanceData;
import org.apache.cocoon.portal.coplet.adapter.CopletAdapter;
import org.apache.cocoon.serialization.Serializer;
@@ -48,10 +48,12 @@
* @version CVS $Id$
*/
public class CopletSource
- implements Source, XMLizable, Serviceable {
+ implements Source, XMLizable, Serviceable, Contextualizable {
protected ServiceManager manager;
+ protected Context context;
+
protected String uri;
protected String copletControllerName;
protected CopletInstanceData copletInstanceData;
@@ -66,6 +68,13 @@
this.manager = manager;
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
+ */
+ public void contextualize(Context context) throws ContextException {
+ this.context = context;
+ }
+
public CopletSource(String location, String protocol,
CopletInstanceData coplet) {
this.uri = location;
@@ -78,25 +87,29 @@
* @see org.apache.excalibur.source.Source#getInputStream()
*/
public InputStream getInputStream() throws IOException, SourceNotFoundException {
- ComponentManager sitemapManager = CocoonComponentManager.getSitemapComponentManager();
- ComponentSelector serializerSelector = null;
- Serializer serializer = null;
try {
- serializerSelector = (ComponentSelector) sitemapManager.lookup(Serializer.ROLE+"Selector");
- serializer = (Serializer) serializerSelector.select("xml");
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- serializer.setOutputStream(os);
- this.toSAX(serializer);
- return new ByteArrayInputStream(os.toByteArray());
- } catch (SAXException se) {
- throw new CascadingIOException("Unable to stream content.", se);
- } catch (ComponentException ce) {
- throw new CascadingIOException("Unable to get components for serializing.", ce);
- } finally {
- if ( serializer != null ) {
- serializerSelector.release(serializer);
+ ServiceManager sitemapManager = (ServiceManager) this.context.get(ContextHelper.CONTEXT_SITEMAP_SERVICE_MANAGER);
+ ServiceSelector serializerSelector = null;
+ Serializer serializer = null;
+ try {
+ serializerSelector = (ServiceSelector) sitemapManager.lookup(Serializer.ROLE+"Selector");
+ serializer = (Serializer) serializerSelector.select("xml");
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ serializer.setOutputStream(os);
+ this.toSAX(serializer);
+ return new ByteArrayInputStream(os.toByteArray());
+ } catch (SAXException se) {
+ throw new CascadingIOException("Unable to stream content.", se);
+ } catch (ServiceException ce) {
+ throw new CascadingIOException("Unable to get components for serializing.", ce);
+ } finally {
+ if ( serializer != null ) {
+ serializerSelector.release(serializer);
+ }
+ sitemapManager.release(serializerSelector);
}
- sitemapManager.release(serializerSelector);
+ } catch (ContextException ce) {
+ throw new CascadingIOException("Unable to get service manager.", ce);
}
}
1.7 +16 -2 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/source/CopletSourceFactory.java
Index: CopletSourceFactory.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/source/CopletSourceFactory.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- CopletSourceFactory.java 5 Mar 2004 13:02:16 -0000 1.6
+++ CopletSourceFactory.java 19 Apr 2004 14:47:31 -0000 1.7
@@ -19,6 +19,9 @@
import java.net.MalformedURLException;
import java.util.Map;
+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.logger.AbstractLogEnabled;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
@@ -40,9 +43,10 @@
*/
public class CopletSourceFactory
extends AbstractLogEnabled
- implements SourceFactory, Serviceable, ThreadSafe {
+ implements SourceFactory, Serviceable, ThreadSafe, Contextualizable {
protected ServiceManager manager;
+ protected Context context;
/* (non-Javadoc)
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
@@ -51,6 +55,13 @@
this.manager = serviceManager;
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
+ */
+ public void contextualize(Context context) throws ContextException {
+ this.context = context;
+ }
+
/**
* @see org.apache.excalibur.source.SourceFactory#getSource(String, Map)
*/
@@ -74,8 +85,11 @@
CopletSource copletSource =
new CopletSource(uri, protocol,
coplet);
+ copletSource.contextualize(this.context);
copletSource.service(this.manager);
return copletSource;
+ } catch (ContextException ce) {
+ throw new SourceException("Unable to lookup profile manager.", ce);
} catch (ServiceException ce) {
throw new SourceException("Unable to lookup profile manager.", ce);
} finally {