Author: frankbille
Date: Thu Apr 10 02:20:39 2008
New Revision: 646709

URL: http://svn.apache.org/viewvc?rev=646709&view=rev
Log:
Added covariant get method on the WebApplication.

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java?rev=646709&r1=646708&r2=646709&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java 
(original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java 
Thu Apr 10 02:20:39 2008
@@ -135,7 +135,7 @@
        private static final Map applicationKeyToApplication = new HashMap(1);
 
        /** Thread local holder of the application object. */
-       private static final ThreadLocal current = new ThreadLocal();
+       private static final ThreadLocal<Application> current = new 
ThreadLocal<Application>();
 
        /** Log. */
        private static final Logger log = 
LoggerFactory.getLogger(Application.class);
@@ -158,7 +158,7 @@
         */
        public static Application get()
        {
-               final Application application = (Application)current.get();
+               final Application application = current.get();
                if (application == null)
                {
                        throw new WicketRuntimeException("There is no 
application attached to current thread " +

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java?rev=646709&r1=646708&r2=646709&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 Thu Apr 10 02:20:39 2008
@@ -31,6 +31,7 @@
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.Response;
 import org.apache.wicket.Session;
+import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.pages.AccessDeniedPage;
 import org.apache.wicket.markup.html.pages.InternalErrorPage;
@@ -101,6 +102,24 @@
        private static final Logger log = 
LoggerFactory.getLogger(WebApplication.class);
 
        /**
+        * Covariant override for easy getting the current [EMAIL PROTECTED] 
WebApplication} without having to cast
+        * it.
+        */
+       public static WebApplication get()
+       {
+               Application application = Application.get();
+
+               if (application instanceof WebApplication == false)
+               {
+                       throw new WicketRuntimeException(
+                               "The application attached to the current thread 
is not a " +
+                                       WebApplication.class.getSimpleName());
+               }
+
+               return (WebApplication)application;
+       }
+
+       /**
         * The cached application key. Will be set in [EMAIL PROTECTED] 
#setWicketFilter(WicketFilter)} based on
         * the filter name.
         */
@@ -135,6 +154,7 @@
        /**
         * @see org.apache.wicket.Application#getApplicationKey()
         */
+       @Override
        public final String getApplicationKey()
        {
                if (applicationKey == null)
@@ -229,6 +249,7 @@
        /**
         * @see 
org.apache.wicket.Application#logEventTarget(org.apache.wicket.IRequestTarget)
         */
+       @Override
        public void logEventTarget(IRequestTarget target)
        {
                super.logEventTarget(target);
@@ -242,6 +263,7 @@
        /**
         * @see 
org.apache.wicket.Application#logResponseTarget(org.apache.wicket.IRequestTarget)
         */
+       @Override
        public void logResponseTarget(IRequestTarget target)
        {
                super.logResponseTarget(target);
@@ -333,6 +355,7 @@
         * @see 
org.apache.wicket.Application#newRequestCycle(org.apache.wicket.Request,
         *      org.apache.wicket.Response)
         */
+       @Override
        public RequestCycle newRequestCycle(final Request request, final 
Response response)
        {
                return new WebRequestCycle(this, (WebRequest)request, 
(WebResponse)response);
@@ -346,6 +369,7 @@
         * @deprecated see [EMAIL PROTECTED] WebApplication#newSession(Request, 
Response)}.
         */
        // FIXME remove this method after 1.3.0
+       @Deprecated
        public final Session newSession()
        {
                throw new UnsupportedOperationException("this method is 
replaced by Application#newSession");
@@ -360,6 +384,7 @@
         * @deprecated [EMAIL PROTECTED] WebApplication#newSession(Request, 
Response)}.
         */
        // FIXME remove this method after 1.3.0
+       @Deprecated
        public final Session newSession(Request request)
        {
                throw new UnsupportedOperationException("this method is 
replaced by Application#newSession");
@@ -369,6 +394,7 @@
         * @see 
org.apache.wicket.Application#newSession(org.apache.wicket.Request,
         *      org.apache.wicket.Response)
         */
+       @Override
        public Session newSession(Request request, Response response)
        {
                return new WebSession(request);
@@ -417,6 +443,7 @@
         * @deprecated Replaced by [EMAIL PROTECTED] #newRequestCycle(Request, 
Response)}
         */
        // TODO remove after compatibility release.
+       @Deprecated
        protected final Object getDefaultRequestCycleFactory()
        {
                throw new UnsupportedOperationException("obsolete method. see 
getRequestCycleFactory");
@@ -429,6 +456,7 @@
         * after this application class is constructed, and the wicket servlet 
is set. <strong>Use this
         * method for any application setup instead of the constructor.</strong>
         */
+       @Override
        protected void init()
        {
        }
@@ -436,6 +464,7 @@
        /**
         * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
         */
+       @Override
        protected void internalDestroy()
        {
                // destroy the resource watcher
@@ -463,6 +492,7 @@
         * "sourceFolder" init parameter is also set, then resources in that 
folder will be polled for
         * changes.
         */
+       @Override
        protected void internalInit()
        {
                super.internalInit();
@@ -492,6 +522,7 @@
        /**
         * @see org.apache.wicket.Application#getConfigurationType()
         */
+       @Override
        public String getConfigurationType()
        {
                String result = null;
@@ -564,6 +595,7 @@
        /**
         * @see org.apache.wicket.Application#newSessionStore()
         */
+       @Override
        protected ISessionStore newSessionStore()
        {
                return new SecondLevelCacheSessionStore(this, new 
DiskPageStore());


Reply via email to