cziegeler 2004/01/27 07:36:25
Modified: src/blocks/session-fw/java/org/apache/cocoon/webapps/session MediaManager.java src/blocks/session-fw/java/org/apache/cocoon/webapps/session/components DefaultMediaManager.java Log: Move away from RLC Revision Changes Path 1.2 +2 -2 cocoon-2.1/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/MediaManager.java Index: MediaManager.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/MediaManager.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MediaManager.java 4 May 2003 20:19:41 -0000 1.1 +++ MediaManager.java 27 Jan 2004 15:36:25 -0000 1.2 @@ -60,7 +60,7 @@ public interface MediaManager { /** The Avalon Role */ - public static final String ROLE = MediaManager.class.getName(); + String ROLE = MediaManager.class.getName(); /** * Test if the media of the current request is the given value 1.2 +46 -58 cocoon-2.1/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/components/DefaultMediaManager.java Index: DefaultMediaManager.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/components/DefaultMediaManager.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DefaultMediaManager.java 4 May 2003 20:19:41 -0000 1.1 +++ DefaultMediaManager.java 27 Jan 2004 15:36:25 -0000 1.2 @@ -50,22 +50,18 @@ */ package org.apache.cocoon.webapps.session.components; -import java.io.IOException; -import java.util.Map; - -import org.apache.avalon.excalibur.pool.Recyclable; import org.apache.avalon.framework.component.Component; 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.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.cocoon.ProcessingException; -import org.apache.cocoon.components.RequestLifecycleComponent; -import org.apache.cocoon.environment.ObjectModelHelper; +import org.apache.avalon.framework.thread.ThreadSafe; +import org.apache.cocoon.components.ContextHelper; import org.apache.cocoon.environment.Request; -import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.webapps.session.MediaManager; -import org.xml.sax.SAXException; /** * This is the default implementation for the media manager @@ -75,25 +71,30 @@ */ public final class DefaultMediaManager extends AbstractLogEnabled -implements MediaManager, Configurable, RequestLifecycleComponent, Recyclable, Component { +implements MediaManager, Configurable, ThreadSafe, Contextualizable, Component { /** The media Types */ - private PreparedMediaType[] allMediaTypes; + protected PreparedMediaType[] allMediaTypes; /** The default media type (usually this is html) */ - private String defaultMediaType; + protected String defaultMediaType; /** All media type names */ - private String[] mediaTypeNames; - - /** tThe current media type */ - private String mediaType; + protected String[] mediaTypeNames; - /** The current request */ - private Request request; + /** The Context */ + protected Context context; - /** - * Configurable interface. + + /* (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; + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration) */ public void configure(Configuration myConfiguration) throws ConfigurationException { @@ -141,37 +142,15 @@ } /** - * Get the current media type - */ - public void setup(SourceResolver resolver, Map objectModel) - throws ProcessingException, SAXException, IOException { - this.request = ObjectModelHelper.getRequest( objectModel ); - // get the media of the current request - String useragent = this.request.getHeader("User-Agent"); - PreparedMediaType media = null; - if (useragent != null) { - int i, l; - i = 0; - l = this.allMediaTypes.length; - while (i < l && media == null) { - if (useragent.indexOf(this.allMediaTypes[i].useragent) == -1) { - i++; - } else { - media = this.allMediaTypes[i]; - } - } - } - this.mediaType = (media == null ? this.defaultMediaType : media.name); - } - - /** * Test if the media of the current request is the given value */ public boolean testMedia(String value) { // synchronized boolean result = false; - String useragent = this.request.getHeader("User-Agent"); + Request request = ContextHelper.getRequest(this.context); + + String useragent = request.getHeader("User-Agent"); PreparedMediaType theMedia = null; int i, l; i = 0; @@ -192,29 +171,38 @@ return result; } - /** - * Get all media type names + /* (non-Javadoc) + * @see org.apache.cocoon.webapps.session.MediaManager#getMediaTypes() */ public String[] getMediaTypes() { // synchronized return this.mediaTypeNames; } - /** - * Return the current media type + /* (non-Javadoc) + * @see org.apache.cocoon.webapps.session.MediaManager#getMediaType() */ public String getMediaType() { // synchronized - return this.mediaType; + Request request = ContextHelper.getRequest( this.context ); + // get the media of the current request + String useragent = request.getHeader("User-Agent"); + PreparedMediaType media = null; + if (useragent != null) { + int i, l; + i = 0; + l = this.allMediaTypes.length; + while (i < l && media == null) { + if (useragent.indexOf(this.allMediaTypes[i].useragent) == -1) { + i++; + } else { + media = this.allMediaTypes[i]; + } + } + } + return (media == null ? this.defaultMediaType : media.name); } - /** - * Recyclable - */ - public void recycle() { - this.request = null; - this.mediaType = null; - } }