small refactor move parsePageFromURL( HttpServletRequest, Charset ) from DefaultURLConstructor to URLConstructor
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java
index a2dcdaa..d401dd4 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java
@@ -21,7 +21,6 @@
import net.sf.ehcache.CacheManager;
import org.apache.log4j.Logger;
import org.apache.wiki.api.core.Engine;
-import org.apache.wiki.url.DefaultURLConstructor;
import org.apache.wiki.url.URLConstructor;
import javax.servlet.RequestDispatcher;
@@ -83,7 +82,7 @@
*/
@Override
public void doGet( final HttpServletRequest req, final HttpServletResponse res ) throws IOException, ServletException {
- String pageName = DefaultURLConstructor.parsePageFromURL( req, m_engine.getContentEncoding() );
+ String pageName = URLConstructor.parsePageFromURL( req, m_engine.getContentEncoding() );
log.info( "Request for page: " + pageName );
if( pageName == null ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java
index 3924000..a3f9139 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java
@@ -26,7 +26,7 @@
import org.apache.wiki.api.core.Engine;
import org.apache.wiki.event.WikiEventManager;
import org.apache.wiki.event.WikiPageEvent;
-import org.apache.wiki.url.DefaultURLConstructor;
+import org.apache.wiki.url.URLConstructor;
import org.apache.wiki.util.TextUtil;
import javax.servlet.FilterChain;
@@ -94,15 +94,13 @@
final HttpServletResponseWrapper responseWrapper = new JSPWikiServletResponseWrapper( ( HttpServletResponse )response, m_wiki_encoding, useEncoding );
// fire PAGE_REQUESTED event
- final String pagename = DefaultURLConstructor.parsePageFromURL( ( HttpServletRequest )request,
- Charset.forName( response.getCharacterEncoding() ) );
+ final String pagename = URLConstructor.parsePageFromURL( ( HttpServletRequest )request, Charset.forName( response.getCharacterEncoding() ) );
fireEvent( WikiPageEvent.PAGE_REQUESTED, pagename );
super.doFilter( request, responseWrapper, chain );
// The response is now complete. Lets replace the markers now.
- // WikiContext is only available after doFilter! (That is after
- // interpreting the jsp)
+ // WikiContext is only available after doFilter! (That is after interpreting the jsp)
try {
w.enterState( "Delivering response", 30 );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java b/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java
index f127c06..370b6c4 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java
@@ -40,16 +40,15 @@
protected Engine m_engine;
- /**
- * Contains the absolute path of the JSPWiki Web application without the actual servlet (which is the m_urlPrefix).
- */
+ /** Contains the absolute path of the JSPWiki Web application without the actual servlet (which is the m_urlPrefix). */
protected String m_pathPrefix = "";
/**
*
* {@inheritDoc}
*/
- @Override public void initialize( final Engine engine, final Properties properties ) {
+ @Override
+ public void initialize( final Engine engine, final Properties properties ) {
m_engine = engine;
m_pathPrefix = engine.getBaseURL() + "/";
}
@@ -125,7 +124,8 @@
*
* {@inheritDoc}
*/
- @Override public String makeURL( final String context, final String name, String parameters ) {
+ @Override
+ public String makeURL( final String context, final String name, String parameters ) {
if( parameters != null && parameters.length() > 0 ) {
if( context.equals( WikiContext.ATTACH ) ) {
parameters = "?" + parameters;
@@ -145,47 +145,24 @@
*
* {@inheritDoc}
*/
- @Override public String parsePage( final String context, final HttpServletRequest request, final Charset encoding ) {
+ @Override
+ public String parsePage( final String context, final HttpServletRequest request, final Charset encoding ) {
String pagereq = request.getParameter( "page" );
if( context.equals(WikiContext.ATTACH) ) {
- pagereq = parsePageFromURL( request, encoding );
+ pagereq = URLConstructor.parsePageFromURL( request, encoding );
}
return pagereq;
}
/**
- * Takes the name of the page from the request URI. The initial slash is also removed. If there is no page, returns null.
- *
- * @param request The request to parse
- * @param encoding The encoding to use
- *
- * @return a parsed page name, or null, if it cannot be found
- */
- public static String parsePageFromURL( final HttpServletRequest request, final Charset encoding ) {
- final String name = request.getPathInfo();
- if( name == null || name.length() <= 1 ) {
- return null;
- } else if( name.charAt(0) == '/' ) {
- return name.substring(1);
- }
-
- //
- // This is required, because by default all URLs are handled as Latin1, even if they are really UTF-8.
- //
- // name = TextUtil.urlDecode( name, encoding );
-
- return name;
- }
-
-
- /**
* This method is not needed for the DefaultURLConstructor.
*
* @param request The HTTP Request that was used to end up in this page.
* @return "Wiki.jsp", "PageInfo.jsp", etc. Just return the name, JSPWiki will figure out the page.
*/
- @Override public String getForwardPage( final HttpServletRequest request ) {
+ @Override
+ public String getForwardPage( final HttpServletRequest request ) {
return "Wiki.jsp";
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/url/ShortURLConstructor.java b/jspwiki-main/src/main/java/org/apache/wiki/url/ShortURLConstructor.java
index 69530db..b94a7bf 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/url/ShortURLConstructor.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/url/ShortURLConstructor.java
@@ -144,7 +144,7 @@
public String parsePage( final String context, final HttpServletRequest request, final Charset encoding ) {
final String pagereq = request.getParameter( "page" );
if( pagereq == null ) {
- return parsePageFromURL( request, encoding );
+ return URLConstructor.parsePageFromURL( request, encoding );
}
return pagereq;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java b/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java
index a0ac40f..862e275 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java
@@ -77,4 +77,26 @@
*/
String getForwardPage( HttpServletRequest request );
+ /**
+ * Takes the name of the page from the request URI. The initial slash is also removed. If there is no page, returns null.
+ *
+ * @param request The request to parse
+ * @param encoding The encoding to use
+ *
+ * @return a parsed page name, or null, if it cannot be found
+ */
+ static String parsePageFromURL( final HttpServletRequest request, final Charset encoding ) {
+ final String name = request.getPathInfo();
+ if( name == null || name.length() <= 1 ) {
+ return null;
+ } else if( name.charAt(0) == '/' ) {
+ return name.substring(1);
+ }
+
+ // This is required, because by default all URLs are handled as Latin1, even if they are really UTF-8.
+ // name = TextUtil.urlDecode( name, encoding );
+
+ return name;
+ }
+
}