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 {