Author: cziegeler Date: Wed Mar 23 12:08:17 2005 New Revision: 158826 URL: http://svn.apache.org/viewcvs?view=rev&rev=158826 Log: Fix copy/paste typos PortalService is thread safe so we can simply store a reference
Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/PortalGenerator.java cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/DefaultPortalComponentManager.java cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java?view=diff&r1=158825&r2=158826 ============================================================================== --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/AbstractCopletGenerator.java Wed Mar 23 12:08:17 2005 @@ -19,6 +19,7 @@ import org.apache.avalon.framework.parameters.ParameterException; import org.apache.avalon.framework.service.ServiceException; +import org.apache.avalon.framework.service.ServiceManager; import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.generation.ServiceableGenerator; import org.apache.cocoon.portal.Constants; @@ -56,8 +57,8 @@ */ public static final String PORTAL_NAME_PARAM = "portalName"; - /** The portal service */ - private PortalService _portalService; + /** The portal service. @since 2.1.8 */ + protected PortalService portalService; /** * Try to get the coplet instance data belonging to the current request @@ -77,16 +78,8 @@ /** * Get the portal service */ - protected PortalService getPortalService() - throws SAXException { - if ( this._portalService == null ) { - try { - this._portalService = (PortalService)this.manager.lookup(PortalService.ROLE); - } catch (ServiceException se) { - throw new SAXException("Unable to get portal service.", se); - } - } - return this._portalService; + protected PortalService getPortalService() { + return this.portalService; } @@ -126,14 +119,22 @@ return object; } - /* (non-Javadoc) - * @see org.apache.avalon.excalibur.pool.Recyclable#recycle() + /** + * @see org.apache.avalon.framework.activity.Disposable#dispose() */ - public void recycle() { - if ( this._portalService != null ) { - this.manager.release( this._portalService ); - this._portalService = null; + public void dispose() { + if ( this.manager != null ) { + this.manager.release(this.portalService); + this.portalService = null; } - super.recycle(); + super.dispose(); + } + + /** + * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) + */ + public void service(ServiceManager manager) throws ServiceException { + super.service(manager); + this.portalService = (PortalService)this.manager.lookup(PortalService.ROLE); } } Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/PortalGenerator.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/PortalGenerator.java?view=diff&r1=158825&r2=158826 ============================================================================== --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/PortalGenerator.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/generation/PortalGenerator.java Wed Mar 23 12:08:17 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2002,2004 The Apache Software Foundation. + * Copyright 1999-2002,2004-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.service.ServiceException; +import org.apache.avalon.framework.service.ServiceManager; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.generation.ServiceableGenerator; @@ -43,7 +44,29 @@ public class PortalGenerator extends ServiceableGenerator { - /* (non-Javadoc) + /** The portal service. */ + protected PortalService portalService; + + /** + * @see org.apache.avalon.framework.activity.Disposable#dispose() + */ + public void dispose() { + if ( this.manager != null ) { + this.manager.release(this.portalService); + this.portalService = null; + } + super.dispose(); + } + + /** + * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) + */ + public void service(ServiceManager manager) throws ServiceException { + super.service(manager); + this.portalService = (PortalService)this.manager.lookup(PortalService.ROLE); + } + + /* (non-Javadoc) * @see org.apache.cocoon.generation.Generator#generate() */ public void generate() @@ -51,17 +74,9 @@ // start the portal rendering // 1. event processing // 2. rendering - PortalService service = null; - try { - service = (PortalService)this.manager.lookup(PortalService.ROLE); - PortalManager pm = service.getComponentManager().getPortalManager(); - pm.process(); - pm.showPortal(this.xmlConsumer, this.parameters); - } catch (ServiceException ce) { - throw new ProcessingException("Unable to lookup portal service.", ce); - } finally { - this.manager.release(service); - } + PortalManager pm = this.portalService.getComponentManager().getPortalManager(); + pm.process(); + pm.showPortal(this.xmlConsumer, this.parameters); } /* (non-Javadoc) @@ -74,20 +89,9 @@ throws ProcessingException, SAXException, IOException { super.setup(resolver, objectModel, src, par); - // instantiate the portal service for this request - PortalService service = null; - try { - service = (PortalService)this.manager.lookup(PortalService.ROLE); - - // This is a fix: if we don't use the link service here, we get - // in some rare cases a wrong uri! - service.getComponentManager().getLinkService().getRefreshLinkURI(); - - } catch (ServiceException ce) { - throw new ProcessingException("Unable to lookup portal service.", ce); - } finally { - this.manager.release(service); - } + // This is a fix: if we don't use the link service here, we get + // in some rare cases a wrong uri! + this.portalService.getComponentManager().getLinkService().getRefreshLinkURI(); } } Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/DefaultPortalComponentManager.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/DefaultPortalComponentManager.java?view=diff&r1=158825&r2=158826 ============================================================================== --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/DefaultPortalComponentManager.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/DefaultPortalComponentManager.java Wed Mar 23 12:08:17 2005 @@ -33,6 +33,7 @@ import org.apache.cocoon.portal.LinkService; import org.apache.cocoon.portal.PortalComponentManager; import org.apache.cocoon.portal.PortalManager; +import org.apache.cocoon.portal.PortalService; import org.apache.cocoon.portal.coplet.CopletFactory; import org.apache.cocoon.portal.event.EventManager; import org.apache.cocoon.portal.layout.LayoutFactory; @@ -54,8 +55,12 @@ extends AbstractLogEnabled implements PortalComponentManager, Serviceable, Disposable, ThreadSafe, Configurable { + /** The avalon component manager */ protected ServiceManager manager; + /** The portal service */ + protected PortalService portalService; + protected String profileManagerRole; protected ProfileManager profileManager; @@ -79,6 +84,18 @@ protected String portalManagerRole; protected PortalManager portalManager; + /** + * Create a new portal component manager. Each portal has a own + * component manager that manages all central components for this + * portal. + * This implementation stores the portal service (a global singleton) + * to pass it to the other components (TODO). + * @param service The portal service. + */ + public DefaultPortalComponentManager(final PortalService service) { + this.portalService = service; + } + /* (non-Javadoc) * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) */ @@ -122,7 +139,7 @@ try { this.eventManager = (EventManager)this.manager.lookup( this.eventManagerRole ); } catch (ServiceException e) { - throw new CascadingRuntimeException("Unable to lookup event manager with role " + EventManager.ROLE, e); + throw new CascadingRuntimeException("Unable to lookup event manager with role " + this.eventManagerRole, e); } } return this.eventManager; @@ -217,7 +234,7 @@ try { this.layoutFactory = (LayoutFactory)this.manager.lookup( this.layoutFactoryRole); } catch (ServiceException e) { - throw new CascadingRuntimeException("Unable to lookup layout factory with role " + this.copletFactoryRole, e); + throw new CascadingRuntimeException("Unable to lookup layout factory with role " + this.layoutFactoryRole, e); } } return this.layoutFactory; @@ -232,7 +249,7 @@ try { this.portalManager = (PortalManager)this.manager.lookup( this.portalManagerRole); } catch (ServiceException e) { - throw new CascadingRuntimeException("Unable to lookup portal manager with role " + this.copletFactoryRole, e); + throw new CascadingRuntimeException("Unable to lookup portal manager with role " + this.portalManagerRole, e); } } return this.portalManager; Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java?view=diff&r1=158825&r2=158826 ============================================================================== --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java Wed Mar 23 12:08:17 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2002,2004 The Apache Software Foundation. + * Copyright 1999-2002,2004-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,7 @@ */ package org.apache.cocoon.portal.impl; +import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.service.ServiceException; @@ -39,25 +40,41 @@ */ public class PortalManagerImpl extends AbstractLogEnabled - implements PortalManager, Serviceable, ThreadSafe { + implements PortalManager, Serviceable, Disposable, ThreadSafe { + /** The service manager */ protected ServiceManager manager; - - /* (non-Javadoc) + + /** The portal service */ + protected PortalService portalService; + + /** + * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager) + */ + public void service(ServiceManager serviceManager) + throws ServiceException { + this.manager = serviceManager; + this.portalService = (PortalService)this.manager.lookup(PortalService.ROLE); + } + + /** + * @see org.apache.avalon.framework.activity.Disposable#dispose() + */ + public void dispose() { + if ( this.manager != null ) { + this.manager.release(this.portalService); + this.portalService = null; + this.manager = null; + } + } + + /** * @see org.apache.cocoon.portal.PortalManager#process() */ public void process() throws ProcessingException { - PortalService service = null; - try { - service = (PortalService)this.manager.lookup(PortalService.ROLE); - EventManager eventManager = service.getComponentManager().getEventManager(); - eventManager.processEvents(); - } catch (ServiceException ce) { - throw new ProcessingException("Unable to lookup portal service.", ce); - } finally { - this.manager.release(service); - } + EventManager eventManager = this.portalService.getComponentManager().getEventManager(); + eventManager.processEvents(); } /** @@ -65,33 +82,16 @@ */ public void showPortal(ContentHandler contentHandler, Parameters parameters) throws SAXException { - PortalService service = null; - try { - service = (PortalService)this.manager.lookup(PortalService.ROLE); - // first check for a full screen layout - Layout portalLayout = service.getEntryLayout(null); - if ( portalLayout == null ) { - portalLayout = service.getComponentManager().getProfileManager().getPortalLayout(null, null); - } - - Renderer portalLayoutRenderer = service.getComponentManager().getRenderer( portalLayout.getRendererName()); - - contentHandler.startDocument(); - portalLayoutRenderer.toSAX(portalLayout, service, contentHandler); - contentHandler.endDocument(); - } catch (ServiceException ce) { - throw new SAXException("Unable to lookup portal service.", ce); - } finally { - this.manager.release(service); + // first check for a full screen layout + Layout portalLayout = this.portalService.getEntryLayout(null); + if ( portalLayout == null ) { + portalLayout = this.portalService.getComponentManager().getProfileManager().getPortalLayout(null, null); } - } - /** - * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager) - */ - public void service(ServiceManager serviceManager) - throws ServiceException { - this.manager = serviceManager; - } + Renderer portalLayoutRenderer = this.portalService.getComponentManager().getRenderer( portalLayout.getRendererName()); + contentHandler.startDocument(); + portalLayoutRenderer.toSAX(portalLayout, this.portalService, contentHandler); + contentHandler.endDocument(); + } } Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java?view=diff&r1=158825&r2=158826 ============================================================================== --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java Wed Mar 23 12:08:17 2005 @@ -194,7 +194,7 @@ final Configuration current = portals[i]; final String name = current.getAttribute("name"); try { - PortalComponentManager c = new DefaultPortalComponentManager(); + PortalComponentManager c = new DefaultPortalComponentManager(this); this.portalComponentManagers.put( name, c ); ContainerUtil.enableLogging( c, this.getLogger() ); ContainerUtil.contextualize( c, this.context ); Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java?view=diff&r1=158825&r2=158826 ============================================================================== --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java Wed Mar 23 12:08:17 2005 @@ -27,7 +27,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> * - * @version CVS $Id: AbstractCIncludeAspect.java,v 1.4 2004/04/25 20:09:34 haul Exp $ + * @version CVS $Id$ */ public abstract class AbstractCIncludeAspect extends AbstractAspect { @@ -48,7 +48,7 @@ throws SAXException { handler.startPrefixMapping(PREFIX, NAMESPACE); AttributesImpl attributes = new AttributesImpl(); - attributes.addCDATAAttribute("src", source); + attributes.addCDATAAttribute(ATTRIBUTE, source); handler.startElement(NAMESPACE, ELEMENT, QELEMENT, attributes); handler.endElement(NAMESPACE, ELEMENT, QELEMENT); handler.endPrefixMapping(PREFIX);