Author: remm Date: Mon Dec 10 14:36:26 2018 New Revision: 1848582 URL: http://svn.apache.org/viewvc?rev=1848582&view=rev Log: Add i18n for ssi package.
Modified: tomcat/trunk/java/org/apache/catalina/ssi/ExpressionParseTree.java tomcat/trunk/java/org/apache/catalina/ssi/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/ssi/SSIConfig.java tomcat/trunk/java/org/apache/catalina/ssi/SSIEcho.java tomcat/trunk/java/org/apache/catalina/ssi/SSIExec.java tomcat/trunk/java/org/apache/catalina/ssi/SSIFlastmod.java tomcat/trunk/java/org/apache/catalina/ssi/SSIFsize.java tomcat/trunk/java/org/apache/catalina/ssi/SSIInclude.java tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java tomcat/trunk/java/org/apache/catalina/ssi/SSISet.java Modified: tomcat/trunk/java/org/apache/catalina/ssi/ExpressionParseTree.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/ExpressionParseTree.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/ExpressionParseTree.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/ExpressionParseTree.java Mon Dec 10 14:36:26 2018 @@ -23,12 +23,15 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; + +import org.apache.tomcat.util.res.StringManager; /** * Represents a parsed expression. * * @author Paul Speed */ public class ExpressionParseTree { + private static final StringManager sm = StringManager.getManager(ExpressionParseTree.class); /** * Contains the current set of completed nodes. This is a workspace for the * parser. @@ -196,13 +199,13 @@ public class ExpressionParseTree { // Finish off the rest of the opps resolveGroup(); if (nodeStack.size() == 0) { - throw new ParseException("No nodes created.", et.getIndex()); + throw new ParseException(sm.getString("expressionParseTree.noNodes"), et.getIndex()); } if (nodeStack.size() > 1) { - throw new ParseException("Extra nodes created.", et.getIndex()); + throw new ParseException(sm.getString("expressionParseTree.extraNodes"), et.getIndex()); } if (oppStack.size() != 0) { - throw new ParseException("Unused opp nodes exist.", et.getIndex()); + throw new ParseException(sm.getString("expressionParseTree.unusedOpCodes"), et.getIndex()); } root = nodeStack.get(0); } @@ -382,7 +385,7 @@ public class ExpressionParseTree { return -1; } } catch (PatternSyntaxException pse) { - ssiMediator.log("Invalid expression: " + expr, pse); + ssiMediator.log(sm.getString("expressionParseTree.invalidExpression", expr), pse); return 0; } } Modified: tomcat/trunk/java/org/apache/catalina/ssi/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/LocalStrings.properties?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/LocalStrings.properties Mon Dec 10 14:36:26 2018 @@ -13,4 +13,35 @@ # See the License for the specific language governing permissions and # limitations under the License. +expressionParseTree.extraNodes=Extra nodes created +expressionParseTree.invalidExpression=Invalid expression [{0}] +expressionParseTree.noNodes=No nodes created +expressionParseTree.unusedOpCodes=Unused nodes exist +ssiCommand.invalidAttribute=Invalid attribute [{0}] + +ssiEcho.invalidEncoding=Invalid encoding [{0}] + +ssiExec.executeFailed=Cannot execute file [{0}] + +ssiFlastmod.noLastModified=Cannot get last modification date for file [{0}] + +ssiFsize.invalidAttribute=Invalid attribute [{0}] +ssiFsize.invalidNumChars=The number of characters cannot be negative +ssiFsize.noSize=Cannot get size for file [{0}] + +ssiInclude.includeFailed=Cannot include file [{0}] + +ssiMediator.unknownEncoding=Unknown encoding [{0}] + +ssiServletExternalResolver.absoluteNonVirtualPath=Non virtual [{0}] path cannot be absolute +ssiServletExternalResolver.noContext=No context for path normalized to [{0}] +ssiServletExternalResolver.noIncludeFile=Include file [{0}] not found +ssiServletExternalResolver.noFile=File [{0}] not found +ssiServletExternalResolver.noResource=Context did not contain resource [{0}] +ssiServletExternalResolver.normalizationError=Normalization returned null for path [{0}] +ssiServletExternalResolver.pathTraversalNonVirtualPath=Non virtual path [{0}] cannot contain path traversal sequences +ssiServletExternalResolver.removeFilenameError=Cannot remove filename from path [{0}] +ssiServletExternalResolver.requestDispatcherError=Cannot get request dispatcher for path [{0}] + +ssiSet.noVariable=No variable specified Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIConfig.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIConfig.java Mon Dec 10 14:36:26 2018 @@ -18,6 +18,8 @@ package org.apache.catalina.ssi; import java.io.PrintWriter; + +import org.apache.tomcat.util.res.StringManager; /** * Implements the Server-side #exec command * @@ -27,6 +29,7 @@ import java.io.PrintWriter; * @author David Becker */ public final class SSIConfig implements SSICommand { + private static final StringManager sm = StringManager.getManager(SSIConfig.class); /** * @see SSICommand */ @@ -45,7 +48,7 @@ public final class SSIConfig implements } else if (paramName.equalsIgnoreCase("timefmt")) { ssiMediator.setConfigTimeFmt(substitutedValue); } else { - ssiMediator.log("#config--Invalid attribute: " + paramName); + ssiMediator.log(sm.getString("ssiCommand.invalidAttribute", paramName)); //We need to fetch this value each time, since it may change // during the // loop Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIEcho.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIEcho.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIEcho.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIEcho.java Mon Dec 10 14:36:26 2018 @@ -18,6 +18,8 @@ package org.apache.catalina.ssi; import java.io.PrintWriter; + +import org.apache.tomcat.util.res.StringManager; /** * Return the result associated with the supplied Server Variable. * @@ -27,6 +29,7 @@ import java.io.PrintWriter; * @author David Becker */ public class SSIEcho implements SSICommand { + private static final StringManager sm = StringManager.getManager(SSIEcho.class); protected static final String DEFAULT_ENCODING = "entity"; protected static final String MISSING_VARIABLE_VALUE = "(none)"; @@ -49,11 +52,11 @@ public class SSIEcho implements SSIComma if (isValidEncoding(paramValue)) { encoding = paramValue; } else { - ssiMediator.log("#echo--Invalid encoding: " + paramValue); + ssiMediator.log(sm.getString("ssiEcho.invalidEncoding", paramValue)); writer.write(errorMessage); } } else { - ssiMediator.log("#echo--Invalid attribute: " + paramName); + ssiMediator.log(sm.getString("ssiCommand.invalidAttribute", paramName)); writer.write(errorMessage); } } Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIExec.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIExec.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIExec.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIExec.java Mon Dec 10 14:36:26 2018 @@ -23,6 +23,7 @@ import java.io.InputStreamReader; import java.io.PrintWriter; import org.apache.catalina.util.IOTools; +import org.apache.tomcat.util.res.StringManager; /** * Implements the Server-side #exec command * @@ -33,6 +34,7 @@ import org.apache.catalina.util.IOTools; * @author David Becker */ public class SSIExec implements SSICommand { + private static final StringManager sm = StringManager.getManager(SSIExec.class); protected final SSIInclude ssiInclude = new SSIInclude(); protected static final int BUFFER_SIZE = 1024; @@ -68,14 +70,14 @@ public class SSIExec implements SSIComma proc.waitFor(); lastModified = System.currentTimeMillis(); } catch (InterruptedException e) { - ssiMediator.log("Couldn't exec file: " + substitutedValue, e); + ssiMediator.log(sm.getString("ssiExec.executeFailed", substitutedValue), e); writer.write(configErrMsg); } catch (IOException e) { if (!foundProgram) { - //apache doesn't output an error message if it can't find + // Apache doesn't output an error message if it can't find // a program } - ssiMediator.log("Couldn't exec file: " + substitutedValue, e); + ssiMediator.log(sm.getString("ssiExec.executeFailed", substitutedValue), e); } } return lastModified; Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIFlastmod.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIFlastmod.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIFlastmod.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIFlastmod.java Mon Dec 10 14:36:26 2018 @@ -22,6 +22,7 @@ import java.util.Date; import java.util.Locale; import org.apache.catalina.util.Strftime; +import org.apache.tomcat.util.res.StringManager; /** * Implements the Server-side #flastmod command @@ -32,6 +33,7 @@ import org.apache.catalina.util.Strftime * @author David Becker */ public final class SSIFlastmod implements SSICommand { + private static final StringManager sm = StringManager.getManager(SSIFlastmod.class); /** * @see SSICommand */ @@ -55,14 +57,11 @@ public final class SSIFlastmod implement String configTimeFmt = ssiMediator.getConfigTimeFmt(); writer.write(formatDate(date, configTimeFmt)); } else { - ssiMediator.log("#flastmod--Invalid attribute: " - + paramName); + ssiMediator.log(sm.getString("ssiCommand.invalidAttribute", paramName)); writer.write(configErrMsg); } } catch (IOException e) { - ssiMediator.log( - "#flastmod--Couldn't get last modified for file: " - + substitutedValue, e); + ssiMediator.log(sm.getString("ssiFlastmod.noLastModified", substitutedValue), e); writer.write(configErrMsg); } } Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIFsize.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIFsize.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIFsize.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIFsize.java Mon Dec 10 14:36:26 2018 @@ -20,6 +20,8 @@ package org.apache.catalina.ssi; import java.io.IOException; import java.io.PrintWriter; import java.text.DecimalFormat; + +import org.apache.tomcat.util.res.StringManager; /** * Implements the Server-side #fsize command * @@ -29,6 +31,7 @@ import java.text.DecimalFormat; * @author David Becker */ public final class SSIFsize implements SSICommand { + private static final StringManager sm = StringManager.getManager(SSIFsize.class); static final int ONE_KILOBYTE = 1024; static final int ONE_MEGABYTE = 1024 * 1024; @@ -57,12 +60,11 @@ public final class SSIFsize implements S String configSizeFmt = ssiMediator.getConfigSizeFmt(); writer.write(formatSize(size, configSizeFmt)); } else { - ssiMediator.log("#fsize--Invalid attribute: " + paramName); + ssiMediator.log(sm.getString("ssiCommand.invalidAttribute", paramName)); writer.write(configErrMsg); } } catch (IOException e) { - ssiMediator.log("#fsize--Couldn't get size for file: " - + substitutedValue, e); + ssiMediator.log(sm.getString("ssiFsize.noSize", substitutedValue), e); writer.write(configErrMsg); } } @@ -72,7 +74,7 @@ public final class SSIFsize implements S public String repeat(char aChar, int numChars) { if (numChars < 0) { - throw new IllegalArgumentException("Num chars can't be negative"); + throw new IllegalArgumentException(sm.getString("ssiFsize.invalidNumChars")); } StringBuilder buf = new StringBuilder(); for (int i = 0; i < numChars; i++) { Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIInclude.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIInclude.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIInclude.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIInclude.java Mon Dec 10 14:36:26 2018 @@ -19,6 +19,8 @@ package org.apache.catalina.ssi; import java.io.IOException; import java.io.PrintWriter; + +import org.apache.tomcat.util.res.StringManager; /** * Implements the Server-side #include command * @@ -28,6 +30,7 @@ import java.io.PrintWriter; * @author David Becker */ public final class SSIInclude implements SSICommand { + private static final StringManager sm = StringManager.getManager(SSIInclude.class); /** * @see SSICommand */ @@ -51,13 +54,11 @@ public final class SSIInclude implements virtual); writer.write(text); } else { - ssiMediator.log("#include--Invalid attribute: " - + paramName); + ssiMediator.log(sm.getString("ssiCommand.invalidAttribute", paramName)); writer.write(configErrMsg); } } catch (IOException e) { - ssiMediator.log("#include--Couldn't include file: " - + substitutedValue, e); + ssiMediator.log(sm.getString("ssiInclude.includeFailed", substitutedValue), e); writer.write(configErrMsg); } } Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java Mon Dec 10 14:36:26 2018 @@ -29,6 +29,7 @@ import java.util.regex.Matcher; import org.apache.catalina.util.Strftime; import org.apache.catalina.util.URLEncoder; +import org.apache.tomcat.util.res.StringManager; import org.apache.tomcat.util.security.Escape; /** @@ -42,6 +43,7 @@ import org.apache.tomcat.util.security.E * @author David Becker */ public class SSIMediator { + private static final StringManager sm = StringManager.getManager(SSIMediator.class); protected static final String DEFAULT_CONFIG_ERR_MSG = "[an error occurred while processing this directive]"; protected static final String DEFAULT_CONFIG_TIME_FMT = "%A, %d-%b-%Y %T %Z"; protected static final String DEFAULT_CONFIG_SIZE_FMT = "abbrev"; @@ -289,7 +291,7 @@ public class SSIMediator { retVal = Escape.htmlElementContent(value); } else { //This shouldn't be possible - throw new IllegalArgumentException("Unknown encoding: " + encoding); + throw new IllegalArgumentException(sm.getString("ssiMediator.unknownEncoding", encoding)); } return retVal; } Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java Mon Dec 10 14:36:26 2018 @@ -158,13 +158,11 @@ public class SSIServlet extends HttpServ if (path == null || path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF") || path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF")) { res.sendError(HttpServletResponse.SC_NOT_FOUND, path); - log("Can't serve file: " + path); return; } URL resource = servletContext.getResource(path); if (resource == null) { res.sendError(HttpServletResponse.SC_NOT_FOUND, path); - log("Can't find file: " + path); return; } String resourceMimeType = servletContext.getMimeType(path); Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java Mon Dec 10 14:36:26 2018 @@ -39,6 +39,7 @@ import org.apache.coyote.Constants; import org.apache.tomcat.util.buf.B2CConverter; import org.apache.tomcat.util.buf.UDecoder; import org.apache.tomcat.util.http.RequestUtil; +import org.apache.tomcat.util.res.StringManager; /** * An implementation of SSIExternalResolver that is used with servlets. @@ -47,6 +48,7 @@ import org.apache.tomcat.util.http.Reque * @author David Becker */ public class SSIServletExternalResolver implements SSIExternalResolver { + private static final StringManager sm = StringManager.getManager(SSIServletExternalResolver.class); protected final String VARIABLE_NAMES[] = {"AUTH_TYPE", "CONTENT_LENGTH", "CONTENT_TYPE", "DOCUMENT_NAME", "DOCUMENT_URI", "GATEWAY_INTERFACE", "HTTP_ACCEPT", "HTTP_ACCEPT_ENCODING", @@ -374,14 +376,12 @@ public class SSIServletExternalResolver String pathWithoutContext = SSIServletRequestUtil.getRelativePath(req); String prefix = getPathWithoutFileName(pathWithoutContext); if (prefix == null) { - throw new IOException("Couldn't remove filename from path: " - + pathWithoutContext); + throw new IOException(sm.getString("ssiServletExternalResolver.removeFilenameError", pathWithoutContext)); } String fullPath = prefix + path; String retVal = RequestUtil.normalize(fullPath); if (retVal == null) { - throw new IOException("Normalization yielded null on path: " - + fullPath); + throw new IOException(sm.getString("ssiServletExternalResolver.normalizationError", fullPath)); } return retVal; } @@ -390,12 +390,10 @@ public class SSIServletExternalResolver protected ServletContextAndPath getServletContextAndPathFromNonVirtualPath( String nonVirtualPath) throws IOException { if (nonVirtualPath.startsWith("/") || nonVirtualPath.startsWith("\\")) { - throw new IOException("A non-virtual path can't be absolute: " - + nonVirtualPath); + throw new IOException(sm.getString("ssiServletExternalResolver.absoluteNonVirtualPath", nonVirtualPath)); } if (nonVirtualPath.contains("../")) { - throw new IOException("A non-virtual path can't contain '../' : " - + nonVirtualPath); + throw new IOException(sm.getString("ssiServletExternalResolver.pathTraversalNonVirtualPath", nonVirtualPath)); } String path = getAbsolutePath(nonVirtualPath); ServletContextAndPath csAndP = new ServletContextAndPath( @@ -419,8 +417,7 @@ public class SSIServletExternalResolver ServletContext normContext = context.getContext(normalized); if (normContext == null) { - throw new IOException("Couldn't get context for path: " - + normalized); + throw new IOException(sm.getString("ssiServletExternalResolver.noContext", normalized)); } //If it's the root context, then there is no context element // to remove, @@ -472,7 +469,7 @@ public class SSIServletExternalResolver String path = csAndP.getPath(); URL url = context.getResource(path); if (url == null) { - throw new IOException("Context did not contain resource: " + path); + throw new IOException(sm.getString("ssiServletExternalResolver.noResource", path)); } URLConnection urlConnection = url.openConnection(); return urlConnection; @@ -519,8 +516,7 @@ public class SSIServletExternalResolver String path = csAndP.getPath(); RequestDispatcher rd = context.getRequestDispatcher(path); if (rd == null) { - throw new IOException( - "Couldn't get request dispatcher for path: " + path); + throw new IOException(sm.getString("ssiServletExternalResolver.requestDispatcherError", path)); } ByteArrayServletOutputStream basos = new ByteArrayServletOutputStream(); ResponseIncludeWrapper responseIncludeWrapper = new ResponseIncludeWrapper(res, basos); @@ -543,12 +539,11 @@ public class SSIServletExternalResolver // if a truly empty file //were included, but not sure how else to tell. if (retVal.equals("") && !req.getMethod().equalsIgnoreCase("HEAD")) { - throw new IOException("Couldn't find file: " + path); + throw new IOException(sm.getString("ssiServletExternalResolver.noFile", path)); } return retVal; } catch (ServletException e) { - throw new IOException("Couldn't include file: " + originalPath - + " because of ServletException: " + e.getMessage()); + throw new IOException(sm.getString("ssiServletExternalResolver.noIncludeFile", originalPath), e); } } Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSISet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSISet.java?rev=1848582&r1=1848581&r2=1848582&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ssi/SSISet.java (original) +++ tomcat/trunk/java/org/apache/catalina/ssi/SSISet.java Mon Dec 10 14:36:26 2018 @@ -18,6 +18,8 @@ package org.apache.catalina.ssi; import java.io.PrintWriter; + +import org.apache.tomcat.util.res.StringManager; /** * Implements the Server-side #set command * @@ -26,6 +28,7 @@ import java.io.PrintWriter; * @author David Becker */ public class SSISet implements SSICommand { + private static final StringManager sm = StringManager.getManager(SSISet.class); /** * @see SSICommand */ @@ -49,12 +52,12 @@ public class SSISet implements SSIComman substitutedValue); lastModified = System.currentTimeMillis(); } else { - ssiMediator.log("#set--no variable specified"); + ssiMediator.log(sm.getString("ssiSet.noVariable")); writer.write(errorMessage); throw new SSIStopProcessingException(); } } else { - ssiMediator.log("#set--Invalid attribute: " + paramName); + ssiMediator.log(sm.getString("ssiCommand.invalidAttribute", paramName)); writer.write(errorMessage); throw new SSIStopProcessingException(); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org