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();
        }
 
        /**


Reply via email to