Add translations for fr and jp. Also, force UTF8 encoding on servlet responses,...
authorChris Jaekl <cejaekl@yahoo.com>
Mon, 5 Jan 2015 00:07:38 +0000 (19:07 -0500)
committerChris Jaekl <cejaekl@yahoo.com>
Mon, 5 Jan 2015 00:07:38 +0000 (19:07 -0500)
WEB-INF/classes/frank_fr.properties [new file with mode: 0644]
WEB-INF/classes/frank_jp.properties [new file with mode: 0644]
WEB-INF/web.xml
index.html
index_fr.html [new file with mode: 0644]
index_jp.html [new file with mode: 0644]
prod/net/jaekl/frank/ForceUtf8EncodingFilter.java [new file with mode: 0644]
test/net/jaekl/frank/FilterChainMock.java [new file with mode: 0644]
test/net/jaekl/frank/ForceUtf8EncodingFilterTest.java [new file with mode: 0644]
test/net/jaekl/frank/ServletRequestMock.java [new file with mode: 0644]
test/net/jaekl/frank/ServletResponseMock.java [new file with mode: 0644]

diff --git a/WEB-INF/classes/frank_fr.properties b/WEB-INF/classes/frank_fr.properties
new file mode 100644 (file)
index 0000000..8c34140
--- /dev/null
@@ -0,0 +1,22 @@
+answer.received=Réponse reçue:
+data.collected=Données reçues il y a <SPAN ID="elapsed">0m 0s</SPAN> à {0}.
+destination=Destination
+error.page=Page d'erreur
+eta=Prévue
+frank=Frank
+gps.off=Aucun signal GPS
+gps.read=Position GPS
+hide.details=Détails
+invalid.response=Frank a demandé des informations du serveur OC Transpo, mais a reçu une réponse non-valide.
+m=m
+maybe.server.problem=Cela peut indiquer un problème avec le serveur qui a été contacté, mais il est également possible que vous avez découvert un bogue dans Frank.
+remain=Dans
+request.made=Requête faite:
+return.to.main.page=Cliquez <A HREF="{0}">ici</A> pour revenir à la page principale.
+route=Route
+s=s
+server.timeout=Frank a demandé des informations du serveur d'OC Transpo, mais il n'a pas répondu en temps opportun. Le serveur d'OC Transpo probablement indisponible pour cet instant.  Il pourrait revenir bientôt en ligne; veuillez essayer de nouveau dans quelques minutes.
+show.details=Détails
+unexpected.error=Erreure inattendue
+unexpected.exception=Une exception inattendue a été rencontrée. Cela indique probablement un bogue dans Frank.
+url.contacted=URL contacté:
diff --git a/WEB-INF/classes/frank_jp.properties b/WEB-INF/classes/frank_jp.properties
new file mode 100644 (file)
index 0000000..5dda068
--- /dev/null
@@ -0,0 +1,22 @@
+answer.received=\u5FDC\u7B54\uFF1A
+data.collected=\u30C7\u30FC\u30BF\u3092{0}\u306B(<SPAN ID="elapsed">0\u52060\u79D2</SPAN>\u524D)\u96C6\u3081\u305F\u3002
+destination=\u76EE\u7684\u5730
+error.page=\u30A8\u30E9\u30FC\u30DA\u30FC\u30B8
+eta=\u5230\u7740\u4E88\u5B9A
+frank=\u30D5\u30E9\u30F3\u30AF
+gps.off=GPS\u306A\u3057
+gps.read=GPS
+hide.details=\u8A73\u7D30\u3092\u96A0\u3059
+invalid.response=\u30D5\u30E9\u30F3\u30AF\u306F\u3001OC\u30C4\u30E9\u30F3\u30B9\u30DD\u30FC\u306E\u30B5\u30FC\u30D0\u304B\u3089\u4E88\u671F\u305B\u306C\u56DE\u7B54\u3092\u3082\u3089\u3044\u307E\u3057\u305F\u3002
+m=\u5206
+maybe.server.problem=\u3072\u3087\u3063\u3068\u3059\u308B\u3068OC\u30C4\u30E9\u30F3\u30B9\u30DD\u30FC\u306E\u30B5\u30FC\u30D0\u306E\u554F\u984C\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u306A\u3044\u3057\u3001\u30D5\u30E9\u30F3\u30AF\u306E\u554F\u984C\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u306A\u3044\u3002
+remain=\u6B8B\u308A\u6642\u9593
+request.made=\u8981\u6C42\u304C\u884C\u308F\uFF1A
+return.to.main.page=\u30E1\u30A4\u30F3\u30DA\u30FC\u30B8\u306B\u623B\u308B\u306B\u306F\u3001<A HREF="{0}">\u3053\u3053</A>\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u4E0B\u3055\u3044\u3002
+route=\u30EB\u30FC\u30C8
+s=\u79D2
+server.timeout=\u30D5\u30E9\u30F3\u30AF\u306FOC\u30C4\u30E9\u30F3\u30B9\u30DD\u30FC\u306E\u30B5\u30FC\u30D0\u304B\u3089\u5FDC\u7B54\u3092\u3082\u3089\u3044\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u3042\u306E\u30B5\u30FC\u30D0\u306F\u3059\u3050\u306B\u3088\u304F\u306A\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002\u3042\u3068\uFF15\u5206\u3001\u518D\u8A66\u884C\u3057\u3066\u4E0B\u3055\u3044\u3002
+show.details=\u8A73\u7D30\u3092\u8868\u793A
+unexpected.error=\u4E88\u671F\u3057\u306A\u3044\u30A8\u30E9\u30FC
+unexpected.exception=\u4E88\u671F\u3057\u306A\u3044\u4F8B\u5916\u3002\u3053\u308C\u306F\u304A\u305D\u3089\u304F\u3001\u30D5\u30E9\u30F3\u30AF\u306E\u30D0\u30B0\u3092\u793A\u3057\u3066\u3044\u308B\u3002
+url.contacted=URL\uFF1A
index a6d2aef5f9b007e27fb466dda2fab009e809fc5c..e07bdc1b10bc10964bf7ba7b8c4e1b76e3f49b26 100644 (file)
            <servlet-name>ViewSchedule</servlet-name>
            <url-pattern>/ViewSchedule</url-pattern>
          </servlet-mapping>
+
+         <filter-mapping>
+           <filter-name>ForceUtf8Encoding</filter-name>
+           <url-pattern>/*</url-pattern>
+         </filter-mapping>
+
+         <filter>
+           <filter-name>ForceUtf8Encoding</filter-name>
+           <filter-class>net.jaekl.frank.ForceUtf8EncodingFilter</filter-class>
+         </filter>
         
 <!--
          <welcome-file-list>
index c110dd304469debf982ee6c937bbbc51bd2fa2a4..e372d36d4f57da84d1635b2df11b58161ca3f93d 100644 (file)
@@ -1,11 +1,21 @@
 <HTML>
   <HEAD>
+    <META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8"/>
     <TITLE>Frank Welcome Page</TITLE>
+    <STYLE>
+      body {background-color: #F0F0C0; font-size: 1em; }
+      #heading {border-collapse: collapse; font-size: 1.5em; }
+      #heading td, #heading th {border: 1px solid #600000; padding: 3px 3px 3px 3px; text-align: center;}
+      #heading th {background-color: #800000; color: #FFFFFF; }
+      #heading tr.ghost td {background-color: #C0C0C0;}
+    </STYLE>
   </HEAD>
+
   <BODY>
-    <H1>Welcome to Frank</H1>
-    <H2>Choose a preselected stop:</H2>
+    <TABLE ID="heading"><TR><TH>Welcome to Frank</TH></TR></TABLE>
+
     <P>
+      <B>Choose a preselected stop:</B><BR/>
       <A HREF="/ViewSchedule?stop=2438&route=">Bronson at Sunnyside, NB</A><BR/>
       <A HREF="/ViewSchedule?stop=6781&route=">Bronson at Sunnyside, SB</A><BR/>
       <A HREF="/ViewSchedule?stop=6683&route=">Sunnyside at Seneca, EB</A><BR/>
       <A HREF="/ViewSchedule?stop=6625&route=">Bronson at Somerset NB</A><BR/>
       <A HREF="/ViewSchedule?stop=5690&route=">Bronson at Somerset SB</A><BR/>
     </P>
-    <H2>Or, enter your stop number:</H2>
     <P>
+      <B>Or, enter your stop number:</B><BR/>
       <FORM NAME="EnterStopNo" ACTION="/ViewSchedule" METHOD="get">
         <INPUT TYPE="text" NAME="stop"/>
         <INPUT TYPE="submit" VALUE="Submit"/>
       </FORM>
     </P>
+    <P>
+      English <A HREF="index_fr.html">Français</A> <A HREF="index_jp.html">日本語</A>
+    </P>
   </BODY>
 </HTML>
diff --git a/index_fr.html b/index_fr.html
new file mode 100644 (file)
index 0000000..0832a6c
--- /dev/null
@@ -0,0 +1,47 @@
+<HTML>
+  <HEAD>
+    <META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8"/>
+    <TITLE>Frank:  Page d'acceuil</TITLE>
+    <STYLE>
+      body {background-color: #F0F0C0; font-size: 1em; }
+      #heading {border-collapse: collapse; font-size: 1.5em; }
+      #heading td, #heading th {border: 1px solid #600000; padding: 3px 3px 3px 3px; text-align: center;}
+      #heading th {background-color: #800000; color: #FFFFFF; }
+      #heading tr.ghost td {background-color: #C0C0C0;}
+    </STYLE>
+  </HEAD>
+
+  <BODY>
+    <TABLE ID="heading"><TR><TH>Bienvenue chez Frank</TH></TR></TABLE>
+
+    <P>
+      <B>Choisissez un des arrêts suivants:</B><BR/>
+      <A HREF="/ViewSchedule?stop=2438&lang=fr&route=">Bronson et Sunnyside, vers le nord</A><BR/>
+      <A HREF="/ViewSchedule?stop=6781&lang=fr&route=">Bronson et Sunnyside, vers le sud</A><BR/>
+      <A HREF="/ViewSchedule?stop=6683&lang=fr&route=">Sunnyside et Seneca, vers l'est</A><BR/>
+      <A HREF="/ViewSchedule?stop=7655&lang=fr&route=">Bank et Sunnyside, vers le nord</A><BR/>
+      <A HREF="/ViewSchedule?stop=6778&lang=fr&route=">Bank et Hopewell, vers le sud</A><BR/>
+      <A HREF="/ViewSchedule?stop=7649&lang=fr&route=">Riverdale et Sunnyside, vers le nord</A><BR/>
+      <A HREF="/ViewSchedule?stop=3034&lang=fr&route=">Station Billings Bridge (Toutes directions)</A><BR/>
+      <A HREF="/ViewSchedule?stop=6612&lang=fr&route=">Université Carleton (Toutes directions)</A><BR/>
+      <A HREF="/ViewSchedule?stop=3009&lang=fr&route=">Centre Rideau (Toutes directions)</A><BR/>
+    </P>
+    <P>
+      <A HREF="/ViewSchedule?stop=6668&lang=fr&route=">Somerset et LeBreton, vers l'est </A><BR/>
+      <A HREF="/ViewSchedule?stop=2363&lang=fr&route=">Somerset et Bronson, vers l'est</A><BR/>
+      <A HREF="/ViewSchedule?stop=6625&lang=fr&route=">Bronson et Somerset, vers le nord</A><BR/>
+      <A HREF="/ViewSchedule?stop=5690&lang=fr&route=">Bronson et Somerset, vers le sud</A><BR/>
+    </P>
+    <P>
+      <B>Ou, entrez le numéro de votre arrêt:</B><BR/>
+      <FORM NAME="EnterStopNo" ACTION="/ViewSchedule" METHOD="get">
+        <INPUT TYPE="text" NAME="stop"/>
+       <INPUT TYPE="hidden" NAME="lang" VALUE="fr"/>
+        <INPUT TYPE="submit" VALUE="soumettre"/>
+      </FORM>
+    </P>
+    <P>
+      <A HREF="index.html">English</A> Français <A HREF="index_jp.html">日本語</A>
+    </P>
+  </BODY>
+</HTML>
diff --git a/index_jp.html b/index_jp.html
new file mode 100644 (file)
index 0000000..5cf9813
--- /dev/null
@@ -0,0 +1,47 @@
+<HTML>
+  <HEAD>
+    <META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8"/>
+    <TITLE>フランクへようこそ</TITLE>
+    <STYLE>
+      body {background-color: #F0F0C0; font-size: 1em; }
+      #heading {border-collapse: collapse; font-size: 1.5em; }
+      #heading td, #heading th {border: 1px solid #600000; padding: 3px 3px 3px 3px; text-align: center;}
+      #heading th {background-color: #800000; color: #FFFFFF; }
+      #heading tr.ghost td {background-color: #C0C0C0;}
+    </STYLE>
+  </HEAD>
+
+  <BODY>
+    <TABLE ID="heading"><TR><TH>フランクへようこそ</TH></TR></TABLE>
+
+    <P>
+      <B>リストからストップを選択して下さい:</B><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=2438&route=">BronsonとSunnyside, 北行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=6781&route=">BronsonとSunnyside, 南行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=6683&route=">SunnysideとSeneca, 東行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=7655&route=">BankとSunnyside, 北行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=6778&route=">BankとHopewell, 南行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=7649&route=">RiverdaleとSunnyside, 北行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=3034&route=">Billings橋駅 (全方向)</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=6612&route=">Carleton大学 (全方向)</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=3009&route=">Rideauセンター(全方向)</A><BR/>
+    </P>
+    <P>
+      <A HREF="/ViewSchedule?lang=jp&stop=6668&route=">SomersetとLeBreton, 東行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=2363&route=">SomersetとBronson, 東行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=6625&route=">BronsonとSomerset, 北行き</A><BR/>
+      <A HREF="/ViewSchedule?lang=jp&stop=5690&route=">BronsonとSomerset, 南行き</A><BR/>
+    </P>
+    <P>
+      <B>または、ストップの番号を入力して下さい:</B><BR/>
+      <FORM NAME="EnterStopNo" ACTION="/ViewSchedule" METHOD="get">
+        <INPUT TYPE="text" NAME="stop"/>
+       <INPUT TYPE="hidden" NAME="lang" VALUE="jp"/>
+        <INPUT TYPE="submit" VALUE="出す"/>
+      </FORM>
+    </P>
+    <P>
+      <A HREF="index.html">English</A> <A HREF="index_fr.html">Français</A> 日本語
+    </P>
+  </BODY>
+</HTML>
diff --git a/prod/net/jaekl/frank/ForceUtf8EncodingFilter.java b/prod/net/jaekl/frank/ForceUtf8EncodingFilter.java
new file mode 100644 (file)
index 0000000..634a98b
--- /dev/null
@@ -0,0 +1,28 @@
+package net.jaekl.frank;
+
+import java.io.IOException;
+
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+public class ForceUtf8EncodingFilter implements javax.servlet.Filter {
+       public static final String UTF_8 = "UTF-8";
+       @Override
+       public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+               response.setCharacterEncoding(UTF_8);
+               chain.doFilter(request, response);
+       }
+
+       @Override
+       public void init(FilterConfig arg0) throws ServletException {
+               // no-op
+       }
+
+       @Override
+       public void destroy() {
+               // no-op
+       }
+}
\ No newline at end of file
diff --git a/test/net/jaekl/frank/FilterChainMock.java b/test/net/jaekl/frank/FilterChainMock.java
new file mode 100644 (file)
index 0000000..11332fd
--- /dev/null
@@ -0,0 +1,37 @@
+package net.jaekl.frank;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+public class FilterChainMock implements FilterChain {
+       ArrayList<ServletRequest> m_filteredRequests;
+       ArrayList<ServletResponse> m_filteredResponses;
+       
+       public FilterChainMock() {
+               m_filteredRequests = new ArrayList<ServletRequest>();
+               m_filteredResponses = new ArrayList<ServletResponse>();
+       }
+
+       @Override
+       public void doFilter(ServletRequest arg0, ServletResponse arg1)
+                       throws IOException, ServletException 
+       {
+               m_filteredRequests.add(arg0);
+               m_filteredResponses.add(arg1);
+       }
+       
+       public ServletRequest[] mock_getRequests()
+       {
+               return m_filteredRequests.toArray(new ServletRequest[0]);
+       }
+       
+       public ServletResponse[] mock_getResponses() 
+       {
+               return m_filteredResponses.toArray(new ServletResponse[0]);
+       }
+}
diff --git a/test/net/jaekl/frank/ForceUtf8EncodingFilterTest.java b/test/net/jaekl/frank/ForceUtf8EncodingFilterTest.java
new file mode 100644 (file)
index 0000000..602b35f
--- /dev/null
@@ -0,0 +1,36 @@
+package net.jaekl.frank;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+public class ForceUtf8EncodingFilterTest {
+
+       @Test
+       public void testDoFilter() throws IOException, ServletException {
+               ForceUtf8EncodingFilter filter = new ForceUtf8EncodingFilter();
+               
+               ServletRequestMock request = new ServletRequestMock();
+               ServletResponseMock response = new ServletResponseMock();
+               FilterChainMock chain = new FilterChainMock();
+               
+               filter.doFilter(request, response, chain);
+               
+               Assert.assertEquals(ForceUtf8EncodingFilter.UTF_8, response.getCharacterEncoding());
+               
+               ServletRequest[] filteredRequests = chain.mock_getRequests();
+               Assert.assertEquals(1, filteredRequests.length);
+               Assert.assertEquals(request, filteredRequests[0]);
+               
+               ServletResponse[] filteredResponses = chain.mock_getResponses();
+               Assert.assertEquals(1, filteredResponses.length);
+               Assert.assertEquals(response, filteredResponses[0]);
+       }
+
+}
diff --git a/test/net/jaekl/frank/ServletRequestMock.java b/test/net/jaekl/frank/ServletRequestMock.java
new file mode 100644 (file)
index 0000000..5458d8a
--- /dev/null
@@ -0,0 +1,195 @@
+package net.jaekl.frank;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+
+public class ServletRequestMock implements ServletRequest {
+       String m_encodingName;
+       
+       public ServletRequestMock() {
+               m_encodingName = null;
+       }
+
+       @Override
+       public Object getAttribute(String arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public Enumeration<?> getAttributeNames() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getCharacterEncoding() {
+               return m_encodingName;
+       }
+
+       @Override
+       public int getContentLength() {
+               // TODO Auto-generated method stub
+               return 0;
+       }
+
+       @Override
+       public String getContentType() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public ServletInputStream getInputStream() throws IOException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getLocalAddr() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getLocalName() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public int getLocalPort() {
+               // TODO Auto-generated method stub
+               return 0;
+       }
+
+       @Override
+       public Locale getLocale() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public Enumeration<?> getLocales() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getParameter(String arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public Map<?, ?> getParameterMap() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public Enumeration<?> getParameterNames() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String[] getParameterValues(String arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getProtocol() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public BufferedReader getReader() throws IOException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Deprecated 
+       @Override
+       public String getRealPath(String arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getRemoteAddr() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getRemoteHost() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public int getRemotePort() {
+               // TODO Auto-generated method stub
+               return 0;
+       }
+
+       @Override
+       public RequestDispatcher getRequestDispatcher(String arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getScheme() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public String getServerName() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public int getServerPort() {
+               // TODO Auto-generated method stub
+               return 0;
+       }
+
+       @Override
+       public boolean isSecure() {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
+       @Override
+       public void removeAttribute(String arg0) {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void setAttribute(String arg0, Object arg1) {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void setCharacterEncoding(String arg0)
+                       throws UnsupportedEncodingException {
+               m_encodingName = arg0;
+       }
+
+}
diff --git a/test/net/jaekl/frank/ServletResponseMock.java b/test/net/jaekl/frank/ServletResponseMock.java
new file mode 100644 (file)
index 0000000..9d330c2
--- /dev/null
@@ -0,0 +1,105 @@
+package net.jaekl.frank;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Locale;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.ServletResponse;
+
+public class ServletResponseMock implements ServletResponse {
+       String m_encodingName;
+       
+       public ServletResponseMock() {
+               m_encodingName = null; 
+       }
+
+       @Override
+       public void flushBuffer() throws IOException {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public int getBufferSize() {
+               // TODO Auto-generated method stub
+               return 0;
+       }
+
+       @Override
+       public String getCharacterEncoding() {
+               return m_encodingName;
+       }
+
+       @Override
+       public String getContentType() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public Locale getLocale() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public ServletOutputStream getOutputStream() throws IOException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public PrintWriter getWriter() throws IOException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public boolean isCommitted() {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
+       @Override
+       public void reset() {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void resetBuffer() {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void setBufferSize(int arg0) {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void setCharacterEncoding(String arg0) {
+               m_encodingName = arg0;
+       }
+
+       @Override
+       public void setContentLength(int arg0) {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void setContentType(String arg0) {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void setLocale(Locale arg0) {
+               // TODO Auto-generated method stub
+
+       }
+
+}