cziegeler 01/07/04 06:59:40 Modified: src/org/apache/cocoon/components/source Tag: cocoon_20_branch SitemapSource.java src/org/apache/cocoon/environment Tag: cocoon_20_branch AbstractEnvironment.java Environment.java Log: - fixed uri-prefix handling (leading / was not removed) - systemId for cocoon: urls is now build by using the http request Revision Changes Path No revision No revision 1.1.2.3 +7 -8 xml-cocoon2/src/org/apache/cocoon/components/source/SitemapSource.java Index: SitemapSource.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/source/SitemapSource.java,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -r1.1.2.2 -r1.1.2.3 --- SitemapSource.java 2001/07/04 09:19:32 1.1.2.2 +++ SitemapSource.java 2001/07/04 13:59:34 1.1.2.3 @@ -21,12 +21,14 @@ import java.net.URLConnection; import org.apache.avalon.framework.component.ComponentException; import org.apache.avalon.framework.component.ComponentManager; +import org.apache.cocoon.Constants; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.Roles; import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.components.pipeline.EventPipeline; import org.apache.cocoon.components.pipeline.StreamPipeline; import org.apache.cocoon.environment.Environment; +import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Source; import org.apache.cocoon.serialization.Serializer; import org.apache.cocoon.sitemap.Sitemap; @@ -40,7 +42,7 @@ * Description of a source which is defined by a pipeline. * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/07/04 09:19:32 $ + * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/07/04 13:59:34 $ */ public final class SitemapSource @@ -86,20 +88,17 @@ if (uri.startsWith("//") == true) { uri = uri.substring(2); // FIXME (CZ) The root sitemap is not available + // so resolve it to the current sitemap } else if (uri.startsWith("/") == true) { uri = uri.substring(1); } - // FIXME (CZ) We should change the systemId from cocoon: - // to http://server/context/... -/* Request request= (Request)env.getObjectModel().get(Constants.REQUEST_OBJECT); + Request request= (Request)env.getObjectModel().get(Constants.REQUEST_OBJECT); this.systemId = request.getScheme() + "://" + - request.getServerName() + ":" + - request.getServerPort() + - request.getContextPath() + '/' + uri; -*/ + request.getServerName() + + (request.getServerPort() == 80 ? "" : ":" + request.getServerPort()) + + request.getContextPath() + '/' + env.getURIPrefix() + uri; this.uri = uri; - this.systemId = uri; this.contentLength = -1; this.lastModificationDate = 0; this.manager = manager; No revision No revision 1.6.2.3 +13 -0 xml-cocoon2/src/org/apache/cocoon/environment/AbstractEnvironment.java Index: AbstractEnvironment.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/AbstractEnvironment.java,v retrieving revision 1.6.2.2 retrieving revision 1.6.2.3 diff -u -r1.6.2.2 -r1.6.2.3 --- AbstractEnvironment.java 2001/07/04 07:26:42 1.6.2.2 +++ AbstractEnvironment.java 2001/07/04 13:59:36 1.6.2.3 @@ -104,6 +104,13 @@ } /** + * Get the prefix of the URI in progress + */ + public String getURIPrefix() { + return this.prefix.toString(); + } + + /** * Adds an prefix to the overall stripped off prefix from the request uri */ public void changeContext(String prefix, String context) @@ -116,6 +123,12 @@ if (uri.startsWith(prefix)) { this.prefix.append(prefix); uri = uri.substring(prefix.length()); + + // check for a slash at the beginning to avoid problems with subsitemaps + if (uri.startsWith("/") == true) { + uri = uri.substring(1); + this.prefix.append('/'); + } //if the resource is zipped into a war file (e.g. Weblogic temp deployment) if (this.context.getProtocol().equals("zip")) { 1.2.2.2 +6 -1 xml-cocoon2/src/org/apache/cocoon/environment/Environment.java Index: Environment.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/Environment.java,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -u -r1.2.2.1 -r1.2.2.2 --- Environment.java 2001/07/04 07:26:43 1.2.2.1 +++ Environment.java 2001/07/04 13:59:37 1.2.2.2 @@ -19,7 +19,7 @@ * Base interface for an environment abstraction * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> - * @version CVS $Revision: 1.2.2.1 $ $Date: 2001/07/04 07:26:43 $ + * @version CVS $Revision: 1.2.2.2 $ $Date: 2001/07/04 13:59:37 $ */ public interface Environment extends SourceResolver { @@ -30,9 +30,14 @@ void setSourceHandler(SourceHandler sourceHandler); /** - * Get the URI to process + * Get the URI to process. The prefix is stripped off. */ String getURI(); + + /** + * Get the prefix of the URI in progress. + */ + String getURIPrefix(); /** * Get the view to process ---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]