1. Sebastian Sdorra
  2. scm-manager

Commits

Sebastian Sdorra  committed 254b91c

use resource bundle for mercurial cgi error messages

  • Participants
  • Parent commits 7af0b4a
  • Branches issue-138

Comments (0)

Files changed (3)

File scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgCGIExceptionHandler.java

View file
  • Ignore whitespace
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import sonia.scm.i18n.Bundle;
 import sonia.scm.util.IOUtil;
 import sonia.scm.util.Util;
 import sonia.scm.web.cgi.CGIExceptionHandler;
 import java.io.OutputStream;
 import java.io.PrintWriter;
 
-import java.text.MessageFormat;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 {
 
   /** Field description */
+  public static final String BUNDLE_PATH = "sonia.scm.web.cgimessages";
+
+  /** Field description */
   public static final String CONTENT_TYPE_ERROR = "application/hg-error";
 
   /** TODO create a bundle for error messages */
-  public static final String ERROR_NOT_CONFIGURED =
-    "The mercurial installation on the scm-manager server seems to be not configured correctly. Please check the settings.";
+  public static final String ERROR_NOT_CONFIGURED = "error.notConfigured";
 
   /** Field description */
-  public static final String ERROR_STATUSCODE =
-    "Mercurial process ends with return code {0}";
+  public static final String ERROR_STATUSCODE = "error.statusCode";
 
   /** Field description */
-  public static final String ERROR_UNKNOWN =
-    "There is an unknown error occurred: '{0}'";
+  public static final String ERROR_UNEXPECTED = "error.unexpected";
 
   /**
    * the logger for HgCGIExceptionHandler
   private static final Logger logger =
     LoggerFactory.getLogger(HgCGIExceptionHandler.class);
 
+  //~--- constructors ---------------------------------------------------------
+
+  /**
+   * Constructs ...
+   *
+   */
+  public HgCGIExceptionHandler()
+  {
+    this.bundle = Bundle.getBundle(BUNDLE_PATH);
+  }
+
   //~--- methods --------------------------------------------------------------
 
   /**
       logger.error("not able to handle mercurial request", ex);
     }
 
-    sendError(response, createErrorMessage(ex));
+    sendError(response,
+              bundle.getString(ERROR_UNEXPECTED, Util.nonNull(ex.getMessage())));
   }
 
   /**
     {
       response.setContentType(CONTENT_TYPE_ERROR);
 
-      String msg = MessageFormat.format(ERROR_STATUSCODE, statusCode);
+      String msg = bundle.getLine(ERROR_STATUSCODE, statusCode);
 
       if (logger.isWarnEnabled())
       {
    * Method description
    *
    *
-   * @param ex
-   *
-   * @return
+   * @param response
+   * @param key
    */
-  private String createErrorMessage(Throwable ex)
+  public void sendFormattedError(HttpServletResponse response, String key)
   {
-    return MessageFormat.format(ERROR_UNKNOWN, Util.nonNull(ex.getMessage()));
+    sendError(response, bundle.getString(key));
   }
+
+  //~--- fields ---------------------------------------------------------------
+
+  /** Field description */
+  private Bundle bundle;
 }

File scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgCGIServlet.java

View file
  • Ignore whitespace
     }
     else if (!handler.isConfigured())
     {
-      exceptionHandler.sendError(response,
-                                 HgCGIExceptionHandler.ERROR_NOT_CONFIGURED);
+      exceptionHandler.sendFormattedError(response,
+              HgCGIExceptionHandler.ERROR_NOT_CONFIGURED);
     }
     else
     {

File scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/web/cgimessages.properties

View file
  • Ignore whitespace
+# Copyright (c) 2010, Sebastian Sdorra
+# All rights reserved.
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 
+# 1. Redistributions of source code must retain the above copyright notice,
+#    this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+#    this list of conditions and the following disclaimer in the documentation
+#    and/or other materials provided with the distribution.
+# 3. Neither the name of SCM-Manager; nor the names of its
+#    contributors may be used to endorse or promote products derived from this
+#    software without specific prior written permission.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 
+# http://bitbucket.org/sdorra/scm-manager
+# 
+
+error.notConfigured = The mercurial installation on the scm-manager server seems to be not configured correctly. Please check the settings.
+error.statusCode = Mercurial/Python process ends with return code {0}
+error.unexpected = There is an unexpected error occurred: {0}