cziegeler 02/01/30 09:13:24
Modified: src/documentation/xdocs/developing deli.xml deliquick.xml
src/java/org/apache/cocoon cocoon.roles
src/java/org/apache/cocoon/components/deli DeliImpl.java
Log:
Making deli optional
Revision Changes Path
1.5 +3 -4 xml-cocoon2/src/documentation/xdocs/developing/deli.xml
Index: deli.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/documentation/xdocs/developing/deli.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- deli.xml 30 Jan 2002 16:45:40 -0000 1.4
+++ deli.xml 30 Jan 2002 17:13:24 -0000 1.5
@@ -197,14 +197,13 @@
configuration file or <code>legacyDevices.xml</code>, the
DELI legacy device support file.</p>
<s2 title="Cocoon.xconf">
- <p>In order to use DELI you need to specify
-the configuration file and set the <code>use-deli</code> parameter to true. You can
either
+ <p>In order to use DELI you need to configure Deli and
specify
+the configuration file. You can either
do this in <code>deli.xconf</code> in which case you will need to rebuild
Cocoon or change the deployed <code>cocoon.xconf</code> in the web-server
directory:</p>
<source><![CDATA[
- <deli>
+ <deli class="org.apache.cocoon.components.deli.DeliImpl">
<parameter name="deli-config-file"
value="resources/deli/config/deliConfig.xml"/>
- <parameter name="use-deli" value="true"/>
</deli>
]]></source>
</s2>
1.3 +2 -2 xml-cocoon2/src/documentation/xdocs/developing/deliquick.xml
Index: deliquick.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/documentation/xdocs/developing/deliquick.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- deliquick.xml 22 Jan 2002 01:32:22 -0000 1.2
+++ deliquick.xml 30 Jan 2002 17:13:24 -0000 1.3
@@ -12,9 +12,9 @@
<s1 title="DELI Quick Start Guide">
<p>If you are seeing the 'DELI is switched off' message when you try the test pages
then you need to enable DELI. If you do not
want to rebuild Cocoon, just
-set the <code>use-deli</code> parameter to true in the deployed
<code>cocoon.xconf</code>:</p>
+add the following lines to the deployed <code>cocoon.xconf</code>:</p>
<source><![CDATA[
-<deli>
+<deli class="org.apache.cocoon.components.deli.DeliImpl">
<parameter name="deli-config-file" value="deliCocoonConfig.xml"/>
<parameter name="use-deli" value="true"/>
</deli>
1.4 +1 -2 xml-cocoon2/src/java/org/apache/cocoon/cocoon.roles
Index: cocoon.roles
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/cocoon.roles,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- cocoon.roles 27 Jan 2002 13:15:01 -0000 1.3
+++ cocoon.roles 30 Jan 2002 17:13:24 -0000 1.4
@@ -34,8 +34,7 @@
shorthand="processor"/>
-->
<role name="org.apache.cocoon.components.deli.Deli"
- shorthand="deli"
- default-class="org.apache.cocoon.components.deli.DeliImpl"/>
+ shorthand="deli"/>
<role name="org.apache.cocoon.Processor"
shorthand="sitemap"
1.8 +142 -153
xml-cocoon2/src/java/org/apache/cocoon/components/deli/DeliImpl.java
Index: DeliImpl.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/deli/DeliImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DeliImpl.java 30 Jan 2002 16:42:49 -0000 1.7
+++ DeliImpl.java 30 Jan 2002 17:13:24 -0000 1.8
@@ -8,19 +8,19 @@
package org.apache.cocoon.components.deli;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.avalon.framework.parameters.Parameterizable;
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.AbstractLoggable;
-
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.parameters.Parameterizable;
+import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.environment.http.HttpContext;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.Constants;
@@ -67,178 +67,168 @@
* A Delivery Context Library for CC/PP and UAProf</a>.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Mark H. Butler</a>
- * @version CVS $ $ $Date: 2002/01/30 16:42:49 $
+ * @version CVS $ $ $Date: 2002/01/30 17:13:24 $
*/
-public class DeliImpl
+public final class DeliImpl
extends AbstractLoggable
-implements Parameterizable, Component, Deli,
-Composable, Disposable, ThreadSafe, Contextualizable
-{
- /** The path to the Cocoon configuration files */
- private String defaultPath = null;
-
- /** The name of the main DELI configuration file */
- private String deliConfig = "resources/deli/config/deliConfig.xml";
-
- /** The DELI workspace */
- private Workspace workspace;
-
- /** The component manager */
- protected ComponentManager manager = null;
-
- /** Parser used to construct the DOM tree to import the profile to a stylesheet */
- Parser parser;
-
- /** A context, used to retrieve the path to the configuration file */
- protected CocoonServletContext servletContext;
-
- /** Contextualize this class */
- public void contextualize(Context context) throws ContextException
- {
- try
- {
- org.apache.cocoon.environment.Context ctx =
(org.apache.cocoon.environment.Context)
context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
- servletContext = new CocoonServletContext(ctx);
- }
- catch (Exception e)
- {
- System.out.println(e);
+implements Parameterizable,
+ Deli,
+ Composable,
+ Disposable,
+ Initializable,
+ ThreadSafe,
+ Contextualizable {
+
+ /** The path to the Cocoon configuration files */
+ private String defaultPath = null;
+
+ /** The name of the main DELI configuration file */
+ private String deliConfig = "resources/deli/config/deliConfig.xml";
+
+ /** The DELI workspace */
+ private Workspace workspace;
+
+ /** The component manager */
+ protected ComponentManager manager = null;
+
+ /** Parser used to construct the DOM tree to import the profile to a stylesheet
*/
+ Parser parser;
+
+ /** A context, used to retrieve the path to the configuration file */
+ protected CocoonServletContext servletContext;
+
+ /** Contextualize this class */
+ public void contextualize(Context context)
+ throws ContextException {
+ org.apache.cocoon.environment.Context ctx =
(org.apache.cocoon.environment.Context)
context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
+ this.servletContext = new CocoonServletContext(ctx);
+ }
+
+ /** Compose this class */
+ public void compose(ComponentManager manager)
+ throws ComponentException {
+ this.manager = manager;
+ this.parser = (Parser)this.manager.lookup(Parser.ROLE);
+ }
+
+ /** Configure this class */
+ public void parameterize(Parameters params) {
+ this.deliConfig = params.getParameter("deli-config-file", this.deliConfig);
}
- }
- /** Compose this class */
- public void compose(ComponentManager manager) throws ComponentException
- {
- this.manager = manager;
- parser = (Parser)this.manager.lookup(Parser.ROLE);
- }
-
- /** Configure this class */
- public final void parameterize(Parameters params)
- {
- this.deliConfig = params.getParameter("deli-config-file", this.deliConfig);
- try
- {
- workspace = new Workspace(servletContext, this.deliConfig);
- }
- catch (Exception e)
- {
- System.out.println(e);
- }
- }
-
- /** Dispose of this class */
- public void dispose()
- {
- if(parser != null) this.manager.release((Component)parser);
- }
-
- /** Process a HttpServletRequest and either extract
- * CC/PP or UAProf information from it and use this information
- * to resolve a profile or examine the user agent string, match
- * this using the DELI legacy device database, and use this
- * information to retrieve the appropriate CC/PP profile.
- *
- *@param theRequest The Request.
- *@return The profile as a vector of profile attributes.
- *@exception IOException.
- *@exception ServletException.
- *@exception Exception.
- */
- public Profile getProfile(Request theRequest) throws IOException,
ServletException, Exception
- {
- CocoonServletRequest servletRequest = new CocoonServletRequest(theRequest);
- Profile theProfile = new Profile(workspace, (HttpServletRequest)
servletRequest);
- return theProfile;
- }
-
- /** Convert a profile stored as a vector of profile attributes
- * to a DOM tree.
- *
- *@param theProfile The profile as a vector of profile attributes.
- *@return The DOM tree.
- */
- public Document getUACapabilities(Profile theProfile)
- {
- Document document;
- Element rootElement;
- Element attributeNode;
- Element complexAttributeNode;
- Text text;
-
- document = ((DOMFactory)parser).newDocument();
- rootElement = document.createElementNS(null, "browser");
- document.appendChild(rootElement);
-
- Iterator profileIter = theProfile.iterator();
- while (profileIter.hasNext())
- {
- ProfileAttribute p = (ProfileAttribute) profileIter.next();
- attributeNode = document.createElementNS(null, p.getAttribute());
- rootElement.appendChild(attributeNode);
- Vector attributeValue = p.get();
- Iterator complexValueIter = attributeValue.iterator();
- if (p.getCollectionType().equals("Simple"))
- {
- // Simple attribute
- String value = (String) complexValueIter.next();
- text = document.createTextNode(value);
- attributeNode.appendChild(text);
- }
- else
- {
- // Complex attribute e.g. Seq or Bag
- while (complexValueIter.hasNext())
- {
- String value = (String) complexValueIter.next();
- complexAttributeNode = document.createElementNS(null, "li");
- attributeNode.appendChild(complexAttributeNode);
- text = document.createTextNode(value);
- complexAttributeNode.appendChild(text);
+ /**
+ * Initialize
+ */
+ public void initialize()
+ throws Exception {
+ this.workspace = new Workspace(this.servletContext, this.deliConfig);
+ }
+
+ /** Dispose of this class */
+ public void dispose() {
+ if (parser != null) this.manager.release((Component)parser);
+ this.parser = null;
+ }
+
+ /** Process a HttpServletRequest and either extract
+ * CC/PP or UAProf information from it and use this information
+ * to resolve a profile or examine the user agent string, match
+ * this using the DELI legacy device database, and use this
+ * information to retrieve the appropriate CC/PP profile.
+ *
+ *@param theRequest The Request.
+ *@return The profile as a vector of profile attributes.
+ *@exception IOException.
+ *@exception ServletException.
+ *@exception Exception.
+ */
+ public Profile getProfile(Request theRequest)
+ throws IOException, ServletException, Exception {
+ CocoonServletRequest servletRequest = new CocoonServletRequest(theRequest);
+ Profile theProfile = new Profile(this.workspace, (HttpServletRequest)
servletRequest);
+ return theProfile;
}
- }
+
+ /** Convert a profile stored as a vector of profile attributes
+ * to a DOM tree.
+ *
+ *@param theProfile The profile as a vector of profile attributes.
+ *@return The DOM tree.
+ */
+ public Document getUACapabilities(Profile theProfile) {
+ Document document;
+ Element rootElement;
+ Element attributeNode;
+ Element complexAttributeNode;
+ Text text;
+
+ document = ((DOMFactory)parser).newDocument();
+ rootElement = document.createElementNS(null, "browser");
+ document.appendChild(rootElement);
+
+ Iterator profileIter = theProfile.iterator();
+ while (profileIter.hasNext()) {
+ ProfileAttribute p = (ProfileAttribute) profileIter.next();
+ attributeNode = document.createElementNS(null, p.getAttribute());
+ rootElement.appendChild(attributeNode);
+ Vector attributeValue = p.get();
+ Iterator complexValueIter = attributeValue.iterator();
+ if (p.getCollectionType().equals("Simple")) {
+ // Simple attribute
+ String value = (String) complexValueIter.next();
+ text = document.createTextNode(value);
+ attributeNode.appendChild(text);
+ } else {
+ // Complex attribute e.g. Seq or Bag
+ while (complexValueIter.hasNext()) {
+ String value = (String) complexValueIter.next();
+ complexAttributeNode = document.createElementNS(null, "li");
+ attributeNode.appendChild(complexAttributeNode);
+ text = document.createTextNode(value);
+ complexAttributeNode.appendChild(text);
+ }
+ }
+ }
+ return document;
}
- return document;
- }
public Document getUACapabilities(Request theRequest)
throws IOException, Exception {
return this.getUACapabilities(this.getProfile(theRequest));
}
- /**
+ /**
* Stub implementation of Servlet Context
*/
+ public class CocoonServletContext implements ServletContext {
+
+ org.apache.cocoon.environment.Context envContext;
+
+ public CocoonServletContext(org.apache.cocoon.environment.Context context) {
+ this.envContext = context;
+ }
- public class CocoonServletContext implements ServletContext
- {
- org.apache.cocoon.environment.Context envContext;
-
- public CocoonServletContext(org.apache.cocoon.environment.Context context)
- {
- envContext = context;
- }
public Object getAttribute(String name) { return
envContext.getAttribute(name); }
public void setAttribute(String name, Object value) {
envContext.setAttribute(name, value); }
- public Enumeration getAttributeNames() { return envContext.getAttributeNames();
}
- public java.net.URL getResource(String path) throws MalformedURLException {
return envContext.getResource(path);}
+ public Enumeration getAttributeNames() { return
envContext.getAttributeNames(); }
+ public java.net.URL getResource(String path) throws MalformedURLException {
return envContext.getResource(path);}
public String getRealPath(String path) { return
envContext.getRealPath(path); }
- public String getMimeType(String file) { return envContext.getMimeType(file); }
- public String getInitParameter(String name) { return
envContext.getInitParameter(name); }
- public java.io.InputStream getResourceAsStream(String path){ return
envContext.getResourceAsStream(path);}
+ public String getMimeType(String file) { return
envContext.getMimeType(file); }
+ public String getInitParameter(String name) { return
envContext.getInitParameter(name); }
+ public java.io.InputStream getResourceAsStream(String path){ return
envContext.getResourceAsStream(path);}
public ServletContext getContext(String uripath) { return (null); }
public Enumeration getInitParameterNames() {return (null); }
public int getMajorVersion() { return (2); }
- public int getMinorVersion() { return (3); }
+ public int getMinorVersion() { return (3); }
public RequestDispatcher getNamedDispatcher(String name) { return (null); }
public RequestDispatcher getRequestDispatcher(String path) { return (null);
}
public Set getResourcePaths(String path) { return null; }
public String getServerInfo() { return (null); }
public Servlet getServlet(String name) throws ServletException { return
(null); }
public String getServletContextName() { return (null); }
- public Enumeration getServletNames() { return (null); }
+ public Enumeration getServletNames() { return (null); }
public Enumeration getServlets() { return (null); }
public void log(String message) {}
public void log(Exception exception, String message) {}
@@ -246,17 +236,16 @@
public void removeAttribute(String name) {}
}
- /**
+ /**
* Stub implementation of HttpServletRequest
*/
- public class CocoonServletRequest implements HttpServletRequest
- {
+ public class CocoonServletRequest implements HttpServletRequest {
Request request;
- public CocoonServletRequest(Request request)
- {
+ public CocoonServletRequest(Request request) {
this.request = request;
}
+
public String getAuthType(){ return request.getAuthType(); }
public long getDateHeader(String s){ return request.getDateHeader(s); }
public String getHeader(String s){ return request.getHeader(s); }
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]