tcurdt 01/12/04 11:05:36 Modified: src/org/apache/cocoon/environment AbstractEnvironment.java Redirector.java src/org/apache/cocoon/environment/wrapper EnvironmentWrapper.java src/org/apache/cocoon/sitemap SitemapRedirector.java Log: added the globalRedirect method to the Redirector interface. now it's always possible to do a redirect on root level even from aggregated pipelines. Revision Changes Path 1.27 +4 -1 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.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- AbstractEnvironment.java 2001/11/26 11:36:16 1.26 +++ AbstractEnvironment.java 2001/12/04 19:05:36 1.27 @@ -26,7 +26,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.26 $ $Date: 2001/11/26 11:36:16 $ + * @version CVS $Revision: 1.27 $ $Date: 2001/12/04 19:05:36 $ */ public abstract class AbstractEnvironment extends AbstractLoggable implements Environment { @@ -228,6 +228,9 @@ * Redirect the client to a new URL */ public abstract void redirect(boolean sessionmode, String newURL) throws IOException; + public void globalRedirect(boolean sessionmode, String newURL) throws IOException { + redirect(sessionmode,newURL); + } // Request methods 1.2 +2 -1 xml-cocoon2/src/org/apache/cocoon/environment/Redirector.java Index: Redirector.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/Redirector.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Redirector.java 2001/06/05 21:36:24 1.1 +++ Redirector.java 2001/12/04 19:05:36 1.2 @@ -14,7 +14,7 @@ * Interface for an redirector abstraction * * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> - * @version CVS $Revision: 1.1 $ $Date: 2001/06/05 21:36:24 $ + * @version CVS $Revision: 1.2 $ $Date: 2001/12/04 19:05:36 $ */ public interface Redirector { @@ -23,5 +23,6 @@ * Redirect to the given URL */ void redirect(boolean sessionmode, String url) throws IOException; + void globalRedirect(boolean sessionmode, String url) throws IOException; } 1.12 +14 -1 xml-cocoon2/src/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java Index: EnvironmentWrapper.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- EnvironmentWrapper.java 2001/10/11 07:28:21 1.11 +++ EnvironmentWrapper.java 2001/12/04 19:05:36 1.12 @@ -30,7 +30,7 @@ * contains a <code>RequestWrapper</code> object. * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version $Id: EnvironmentWrapper.java,v 1.11 2001/10/11 07:28:21 cziegeler Exp $ + * @version $Id: EnvironmentWrapper.java,v 1.12 2001/12/04 19:05:36 tcurdt Exp $ */ public final class EnvironmentWrapper extends AbstractEnvironment @@ -100,6 +100,19 @@ // get session from request, or create new session session = request.getSession(true); } + } + + /** + * Redirect in the first non-wrapped environment + */ + public void globalRedirect(boolean sessionmode, String newURL) + throws IOException { + if (environment instanceof EnvironmentWrapper) { + ((EnvironmentWrapper)environment).globalRedirect(sessionmode, newURL); + } + else { + environment.redirect(sessionmode,newURL); + } } /** 1.6 +11 -1 xml-cocoon2/src/org/apache/cocoon/sitemap/SitemapRedirector.java Index: SitemapRedirector.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/SitemapRedirector.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- SitemapRedirector.java 2001/10/11 07:28:23 1.5 +++ SitemapRedirector.java 2001/12/04 19:05:36 1.6 @@ -10,6 +10,7 @@ import org.apache.cocoon.environment.Environment; import org.apache.cocoon.environment.Redirector; +import org.apache.cocoon.environment.wrapper.EnvironmentWrapper; import java.io.IOException; @@ -17,7 +18,7 @@ * Wrapper for sitemap redirection * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.5 $ $Date: 2001/10/11 07:28:23 $ + * @version CVS $Revision: 1.6 $ $Date: 2001/12/04 19:05:36 $ */ public class SitemapRedirector implements Redirector { private boolean hasRedirected = false; @@ -35,6 +36,15 @@ */ public void redirect(boolean sessionMode, String url) throws IOException { e.redirect(sessionMode, url); + this.hasRedirected = true; + } + public void globalRedirect(boolean sessionMode, String url) throws IOException { + if (e instanceof EnvironmentWrapper) { + ((EnvironmentWrapper)e).globalRedirect(sessionMode,url); + } + else { + e.redirect(sessionMode, url); + } this.hasRedirected = true; }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]