vgritsenko 02/02/12 12:56:56 Modified: src/java/org/apache/cocoon/environment AbstractEnvironment.java Log: Remove URL -> File -> URL conversion Revision Changes Path 1.7 +26 -24 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.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- AbstractEnvironment.java 4 Feb 2002 14:17:57 -0000 1.6 +++ AbstractEnvironment.java 12 Feb 2002 20:56:56 -0000 1.7 @@ -73,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.6 2002/02/04 14:17:57 cziegeler Exp $ + * @version CVS $Id: AbstractEnvironment.java,v 1.7 2002/02/12 20:56:56 vgritsenko Exp $ */ public abstract class AbstractEnvironment extends AbstractLoggable implements Environment { @@ -228,22 +228,17 @@ */ public void changeContext(String prefix, String newContext) throws MalformedURLException { - if (getLogger().isDebugEnabled()) - { - getLogger().debug("Changing Cocoon context(" + newContext + ") to prefix(" + prefix + ")"); - getLogger().debug("\tfrom context(" + this.context.toExternalForm() + ") and prefix(" + this.prefix + ")"); - getLogger().debug("\tat URI " + this.uris); + if (getLogger().isDebugEnabled()) { + getLogger().debug("Changing Cocoon context"); + getLogger().debug(" from context(" + this.context.toExternalForm() + ") and prefix(" + this.prefix + ")"); + getLogger().debug(" to context(" + newContext + ") and prefix(" + prefix + ")"); + getLogger().debug(" at URI " + this.uris); } if (prefix.length() >= 1 && !this.uris.startsWith(prefix)) { - if (getLogger().isErrorEnabled()) - { - this.getLogger().error("The current URI (" - + this.uris + ") doesn't start with given prefix (" - + prefix + ")" - ); - } - - throw new RuntimeException("The current URI doesn't start with given prefix"); + String message = "The current URI (" + this.uris + + ") doesn't start with given prefix (" + prefix + ")"; + getLogger().error(message); + throw new RuntimeException(message); } if (prefix.length() >= 1) { this.prefix.append(prefix); @@ -256,25 +251,31 @@ } } - //if the resource is zipped into a war file (e.g. Weblogic temp deployment) if (this.context.getProtocol().equals("zip")) { + // if the resource is zipped into a war file (e.g. Weblogic temp deployment) + // FIXME (VG): Is this still required? Better to unify both cases. + getLogger().debug("Base context is zip: " + this.context); this.context = new URL(this.context.toString() + newContext); - - // if we got a absolute context or one with a protocol resolve it } else { + // if we got a absolute context or one with a protocol resolve it if (newContext.charAt(0) == '/') { + // context starts with the '/' - absolute file URL this.context = new URL("file:" + newContext); } else if (newContext.indexOf(':') > 1) { + // context have ':' - absolute URL this.context = new URL(newContext); } else { + // context is relative to old one this.context = new URL(this.context, newContext); } - File f = new File(this.context.getFile()); - if (f.isFile()) { - this.context = f.getParentFile().toURL(); - } else { - this.context = f.toURL(); + + // Cut the file name part from context (if present) + String s = this.context.toString(); + int i = s.lastIndexOf('/'); + if (i != -1 && i + 1 < s.length()) { + s = s.substring(0, i + 1); } + this.context = new URL(s); } if (getLogger().isDebugEnabled()) { @@ -286,8 +287,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); + redirect(sessionmode, newURL); } // Request methods
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]