You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2010/01/09 00:47:36 UTC
svn commit: r897350 - in /wicket/trunk:
wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/
wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/
wicket/src/main/java/org/apache/wicket/ wicket/src/m...
Author: knopp
Date: Fri Jan 8 23:47:33 2010
New Revision: 897350
URL: http://svn.apache.org/viewvc?rev=897350&view=rev
Log:
got some examples working
Added:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultiPartServletWebRequest.java (with props)
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java (with props)
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java (contents, props changed)
- copied, changed from r897015, wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
Modified:
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/MultipartRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/ContextPathGenerator.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/UrlRenderer.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ClassScanner.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestHandler.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/UrlUtils.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockComponent.java
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java Fri Jan 8 23:47:33 2010
@@ -45,6 +45,8 @@
{
super.init();
+ mountBookmarkablePage("/home", Home.class);
+
// TODO WNG
// getSharedResources().add("cancelButton", new DefaultButtonImageResource("Cancel"));
// log host name and server time in the browser's status bar
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/MultipartRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/MultipartRequest.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/MultipartRequest.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/MultipartRequest.java Fri Jan 8 23:47:33 2010
@@ -20,7 +20,7 @@
import org.apache.wicket.RequestCycle;
import org.apache.wicket.protocol.http.WebRequest;
-import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
+import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl;
import org.apache.wicket.util.lang.Bytes;
import org.apache.wicket.util.upload.FileUploadException;
@@ -29,7 +29,7 @@
*
* @author Igor Vaynberg (ivaynberg)
*/
-class MultipartRequest extends MultipartServletWebRequest
+class MultipartRequest extends MultipartServletWebRequestImpl
{
/**
* @param req
@@ -46,7 +46,7 @@
}
/**
- * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest#wantUploadProgressUpdates()
+ * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl#wantUploadProgressUpdates()
*/
@Override
protected boolean wantUploadProgressUpdates()
@@ -55,7 +55,7 @@
}
/**
- * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest#onUploadStarted(int)
+ * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl#onUploadStarted(int)
*/
@Override
protected void onUploadStarted(int totalBytes)
@@ -67,7 +67,7 @@
}
/**
- * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest#onUploadUpdate(int,
+ * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl#onUploadUpdate(int,
* int)
*/
@Override
@@ -86,7 +86,7 @@
}
/**
- * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest#onUploadCompleted()
+ * @see org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl#onUploadCompleted()
*/
@Override
protected void onUploadCompleted()
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Fri Jan 8 23:47:33 2010
@@ -52,8 +52,8 @@
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.request.handler.DefaultPageProvider;
import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
+import org.apache.wicket.ng.request.handler.impl.BookmarkablePageRequestHandler;
import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
-import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.protocol.http.WebRequest;
@@ -3198,8 +3198,8 @@
public final <C extends Page> CharSequence urlFor(final Class<C> pageClass,
final PageParameters parameters)
{
- IRequestHandler handler = new RenderPageRequestHandler(new DefaultPageProvider(pageClass,
- parameters));
+ IRequestHandler handler = new BookmarkablePageRequestHandler(new DefaultPageProvider(
+ pageClass, parameters));
return getRequestCycle().renderUrlFor(handler);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java Fri Jan 8 23:47:33 2010
@@ -101,4 +101,17 @@
};
}
+ /**
+ * Returns prefix from Wicket Filter mapping to context path. This method does not take the
+ * actual URL into account.
+ * <p>
+ * For example if Wicket filter is mapped to hello/* this method should return ../
+ *
+ * @return prefix to context path for this request.
+ *
+ */
+ public String getPrefixToContextPath()
+ {
+ return "";
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/ContextPathGenerator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/ContextPathGenerator.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/ContextPathGenerator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/ContextPathGenerator.java Fri Jan 8 23:47:33 2010
@@ -66,8 +66,7 @@
// get path
final String path = contextRelativePath.getObject();
- final String rewritten = UrlUtils.rewriteToContextRelative(path, RequestCycle.get()
- .getRequest());
+ final String rewritten = UrlUtils.rewriteToContextRelative(path, RequestCycle.get());
tag.put("src", rewritten);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java Fri Jan 8 23:47:33 2010
@@ -161,7 +161,7 @@
{
url = url.substring(1);
}
- url = UrlUtils.rewriteToContextRelative(url, RequestCycle.get().getRequest());
+ url = UrlUtils.rewriteToContextRelative(url, RequestCycle.get());
}
// if the tag is an anchor proper
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java Fri Jan 8 23:47:33 2010
@@ -20,7 +20,6 @@
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Request;
import org.apache.wicket.behavior.AbstractBehavior;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.markup.ComponentTag;
@@ -89,9 +88,8 @@
if ((attrValue != null) && (attrValue.startsWith("/") == false) &&
(attrValue.indexOf(":") < 0) && !(attrValue.startsWith("#")))
{
- Request request = RequestCycle.get().getRequest();
tag.getAttributes().put(attrName,
- UrlUtils.rewriteToContextRelative(attrValue, request));
+ UrlUtils.rewriteToContextRelative(attrValue, RequestCycle.get()));
}
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java Fri Jan 8 23:47:33 2010
@@ -170,15 +170,6 @@
/**
* Construct.
*
- * @param string
- */
- public Url(String string)
- {
- }
-
- /**
- * Construct.
- *
* @param url
* url being copied
*/
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java Fri Jan 8 23:47:33 2010
@@ -35,7 +35,7 @@
*
* @return Colon separated path to this component in the component hierarchy
*/
- public String getPath();
+ public String getPageRelativePath();
/**
* Gets the id of this component.
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/UrlRenderer.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/UrlRenderer.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/UrlRenderer.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/UrlRenderer.java Fri Jan 8 23:47:33 2010
@@ -19,8 +19,10 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.wicket.Request;
import org.apache.wicket.ng.request.Url;
import org.apache.wicket.util.lang.Checks;
+import org.apache.wicket.util.string.PrependingStringBuffer;
/**
* Takes care of rendering relative (or in future possibly absolute - depending on configuration)
@@ -124,4 +126,17 @@
return new Url(newSegments, url.getQueryParameters()).toString();
}
}
+
+ public String renderContextPathRelativeUrl(final String url, final Request request)
+ {
+ PrependingStringBuffer buffer = new PrependingStringBuffer(url);
+ for (int i = 0; i < baseUrl.getSegments().size() - 1; ++i)
+ {
+ buffer.prepend("../");
+ }
+
+ buffer.prepend(request.getPrefixToContextPath());
+
+ return buffer.toString();
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java Fri Jan 8 23:47:33 2010
@@ -124,6 +124,10 @@
{
setPageParameters(pageParameters);
}
+ else
+ {
+ setPageParameters(new PageParameters());
+ }
}
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java Fri Jan 8 23:47:33 2010
@@ -175,7 +175,7 @@
}
else
{
- return component.getPath();
+ return component.getPageRelativePath();
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java Fri Jan 8 23:47:33 2010
@@ -325,7 +325,7 @@
PageInfo pageInfo = new PageInfo(page);
ComponentInfo componentInfo = new ComponentInfo(page.getRenderCount(),
requestListenerInterfaceToString(handler.getListenerInterface()),
- handler.getComponent().getPath(), handler.getBehaviorIndex());
+ handler.getComponent().getPageRelativePath(), handler.getBehaviorIndex());
UrlInfo urlInfo = new UrlInfo(new PageComponentInfo(pageInfo, componentInfo),
page.getClass(), handler.getPageParameters());
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java Fri Jan 8 23:47:33 2010
@@ -114,7 +114,7 @@
{
ListenerInterfaceRequestHandler handler = (ListenerInterfaceRequestHandler)requestHandler;
IRequestablePage page = handler.getPage();
- String componentPath = handler.getComponent().getPath();
+ String componentPath = handler.getComponent().getPageRelativePath();
RequestListenerInterface listenerInterface = handler.getListenerInterface();
PageInfo pageInfo = new PageInfo(page);
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ClassScanner.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ClassScanner.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ClassScanner.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ClassScanner.java Fri Jan 8 23:47:33 2010
@@ -18,6 +18,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.HashSet;
import java.util.Set;
import org.slf4j.Logger;
@@ -25,7 +26,7 @@
abstract class ClassScanner
{
- private Set<String> scannedClasses;
+ private final Set<String> scannedClasses = new HashSet<String>();;
abstract void foundResourceReference(ResourceReference reference);
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultiPartServletWebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultiPartServletWebRequest.java?rev=897350&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultiPartServletWebRequest.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultiPartServletWebRequest.java Fri Jan 8 23:47:33 2010
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.protocol.http.servlet;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.wicket.ng.request.IRequestParameters;
+import org.apache.wicket.ng.request.Url;
+import org.apache.wicket.protocol.http.IMultipartWebRequest;
+import org.apache.wicket.util.upload.FileItem;
+
+/**
+ * Servlet specific WebRequest subclass for multipart content uploads.
+ *
+ * @author Matej Knopp
+ */
+public abstract class MultipartServletWebRequest extends ServletWebRequest
+ implements
+ IMultipartWebRequest
+{
+
+ /**
+ * Construct.
+ *
+ * @param httpServletRequest
+ * @param filterPrefix
+ */
+ public MultipartServletWebRequest(HttpServletRequest httpServletRequest, String filterPrefix)
+ {
+ super(httpServletRequest, filterPrefix);
+ }
+
+ /**
+ * Construct.
+ *
+ * @param httpServletRequest
+ * @param filterPrefix
+ * @param url
+ */
+ public MultipartServletWebRequest(HttpServletRequest httpServletRequest, String filterPrefix,
+ Url url)
+ {
+ super(httpServletRequest, filterPrefix, url);
+ }
+
+ @Override
+ public ServletWebRequest requestWithUrl(Url url)
+ {
+ return new MultipartServletWebRequest(getHttpServletRequest(), getFilterPrefix(), url)
+ {
+ public FileItem getFile(String fieldName)
+ {
+ return MultipartServletWebRequest.this.getFile(fieldName);
+ }
+
+ public Map<String, FileItem> getFiles()
+ {
+ return MultipartServletWebRequest.this.getFiles();
+ }
+
+ @Override
+ public IRequestParameters getPostRequestParameters()
+ {
+ return MultipartServletWebRequest.this.getPostRequestParameters();
+ }
+ };
+ }
+}
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultiPartServletWebRequest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java?rev=897350&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java Fri Jan 8 23:47:33 2010
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.protocol.http.servlet;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.wicket.ng.request.IRequestParameters;
+import org.apache.wicket.ng.request.Url;
+import org.apache.wicket.protocol.http.IMultipartWebRequest;
+import org.apache.wicket.util.upload.FileItem;
+
+/**
+ * Servlet specific WebRequest subclass for multipart content uploads.
+ *
+ * @author Matej Knopp
+ */
+public abstract class MultipartServletWebRequest extends ServletWebRequest
+ implements
+ IMultipartWebRequest
+{
+
+ /**
+ * Construct.
+ *
+ * @param httpServletRequest
+ * @param filterPrefix
+ */
+ public MultipartServletWebRequest(HttpServletRequest httpServletRequest, String filterPrefix)
+ {
+ super(httpServletRequest, filterPrefix);
+ }
+
+ /**
+ * Construct.
+ *
+ * @param httpServletRequest
+ * @param filterPrefix
+ * @param url
+ */
+ public MultipartServletWebRequest(HttpServletRequest httpServletRequest, String filterPrefix,
+ Url url)
+ {
+ super(httpServletRequest, filterPrefix, url);
+ }
+
+ @Override
+ public ServletWebRequest requestWithUrl(Url url)
+ {
+ return new MultipartServletWebRequest(getHttpServletRequest(), getFilterPrefix(), url)
+ {
+ public FileItem getFile(String fieldName)
+ {
+ return MultipartServletWebRequest.this.getFile(fieldName);
+ }
+
+ public Map<String, FileItem> getFiles()
+ {
+ return MultipartServletWebRequest.this.getFiles();
+ }
+
+ @Override
+ public IRequestParameters getPostRequestParameters()
+ {
+ return MultipartServletWebRequest.this.getPostRequestParameters();
+ }
+ };
+ }
+}
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java (from r897015, wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java&r1=897015&r2=897350&rev=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java Fri Jan 8 23:47:33 2010
@@ -28,7 +28,6 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.protocol.http.IMultipartWebRequest;
import org.apache.wicket.util.lang.Bytes;
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.upload.DiskFileItemFactory;
@@ -49,7 +48,7 @@
* @author Ate Douma
* @author Igor Vaynberg (ivaynberg)
*/
-public class MultipartServletWebRequest extends ServletWebRequest implements IMultipartWebRequest
+public class MultipartServletWebRequestImpl extends MultipartServletWebRequest
{
/** Map of file items. */
private final Map<String, FileItem> files = new HashMap<String, FileItem>();
@@ -76,11 +75,13 @@
* the maximum size allowed for this request
* @param request
* the servlet request
+ * @param filterPrefix
+ * prefix to wicket filter mapping
* @throws FileUploadException
* Thrown if something goes wrong with upload
*/
- public MultipartServletWebRequest(HttpServletRequest request, String filterPrefix, Bytes maxSize)
- throws FileUploadException
+ public MultipartServletWebRequestImpl(HttpServletRequest request, String filterPrefix,
+ Bytes maxSize) throws FileUploadException
{
this(request, filterPrefix, maxSize, new DiskFileItemFactory());
}
@@ -92,13 +93,15 @@
* the maximum size allowed for this request
* @param request
* the servlet request
+ * @param filterPrefix
+ * prefix to wicket filter mapping
* @param factory
* {@link DiskFileItemFactory} to use when creating file items used to represent
* uploaded files
* @throws FileUploadException
* Thrown if something goes wrong with upload
*/
- public MultipartServletWebRequest(HttpServletRequest request, String filterPrefix,
+ public MultipartServletWebRequestImpl(HttpServletRequest request, String filterPrefix,
Bytes maxSize, FileItemFactory factory) throws FileUploadException
{
super(request, filterPrefix);
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java Fri Jan 8 23:47:33 2010
@@ -37,6 +37,7 @@
import org.apache.wicket.util.io.Streams;
import org.apache.wicket.util.lang.Bytes;
import org.apache.wicket.util.lang.Checks;
+import org.apache.wicket.util.string.PrependingStringBuffer;
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.upload.FileItemFactory;
@@ -67,10 +68,28 @@
*/
public ServletWebRequest(HttpServletRequest httpServletRequest, String filterPrefix)
{
+ this(httpServletRequest, filterPrefix, null);
+ }
+
+ /**
+ * Construct.
+ *
+ * @param httpServletRequest
+ *
+ * @param filterPrefix
+ * contentPath + filterPath, used to extract the actual {@link Url}
+ *
+ * @param url
+ */
+ public ServletWebRequest(HttpServletRequest httpServletRequest, String filterPrefix, Url url)
+ {
Checks.argumentNotNull(httpServletRequest, "httpServletRequest");
Checks.argumentNotNull(filterPrefix, "filterPrefix");
- url = getUrl(httpServletRequest, filterPrefix);
+ if (url != null)
+ this.url = url;
+ else
+ this.url = getUrl(httpServletRequest, filterPrefix);
this.httpServletRequest = httpServletRequest;
this.filterPrefix = filterPrefix;
}
@@ -96,6 +115,11 @@
return Url.parse(Strings.stripJSessionId(url.toString()));
}
+ protected String getFilterPrefix()
+ {
+ return filterPrefix;
+ }
+
/**
* Returns the wrapped {@link HttpServletRequest} instance.
*
@@ -244,18 +268,59 @@
return new Url(url);
}
+ @Override
+ public ServletWebRequest requestWithUrl(Url url)
+ {
+ return new ServletWebRequest(httpServletRequest, filterPrefix, url)
+ {
+ @Override
+ public IRequestParameters getPostRequestParameters()
+ {
+ // don't parse post parameters again
+ return ServletWebRequest.this.getPostRequestParameters();
+ }
+ };
+ }
+
+ /**
+ * Creates multipart web request from this request.
+ *
+ * @param maxSize
+ * @return multipart request
+ * @throws FileUploadException
+ */
public MultipartServletWebRequest newMultipartWebRequest(Bytes maxSize)
throws FileUploadException
{
- return new MultipartServletWebRequest(getHttpServletRequest(), filterPrefix, maxSize);
+ return new MultipartServletWebRequestImpl(getHttpServletRequest(), filterPrefix, maxSize);
}
+ /**
+ * Creates multipart web request from this request.
+ *
+ * @param maxSize
+ * @param factory
+ * @return multipart request
+ * @throws FileUploadException
+ */
public MultipartServletWebRequest newMultipartWebRequest(Bytes maxSize, FileItemFactory factory)
throws FileUploadException
{
- return new MultipartServletWebRequest(getHttpServletRequest(), filterPrefix, maxSize,
+ return new MultipartServletWebRequestImpl(getHttpServletRequest(), filterPrefix, maxSize,
factory);
}
private static final Logger logger = LoggerFactory.getLogger(ServletWebRequest.class);
+
+ @Override
+ public String getPrefixToContextPath()
+ {
+ PrependingStringBuffer buffer = new PrependingStringBuffer();
+ Url filterPrefixUrl = Url.parse(filterPrefix);
+ for (int i = 0; i < filterPrefixUrl.getSegments().size() - 1; ++i)
+ {
+ buffer.prepend("../");
+ }
+ return buffer.toString();
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestHandler.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/RedirectRequestHandler.java Fri Jan 8 23:47:33 2010
@@ -85,7 +85,7 @@
else
{
String location = UrlUtils.rewriteToContextRelative(redirectUrl.substring(1),
- requestCycle.getRequest());
+ requestCycle);
// IE does not understand "./" in a path, just "." is okay.
if (location.startsWith("./"))
@@ -106,5 +106,4 @@
response.sendRedirect(redirectUrl);
}
}
-
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/UrlUtils.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/UrlUtils.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/UrlUtils.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/string/UrlUtils.java Fri Jan 8 23:47:33 2010
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.util.string;
-import org.apache.wicket.Request;
+import org.apache.wicket.ng.request.cycle.RequestCycle;
/**
* Various url utilities
@@ -56,18 +56,17 @@
* Rewrites a relative url to be context relative, leaves absolute urls same.
*
* @param url
- * @param request
+ * @param requestCycle
* @return rewritten url
*/
- public static String rewriteToContextRelative(String url, Request request)
+ public static String rewriteToContextRelative(String url, RequestCycle requestCycle)
{
if (isRelative(url))
{
// TODO: NG: This is pretty much a marker method; We dont have any means to do this now
- System.out.println("TODO: Implement UrlUtils # rewriteToContextRelative");
- // final String prefix = request.getRelativePathPrefixToContextRoot();
- // return prefix + url;
- return url;
+ System.out.println("TODO NG: Make sure this work properly");
+ return requestCycle.getUrlRenderer().renderContextPathRelativeUrl(url,
+ requestCycle.getRequest());
}
else
{
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockComponent.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockComponent.java?rev=897350&r1=897349&r2=897350&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockComponent.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockComponent.java Fri Jan 8 23:47:33 2010
@@ -38,24 +38,24 @@
private String id;
private IRequestablePage page;
private String path;
-
+
/**
* Construct.
*/
public MockComponent()
{
}
-
+
public IRequestableComponent get(String path)
{
MockComponent c = new MockComponent();
if (Strings.isEmpty(getPath()))
{
- c.setPath(path);
+ c.setPath(path);
}
else
{
- c.setPath(this.getPath() + ":" + path);
+ c.setPath(getPath() + ":" + path);
}
c.setPage(getPage());
c.setId(Strings.lastPathComponent(path, ':'));
@@ -90,7 +90,7 @@
this.markupId = markupId;
return this;
}
-
+
public String getMarkupId(boolean createIfDoesNotExist)
{
return markupId;
@@ -100,7 +100,7 @@
{
return page;
}
-
+
/**
* Sets the page instance
*
@@ -113,11 +113,11 @@
return this;
}
- public String getPath()
+ public String getPageRelativePath()
{
return path;
}
-
+
/**
* Sets the component path
*
@@ -133,14 +133,24 @@
public void detach()
{
}
-
+
public boolean canCallListenerInterface()
{
return true;
}
-
+
public List<IBehavior> getBehaviors()
{
return Collections.emptyList();
}
+
+ public boolean isEnabledInHierarchy()
+ {
+ return false;
+ }
+
+ public boolean isVisibleInHierarchy()
+ {
+ return false;
+ }
}