You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2011/01/26 23:56:18 UTC

svn commit: r1063913 - in /wicket/trunk: wicket-core/src/main/java/org/apache/wicket/Application.java wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java

Author: pete
Date: Wed Jan 26 22:56:18 2011
New Revision: 1063913

URL: http://svn.apache.org/viewvc?rev=1063913&view=rev
Log:
WICKET-3393 remove ApplicationContextHolder from SpringComponentInjector

Modified:
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
    wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java

Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java?rev=1063913&r1=1063912&r2=1063913&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Application.java Wed Jan 26 22:56:18 2011
@@ -559,7 +559,6 @@ public abstract class Application implem
 	 * @throws IllegalArgumentException
 	 * @see MetaDataKey
 	 */
-	// TODO: Replace the Serializable type with Object for next wicket version
 	public final synchronized <T> void setMetaData(final MetaDataKey<T> key, final Object object)
 	{
 		metaData = key.set(metaData, object);

Modified: wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java?rev=1063913&r1=1063912&r2=1063913&view=diff
==============================================================================
--- wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java (original)
+++ wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java Wed Jan 26 22:56:18 2011
@@ -20,7 +20,6 @@ import javax.servlet.ServletContext;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.Component;
-import org.apache.wicket.IClusterable;
 import org.apache.wicket.MetaDataKey;
 import org.apache.wicket.Session;
 import org.apache.wicket.application.IComponentInstantiationListener;
@@ -50,11 +49,10 @@ public class SpringComponentInjector ext
 	private final IFieldValueFactory fieldValueFactory;
 
 	/**
-	 * Metadata key used to store application context holder in application's metadata
+	 * Metadata key used to store application context in application's metadata
 	 */
-	private static MetaDataKey<ApplicationContextHolder> CONTEXT_KEY = new MetaDataKey<ApplicationContextHolder>()
+	private static MetaDataKey<ApplicationContext> CONTEXT_KEY = new MetaDataKey<ApplicationContext>()
 	{
-
 		private static final long serialVersionUID = 1L;
 
 	};
@@ -114,7 +112,7 @@ public class SpringComponentInjector ext
 		}
 
 		// store context in application's metadata ...
-		webapp.setMetaData(CONTEXT_KEY, new ApplicationContextHolder(ctx));
+		webapp.setMetaData(CONTEXT_KEY, ctx);
 		fieldValueFactory = new AnnotProxyFieldValueFactory(new ContextLocator(), wrapInProxies);
 		bind(webapp);
 	}
@@ -132,40 +130,6 @@ public class SpringComponentInjector ext
 		inject(component);
 	}
 
-	/**
-	 * This is a holder for the application context. The reason we need a holder is that metadata
-	 * only supports storing serializable objects but application context is not. The holder acts as
-	 * a serializable wrapper for the context. Notice that although holder implements IClusterable
-	 * it really is not because it has a reference to non serializable context - but this is ok
-	 * because metadata objects in application are never serialized.
-	 * 
-	 * @author ivaynberg
-	 * 
-	 */
-	private static class ApplicationContextHolder implements IClusterable
-	{
-		private static final long serialVersionUID = 1L;
-
-		private final ApplicationContext context;
-
-		/**
-		 * Constructor
-		 * 
-		 * @param context
-		 */
-		public ApplicationContextHolder(final ApplicationContext context)
-		{
-			this.context = context;
-		}
-
-		/**
-		 * @return the context
-		 */
-		public ApplicationContext getContext()
-		{
-			return context;
-		}
-	}
 
 	/**
 	 * A context locator that locates the context in application's metadata. This locator also keeps
@@ -184,7 +148,7 @@ public class SpringComponentInjector ext
 		{
 			if (context == null)
 			{
-				context = (Application.get().getMetaData(CONTEXT_KEY)).getContext();
+				context = Application.get().getMetaData(CONTEXT_KEY);
 			}
 			return context;
 		}