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 2009/04/11 15:43:14 UTC
svn commit: r764201 - in /wicket/sandbox/knopp/experimental:
wicket-ng-webapp/src/main/java/org/apache/wicket/ngwebapp/
wicket-ng/src/main/java/org/apache/wicket/
wicket-ng/src/main/java/org/apache/wicket/protocol/http/
wicket-ng/src/main/java/org/apac...
Author: knopp
Date: Sat Apr 11 13:43:12 2009
New Revision: 764201
URL: http://svn.apache.org/viewvc?rev=764201&view=rev
Log:
clean up
Modified:
wicket/sandbox/knopp/experimental/wicket-ng-webapp/src/main/java/org/apache/wicket/ngwebapp/NGApplication.java
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/ThreadContext.java
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java
Modified: wicket/sandbox/knopp/experimental/wicket-ng-webapp/src/main/java/org/apache/wicket/ngwebapp/NGApplication.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng-webapp/src/main/java/org/apache/wicket/ngwebapp/NGApplication.java?rev=764201&r1=764200&r2=764201&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng-webapp/src/main/java/org/apache/wicket/ngwebapp/NGApplication.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng-webapp/src/main/java/org/apache/wicket/ngwebapp/NGApplication.java Sat Apr 11 13:43:12 2009
@@ -20,11 +20,12 @@
mount(new MountedEncoder("first-test-page", TestPage1.class));
mount(new MountedEncoder("third-test-page", TestPage3.class));
+ // load the interface
RequestListenerInterface i = ILinkListener.INTERFACE;
}
@Override
- public Class<? extends IPage> getHomePageClass()
+ public Class<? extends IPage> getHomePage()
{
return TestPage1.class;
}
Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java?rev=764201&r1=764200&r2=764201&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java Sat Apr 11 13:43:12 2009
@@ -13,10 +13,16 @@
import org.apache.wicket.page.persistent.PageStore;
import org.apache.wicket.page.persistent.PersistentPageManager;
import org.apache.wicket.page.persistent.disk.DiskDataStore;
+import org.apache.wicket.request.RequestHandler;
+import org.apache.wicket.request.RequestHandlerEncoder;
+import org.apache.wicket.request.RequestHandlerEncoderRegistry;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.encoder.EncoderContext;
import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
import org.apache.wicket.request.handler.impl.render.RenderPageRequestHandlerDelegate;
import org.apache.wicket.request.request.Request;
import org.apache.wicket.request.response.Response;
+import org.apache.wicket.resource.ResourceReferenceRegistry;
import org.apache.wicket.session.HttpSessionStore;
import org.apache.wicket.session.SessionStore;
import org.apache.wicket.session.SessionStore.UnboundListener;
@@ -24,6 +30,11 @@
import org.apache.wicket.settings.RequestCycleSettings;
import org.apache.wicket.util.lang.Check;
+/**
+ * Generic application that is environment (servlet, portlet, test) agnostic.
+ *
+ * @author Matej Knopp
+ */
public abstract class Application implements UnboundListener
{
private String name;
@@ -32,20 +43,44 @@
{
}
- public void internalInit()
+ protected void internalInit()
{
this.sessionStore = newSessionStore();
this.sessionStore.registerUnboundListener(this);
this.pageManager = newPageManager();
this.pageManager.setContext(getPageManagerContext());
+ this.requestHandlerEncoderRegistry = newRequestHandlerEncoderRegistry();
+ this.resourceReferenceRegistry = newResourceReferenceRegistry();
+ this.pageFactory = newPageFactory();
+ registerDefaultEncoders();
+ }
+
+ protected void init()
+ {
+
}
- public void init()
+ /**
+ * Initialize the application
+ */
+ public final void initApplication()
{
-
+ if (name == null)
+ {
+ throw new IllegalStateException("setName must be called before initApplication");
+ }
+ internalInit();
+ init();
}
- public void setName(String name)
+ /**
+ * Sets application name. This method must be called before any other methods are invoked and
+ * can only be called once per application instance.
+ *
+ * @param name
+ * unique application name
+ */
+ public final void setName(String name)
{
Check.argumentNotEmpty(name, "name");
@@ -54,27 +89,60 @@
throw new IllegalStateException("Application name can only be set once.");
}
+ if (applications.get(name) != null)
+ {
+ throw new IllegalStateException("Application with name '" + name + "' already exists.'");
+ }
+
this.name = name;
applications.put(name, this);
}
+ /**
+ * Returns the name unique for this application.
+ *
+ * @return
+ */
public String getName()
{
return name;
}
+ /**
+ * Destroys the application.
+ */
public void destroy()
{
- pageManager.destroy();
- sessionStore.destroy();
- applications.remove(name);
+ try
+ {
+ pageManager.destroy();
+ sessionStore.destroy();
+ }
+ finally
+ {
+ applications.remove(name);
+ }
}
+ /**
+ * Returns application with given name or <code>null</code> if such application is not
+ * registered.
+ *
+ * @param name
+ * @return
+ */
public static Application get(String name)
{
return applications.get(name);
}
+ /**
+ * Returns application attached to current thread.
+ *
+ * @return
+ * @throws WicketRuntimeException
+ * no application is attached to current thread
+ */
public static Application get()
{
Application application = ThreadContext.getApplication();
@@ -86,16 +154,35 @@
return application;
}
+ /**
+ * Returns whether there is application attached to current thread.
+ *
+ * @return
+ */
public static boolean exists()
{
return ThreadContext.getApplication() != null;
}
+ /**
+ * Assign this application to current thread. This method should never be called by framework
+ * clients.
+ */
public void set()
{
ThreadContext.setApplication(this);
}
+ private static Map<String, Application> applications = new ConcurrentHashMap<String, Application>();
+
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ // Settings
+ //
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
// TODO - Do properly
private RequestCycleSettings settings = new RequestCycleSettings()
{
@@ -149,9 +236,52 @@
return applicationSettings;
}
- // // Request cycle
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ // Request Cycle
+ //
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ protected RequestCycleContext newRequestCycleContext(Request request, Response response)
+ {
+ return new RequestCycleContext()
+ {
+ public RequestHandler decodeRequestHandler(Request request)
+ {
+ return getRequestHandlerEncoderRegistry().decode(request);
+ }
+
+ public Url encodeRequestHandler(RequestHandler handler)
+ {
+ return getRequestHandlerEncoderRegistry().encode(handler);
+ }
+
+ public RequestHandler getRequestHandlerForException(Exception e)
+ {
+ return Application.this.getRequestHandlerForException(e);
+ }
+ };
+ }
+
+ protected RequestHandler getRequestHandlerForException(Exception e)
+ {
+ // TODO: Implement
+ return null;
+ }
- protected abstract RequestCycle newRequestCycle(Request request, Response response);
+ /**
+ * Override this method to create custom Request Cycle instance.
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ protected RequestCycle newRequestCycle(Request request, Response response)
+ {
+ return new RequestCycle(request, response, newRequestCycleContext(request, response));
+ }
public final RequestCycle createRequestCycle(Request request, Response response)
{
@@ -166,9 +296,13 @@
return requestCycle;
}
- private static Map<String, Application> applications = new ConcurrentHashMap<String, Application>();
-
- // // Session Store
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ // Session Store
+ //
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
protected SessionStore newSessionStore()
{
@@ -187,7 +321,13 @@
getPageManager().sessionExpired(sessionId);
}
- // // Session
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ // Session
+ //
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
protected Session newSession(RequestCycle requestCycle)
{
@@ -212,11 +352,17 @@
return session;
}
- // // PageManager
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ // Page Manager
+ //
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
protected PageManager newPageManager()
{
- int cacheSize = 0;
+ int cacheSize = 40;
int fileChannelPoolCapacity = 50;
DataStore dataStore = new DiskDataStore(getName(), 1000000, fileChannelPoolCapacity);
PageStore pageStore = new DefaultPageStore(getName(), dataStore, cacheSize);
@@ -225,6 +371,9 @@
private PageManager pageManager;
+ /**
+ * Context for PageManager to interact with rest of Wicket
+ */
private PageManagerContext pageManagerContext = new PageManagerContext()
{
public void bind()
@@ -273,6 +422,11 @@
}
};
+ /**
+ * Returns the {@link PageManager} instance.
+ *
+ * @return {@link PageManager} instance.
+ */
public PageManager getPageManager()
{
return pageManager;
@@ -283,9 +437,176 @@
return pageManagerContext;
}
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Page Rendering
//
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Returns the {@link RenderPageRequestHandlerDelegate} responsible for rendering the page.
+ */
public abstract RenderPageRequestHandlerDelegate getRenderPageRequestHandlerDelegate(
RenderPageRequestHandler renderPageRequestHandler);
+
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ // Request Handler encoding
+ //
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Application subclasses must specify a home page class by implementing this abstract method.
+ *
+ * @return Home page class for this application
+ */
+ public abstract Class<? extends IPage> getHomePage();
+
+ private RequestHandlerEncoderRegistry requestHandlerEncoderRegistry;
+
+ /**
+ * Override to create custom {@link RequestHandlerEncoderRegistry}.
+ *
+ * @return new {@link RequestHandlerEncoderRegistry} instance
+ */
+ protected RequestHandlerEncoderRegistry newRequestHandlerEncoderRegistry()
+ {
+ return new RequestHandlerEncoderRegistry();
+ };
+
+ /**
+ * returns the {@link RequestHandlerEncoderRegistry} for this application.
+ *
+ * @return
+ */
+ public final RequestHandlerEncoderRegistry getRequestHandlerEncoderRegistry()
+ {
+ return requestHandlerEncoderRegistry;
+ }
+
+ private ResourceReferenceRegistry resourceReferenceRegistry;
+
+ /**
+ * Override to create custom {@link ResourceReferenceRegistry}.
+ *
+ * @return new {@link ResourceReferenceRegistry} instance.
+ */
+ protected ResourceReferenceRegistry newResourceReferenceRegistry()
+ {
+ return new ResourceReferenceRegistry();
+ }
+
+ /**
+ * Returns {@link ResourceReferenceRegistry} for this application.
+ *
+ * @return
+ */
+ public final ResourceReferenceRegistry getResourceReferenceRegistry()
+ {
+ return resourceReferenceRegistry;
+ }
+
+ private PageFactory pageFactory;
+
+ /**
+ * Override to create custom {@link PageFactory}
+ *
+ * @return new {@link PageFactory} instance.
+ */
+ protected PageFactory newPageFactory()
+ {
+ return new DefaultPageFactory();
+ }
+
+ /**
+ * Returns {@link PageFactory} for this application.
+ *
+ * @return
+ */
+ public final PageFactory getPageFactory()
+ {
+ return pageFactory;
+ }
+
+ private final EncoderContext encoderContext = new EncoderContext()
+ {
+ public String getBookmarkableIdentifier()
+ {
+ return "bookmarkable";
+ }
+
+ public String getNamespace()
+ {
+ return "wicket";
+ }
+
+ public String getPageIdentifier()
+ {
+ return "page";
+ }
+
+ public String getResourceIdentifier()
+ {
+ return "resource";
+ }
+
+ public ResourceReferenceRegistry getResourceReferenceRegistry()
+ {
+ return Application.this.getResourceReferenceRegistry();
+ }
+
+ public RequestListenerInterface requestListenerInterfaceFromString(String interfaceName)
+ {
+ return RequestListenerInterface.forName(interfaceName);
+ }
+
+ public String requestListenerInterfaceToString(RequestListenerInterface listenerInterface)
+ {
+ return listenerInterface.getName();
+ }
+
+ public IPage newPageInstance(Class<? extends IPage> pageClass, PageParameters pageParameters)
+ {
+ if (pageParameters == null)
+ {
+ return getPageFactory().newPage(pageClass);
+ }
+ else
+ {
+ return getPageFactory().newPage(pageClass, pageParameters);
+ }
+ }
+
+ public IPage getPageInstance(int pageId)
+ {
+ return Page.get(pageId);
+ }
+
+ public Class<? extends IPage> getHomePageClass()
+ {
+ return Application.this.getHomePage();
+ }
+ };
+
+ public final EncoderContext getEncoderContext()
+ {
+ return encoderContext;
+ }
+
+ public void registerEncoder(RequestHandlerEncoder encoder)
+ {
+ getRequestHandlerEncoderRegistry().register(encoder);
+ }
+
+ /**
+ * Register the default encoders - necessary for the application to work.
+ */
+ protected void registerDefaultEncoders()
+ {
+
+ }
}
Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java?rev=764201&r1=764200&r2=764201&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestCycle.java Sat Apr 11 13:43:12 2009
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.RequestHandler;
import org.apache.wicket.request.RequestHandlerStack;
import org.apache.wicket.request.Url;
@@ -367,7 +366,7 @@
public void setResponsePage(Class<? extends IPage> pageClass, PageParameters parameters)
{
- PageSource source = WebApplication.get().getEncoderContext();
+ PageSource source = Application.get().getEncoderContext();
PageProvider provider = new PageProvider(source, pageClass);
replaceCurrentRequestHandler(new RenderPageRequestHandler(provider,
RenderPageRequestHandler.RedirectPolicy.AUTO_REDIRECT));
Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/ThreadContext.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/ThreadContext.java?rev=764201&r1=764200&r2=764201&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/ThreadContext.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/ThreadContext.java Sat Apr 11 13:43:12 2009
@@ -66,4 +66,16 @@
{
threadLocal.remove();
}
+
+ public static ThreadContext getAndClean()
+ {
+ ThreadContext value = threadLocal.get();
+ threadLocal.remove();
+ return value;
+ }
+
+ public static void set(ThreadContext threadContext)
+ {
+ threadLocal.set(threadContext);
+ }
}
Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java?rev=764201&r1=764200&r2=764201&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WebApplication.java Sat Apr 11 13:43:12 2009
@@ -22,32 +22,22 @@
import javax.servlet.ServletContext;
import org.apache.wicket.Application;
-import org.apache.wicket.DefaultPageFactory;
-import org.apache.wicket.IPage;
-import org.apache.wicket.Page;
-import org.apache.wicket.PageFactory;
-import org.apache.wicket.PageParameters;
-import org.apache.wicket.RequestCycle;
-import org.apache.wicket.RequestCycleContext;
-import org.apache.wicket.RequestListenerInterface;
-import org.apache.wicket.request.RequestHandler;
import org.apache.wicket.request.RequestHandlerEncoder;
-import org.apache.wicket.request.RequestHandlerEncoderRegistry;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.encoder.BookmarkableEncoder;
import org.apache.wicket.request.encoder.BufferedResponseEncoder;
-import org.apache.wicket.request.encoder.EncoderContext;
import org.apache.wicket.request.encoder.PageInstanceEncoder;
import org.apache.wicket.request.encoder.ResourceReferenceEncoder;
import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
import org.apache.wicket.request.handler.impl.render.RenderPageRequestHandlerDelegate;
import org.apache.wicket.request.handler.impl.render.WebRenderPageRequestHandlerDelegate;
-import org.apache.wicket.request.request.Request;
import org.apache.wicket.request.response.BufferedWebResponse;
-import org.apache.wicket.request.response.Response;
-import org.apache.wicket.resource.ResourceReferenceRegistry;
-// this class is really a (temporary) mess
+/**
+ *
+ * @author Matej Knopp
+ *
+ */
public abstract class WebApplication extends Application
{
@@ -57,170 +47,19 @@
}
@Override
- public void internalInit()
+ protected void registerDefaultEncoders()
{
- super.internalInit();
-
- mount(new PageInstanceEncoder());
- mount(new BookmarkableEncoder());
- mount(new ResourceReferenceEncoder());
- mount(new BufferedResponseEncoder());
- }
-
- protected RequestCycleContext newRequestCycleContext()
- {
- RequestCycleContext context = new RequestCycleContext()
- {
- public RequestHandler decodeRequestHandler(final Request request)
- {
- String lang = null;
- Url url = request.getUrl();
- if (!url.getSegments().isEmpty())
- {
- lang = url.getSegments().remove(0);
- }
- return getRequestHandlerEncoderRegistry().decode(request.requestWithUrl(url));
- }
-
- public Url encodeRequestHandler(RequestHandler handler)
- {
- Url url = getRequestHandlerEncoderRegistry().encode(handler);
- url.getSegments().add(0, "en");
- return url;
- }
-
- public RequestHandler getRequestHandlerForException(Exception e)
- {
- return WebApplication.this.getRequestHandlerForException(e);
- }
- };
- return context;
- };
-
- protected RequestHandler getRequestHandlerForException(Exception e)
- {
- return null;
- };
-
- protected RequestCycle newRequestCycle(Request request, Response response)
- {
- RequestCycleContext context = newRequestCycleContext();
- return new RequestCycle(request, response, context);
- };
-
- private RequestHandlerEncoderRegistry requestHandlerEncoderRegistry;
-
- public RequestHandlerEncoderRegistry getRequestHandlerEncoderRegistry()
- {
- if (requestHandlerEncoderRegistry == null)
- {
- requestHandlerEncoderRegistry = newRequestHandlerEncoderRegistry();
- }
- return requestHandlerEncoderRegistry;
- };
-
- protected RequestHandlerEncoderRegistry newRequestHandlerEncoderRegistry()
- {
- return new RequestHandlerEncoderRegistry();
- };
-
- public static WebApplication get()
- {
- return (WebApplication) Application.get();
- }
-
- private EncoderContext encoderContext = new EncoderContext()
- {
-
- public String getBookmarkableIdentifier()
- {
- return "bookmarkable";
- }
-
- public String getNamespace()
- {
- return "wicket";
- }
-
- public String getPageIdentifier()
- {
- return "page";
- }
-
- public String getResourceIdentifier()
- {
- return "resource";
- }
-
- public ResourceReferenceRegistry getResourceReferenceRegistry()
- {
- return WebApplication.this.getResourceReferenceRegistry();
- }
-
- public RequestListenerInterface requestListenerInterfaceFromString(String interfaceName)
- {
- return RequestListenerInterface.forName(interfaceName);
- }
-
- public String requestListenerInterfaceToString(RequestListenerInterface listenerInterface)
- {
- return listenerInterface.getName();
- }
-
- public IPage newPageInstance(Class<? extends IPage> pageClass, PageParameters pageParameters)
- {
- if (pageParameters == null)
- {
- return getPageFactory().newPage(pageClass);
- }
- else
- {
- return getPageFactory().newPage(pageClass, pageParameters);
- }
- }
-
- public IPage getPageInstance(int pageId)
- {
- return Page.get(pageId);
- }
-
- public Class<? extends IPage> getHomePageClass()
- {
- return WebApplication.this.getHomePageClass();
- }
- };
-
- public EncoderContext getEncoderContext()
- {
- return encoderContext;
- }
-
- private ResourceReferenceRegistry resourceReferenceRegistry;
-
- public ResourceReferenceRegistry getResourceReferenceRegistry()
- {
- if (resourceReferenceRegistry == null)
- {
- resourceReferenceRegistry = new ResourceReferenceRegistry();
- }
- return resourceReferenceRegistry;
- }
-
- private PageFactory pageFactory = new DefaultPageFactory();
+ registerEncoder(new PageInstanceEncoder());
+ registerEncoder(new BookmarkableEncoder());
+ registerEncoder(new ResourceReferenceEncoder());
+ registerEncoder(new BufferedResponseEncoder());
+ }
-
- public PageFactory getPageFactory()
- {
- return pageFactory;
- }
-
public void mount(RequestHandlerEncoder encoder)
{
- getRequestHandlerEncoderRegistry().register(encoder);
+ registerEncoder(encoder);
}
- public abstract Class<? extends IPage> getHomePageClass();
-
// TODO: Do this properly
private Map<String, BufferedWebResponse> storedResponses = new ConcurrentHashMap<String, BufferedWebResponse>();
@@ -272,4 +111,9 @@
{
return new WebRenderPageRequestHandlerDelegate(renderPageRequestHandler);
}
+
+ public static WebApplication get()
+ {
+ return (WebApplication) Application.get();
+ }
}
Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java?rev=764201&r1=764200&r2=764201&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java Sat Apr 11 13:43:12 2009
@@ -225,8 +225,7 @@
webApplication.set();
try
{
- webApplication.internalInit();
- webApplication.init();
+ webApplication.initApplication();
}
finally
{
Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java?rev=764201&r1=764200&r2=764201&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/encoder/AbstractEncoder.java Sat Apr 11 13:43:12 2009
@@ -16,10 +16,10 @@
*/
package org.apache.wicket.request.encoder;
+import org.apache.wicket.Application;
import org.apache.wicket.IPage;
import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestListenerInterface;
-import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.RequestHandlerEncoder;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.Url.QueryParameter;
@@ -39,7 +39,7 @@
{
protected EncoderContext getContext()
{
- return WebApplication.get().getEncoderContext();
+ return Application.get().getEncoderContext();
}
/**