cziegeler 02/04/25 02:30:48
Modified: lib/core avalon-excalibur-20020424.jar
src/java/org/apache/cocoon Cocoon.java cocoon.roles
src/java/org/apache/cocoon/components/source/impl
AvalonToCocoonSource.java SitemapSource.java
src/java/org/apache/cocoon/environment
AbstractEnvironment.java Environment.java
ForwardRedirector.java
src/java/org/apache/cocoon/environment/wrapper
EnvironmentWrapper.java
src/webapp/WEB-INF cocoon.xconf
Log:
Adding xmlizer and fixing some todos
Revision Changes Path
1.2 +416 -373 xml-cocoon2/lib/core/avalon-excalibur-20020424.jar
<<Binary file>>
1.24 +9 -3 xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java
Index: Cocoon.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- Cocoon.java 19 Apr 2002 11:02:57 -0000 1.23
+++ Cocoon.java 25 Apr 2002 09:30:48 -0000 1.24
@@ -99,7 +99,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a> (Apache
Software Foundation, Exoffice Technologies)
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Leo Sutic</a>
- * @version CVS $Id: Cocoon.java,v 1.23 2002/04/19 11:02:57 cziegeler Exp $
+ * @version CVS $Id: Cocoon.java,v 1.24 2002/04/25 09:30:48 cziegeler Exp $
*/
public class Cocoon
extends AbstractLoggable
@@ -149,6 +149,9 @@
/** The Source Resolver */
private org.apache.excalibur.source.SourceResolver sourceResolver;
+ /** The XMLizer */
+ private org.apache.excalibur.xmlizer.XMLizer xmlizer;
+
/**
* Creates a new <code>Cocoon</code> instance.
*
@@ -288,6 +291,7 @@
}
this.sourceResolver =
(org.apache.excalibur.source.SourceResolver)this.componentManager.lookup(org.apache.excalibur.source.SourceResolver.ROLE);
+ this.xmlizer =
(org.apache.excalibur.xmlizer.XMLizer)this.componentManager.lookup(org.apache.excalibur.xmlizer.XMLizer.ROLE);
}
/** Dump System Properties */
@@ -450,7 +454,9 @@
public void dispose() {
this.componentManager.release(this.threadSafeProcessor);
this.componentManager.release(this.sourceResolver);
+ this.componentManager.release(this.xmlizer);
this.sourceResolver = null;
+ this.xmlizer = null;
this.componentManager.dispose();
if (this.configurationFile != null) {
this.configurationFile.recycle();
@@ -571,7 +577,7 @@
throw new IllegalStateException("You cannot process a Disposed Cocoon
engine.");
}
- environment.setSourceResolver( this.sourceResolver );
+ environment.setComponents( this.sourceResolver, this.xmlizer );
try {
if (this.getLogger().isDebugEnabled()) {
++activeRequestCount;
@@ -595,7 +601,7 @@
if (this.getLogger().isDebugEnabled()) {
--activeRequestCount;
}
- environment.setSourceResolver( null );
+ environment.setComponents( null, null );
}
}
1.23 +14 -9 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.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- cocoon.roles 19 Apr 2002 11:03:29 -0000 1.22
+++ cocoon.roles 25 Apr 2002 09:30:48 -0000 1.23
@@ -103,14 +103,6 @@
<hint shorthand="informix"
class="org.apache.avalon.excalibur.datasource.InformixDataSource"/>
</role>
- <role name="org.apache.cocoon.components.url.URLFactory"
- shorthand="url-factory"
- default-class="org.apache.cocoon.components.url.URLFactoryImpl"/>
-
- <role name="org.apache.cocoon.components.source.SourceHandler"
- shorthand="source-handler"
- default-class="org.apache.cocoon.components.source.SourceHandlerImpl"/>
-
<role name="org.apache.excalibur.source.SourceFactorySelector"
shorthand="source-factories"
default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector">
@@ -120,6 +112,10 @@
shorthand="source-resolver"
default-class="org.apache.excalibur.source.impl.SourceResolverImpl"/>
+ <role name="org.apache.excalibur.xmlizer.XMLizer"
+ shorthand="xmlizer"
+ default-class="org.apache.excalibur.xmlizer.impl.XMLizerImpl"/>
+
<role name="org.apache.cocoon.components.sax.XMLSerializer"
shorthand="xml-serializer"
default-class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"/>
@@ -212,7 +208,6 @@
default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector"/>
<!-- DEPRECATED, use the xml-parser instead ! -->
-
<role name="org.apache.cocoon.components.resolver.Resolver"
shorthand="resolver"
default-class="org.apache.cocoon.components.resolver.ResolverImpl"/>
@@ -220,5 +215,15 @@
<role name="org.apache.cocoon.components.parser.Parser"
shorthand="parser"
default-class="org.apache.cocoon.components.parser.JaxpParser"/>
+
+ <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
+ <role name="org.apache.cocoon.components.url.URLFactory"
+ shorthand="url-factory"
+ default-class="org.apache.cocoon.components.url.URLFactoryImpl"/>
+
+ <role name="org.apache.cocoon.components.source.SourceHandler"
+ shorthand="source-handler"
+ default-class="org.apache.cocoon.components.source.SourceHandlerImpl"/>
+
</role-list>
1.2 +27 -8
xml-cocoon2/src/java/org/apache/cocoon/components/source/impl/AvalonToCocoonSource.java
Index: AvalonToCocoonSource.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/impl/AvalonToCocoonSource.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AvalonToCocoonSource.java 24 Apr 2002 13:48:20 -0000 1.1
+++ AvalonToCocoonSource.java 25 Apr 2002 09:30:48 -0000 1.2
@@ -55,6 +55,7 @@
import org.apache.avalon.excalibur.xml.XMLizable;
import org.apache.excalibur.source.*;
import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.environment.ModifiableSource;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
@@ -66,7 +67,7 @@
* resolve() method of the environment!
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.1 $ $Date: 2002/04/24 13:48:20 $
+ * @version CVS $Revision: 1.2 $ $Date: 2002/04/25 09:30:48 $
*/
public final class AvalonToCocoonSource
@@ -75,6 +76,23 @@
/** The real source */
protected Source source;
+ /** The source resolver */
+ protected SourceResolver resolver;
+
+ /** The environment */
+ protected Environment environment;
+
+ /**
+ * Constructor
+ */
+ public AvalonToCocoonSource(Source source,
+ SourceResolver resolver,
+ Environment environment) {
+ this.source = source;
+ this.resolver = resolver;
+ this.environment = environment;
+ }
+
/**
* Get the last modification date of the source or 0 if it
* is not possible to determine the date.
@@ -100,8 +118,7 @@
throws ProcessingException, IOException {
try {
return this.source.getInputStream();
- // FIXME (CZ) Change to SourceException
- } catch (Exception e) {
+ } catch (SourceException e) {
throw new ProcessingException(e);
}
}
@@ -133,7 +150,9 @@
}
public void recycle() {
- // FIXME
+ this.resolver.release(this.source);
+ this.source = null;
+ this.environment = null;
}
public void refresh() {
@@ -149,10 +168,10 @@
*/
public void toSAX(ContentHandler handler)
throws SAXException, ProcessingException {
- if (this.source instanceof XMLizable) {
- ((XMLizable)this.source).toSAX( handler );
- } else {
- // FIXME
+ try {
+ this.environment.toSAX(this.source, handler);
+ } catch (IOException ioe) {
+ throw new ProcessingException("IOException during streaming.", ioe);
}
}
1.3 +10 -5
xml-cocoon2/src/java/org/apache/cocoon/components/source/impl/SitemapSource.java
Index: SitemapSource.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/impl/SitemapSource.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SitemapSource.java 24 Apr 2002 13:48:20 -0000 1.2
+++ SitemapSource.java 25 Apr 2002 09:30:48 -0000 1.3
@@ -95,7 +95,7 @@
* Description of a source which is defined by a pipeline.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: SitemapSource.java,v 1.2 2002/04/24 13:48:20 cziegeler Exp $
+ * @version CVS $Id: SitemapSource.java,v 1.3 2002/04/25 09:30:48 cziegeler Exp $
*/
public final class SitemapSource
@@ -132,6 +132,9 @@
/** The redirect <code>Source</code> */
private Source redirectSource;
+ /** Redirect validity */
+ private SourceValidity redirectValidity;
+
/** The <code>SAXException</code> if unable to get resource */
private SAXException exception;
@@ -276,6 +279,9 @@
if (this.needsRefresh) {
this.discardValidity();
}
+ if (this.redirectSource != null) {
+ return this.redirectValidity;
+ }
if (this.lastModificationDate < 1) {
return null;
} else {
@@ -332,8 +338,7 @@
redirectURL = "cocoon:/" + redirectURL;
}
this.redirectSource = this.environment.resolveURI(redirectURL);
- // FIXME (CZ)
- //this.lastModificationDate =
this.redirectSource.getLastModified();
+ this.redirectValidity = this.redirectSource.getValidity();
}
} catch (SAXException e) {
reset();
@@ -378,8 +383,7 @@
consumer = new ContentHandlerWrapper(contentHandler);
}
if (this.redirectSource != null) {
- // FIXME (CZ)
- // this.redirectSource.toSAX(consumer);
+ this.environment.toSAX(this.redirectSource, consumer);
} else {
try {
CocoonComponentManager.enterEnvironment(this.environment,
@@ -413,6 +417,7 @@
if (this.redirectSource != null)
this.environment.release(this.redirectSource);
this.environment.reset();
this.redirectSource = null;
+ this.redirectValidity = null;
this.exception = null;
this.needsRefresh = true;
}
1.16 +45 -4
xml-cocoon2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java
Index: AbstractEnvironment.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- AbstractEnvironment.java 24 Apr 2002 13:48:20 -0000 1.15
+++ AbstractEnvironment.java 25 Apr 2002 09:30:48 -0000 1.16
@@ -50,12 +50,14 @@
*/
package org.apache.cocoon.environment;
-import org.apache.excalibur.source.SourceException;
import org.apache.avalon.excalibur.collections.IteratorEnumeration;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.source.SourceHandler;
+import org.apache.excalibur.source.SourceException;
+import org.apache.excalibur.xmlizer.XMLizer;
+import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import java.io.File;
@@ -71,7 +73,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: AbstractEnvironment.java,v 1.15 2002/04/24 13:48:20 cziegeler
Exp $
+ * @version CVS $Id: AbstractEnvironment.java,v 1.16 2002/04/25 09:30:48 cziegeler
Exp $
*/
public abstract class AbstractEnvironment extends AbstractLoggable implements
Environment {
@@ -102,6 +104,9 @@
/** The real source resolver */
protected org.apache.excalibur.source.SourceResolver sourceResolver;
+ /** The real xmlizer */
+ protected org.apache.excalibur.xmlizer.XMLizer xmlizer;
+
/** The attributes */
private Map attributes = new HashMap();
@@ -165,12 +170,21 @@
}
/**
- * Set the <code>SourceResolver</code>
+ * Set the <code>SourceResolver</code> and the <code>XMLizer</code>
*/
- public void setSourceResolver(org.apache.excalibur.source.SourceResolver
resolver) {
+ public void setComponents(org.apache.excalibur.source.SourceResolver resolver,
+ XMLizer xmlizer) {
+ this.xmlizer = xmlizer;
this.sourceResolver = resolver;
}
+ /**
+ * Get the <code>SourceResolver</code>
+ */
+ public org.apache.excalibur.source.SourceResolver getSourceResolver() {
+ return this.sourceResolver;
+ }
+
// Sitemap methods
/**
@@ -440,6 +454,33 @@
*/
public void release( final org.apache.excalibur.source.Source source ) {
this.sourceResolver.release( source );
+ }
+
+ /**
+ * Generates SAX events from the given source
+ * <b>NOTE</b> : if the implementation can produce lexical events, care should
be taken
+ * that <code>handler</code> can actually
+ * directly implement the LexicalHandler interface!
+ * @param source the data
+ * @throws ProcessingException if no suitable converter is found
+ */
+ public void toSAX( org.apache.excalibur.source.Source source,
+ ContentHandler handler )
+ throws SAXException, IOException, ProcessingException {
+ if ( source instanceof org.apache.avalon.excalibur.xml.XMLizable ) {
+ ((org.apache.avalon.excalibur.xml.XMLizable)source).toSAX( handler );
+ } else {
+ try {
+ xmlizer.toSAX( source.getInputStream(),
+ source.getMimeType(),
+ source.getSystemId(),
+ handler );
+ } catch (SourceException se) {
+ throw new ProcessingException("Exception during streaming source.",
se);
+ } catch (ComponentException ce) {
+ throw new ProcessingException("Exception during streaming source.",
ce);
+ }
+ }
}
}
1.8 +26 -5
xml-cocoon2/src/java/org/apache/cocoon/environment/Environment.java
Index: Environment.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/Environment.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Environment.java 19 Apr 2002 11:02:57 -0000 1.7
+++ Environment.java 25 Apr 2002 09:30:48 -0000 1.8
@@ -50,23 +50,27 @@
*/
package org.apache.cocoon.environment;
+import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.source.SourceHandler;
-
+import org.apache.excalibur.xmlizer.XMLizer;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.util.Enumeration;
import java.util.Map;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
/**
* Base interface for an environment abstraction
*
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: Environment.java,v 1.7 2002/04/19 11:02:57 cziegeler Exp $
+ * @version CVS $Id: Environment.java,v 1.8 2002/04/25 09:30:48 cziegeler Exp $
*/
-public interface Environment extends SourceResolver {
+public interface Environment
+ extends SourceResolver {
/**
* Get the <code>SourceHandler</code> for the current request
@@ -79,9 +83,15 @@
void setSourceHandler(SourceHandler sourceHandler);
/**
- * Set the <code>SourceResolver</code>
+ * Set the <code>SourceResolver</code> and the <code>XMLizer</code>
*/
- void setSourceResolver(org.apache.excalibur.source.SourceResolver resolver);
+ void setComponents(org.apache.excalibur.source.SourceResolver resolver,
+ XMLizer xmlizer);
+
+ /**
+ * Get the <code>SourceResolver</code>
+ */
+ org.apache.excalibur.source.SourceResolver getSourceResolver();
/**
* Get the URI to process. The prefix is stripped off.
@@ -222,5 +232,16 @@
*/
boolean tryResetResponse();
+ /**
+ * Generates SAX events from the given source
+ * <b>NOTE</b> : if the implementation can produce lexical events, care should
be taken
+ * that <code>handler</code> can actually
+ * directly implement the LexicalHandler interface!
+ * @param source the data
+ * @throws ProcessingException if no suitable converter is found
+ */
+ void toSAX( org.apache.excalibur.source.Source source,
+ ContentHandler handler )
+ throws SAXException, IOException, ProcessingException;
}
1.2 +33 -32
xml-cocoon2/src/java/org/apache/cocoon/environment/ForwardRedirector.java
Index: ForwardRedirector.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/ForwardRedirector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ForwardRedirector.java 28 Mar 2002 08:45:10 -0000 1.1
+++ ForwardRedirector.java 25 Apr 2002 09:30:48 -0000 1.2
@@ -70,27 +70,27 @@
* redirects using the "cocoon:" pseudo-protocol.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a>
- * @version CVS $Id: ForwardRedirector.java,v 1.1 2002/03/28 08:45:10 sylvain Exp $
+ * @version CVS $Id: ForwardRedirector.java,v 1.2 2002/04/25 09:30:48 cziegeler Exp
$
*/
public class ForwardRedirector extends AbstractLoggable implements Redirector {
-
+
/** Was there a call to <code>redirect()</code> ? */
private boolean hasRedirected = false;
-
+
/** The <code>Environment to use for redirection (either internal or external)
*/
private Environment env;
-
+
/** The <code>Processor</code> that owns this redirector and which will be used
to handle relative "cocoon:/..." redirects */
private Processor processor;
-
+
/** The component manager which gives access to the top-level
<code>Processor</code>
to handle absolute "cocoon://..." redirects */
private ComponentManager manager;
-
+
/** The stream pipeline (can be null) used for internal redirects */
private StreamPipeline streamPipe;
-
+
/** The event pipeline (can be null) used for internal redirects */
private EventPipeline eventPipe;
@@ -109,11 +109,11 @@
* environment.
*/
public void redirect(boolean sessionMode, String url) throws IOException,
ProcessingException {
-
+
if (getLogger().isInfoEnabled()) {
getLogger().info("Redirecting to '" + url + "'");
}
-
+
if (url.startsWith("cocoon:")) {
cocoonRedirect(sessionMode, url);
} else {
@@ -127,11 +127,11 @@
* subpipeline.
*/
public void globalRedirect(boolean sessionMode, String url) throws IOException,
ProcessingException {
-
+
if (getLogger().isInfoEnabled()) {
getLogger().info("Redirecting to '" + url + "'");
}
-
+
// FIXME : how to handle global redirect to cocoon: ?
if (url.startsWith("cocoon:")) {
cocoonRedirect(sessionMode, url);
@@ -145,12 +145,13 @@
}
this.hasRedirected = true;
}
-
- private void cocoonRedirect(boolean sessionMode, String uri) throws
IOException, ProcessingException {
- try {
+
+ private void cocoonRedirect(boolean sessionMode, String uri)
+ throws IOException, ProcessingException {
+ try {
boolean rawMode = false;
String prefix;
-
+
// remove the protocol
int protocolEnd = uri.indexOf(':');
if (protocolEnd != -1) {
@@ -161,9 +162,9 @@
rawMode = true;
}
}
-
+
Processor actualProcessor;
-
+
// Does the uri point to this sitemap or to the root sitemap?
if (uri.startsWith("//")) {
uri = uri.substring(2);
@@ -173,16 +174,16 @@
} catch (ComponentException e) {
throw new ProcessingException("Cannot get Processor instance",
e);
}
-
+
} else if (uri.startsWith("/")) {
prefix = null; // means use current prefix
uri = uri.substring(1);
actualProcessor = this.processor;
-
+
} else {
throw new ProcessingException("Malformed cocoon URI.");
}
-
+
// create the queryString (if available)
String queryString = null;
int queryStringPos = uri.indexOf('?');
@@ -190,26 +191,26 @@
queryString = uri.substring(queryStringPos + 1);
uri = uri.substring(0, queryStringPos);
}
-
+
// build the request uri which is relative to the context
String requestURI = (prefix == null ? env.getURIPrefix() + uri : uri);
-
+
ForwardEnvironmentWrapper newEnv =
new ForwardEnvironmentWrapper(env, requestURI, queryString,
getLogger(), rawMode);
newEnv.setURI(prefix, uri);
-
+
boolean processingResult;
-
+
if (this.eventPipe == null && this.streamPipe == null) {
processingResult = actualProcessor.process(newEnv);
} else {
processingResult = actualProcessor.process(newEnv, this.streamPipe,
this.eventPipe);
}
-
+
if (!processingResult) {
throw new ProcessingException("Couldn't process URI " + requestURI);
}
-
+
} catch(IOException ioe) {
throw ioe;
} catch(ProcessingException pe) {
@@ -227,13 +228,13 @@
public boolean hasRedirected() {
return this.hasRedirected;
}
-
+
/**
* Local extension of EnvironmentWrapper to propagate otherwise blocked
* methods to the actual environment.
*/
private class ForwardEnvironmentWrapper extends EnvironmentWrapper {
-
+
public ForwardEnvironmentWrapper(Environment env,
String requestURI,
String queryString,
@@ -241,19 +242,19 @@
boolean rawMode) throws MalformedURLException {
super(env, requestURI, queryString, logger, rawMode);
}
-
+
public void setStatus(int statusCode) {
environment.setStatus(statusCode);
}
-
+
public void setContentLength(int length) {
environment.setContentLength(length);
}
-
+
public void setContentType(String contentType) {
environment.setContentType(contentType);
}
-
+
public String getContentType() {
return environment.getContentType();
}
1.13 +19 -2
xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
Index: EnvironmentWrapper.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- EnvironmentWrapper.java 21 Apr 2002 17:36:28 -0000 1.12
+++ EnvironmentWrapper.java 25 Apr 2002 09:30:48 -0000 1.13
@@ -50,12 +50,14 @@
*/
package org.apache.cocoon.environment.wrapper;
+import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.environment.AbstractEnvironment;
import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.log.Logger;
-
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
import java.io.IOException;
import java.io.OutputStream;
import java.net.MalformedURLException;
@@ -71,7 +73,7 @@
* contains a <code>RequestWrapper</code> object.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version $Id: EnvironmentWrapper.java,v 1.12 2002/04/21 17:36:28 vgritsenko Exp $
+ * @version $Id: EnvironmentWrapper.java,v 1.13 2002/04/25 09:30:48 cziegeler Exp $
*/
public class EnvironmentWrapper extends AbstractEnvironment implements Environment {
@@ -109,6 +111,7 @@
Logger logger)
throws MalformedURLException {
this(env, requestURI, queryString, logger, false);
+ this.setComponents(env.getSourceResolver(), null);
}
/**
@@ -301,5 +304,19 @@
{
super.removeAttribute(name);
environment.removeAttribute(name);
+ }
+
+ /**
+ * Generates SAX events from the given source
+ * <b>NOTE</b> : if the implementation can produce lexical events, care should
be taken
+ * that <code>handler</code> can actually
+ * directly implement the LexicalHandler interface!
+ * @param source the data
+ * @throws ProcessingException if no suitable converter is found
+ */
+ public void toSAX( org.apache.excalibur.source.Source source,
+ ContentHandler handler )
+ throws SAXException, IOException, ProcessingException {
+ this.environment.toSAX( source, handler );
}
}
1.10 +5 -0 xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf
Index: cocoon.xconf
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- cocoon.xconf 24 Apr 2002 09:59:49 -0000 1.9
+++ cocoon.xconf 25 Apr 2002 09:30:48 -0000 1.10
@@ -180,6 +180,11 @@
<component-instance
class="org.apache.cocoon.components.source.impl.CocoonSourceFactory" name="cocoon"/>
</source-factories>
+ <!-- The XMLizer converts different mime-types to XML -->
+ <xmlizer>
+ <component-instance class="org.apache.excalibur.xmlizer.impl.TextXMLizer"
name="text/xml"/>
+ <component-instance class="org.apache.excalibur.xmlizer.impl.HTMLXMLizer"
name="text/html"/>
+ </xmlizer>
<!-- Program Generator:
The ProgamGenerator builds programs from a XML document written in a
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]