Author: jonl
Date: Thu Apr 12 21:27:24 2007
New Revision: 528350
URL: http://svn.apache.org/viewvc?view=rev&rev=528350
Log:
Moved call to session factory to Session.get(), removed session setting on
PageMaps, moved session factory to Application and removed
getDefaultSessionFactory.
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IPageMap.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IRequestCycleFactory.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
incubator/wicket/branches/wicket-1.x/jdk-1.5/wicket-examples/src/test/java/org/apache/wicket/examples/panels/signin/CookieTest.java
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java
Thu Apr 12 21:27:24 2007
@@ -124,12 +124,10 @@
*
* @param name
* The name of this page map
- * @param session
- * The session holding this page map
*/
- public AccessStackPageMap(final String name, final Session session)
+ public AccessStackPageMap(final String name)
{
- super(name, session);
+ super(name);
}
/**
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
Thu Apr 12 21:27:24 2007
@@ -536,6 +536,11 @@
}
/**
+ * @return Request cycle factory for this kind of session.
+ */
+ protected abstract IRequestCycleFactory getRequestCycleFactory();
+
+ /**
* Gets the [EMAIL PROTECTED] RequestLogger}.
*
* @return The RequestLogger
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IPageMap.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IPageMap.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IPageMap.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IPageMap.java
Thu Apr 12 21:27:24 2007
@@ -72,11 +72,6 @@
String getName();
/**
- * @return The session that this PageMap is in.
- */
- Session getSession();
-
- /**
* @return Size of this page map in bytes, including a sum of the sizes
of
* all the pages it contains.
*/
@@ -143,11 +138,4 @@
* The entry to remove
*/
void removeEntry(final IPageMapEntry entry);
-
- /**
- * @param session
- * Session to set
- */
- void setSession(final Session session);
-
}
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IRequestCycleFactory.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IRequestCycleFactory.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IRequestCycleFactory.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IRequestCycleFactory.java
Thu Apr 12 21:27:24 2007
@@ -19,22 +19,22 @@
/**
* Factory for creating request cycles for a session.
- *
+ *
* @author Jonathan Locke
*/
public interface IRequestCycleFactory extends IClusterable
{
/**
* Creates a new RequestCycle object.
- *
- * @param session
- * The session
+ *
+ * @param application
+ * The application
* @param request
* The request
* @param response
* The response
* @return The cycle
*/
- RequestCycle newRequestCycle(final Session session, final Request
request,
+ RequestCycle newRequestCycle(final Application application, final
Request request,
final Response response);
}
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
Thu Apr 12 21:27:24 2007
@@ -24,8 +24,8 @@
import org.apache.wicket.session.pagemap.IPageMapEntry;
import org.apache.wicket.util.lang.Objects;
-
/**
+ * @author Jonathan Locke
* @author jcompagner
*/
public abstract class PageMap implements IClusterable, IPageMap
@@ -74,10 +74,6 @@
/** Next available page identifier in this page map. */
private int pageId = 0;
- /** The session where this PageMap resides */
- private transient Session session;
-
-
/**
* Constructor
*
@@ -86,17 +82,11 @@
* @param session
* The session holding this page map
*/
- public PageMap(String name, Session session)
+ public PageMap(String name)
{
this.name = name;
- if (session == null)
- {
- throw new IllegalArgumentException("session must be not
null");
- }
- this.session = session;
}
-
/**
* @see org.apache.wicket.IPageMap#attributeForId(int)
*/
@@ -157,7 +147,7 @@
*/
public final IPageMapEntry getEntry(final int id)
{
- return (IPageMapEntry)session.getAttribute(attributeForId(id));
+ return
(IPageMapEntry)Session.get().getAttribute(attributeForId(id));
}
/**
@@ -169,11 +159,11 @@
}
/**
- * @see org.apache.wicket.IPageMap#getSession()
+ * @return Session this page map is in
*/
public final Session getSession()
{
- return session;
+ return Session.get();
}
/**
@@ -293,7 +283,7 @@
clear();
// Then remove the pagemap itself
- session.removePageMap(this);
+ Session.get().removePageMap(this);
}
/**
@@ -311,14 +301,6 @@
public abstract void removeEntry(final IPageMapEntry entry);
/**
- * @see org.apache.wicket.IPageMap#setSession(org.apache.wicket.Session)
- */
- public final void setSession(final Session session)
- {
- this.session = session;
- }
-
- /**
* @see java.lang.Object#toString()
*/
public String toString()
@@ -326,12 +308,12 @@
return "[PageMap name=" + name + "]";
}
-
/**
* @return List of entries in this page map
*/
private final List getEntries()
{
+ final Session session = Session.get();
final List attributes = session.getAttributeNames();
final List list = new ArrayList();
for (final Iterator iterator = attributes.iterator();
iterator.hasNext();)
@@ -347,7 +329,7 @@
protected final void dirty()
{
- session.dirtyPageMap(this);
+ Session.get().dirtyPageMap(this);
}
/**
@@ -356,6 +338,7 @@
*/
protected final void visitEntries(final IVisitor visitor)
{
+ final Session session = Session.get();
final List attributes = session.getAttributeNames();
for (final Iterator iterator = attributes.iterator();
iterator.hasNext();)
{
@@ -366,7 +349,6 @@
}
}
}
-
/**
* @return The attribute prefix for this page map
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
Thu Apr 12 21:27:24 2007
@@ -259,7 +259,6 @@
/** The processor for this request. */
protected final IRequestCycleProcessor processor;
-
/** The current request. */
protected Request request;
@@ -267,23 +266,23 @@
protected Response response;
/** The session object. */
- protected final Session session;
+ protected Session session;
/**
* Constructor. This instance will be set as the current one for this
* thread.
*
- * @param session
- * The session
+ * @param application
+ * The application
* @param request
* The request
* @param response
* The response
*/
- protected RequestCycle(final Session session, final Request request,
final Response response)
+ protected RequestCycle(final Application application, final Request
request,
+ final Response response)
{
- this.application = session.getApplication();
- this.session = session;
+ this.application = application;
this.request = request;
this.response = response;
this.originalResponse = response;
@@ -293,7 +292,6 @@
current.set(this);
}
-
/**
* Gets the application object.
*
@@ -415,12 +413,24 @@
}
/**
+ * @return True if a session exists for the calling thread
+ */
+ private boolean sessionExists()
+ {
+ return Session.exists();
+ }
+
+ /**
* Gets the session.
*
* @return Session object
*/
public final Session getSession()
{
+ if (session == null)
+ {
+ session = Session.get();
+ }
return session;
}
@@ -723,10 +733,10 @@
}
else
{
-
page.setPageStateless(Boolean.FALSE);
+
// make session non-volatile if not already so
- Session session = Session.get();
+ final Session session = getSession();
if (session.isTemporary())
{
session.bind();
@@ -791,7 +801,7 @@
public final CharSequence urlFor(final Page page)
{
IRequestTarget target = new PageRequestTarget(page);
- Session.get().touch(((IPageRequestTarget)target).getPage());
+ getSession().touch(((IPageRequestTarget)target).getPage());
return urlFor(target);
}
@@ -872,7 +882,10 @@
// the session
try
{
- session.cleanupFeedbackMessages();
+ if (sessionExists())
+ {
+ getSession().cleanupFeedbackMessages();
+ }
}
catch (RuntimeException re)
{
@@ -881,13 +894,16 @@
}
// At the end of our response, let the session do some book
keeping
- try
+ if (sessionExists())
{
- session.update();
- }
- catch (RuntimeException re)
- {
- log.error("there was an error updating the session " +
session + ".", re);
+ try
+ {
+ getSession().update();
+ }
+ catch (RuntimeException re)
+ {
+ log.error("there was an error updating the
session " + session + ".", re);
+ }
}
try
@@ -904,14 +920,17 @@
}
// clear the used pagemap for this thread,
- try
- {
- session.requestDetached();
- }
- catch (RuntimeException re)
+ if (sessionExists())
{
- log.error("there was an error detaching the request
from the session " + session + ".",
- re);
+ try
+ {
+ getSession().requestDetached();
+ }
+ catch (RuntimeException re)
+ {
+ log.error("there was an error detaching the
request from the session " + session
+ + ".", re);
+ }
}
if (getResponse() instanceof BufferedWebResponse)
@@ -953,9 +972,6 @@
*/
private void prepare()
{
- // Prepare session for request
- session.init();
-
// Event callback
onBeginRequest();
}
@@ -1153,7 +1169,10 @@
private final void threadDetach()
{
// Detach from session
- session.detach();
+ if (sessionExists())
+ {
+ getSession().detach();
+ }
if (getRedirect())
{
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
Thu Apr 12 21:27:24 2007
@@ -235,11 +235,13 @@
*/
public static Session get()
{
- final Session session = (Session)current.get();
+ Session session = (Session)current.get();
if (session == null)
{
- throw new WicketRuntimeException("there is no session
attached to current thread "
- + Thread.currentThread().getName());
+ final RequestCycle cycle = RequestCycle.get();
+ session =
Application.get().getSessionFactory().newSession(cycle.getRequest(),
+ cycle.getResponse());
+ set(session);
}
return session;
}
@@ -397,8 +399,7 @@
*/
public void cleanupFeedbackMessages()
{
-
- // if session scoped, rendered messages got indeed cleaned up,
mark the
+ // If session scoped, rendered messages got indeed cleaned up,
mark the
// session as dirty
if (feedbackMessages.clear(RENDERED_SESSION_SCOPED_MESSAGES) >
0)
{
@@ -753,25 +754,6 @@
}
/**
- * Set the session for each PageMap
- */
- public final void init()
- {
- // Set session on each page map
- visitPageMaps(new IPageMapVisitor()
- {
- public void pageMap(IPageMap pageMap)
- {
- if (log.isDebugEnabled())
- {
- log.debug("updateSession(): Attaching
session to PageMap " + pageMap);
- }
- pageMap.setSession(Session.this);
- }
- });
- }
-
- /**
* Invalidates this session.
*/
public void invalidate()
@@ -810,30 +792,13 @@
}
// Create new page map
- final IPageMap pageMap = getSessionStore().createPageMap(name,
this);
+ final IPageMap pageMap = getSessionStore().createPageMap(name);
setAttribute(attributeForPageMapName(name), pageMap);
dirty();
return pageMap;
}
/**
- * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
- *
- * Creates a new RequestCycle for the given request and response using
the
- * session's request cycle factory.
- *
- * @param request
- * The request
- * @param response
- * The response
- * @return The new request cycle.
- */
- public final RequestCycle newRequestCycle(final Request request, final
Response response)
- {
- return getRequestCycleFactory().newRequestCycle(this, request,
response);
- }
-
- /**
* Gets a page map for the given name, automatically creating it if
need be.
*
* @param pageMapName
@@ -1088,11 +1053,6 @@
}
return Collections.EMPTY_LIST;
}
-
- /**
- * @return Request cycle factory for this kind of session.
- */
- protected abstract IRequestCycleFactory getRequestCycleFactory();
/**
* Gets the session store.
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
Thu Apr 12 21:27:24 2007
@@ -49,14 +49,12 @@
}
/**
- * @see
org.apache.wicket.session.ISessionStore#createPageMap(java.lang.String,
- * org.apache.wicket.Session)
+ * @see
org.apache.wicket.session.ISessionStore#createPageMap(java.lang.String)
*/
- public IPageMap createPageMap(String name, Session session)
+ public IPageMap createPageMap(String name)
{
- return new AccessStackPageMap(name, session);
+ return new AccessStackPageMap(name);
}
-
/**
* @see
org.apache.wicket.session.ISessionStore#getAttribute(org.apache.wicket.Request,
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
Thu Apr 12 21:27:24 2007
@@ -201,13 +201,15 @@
this.context);
this.servletResponse = new MockHttpServletResponse();
- // Construct request, response and session using factories
+ // Get request cycle factory
+ this.requestCycleFactory =
this.application.getRequestCycleFactory();
+
+ // Construct request and response using factories
this.wicketRequest =
this.application.newWebRequest(this.servletRequest);
this.wicketResponse =
this.application.newWebResponse(this.servletResponse);
- this.wicketSession =
this.application.getSession(this.wicketRequest, this.wicketResponse);
- // Get request cycle factory
- this.requestCycleFactory =
this.wicketSession.getRequestCycleFactory();
+ // Create request cycle
+ createRequestCycle();
// Set the default context path
this.application.getApplicationSettings().setContextPath(context.getServletContextName());
@@ -227,8 +229,6 @@
// watcher still runs, taking up file handles and memory,
leading
// to "Too many files opened" or a regular OutOfMemoryException
this.application.getResourceSettings().setResourcePollFrequency(null);
-
- createRequestCycle();
}
/**
@@ -421,7 +421,6 @@
servletSession,
this.application.getServletContext());
newHttpRequest.setRequestToRedirectString(httpResponse.getRedirectLocation());
wicketRequest =
this.application.newWebRequest(newHttpRequest);
- wicketSession =
this.application.getSession(wicketRequest, wicketResponse);
cycle = createRequestCycle();
cycle.request();
@@ -443,8 +442,8 @@
*/
private Page generateLastRenderedPage(WebRequestCycle cycle)
{
- Page lastRenderedPage = cycle.getResponsePage();
- if (lastRenderedPage == null)
+ Page newLastRenderedPage = cycle.getResponsePage();
+ if (newLastRenderedPage == null)
{
Class responseClass = cycle.getResponsePageClass();
if (responseClass != null)
@@ -453,7 +452,7 @@
IRequestTarget target =
cycle.getRequestTarget();
if (target instanceof IPageRequestTarget)
{
- lastRenderedPage =
((IPageRequestTarget)target).getPage();
+ newLastRenderedPage =
((IPageRequestTarget)target).getPage();
}
else if (target instanceof
IBookmarkablePageRequestTarget)
{
@@ -464,22 +463,23 @@
PageParameters parameters =
pageClassRequestTarget.getPageParameters();
if (parameters == null ||
parameters.size() == 0)
{
- lastRenderedPage = new
DefaultPageFactory().newPage(pageClass);
+ newLastRenderedPage = new
DefaultPageFactory().newPage(pageClass);
}
else
{
- lastRenderedPage = new
DefaultPageFactory().newPage(pageClass, parameters);
+ newLastRenderedPage = new
DefaultPageFactory().newPage(pageClass,
+ parameters);
}
}
}
}
- if (lastRenderedPage == null)
+ if (newLastRenderedPage == null)
{
- lastRenderedPage = this.lastRenderedPage;
+ newLastRenderedPage = this.lastRenderedPage;
}
- return lastRenderedPage;
+ return newLastRenderedPage;
}
/**
@@ -492,7 +492,10 @@
{
// Create a web request cycle using factory
final WebRequestCycle cycle =
(WebRequestCycle)requestCycleFactory.newRequestCycle(
- wicketSession, wicketRequest, wicketResponse);
+ application, wicketRequest, wicketResponse);
+
+ // Construct session
+ this.wicketSession =
this.application.getSession(this.wicketRequest, this.wicketResponse);
// Set request cycle so it won't detach automatically and clear
messages
// we want to check
@@ -513,6 +516,7 @@
parametersForNextRequest.clear();
this.wicketRequest =
this.application.newWebRequest(servletRequest);
this.wicketResponse =
this.application.newWebResponse(servletResponse);
+ createRequestCycle();
this.wicketSession = this.application.getSession(wicketRequest,
wicketResponse);
this.application.getSessionStore().bind(wicketRequest,
wicketSession);
wicketResponse.setAjax(wicketRequest.isAjax());
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java
Thu Apr 12 21:27:24 2007
@@ -24,7 +24,6 @@
import org.apache.wicket.Page;
import org.apache.wicket.PageMap;
import org.apache.wicket.Request;
-import org.apache.wicket.Session;
import org.apache.wicket.session.pagemap.IPageMapEntry;
import org.apache.wicket.version.IPageVersionManager;
import org.apache.wicket.version.undo.Change;
@@ -112,11 +111,10 @@
* Construct.
*
* @param name
- * @param session
*/
- private SecondLevelCachePageMap(String name, Session session)
+ private SecondLevelCachePageMap(String name)
{
- super(name, session);
+ super(name);
}
public Page get(int id, int versionNumber)
@@ -413,9 +411,9 @@
* @see
org.apache.wicket.protocol.http.HttpSessionStore#createPageMap(java.lang.String,
* org.apache.wicket.Session)
*/
- public IPageMap createPageMap(String name, Session session)
+ public IPageMap createPageMap(String name)
{
- return new SecondLevelCachePageMap(name, session);
+ return new SecondLevelCachePageMap(name);
}
/**
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
Thu Apr 12 21:27:24 2007
@@ -377,7 +377,8 @@
}
/**
- * @see
org.apache.wicket.ISessionFactory#newSession(org.apache.wicket.Request,
org.apache.wicket.Response)
+ * @see
org.apache.wicket.ISessionFactory#newSession(org.apache.wicket.Request,
+ * org.apache.wicket.Response)
*/
public Session newSession(Request request, Response response)
{
@@ -455,6 +456,26 @@
}
/**
+ * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
+ *
+ * Creates a new RequestCycle for the given request and response using
the
+ * session's request cycle factory.
+ *
+ * @param application
+ * The application
+ * @param request
+ * The request
+ * @param response
+ * The response
+ * @return The new request cycle.
+ */
+ public final RequestCycle newRequestCycle(final Application
application, final Request request,
+ final Response response)
+ {
+ return getRequestCycleFactory().newRequestCycle(application,
request, response);
+ }
+
+ /**
* Create a request cycle factory which is used by default by
WebSession.
* You may provide your own default factory by subclassing
WebApplication
* and overriding this method or your may subclass WebSession to create
a
@@ -465,16 +486,17 @@
*
* @return Request cycle factory
*/
- protected IRequestCycleFactory getDefaultRequestCycleFactory()
+ protected IRequestCycleFactory getRequestCycleFactory()
{
return new IRequestCycleFactory()
{
private static final long serialVersionUID = 1L;
- public RequestCycle newRequestCycle(Session session,
Request request, Response response)
+ public RequestCycle newRequestCycle(final Application
application,
+ final Request request, final Response
response)
{
// Respond to request
- return new WebRequestCycle((WebSession)session,
(WebRequest)request,
+ return new
WebRequestCycle((WebApplication)application, (WebRequest)request,
(WebResponse)response);
}
};
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
Thu Apr 12 21:27:24 2007
@@ -32,7 +32,6 @@
import org.apache.wicket.request.IRequestCycleProcessor;
import org.apache.wicket.settings.IRequestCycleSettings;
-
/**
* RequestCycle implementation for HTTP protocol. Holds the application,
* session, request and response objects for a given HTTP request. Contains
@@ -61,17 +60,17 @@
* Constructor which simply passes arguments to superclass for storage
* there. This instance will be set as the current one for this thread.
*
- * @param session
- * The session
+ * @param application
+ * The applicaiton
* @param request
* The request
* @param response
* The response
*/
- public WebRequestCycle(final WebSession session, final WebRequest
request,
+ public WebRequestCycle(final WebApplication application, final
WebRequest request,
final Response response)
{
- super(session, request, response);
+ super(application, request, response);
}
/**
@@ -195,10 +194,10 @@
setResponse(currentResponse);
if (ex instanceof AbortException)
throw ex;
-
+
if (!(ex instanceof PageExpiredException))
logRuntimeException(ex);
-
+
IRequestCycleProcessor processor =
getProcessor();
processor.respond(ex, this);
return;
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java
Thu Apr 12 21:27:24 2007
@@ -17,7 +17,6 @@
package org.apache.wicket.protocol.http;
import org.apache.wicket.Application;
-import org.apache.wicket.IRequestCycleFactory;
import org.apache.wicket.Request;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Session;
@@ -33,9 +32,6 @@
// private static final Log log = LogFactory.getLog(WebSession.class);
private static final long serialVersionUID = 1L;
- /** The request cycle factory for the session */
- private transient IRequestCycleFactory requestCycleFactory;
-
/** True, if session has been invalidated */
private transient boolean sessionInvalidated = false;
@@ -133,20 +129,6 @@
{
invalidateNow();
}
- }
-
- /**
- * @see org.apache.wicket.Session#getRequestCycleFactory()
- */
- protected IRequestCycleFactory getRequestCycleFactory()
- {
- if (requestCycleFactory == null)
- {
- this.requestCycleFactory =
((WebApplication)getApplication())
- .getDefaultRequestCycleFactory();
- }
-
- return this.requestCycleFactory;
}
/**
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
Thu Apr 12 21:27:24 2007
@@ -159,12 +159,13 @@
final HttpServletResponse servletResponse) throws
ServletException, IOException
{
String relativePath = getRelativePath(servletRequest);
+
// Special-case for home page - we redirect to add a trailing
slash.
if (relativePath.length() == 0
&&
!Strings.stripJSessionId(servletRequest.getRequestURI()).endsWith("/"))
{
- String foo = servletRequest.getRequestURI() + "/";
- servletResponse.sendRedirect(foo);
+ final String redirectUrl =
servletRequest.getRequestURI() + "/";
+ servletResponse.sendRedirect(redirectUrl);
return;
}
@@ -236,12 +237,12 @@
response.setCharacterEncoding(webApplication.getRequestCycleSettings()
.getResponseRequestEncoding());
- // Get session for request
- final WebSession session =
webApplication.getSession(request, response);
-
try
{
- RequestCycle cycle =
session.newRequestCycle(request, response);
+ // Create request cycle
+ RequestCycle cycle =
webApplication.newRequestCycle(webApplication, request,
+ response);
+
try
{
// Process request
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
Thu Apr 12 21:27:24 2007
@@ -111,8 +111,7 @@
public void respond(RuntimeException e, RequestCycle requestCycle)
{
// If application doesn't want debug info showing up for users
- final Session session = requestCycle.getSession();
- final Application application = session.getApplication();
+ final Application application = Application.get();
final IExceptionSettings settings =
application.getExceptionSettings();
final Page responsePage = requestCycle.getResponsePage();
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java
Thu Apr 12 21:27:24 2007
@@ -28,8 +28,8 @@
/**
- * The actual store that is used by [EMAIL PROTECTED]
org.apache.wicket.Session} to store its
- * attributes.
+ * The actual store that is used by [EMAIL PROTECTED]
org.apache.wicket.Session} to store
+ * its attributes.
*
* @author Eelco Hillenius
* @author Johan Compagner
@@ -154,13 +154,13 @@
/**
* @param name
- * @param session
- * @return The pagemap instances for the session
+ * @return The pagemap instance
*/
- IPageMap createPageMap(String name, Session session);
+ IPageMap createPageMap(String name);
/**
- * @param page The page for which this version manager must be created
+ * @param page
+ * The page for which this version manager must be created
* @return A instance of a IPageVersionManager that the page will use.
*/
IPageVersionManager newVersionManager(Page page);
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
Thu Apr 12 21:27:24 2007
@@ -64,38 +64,40 @@
{
final List data = new ArrayList();
- page.visitChildren(new IVisitor()
+ if (page != null)
{
- public Object component(final Component component)
+ page.visitChildren(new IVisitor()
{
- final ComponentData object = new
ComponentData();
-
- // anonymous class? Get the parent's class name
- String name = component.getClass().getName();
- if (name.indexOf("$") > 0)
+ public Object component(final Component
component)
{
- name =
component.getClass().getSuperclass().getName();
- }
+ final ComponentData object = new
ComponentData();
- // remove the path component
- name = Strings.lastPathComponent(name,
Component.PATH_SEPARATOR);
+ // anonymous class? Get the parent's
class name
+ String name =
component.getClass().getName();
+ if (name.indexOf("$") > 0)
+ {
+ name =
component.getClass().getSuperclass().getName();
+ }
- object.path = component.getPageRelativePath();
- object.type = name;
- try
- {
- object.value =
component.getModelObjectAsString();
- }
- catch (Exception e)
- {
- object.value = e.getMessage();
- }
+ // remove the path component
+ name = Strings.lastPathComponent(name,
Component.PATH_SEPARATOR);
- data.add(object);
- return IVisitor.CONTINUE_TRAVERSAL;
- }
- });
+ object.path =
component.getPageRelativePath();
+ object.type = name;
+ try
+ {
+ object.value =
component.getModelObjectAsString();
+ }
+ catch (Exception e)
+ {
+ object.value = e.getMessage();
+ }
+ data.add(object);
+ return IVisitor.CONTINUE_TRAVERSAL;
+ }
+ });
+ }
return data;
}
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
Thu Apr 12 21:27:24 2007
@@ -32,12 +32,12 @@
/**
* Test cases for the <code>StringResourceModel</code> class.
+ *
* @author Chris Turner
*/
public class StringResourceModelTest extends TestCase
{
-
- private WicketTester application;
+ private WicketTester tester;
private WebPage page;
@@ -47,7 +47,9 @@
/**
* Create the test case.
- * @param name The test name
+ *
+ * @param name
+ * The test name
*/
public StringResourceModelTest(String name)
{
@@ -56,21 +58,22 @@
protected void setUp() throws Exception
{
- application = new WicketTester();
-
application.getApplication().getResourceSettings().addStringResourceLoader(
+ tester = new WicketTester();
+
tester.getApplication().getResourceSettings().addStringResourceLoader(
new
BundleStringResourceLoader("org.apache.wicket.model.StringResourceModelTest"));
page = new MockPage();
ws = new WeatherStation();
wsModel = new Model(ws);
}
+
protected void tearDown() throws Exception
{
- application.destroy();
+ tester.destroy();
}
/**
- *
- *
+ *
+ *
*/
public void testGetSimpleResource()
{
@@ -81,8 +84,8 @@
}
/**
- *
- *
+ *
+ *
*/
public void testNullResourceKey()
{
@@ -98,8 +101,8 @@
}
/**
- *
- *
+ *
+ *
*/
public void testGetSimpleResourceWithKeySubstitution()
{
@@ -113,8 +116,8 @@
}
/**
- *
- *
+ *
+ *
*/
public void testGetPropertySubstitutedResource()
{
@@ -127,8 +130,8 @@
}
/**
- *
- *
+ *
+ *
*/
public void testSubstitutionParametersResource()
{
@@ -138,22 +141,22 @@
"The report for {0,date,medium}, shows the
temparature as {2,number,###.##} {3} and the weather to be {1}",
page.getLocale());
StringResourceModel model = new
StringResourceModel("weather.detail", page, wsModel,
- new Object[] {cal.getTime(), "${currentStatus}",
+ new Object[] { cal.getTime(),
"${currentStatus}",
new PropertyModel(wsModel,
"currentTemperature"),
- new PropertyModel(wsModel,
"units")});
- String expected = format.format(new Object[] {cal.getTime(),
"sunny", new Double(25.7),
- "\u00B0C"});
+ new PropertyModel(wsModel,
"units") });
+ String expected = format.format(new Object[] { cal.getTime(),
"sunny", new Double(25.7),
+ "\u00B0C" });
Assert.assertEquals("Text should be as expected", expected,
model.getString());
ws.setCurrentStatus("raining");
ws.setCurrentTemperature(11.568);
- expected = format.format(new Object[] {cal.getTime(),
"raining", new Double(11.568),
- "\u00B0C"});
+ expected = format.format(new Object[] { cal.getTime(),
"raining", new Double(11.568),
+ "\u00B0C" });
Assert.assertEquals("Text should be as expected", expected,
model.getString());
}
/**
- *
- *
+ *
+ *
*/
public void testUninitialisedLocalizer()
{
@@ -170,7 +173,7 @@
}
/**
- *
+ *
*/
public void testSetObject()
{
@@ -196,9 +199,9 @@
public void testDetachAttachNormalModel() throws Exception
{
StringResourceModel model = new
StringResourceModel("simple.text", page, wsModel);
- application.setupRequestAndResponse();
- RequestCycle cycle = new
WebRequestCycle(application.getWicketSession(),
- application.getWicketRequest(),
application.getWicketResponse());
+ tester.setupRequestAndResponse();
+ RequestCycle cycle = new
WebRequestCycle(tester.getApplication(),
+ tester.getWicketRequest(),
tester.getWicketResponse());
model.getObject();
Assert.assertNotNull(model.getLocalizer());
model.detach();
@@ -224,9 +227,9 @@
};
StringResourceModel model = new
StringResourceModel("simple.text", page, wsDetachModel);
- application.setupRequestAndResponse();
- RequestCycle cycle = new
WebRequestCycle(application.getWicketSession(),
- application.getWicketRequest(),
application.getWicketResponse());
+ tester.setupRequestAndResponse();
+ RequestCycle cycle = new
WebRequestCycle(tester.getApplication(),
+ tester.getWicketRequest(),
tester.getWicketResponse());
model.getObject();
Assert.assertNotNull(model.getLocalizer());
model.detach();
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.5/wicket-examples/src/test/java/org/apache/wicket/examples/panels/signin/CookieTest.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.5/wicket-examples/src/test/java/org/apache/wicket/examples/panels/signin/CookieTest.java?view=diff&rev=528350&r1=528349&r2=528350
==============================================================================
---
incubator/wicket/branches/wicket-1.x/jdk-1.5/wicket-examples/src/test/java/org/apache/wicket/examples/panels/signin/CookieTest.java
(original)
+++
incubator/wicket/branches/wicket-1.x/jdk-1.5/wicket-examples/src/test/java/org/apache/wicket/examples/panels/signin/CookieTest.java
Thu Apr 12 21:27:24 2007
@@ -39,7 +39,6 @@
import org.apache.wicket.util.tester.WicketTester;
-
/**
* Test cases for Cookie handling
*
@@ -49,7 +48,7 @@
{
private static final Log log = LogFactory.getLog(CookieTest.class);
- private WicketTester application;
+ private WicketTester tester;
private SignInPanel panel;
private Form form;
private Cookie cookieUsername;
@@ -73,10 +72,10 @@
{
super.setUp();
- application = new WicketTester(MockPage.class);
- application.setupRequestAndResponse();
+ tester = new WicketTester(MockPage.class);
+ tester.setupRequestAndResponse();
- final ISecuritySettings settings =
application.getApplication().getSecuritySettings();
+ final ISecuritySettings settings =
tester.getApplication().getSecuritySettings();
settings.setCryptFactory(new NoCryptFactory());
this.panel = new SignInPanel("panel")
@@ -90,23 +89,24 @@
this.panel.setPersistent(true);
this.form = (Form)panel.get("signInForm");
- final ICrypt crypt =
application.getApplication().getSecuritySettings().getCryptFactory().newCrypt();
+ final ICrypt crypt =
tester.getApplication().getSecuritySettings().getCryptFactory()
+ .newCrypt();
final String encryptedPassword = crypt.encryptUrlSafe("test");
assertNotNull(encryptedPassword);
this.cookieUsername = new Cookie("panel:signInForm:username",
"juergen");
this.cookiePassword = new Cookie("panel:signInForm:password",
encryptedPassword);
this.cookies = new Cookie[] { cookieUsername, cookiePassword };
- application.getServletRequest().setCookies(cookies);
+ tester.getServletRequest().setCookies(cookies);
- cycle = new WebRequestCycle(application.getWicketSession(),
application.getWicketRequest(),
- application.getWicketResponse());
+ cycle = new WebRequestCycle(tester.getApplication(),
tester.getWicketRequest(), tester
+ .getWicketResponse());
this.page = new MockPage(null);
page.add(this.panel);
- WebRequestCycle cycle = new
WebRequestCycle(application.getWicketSession(), application
- .getWicketRequest(),
application.getWicketResponse());
+ WebRequestCycle cycle = new
WebRequestCycle(tester.getApplication(), tester
+ .getWicketRequest(),
tester.getWicketResponse());
}
/**
@@ -144,7 +144,7 @@
this.form.onFormSubmitted();
// validate
- Collection cookies =
application.getServletResponse().getCookies();
+ Collection cookies = tester.getServletResponse().getCookies();
Iterator iter = cookies.iterator();
while (iter.hasNext())
{
@@ -165,7 +165,7 @@
this.form.onFormSubmitted();
// validate
- Collection cookies =
application.getServletResponse().getCookies();
+ Collection cookies = tester.getServletResponse().getCookies();
Assert.assertEquals(2, cookies.size());
Iterator iter = cookies.iterator();
while (iter.hasNext())
@@ -194,7 +194,7 @@
page.removePersistedFormData(SignInPanel.SignInForm.class,
true);
// validate
- Collection cookieCollection =
application.getServletResponse().getCookies();
+ Collection cookieCollection =
tester.getServletResponse().getCookies();
// Cookies are remove by setting maxAge == 0
Assert.assertEquals(2, cookieCollection.size());
@@ -203,13 +203,13 @@
final Cookie cookiePassword = new
Cookie("panel:signInForm:password", "test");
final Cookie[] cookies = new Cookie[] { cookieUsername,
cookiePassword };
- application.getServletRequest().setCookies(cookies);
+ tester.getServletRequest().setCookies(cookies);
// test
page.removePersistedFormData(SignInPanel.SignInForm.class,
true);
// validate
- cookieCollection =
application.getServletResponse().getCookies();
+ cookieCollection = tester.getServletResponse().getCookies();
Assert.assertEquals(4, cookieCollection.size());
Iterator iter = cookieCollection.iterator();
while (iter.hasNext())