You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2008/04/11 11:50:58 UTC

svn commit: r647095 - in /wicket/trunk/jdk-1.4/wicket/src: main/java/org/apache/wicket/ main/java/org/apache/wicket/session/ main/java/org/apache/wicket/util/collections/ test/java/org/apache/wicket/stateless/pages/

Author: jdonnerstag
Date: Fri Apr 11 02:50:49 2008
New Revision: 647095

URL: http://svn.apache.org/viewvc?rev=647095&view=rev
Log:
generics

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestContext.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Resource.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Response.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseException.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/collections/ArrayListStack.java
    wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataEntry.java Fri Apr 11 02:50:49 2008
@@ -19,25 +19,27 @@
 
 /**
  * Class used for holding meta data entries.
- *
+ * 
  * @author Jonathan Locke
+ * @param <T>
+ *            The meta data key type
  */
-final class MetaDataEntry implements IClusterable
+final class MetaDataEntry<T> implements IClusterable
 {
 	private static final long serialVersionUID = 1L;
 
-	final MetaDataKey key;
+	final MetaDataKey<T> key;
 
 	Object object;
 
 	/**
 	 * Construct.
-	 *
+	 * 
 	 * @param key
 	 *            meta data key
 	 * @param object
 	 */
-	public MetaDataEntry(MetaDataKey key, Object object)
+	public MetaDataEntry(MetaDataKey<T> key, Object object)
 	{
 		this.key = key;
 		this.object = object;
@@ -46,6 +48,7 @@
 	/**
 	 * @see java.lang.Object#toString()
 	 */
+	@Override
 	public String toString()
 	{
 		return key + "=" + object.getClass().getName() + "@" +

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java Fri Apr 11 02:50:49 2008
@@ -87,7 +87,7 @@
 	 *            The object to set, null to remove
 	 * @return Any new metadata array (if it was reallocated)
 	 */
-	MetaDataEntry[] set(MetaDataEntry[] metaData, final Object object)
+	MetaDataEntry< ? >[] set(MetaDataEntry< ? >[] metaData, final Object object)
 	{
 		checkType(object);
 		boolean set = false;
@@ -95,7 +95,7 @@
 		{
 			for (int i = 0; i < metaData.length; i++)
 			{
-				MetaDataEntry m = metaData[i];
+				MetaDataEntry< ? > m = metaData[i];
 				if (equals(m.key))
 				{
 					if (object != null)
@@ -109,7 +109,7 @@
 						if (metaData.length > 1)
 						{
 							int l = metaData.length - 1;
-							MetaDataEntry[] newMetaData = new MetaDataEntry[l];
+							MetaDataEntry< ? >[] newMetaData = new MetaDataEntry[l];
 							System.arraycopy(metaData, 0, newMetaData, 0, i);
 							System.arraycopy(metaData, i + 1, newMetaData, i, l - i);
 							metaData = newMetaData;
@@ -126,7 +126,7 @@
 		}
 		if (!set && object != null)
 		{
-			MetaDataEntry m = new MetaDataEntry(this, object);
+			MetaDataEntry<T> m = new MetaDataEntry<T>(this, object);
 			if (metaData == null)
 			{
 				metaData = new MetaDataEntry[1];
@@ -134,7 +134,7 @@
 			}
 			else
 			{
-				final MetaDataEntry[] newMetaData = new MetaDataEntry[metaData.length + 1];
+				final MetaDataEntry< ? >[] newMetaData = new MetaDataEntry[metaData.length + 1];
 				System.arraycopy(metaData, 0, newMetaData, 0, metaData.length);
 				newMetaData[metaData.length] = m;
 				metaData = newMetaData;

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java Fri Apr 11 02:50:49 2008
@@ -120,7 +120,10 @@
  * @author Eelco Hillenius
  * @author Johan Compagner
  */
-public abstract class Page extends MarkupContainer implements IRedirectListener, IPageMapEntry
+public abstract class Page extends MarkupContainer<Object>
+	implements
+		IRedirectListener,
+		IPageMapEntry
 {
 	/**
 	 * You can set implementation of the interface in the {@link Page#serializer} then that
@@ -178,7 +181,7 @@
 	 * {@link IPageSerializer} which can be set by the outside world to do the serialization of this
 	 * page.
 	 */
-	public static final ThreadLocal serializer = new ThreadLocal();
+	public static final ThreadLocal<IPageSerializer> serializer = new ThreadLocal<IPageSerializer>();
 
 	/** True if a new version was created for this request. */
 	private static final short FLAG_NEW_VERSION = FLAG_RESERVED3;
@@ -195,7 +198,7 @@
 	/**
 	 * {@link #isBookmarkable()} is expensive, we cache the result here
 	 */
-	private static final ConcurrentHashMap pageClassToBookmarkableCache = new ConcurrentHashMap();
+	private static final ConcurrentHashMap<String, Boolean> pageClassToBookmarkableCache = new ConcurrentHashMap<String, Boolean>();
 
 	private static final long serialVersionUID = 1L;
 
@@ -212,7 +215,7 @@
 	private String pageMapName;
 
 	/** Set of components that rendered if component use checking is enabled */
-	private transient Set renderedComponents;
+	private transient Set<Component< ? >> renderedComponents;
 
 	/**
 	 * Boolean if the page is stateless, so it doesn't have to be in the page map, will be set in
@@ -244,7 +247,7 @@
 	 *            See Component
 	 * @see Component#Component(String, IModel)
 	 */
-	protected Page(final IModel model)
+	protected Page(final IModel<Object> model)
 	{
 		// A Page's id is not determined until setId is called when the Page is
 		// added to a PageMap in the Session.
@@ -275,7 +278,7 @@
 	 *            See Component
 	 * @see Component#Component(String, IModel)
 	 */
-	protected Page(final IPageMap pageMap, final IModel model)
+	protected Page(final IPageMap pageMap, final IModel<Object> model)
 	{
 		// A Page's id is not determined until setId is called when the Page is
 		// added to a PageMap in the Session.
@@ -341,7 +344,7 @@
 	// IComponentInstantiationListener
 	// that forwards to IAuthorizationStrategy for RequestListenerInterface
 	// invocations.
-	public void afterCallComponent(final Component component,
+	public void afterCallComponent(final Component< ? > component,
 		final RequestListenerInterface listener)
 	{
 	}
@@ -362,7 +365,7 @@
 	// IComponentInstantiationListener
 	// that forwards to IAuthorizationStrategy for RequestListenerInterface
 	// invocations.
-	public void beforeCallComponent(final Component component,
+	public void beforeCallComponent(final Component< ? > component,
 		final RequestListenerInterface listener)
 	{
 	}
@@ -373,14 +376,14 @@
 	 * @param component
 	 *            The component that was rendered
 	 */
-	public final void componentRendered(final Component component)
+	public final void componentRendered(final Component< ? > component)
 	{
 		// Inform the page that this component rendered
 		if (Application.get().getDebugSettings().getComponentUseCheck())
 		{
 			if (renderedComponents == null)
 			{
-				renderedComponents = new HashSet();
+				renderedComponents = new HashSet<Component< ? >>();
 			}
 			if (renderedComponents.add(component) == false)
 			{
@@ -400,25 +403,6 @@
 	@Override
 	public void detachModels()
 	{
-		// // visit all this page's children to detach the models
-		// visitChildren(new IVisitor()
-		// {
-		// public Object component(Component component)
-		// {
-		// try
-		// {
-		// // detach any models of the component
-		// component.detachModels();
-		// }
-		// catch (Exception e) // catch anything; we MUST detach all models
-		// {
-		// log.error("detaching models of component " + component + " failed:",
-		// e);
-		// }
-		// return IVisitor.CONTINUE_TRAVERSAL;
-		// }
-		// });
-
 		super.detachModels();
 	}
 
@@ -440,11 +424,11 @@
 	 * @param component
 	 * 
 	 */
-	public final void endComponentRender(Component component)
+	public final void endComponentRender(Component< ? > component)
 	{
 		if (component instanceof MarkupContainer)
 		{
-			checkRendering((MarkupContainer)component);
+			checkRendering((MarkupContainer< ? >)component);
 		}
 		else
 		{
@@ -513,7 +497,7 @@
 	/**
 	 * @see org.apache.wicket.session.pagemap.IPageMapEntry#getPageClass()
 	 */
-	public final Class<? extends Page> getPageClass()
+	public final Class< ? extends Page> getPageClass()
 	{
 		return getClass();
 	}
@@ -654,12 +638,12 @@
 	{
 		final StringBuffer buffer = new StringBuffer();
 		buffer.append("Page " + getId() + " (version " + getCurrentVersionNumber() + ")");
-		visitChildren(new IVisitor()
+		visitChildren(new IVisitor<Component< ? >>()
 		{
-			public Object component(Component component)
+			public Object component(Component< ? > component)
 			{
 				int levels = 0;
-				for (Component current = component; current != null; current = current.getParent())
+				for (Component< ? > current = component; current != null; current = current.getParent())
 				{
 					levels++;
 				}
@@ -699,7 +683,7 @@
 	 */
 	public boolean isBookmarkable()
 	{
-		Boolean bookmarkable = (Boolean)pageClassToBookmarkableCache.get(getClass().getName());
+		Boolean bookmarkable = pageClassToBookmarkableCache.get(getClass().getName());
 		if (bookmarkable == null)
 		{
 			try
@@ -773,9 +757,9 @@
 		if (stateless == null)
 		{
 			final Object[] returnArray = new Object[1];
-			Object returnValue = visitChildren(Component.class, new IVisitor()
+			Object returnValue = visitChildren(Component.class, new IVisitor<Component< ? >>()
 			{
-				public Object component(Component component)
+				public Object component(Component< ? > component)
 				{
 					if (!component.isStateless())
 					{
@@ -829,7 +813,7 @@
 	 *            if true, disable persistence for all FormComponents on that page. If false, it
 	 *            will remain unchanged.
 	 */
-	public final void removePersistedFormData(final Class formClass,
+	public final void removePersistedFormData(final Class< ? extends Form< ? >> formClass,
 		final boolean disablePersistence)
 	{
 		// Check that formClass is an instanceof Form
@@ -840,16 +824,16 @@
 		}
 
 		// Visit all children which are an instance of formClass
-		visitChildren(formClass, new IVisitor()
+		visitChildren(formClass, new IVisitor<Component< ? >>()
 		{
-			public Object component(final Component component)
+			public Object component(final Component< ? > component)
 			{
 				// They must be of type Form as well
 				if (component instanceof Form)
 				{
 					// Delete persistent FormComponent data and disable
 					// persistence
-					((Form)component).removePersistentFormComponentValues(disablePersistence);
+					((Form< ? >)component).removePersistentFormComponentValues(disablePersistence);
 				}
 				return CONTINUE_TRAVERSAL;
 			}
@@ -919,9 +903,9 @@
 		// clean up debug meta data if component check is on
 		if (Application.get().getDebugSettings().getComponentUseCheck())
 		{
-			visitChildren(new IVisitor()
+			visitChildren(new IVisitor<Component< ? >>()
 			{
-				public Object component(Component component)
+				public Object component(Component< ? > component)
 				{
 					component.setMetaData(Component.CONSTRUCTED_AT_KEY, null);
 					component.setMetaData(Component.ADDED_AT_KEY, null);
@@ -997,7 +981,7 @@
 	 * @param component
 	 * 
 	 */
-	public final void startComponentRender(Component component)
+	public final void startComponentRender(Component< ? > component)
 	{
 		renderedComponents = null;
 	}
@@ -1030,18 +1014,18 @@
 	 *            The page itself if it was a full page render or the container that was rendered
 	 *            standalone
 	 */
-	private final void checkRendering(final MarkupContainer renderedContainer)
+	private final void checkRendering(final MarkupContainer< ? > renderedContainer)
 	{
 		// If the application wants component uses checked and
 		// the response is not a redirect
 		final IDebugSettings debugSettings = Application.get().getDebugSettings();
 		if (debugSettings.getComponentUseCheck() && !getResponse().isRedirect())
 		{
-			final List unrenderedComponents = new ArrayList();
+			final List<Component< ? >> unrenderedComponents = new ArrayList<Component< ? >>();
 			final StringBuffer buffer = new StringBuffer();
-			renderedContainer.visitChildren(new IVisitor()
+			renderedContainer.visitChildren(new IVisitor<Component< ? >>()
 			{
-				public Object component(final Component component)
+				public Object component(final Component< ? > component)
 				{
 					// If component never rendered
 					if (renderedComponents == null || !renderedComponents.contains(component))
@@ -1055,12 +1039,12 @@
 							// Add to explanatory string to buffer
 							buffer.append(Integer.toString(unrenderedComponents.size()) + ". " +
 								component + "\n");
-							String metadata = (String)component.getMetaData(Component.CONSTRUCTED_AT_KEY);
+							String metadata = component.getMetaData(Component.CONSTRUCTED_AT_KEY);
 							if (metadata != null)
 							{
 								buffer.append(metadata);
 							}
-							metadata = (String)component.getMetaData(Component.ADDED_AT_KEY);
+							metadata = component.getMetaData(Component.ADDED_AT_KEY);
 							if (metadata != null)
 							{
 								buffer.append(metadata);
@@ -1084,21 +1068,21 @@
 				// Get rid of set
 				renderedComponents = null;
 
-				Iterator iterator = unrenderedComponents.iterator();
+				Iterator<Component< ? >> iterator = unrenderedComponents.iterator();
 
 				while (iterator.hasNext())
 				{
-					Component component = (Component)iterator.next();
+					Component< ? > component = iterator.next();
 					// Now first test if the component has a sibling that is a transparent resolver.
 
-					Iterator iterator2 = component.getParent().iterator();
+					Iterator<Component< ? >> iterator2 = component.getParent().iterator();
 					while (iterator2.hasNext())
 					{
-						Component sibling = (Component)iterator2.next();
+						Component< ? > sibling = iterator2.next();
 						if (!sibling.isVisible())
 						{
 							boolean isTransparentMarkupContainer = sibling instanceof MarkupContainer &&
-								((MarkupContainer)sibling).isTransparentResolver();
+								((MarkupContainer< ? >)sibling).isTransparentResolver();
 							boolean isComponentResolver = sibling instanceof IComponentResolver;
 							if (isTransparentMarkupContainer || isComponentResolver)
 							{
@@ -1204,6 +1188,9 @@
 		dirty();
 	}
 
+	/**
+	 * 
+	 */
 	private void setNextAvailableId()
 	{
 		if (getApplication().getSessionSettings().isPageIdUniquePerSession())
@@ -1225,7 +1212,8 @@
 	 * @param parent
 	 * @return True if the change is okay to report
 	 */
-	private final boolean mayTrackChangesFor(final Component component, MarkupContainer parent)
+	private final boolean mayTrackChangesFor(final Component< ? > component,
+		MarkupContainer< ? > parent)
 	{
 		// first call the method so that people can track dirty components
 		componentChanged(component, parent);
@@ -1275,16 +1263,22 @@
 	 * @param component
 	 * @param parent
 	 */
-	protected void componentChanged(Component component, MarkupContainer parent)
+	protected void componentChanged(Component< ? > component, MarkupContainer< ? > parent)
 	{
 	}
 
+	/**
+	 * 
+	 * @param s
+	 * @throws IOException
+	 * @throws ClassNotFoundException
+	 */
 	void readPageObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException
 	{
 		int id = s.readShort();
 		String name = (String)s.readObject();
 
-		IPageSerializer ps = (IPageSerializer)serializer.get();
+		IPageSerializer ps = serializer.get();
 		if (ps != null)
 		{
 			ps.deserializePage(id, name, this, s);
@@ -1295,10 +1289,15 @@
 		}
 	}
 
+	/**
+	 * 
+	 * @return
+	 * @throws ObjectStreamException
+	 */
 	protected Object writeReplace() throws ObjectStreamException
 	{
 
-		IPageSerializer ps = (IPageSerializer)serializer.get();
+		IPageSerializer ps = serializer.get();
 
 		if (ps != null)
 		{
@@ -1310,12 +1309,17 @@
 		}
 	}
 
+	/**
+	 * 
+	 * @param s
+	 * @throws IOException
+	 */
 	void writePageObject(java.io.ObjectOutputStream s) throws IOException
 	{
 		s.writeShort(numericId);
 		s.writeObject(pageMapName);
 
-		IPageSerializer ps = (IPageSerializer)serializer.get();
+		IPageSerializer ps = serializer.get();
 
 		if (ps != null)
 		{
@@ -1327,7 +1331,6 @@
 		}
 	}
 
-
 	/**
 	 * Set-up response with appropriate content type, locale and encoding. The locale is set equal
 	 * to the session's locale. The content type header contains information about the markup type
@@ -1377,9 +1380,9 @@
 	@Override
 	protected final void internalOnModelChanged()
 	{
-		visitChildren(new Component.IVisitor()
+		visitChildren(new Component.IVisitor<Component< ? >>()
 		{
-			public Object component(final Component component)
+			public Object component(final Component< ? > component)
 			{
 				// If form component is using form model
 				if (component.sameInnermostModel(Page.this))
@@ -1417,6 +1420,10 @@
 		return null;
 	}
 
+	/**
+	 * 
+	 * @see org.apache.wicket.Component#onBeforeRender()
+	 */
 	@Override
 	protected void onBeforeRender()
 	{
@@ -1446,10 +1453,8 @@
 		dirty();
 
 		super.onDetach();
-
 	}
 
-
 	/**
 	 * Renders this container to the given response object.
 	 * 
@@ -1475,7 +1480,7 @@
 	 * @param component
 	 *            The component that was added
 	 */
-	final void componentAdded(final Component component)
+	final void componentAdded(final Component< ? > component)
 	{
 		dirty();
 		if (mayTrackChangesFor(component, component.getParent()))
@@ -1490,7 +1495,7 @@
 	 * @param component
 	 *            The component whose model is about to change
 	 */
-	final void componentModelChanging(final Component component)
+	final void componentModelChanging(final Component< ? > component)
 	{
 		dirty();
 		if (mayTrackChangesFor(component, null))
@@ -1510,7 +1515,7 @@
 	 * @param component
 	 *            The component that was removed
 	 */
-	final void componentRemoved(final Component component)
+	final void componentRemoved(final Component< ? > component)
 	{
 		dirty();
 		if (mayTrackChangesFor(component, component.getParent()))
@@ -1519,7 +1524,12 @@
 		}
 	}
 
-	final void componentStateChanging(final Component component, Change change)
+	/**
+	 * 
+	 * @param component
+	 * @param change
+	 */
+	final void componentStateChanging(final Component< ? > component, Change change)
 	{
 		dirty();
 		if (mayTrackChangesFor(component, null))
@@ -1535,12 +1545,12 @@
 	final void setFormComponentValuesFromCookies()
 	{
 		// Visit all Forms contained in the page
-		visitChildren(Form.class, new Component.IVisitor()
+		visitChildren(Form.class, new Component.IVisitor<Component< ? >>()
 		{
 			// For each FormComponent found on the Page (not Form)
-			public Object component(final Component component)
+			public Object component(final Component< ? > component)
 			{
-				((Form)component).loadPersistentFormComponentValues();
+				((Form< ? >)component).loadPersistentFormComponentValues();
 				return CONTINUE_TRAVERSAL;
 			}
 		});
@@ -1575,6 +1585,5 @@
 	 */
 	public void onPageAttached()
 	{
-
 	}
 }

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java Fri Apr 11 02:50:49 2008
@@ -46,13 +46,18 @@
 		public void entry(final IPageMapEntry entry);
 	}
 
-
 	/** Name of default pagemap */
 	public static final String DEFAULT_NAME = null;
 
+	/** */
 	private static final long serialVersionUID = 1L;
 
 	/**
+	 * MetaDataEntry array.
+	 */
+	private MetaDataEntry< ? >[] metaData;
+
+	/**
 	 * Gets a page map for a page map name, automatically creating the page map if it does not
 	 * exist. If you do not want the pagemap to be automatically created, you can call
 	 * Session.pageMapForName(pageMapName, false).
@@ -175,10 +180,10 @@
 	public final long getSizeInBytes()
 	{
 		long size = Objects.sizeof(this);
-		Iterator it = getEntries().iterator();
+		Iterator<IPageMapEntry> it = getEntries().iterator();
 		while (it.hasNext())
 		{
-			IPageMapEntry entry = (IPageMapEntry)it.next();
+			IPageMapEntry entry = it.next();
 			if (entry instanceof Page)
 			{
 				size += ((Page)entry).getSizeInBytes();
@@ -222,7 +227,7 @@
 	 * @param pageClazz
 	 *            The page clazz to temporarily redirect to
 	 */
-	public final void redirectToInterceptPage(final Class pageClazz)
+	public final void redirectToInterceptPage(final Class< ? extends Page> pageClazz)
 	{
 		final RequestCycle cycle = RequestCycle.get();
 		setUpRedirect(cycle);
@@ -304,6 +309,7 @@
 	/**
 	 * @see java.lang.Object#toString()
 	 */
+	@Override
 	public String toString()
 	{
 		return "[PageMap name=" + name + "]";
@@ -312,22 +318,25 @@
 	/**
 	 * @return List of entries in this page map
 	 */
-	private final List getEntries()
+	private final List<IPageMapEntry> getEntries()
 	{
 		final Session session = Session.get();
-		final List attributes = session.getAttributeNames();
-		final List list = new ArrayList();
-		for (final Iterator iterator = attributes.iterator(); iterator.hasNext();)
+		final List<String> attributes = session.getAttributeNames();
+		final List<IPageMapEntry> list = new ArrayList<IPageMapEntry>();
+		for (final Iterator<String> iterator = attributes.iterator(); iterator.hasNext();)
 		{
-			final String attribute = (String)iterator.next();
+			final String attribute = iterator.next();
 			if (attribute.startsWith(attributePrefix()))
 			{
-				list.add(session.getAttribute(attribute));
+				list.add((IPageMapEntry)session.getAttribute(attribute));
 			}
 		}
 		return list;
 	}
 
+	/**
+	 * 
+	 */
 	protected final void dirty()
 	{
 		Session.get().dirtyPageMap(this);
@@ -340,10 +349,10 @@
 	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();)
+		final List<String> attributes = session.getAttributeNames();
+		for (final Iterator<String> iterator = attributes.iterator(); iterator.hasNext();)
 		{
-			final String attribute = (String)iterator.next();
+			final String attribute = iterator.next();
 			if (attribute.startsWith(attributePrefix()))
 			{
 				visitor.entry((IPageMapEntry)session.getAttribute(attribute));
@@ -352,11 +361,6 @@
 	}
 
 	/**
-	 * MetaDataEntry array.
-	 */
-	private MetaDataEntry[] metaData;
-
-	/**
 	 * Sets the metadata for this PageMap using the given key. If the metadata object is not of the
 	 * correct type for the metadata key, an IllegalArgumentException will be thrown. For
 	 * information on creating MetaDataKeys, see {@link MetaDataKey}.
@@ -368,7 +372,7 @@
 	 * @throws IllegalArgumentException
 	 * @see MetaDataKey
 	 */
-	public final void setMetaData(final MetaDataKey key, final Serializable object)
+	public final void setMetaData(final MetaDataKey< ? > key, final Serializable object)
 	{
 		metaData = key.set(metaData, object);
 	}
@@ -381,7 +385,7 @@
 	 * @return The metadata or null of no metadata was found for the given key
 	 * @see MetaDataKey
 	 */
-	public final Serializable getMetaData(final MetaDataKey key)
+	public final Serializable getMetaData(final MetaDataKey< ? > key)
 	{
 		return (Serializable)key.get(metaData);
 	}

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestContext.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestContext.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestContext.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestContext.java Fri Apr 11 02:50:49 2008
@@ -24,7 +24,7 @@
 public class RequestContext
 {
 	/** Thread-local that holds the current request context. */
-	private static final ThreadLocal current = new ThreadLocal();
+	private static final ThreadLocal<RequestContext> current = new ThreadLocal<RequestContext>();
 
 	/**
 	 * Construct.
@@ -39,7 +39,7 @@
 	 */
 	public static final RequestContext get()
 	{
-		RequestContext context = (RequestContext)current.get();
+		RequestContext context = current.get();
 		if (context == null)
 		{
 			context = new RequestContext();
@@ -55,6 +55,10 @@
 		current.set(null);
 	}
 
+	/**
+	 * 
+	 * @param context
+	 */
 	protected static final void set(RequestContext context)
 	{
 		current.set(context);

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java Fri Apr 11 02:50:49 2008
@@ -18,7 +18,6 @@
 
 import java.util.Iterator;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import org.apache.wicket.behavior.IBehavior;
 import org.apache.wicket.protocol.http.BufferedWebResponse;
@@ -161,7 +160,7 @@
 public abstract class RequestCycle
 {
 	/** Thread-local that holds the current request cycle. */
-	private static final ThreadLocal current = new ThreadLocal();
+	private static final ThreadLocal<RequestCycle> current = new ThreadLocal<RequestCycle>();
 
 	/** Cleaning up after responding to a request. */
 	private static final int DETACH_REQUEST = 5;
@@ -187,6 +186,9 @@
 	/** Responding using the currently set {@link IRequestTarget}. */
 	private static final int RESPOND = 4;
 
+	/** MetaDataEntry array. */
+	private MetaDataEntry< ? >[] metaData;
+
 	/**
 	 * Gets request cycle for calling thread.
 	 * 
@@ -194,7 +196,7 @@
 	 */
 	public static RequestCycle get()
 	{
-		return (RequestCycle)current.get();
+		return current.get();
 	}
 
 	/**
@@ -234,7 +236,8 @@
 	private boolean redirect;
 
 	/** holds the stack of set {@link IRequestTarget}, the last set op top. */
-	private transient final ArrayListStack requestTargets = new ArrayListStack(3);
+	private transient final ArrayListStack<IRequestTarget> requestTargets = new ArrayListStack<IRequestTarget>(
+		3);
 
 	/**
 	 * Any page parameters. Only set when the request is resolving and the parameters are passed
@@ -286,7 +289,7 @@
 		originalResponse = response;
 		processor = safeGetRequestProcessor();
 
-		previousOne = (RequestCycle)current.get();
+		previousOne = current.get();
 		// Set this RequestCycle into ThreadLocal variable
 		current.set(this);
 	}
@@ -411,7 +414,7 @@
 	 * 
 	 * @return the page class or null
 	 */
-	public final Class<? extends Page> getResponsePageClass()
+	public final Class< ? extends Page> getResponsePageClass()
 	{
 		IRequestTarget target = getRequestTarget();
 		if (target != null && (target instanceof IBookmarkablePageRequestTarget))
@@ -508,7 +511,7 @@
 	 * @param component
 	 *            to be re-rendered
 	 */
-	public final void request(final Component component)
+	public final void request(final Component< ? > component)
 	{
 		checkReuse();
 
@@ -588,7 +591,7 @@
 		{
 			if (!requestTargets.isEmpty())
 			{
-				IRequestTarget former = (IRequestTarget)requestTargets.peek();
+				IRequestTarget former = requestTargets.peek();
 				log.debug("replacing request target " + former + " with " + requestTarget);
 			}
 			else
@@ -661,7 +664,7 @@
 	 * @param pageClass
 	 *            The page class to render as a response
 	 */
-	public final void setResponsePage(final Class pageClass)
+	public final void setResponsePage(final Class< ? extends Page> pageClass)
 	{
 		setResponsePage(pageClass, null);
 	}
@@ -674,7 +677,8 @@
 	 * @param pageParameters
 	 *            The page parameters that gets appended to the bookmarkable url,
 	 */
-	public final void setResponsePage(final Class pageClass, final PageParameters pageParameters)
+	public final void setResponsePage(final Class< ? extends Page> pageClass,
+		final PageParameters pageParameters)
 	{
 		setResponsePage(pageClass, pageParameters, getCurrentPageMap());
 	}
@@ -690,8 +694,8 @@
 	 * @param pageMapName
 	 *            The pagemap in which the response page should be created
 	 */
-	public final void setResponsePage(final Class pageClass, final PageParameters pageParameters,
-		final String pageMapName)
+	public final void setResponsePage(final Class< ? extends Page> pageClass,
+		final PageParameters pageParameters, final String pageMapName)
 	{
 		IRequestTarget target = new BookmarkablePageRequestTarget(pageMapName, pageClass,
 			pageParameters);
@@ -765,7 +769,8 @@
 	 *            Parameters to page
 	 * @return Bookmarkable URL to page
 	 */
-	public final CharSequence urlFor(final Class pageClass, final PageParameters parameters)
+	public final CharSequence urlFor(final Class< ? extends Page> pageClass,
+		final PageParameters parameters)
 	{
 		return urlFor(null, pageClass, parameters);
 	}
@@ -784,7 +789,7 @@
 	 *            The listener interface on the component
 	 * @return A URL that encodes a page, component, behavior and interface to call
 	 */
-	public final CharSequence urlFor(final Component component, final IBehavior behaviour,
+	public final CharSequence urlFor(final Component< ? > component, final IBehavior behaviour,
 		final RequestListenerInterface listener)
 	{
 		int index = component.getBehaviors().indexOf(behaviour);
@@ -825,7 +830,7 @@
 	 *            Additional parameters to pass to the page
 	 * @return A URL that encodes a page, component and interface to call
 	 */
-	public final CharSequence urlFor(final Component component,
+	public final CharSequence urlFor(final Component< ? > component,
 		final RequestListenerInterface listener, ValueMap params)
 	{
 		// Get Page holding component and mark it as stateful.
@@ -842,10 +847,10 @@
 
 			if (params != null)
 			{
-				Iterator it = params.entrySet().iterator();
+				Iterator<Map.Entry> it = params.entrySet().iterator();
 				while (it.hasNext())
 				{
-					final Map.Entry entry = (Entry)it.next();
+					final Map.Entry entry = it.next();
 					final String key = entry.getKey().toString();
 					final String value = entry.getValue().toString();
 					pageParameters.add(encode(key), encode(value));
@@ -875,10 +880,10 @@
 			if (params != null)
 			{
 				AppendingStringBuffer buff = new AppendingStringBuffer(url);
-				Iterator it = params.entrySet().iterator();
+				Iterator<Map.Entry> it = params.entrySet().iterator();
 				while (it.hasNext())
 				{
-					final Map.Entry entry = (Entry)it.next();
+					final Map.Entry entry = it.next();
 					final String key = entry.getKey().toString();
 					final String value = entry.getValue().toString();
 					buff.append("&");
@@ -892,7 +897,6 @@
 			}
 			return url;
 		}
-
 	}
 
 	/**
@@ -918,7 +922,7 @@
 	 *            The listener interface on the component
 	 * @return A URL that encodes a page, component and interface to call
 	 */
-	public final CharSequence urlFor(final Component component,
+	public final CharSequence urlFor(final Component< ? > component,
 		final RequestListenerInterface listener)
 	{
 		return urlFor(component, listener, null);
@@ -937,8 +941,8 @@
 	 *            Parameters to page
 	 * @return Bookmarkable URL to page
 	 */
-	public final CharSequence urlFor(final IPageMap pageMap, final Class pageClass,
-		final PageParameters parameters)
+	public final CharSequence urlFor(final IPageMap pageMap,
+		final Class< ? extends Page> pageClass, final PageParameters parameters)
 	{
 		final IRequestTarget target = new BookmarkablePageRequestTarget(pageMap == null
 			? PageMap.DEFAULT_NAME : pageMap.getName(), pageClass, parameters);
@@ -1042,7 +1046,7 @@
 		// furthermore, the targets will be gc-ed with this cycle too
 		for (int i = 0; i < requestTargets.size(); i++)
 		{
-			IRequestTarget target = (IRequestTarget)requestTargets.get(i);
+			IRequestTarget target = requestTargets.get(i);
 			if (target != null)
 			{
 				try
@@ -1443,11 +1447,6 @@
 	}
 
 	/**
-	 * MetaDataEntry array.
-	 */
-	private MetaDataEntry[] metaData;
-
-	/**
 	 * Sets the metadata for this request cycle using the given key. If the metadata object is not
 	 * of the correct type for the metadata key, an IllegalArgumentException will be thrown. For
 	 * information on creating MetaDataKeys, see {@link MetaDataKey}.
@@ -1456,6 +1455,7 @@
 	 *            The singleton key for the metadata
 	 * @param object
 	 *            The metadata object
+	 * @param <T>
 	 * @throws IllegalArgumentException
 	 * @see MetaDataKey
 	 */

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Resource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Resource.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Resource.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Resource.java Fri Apr 11 02:50:49 2008
@@ -21,6 +21,7 @@
 import org.apache.wicket.request.target.resource.ResourceStreamRequestTarget;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.time.Time;
+import org.apache.wicket.util.value.IValueMap;
 import org.apache.wicket.util.value.ValueMap;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -65,7 +66,7 @@
 	/**
 	 * ThreadLocal to keep any parameters associated with the request for this resource
 	 */
-	private static final ThreadLocal parameters = new ThreadLocal();
+	private static final ThreadLocal<IValueMap> parameters = new ThreadLocal<IValueMap>();
 
 	/**
 	 * Constructor
@@ -147,7 +148,7 @@
 	 * @param parameters
 	 *            Map of query parameters that parameterize this resource
 	 */
-	public final void setParameters(final Map parameters)
+	public final void setParameters(final Map< ? , ? > parameters)
 	{
 		if (parameters == null)
 		{
@@ -176,8 +177,10 @@
 	{
 		if (parameters.get() == null)
 		{
-			return new ValueMap(RequestCycle.get().getRequest().getRequestParameters()
-					.getParameters());
+			return new ValueMap(RequestCycle.get()
+				.getRequest()
+				.getRequestParameters()
+				.getParameters());
 		}
 		return (ValueMap)parameters.get();
 	}

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java Fri Apr 11 02:50:49 2008
@@ -80,7 +80,7 @@
 	 * @param name
 	 *            The name of the resource
 	 */
-	public ResourceReference(final Class scope, final String name)
+	public ResourceReference(final Class< ? > scope, final String name)
 	{
 		this(scope, name, null, null);
 	}
@@ -100,7 +100,7 @@
 	 * @param style
 	 *            The Style of the PackageResource
 	 */
-	public ResourceReference(final Class scope, final String name, Locale locale, String style)
+	public ResourceReference(final Class< ? > scope, final String name, Locale locale, String style)
 	{
 		scopeName = scope.getName();
 		this.name = name;
@@ -167,14 +167,15 @@
 	/**
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
+	@Override
 	public boolean equals(Object obj)
 	{
 		if (obj instanceof ResourceReference)
 		{
 			ResourceReference that = (ResourceReference)obj;
 			return Objects.equal(getScope().getName(), that.getScope().getName()) &&
-					Objects.equal(name, that.name) && Objects.equal(locale, that.locale) &&
-					Objects.equal(style, that.style);
+				Objects.equal(name, that.name) && Objects.equal(locale, that.locale) &&
+				Objects.equal(style, that.style);
 		}
 		return false;
 	}
@@ -210,7 +211,7 @@
 	/**
 	 * @return Scope
 	 */
-	public final Class getScope()
+	public final Class< ? > getScope()
 	{
 		return Classes.resolveClass(scopeName);
 	}
@@ -236,6 +237,7 @@
 	/**
 	 * @see java.lang.Object#hashCode()
 	 */
+	@Override
 	public int hashCode()
 	{
 		int result = 17;
@@ -277,10 +279,11 @@
 	/**
 	 * @see java.lang.Object#toString()
 	 */
+	@Override
 	public String toString()
 	{
 		return "[ResourceReference name = " + name + ", scope = " + scopeName + ", locale = " +
-				locale + ", style = " + style + "]";
+			locale + ", style = " + style + "]";
 	}
 
 	/**
@@ -291,7 +294,7 @@
 	protected Resource newResource()
 	{
 		PackageResource packageResource = PackageResource.get(getScope(), getName(), getLocale(),
-				getStyle());
+			getStyle());
 		if (packageResource != null)
 		{
 			locale = packageResource.getLocale();
@@ -299,7 +302,7 @@
 		else
 		{
 			throw new IllegalArgumentException("package resource [scope=" + getScope() + ",name=" +
-					getName() + ",locale=" + getLocale() + "style=" + getStyle() + "] not found");
+				getName() + ",locale=" + getLocale() + "style=" + getStyle() + "] not found");
 		}
 		return packageResource;
 	}

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Response.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Response.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Response.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Response.java Fri Apr 11 02:50:49 2008
@@ -93,14 +93,18 @@
 	 */
 	public final AppendingStringBuffer filter(AppendingStringBuffer responseBuffer)
 	{
-		List responseFilters = Application.get().getRequestCycleSettings().getResponseFilters();
+		List<IResponseFilter> responseFilters = Application.get()
+			.getRequestCycleSettings()
+			.getResponseFilters();
+
 		if (responseFilters == null)
 		{
 			return responseBuffer;
 		}
+
 		for (int i = 0; i < responseFilters.size(); i++)
 		{
-			IResponseFilter filter = (IResponseFilter)responseFilters.get(i);
+			IResponseFilter filter = responseFilters.get(i);
 			responseBuffer = filter.filter(responseBuffer);
 		}
 		return responseBuffer;

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseAtInterceptPageException.java Fri Apr 11 02:50:49 2008
@@ -58,7 +58,7 @@
 	 * @param interceptPageClass
 	 *            Class of intercept page to instantiate
 	 */
-	public RestartResponseAtInterceptPageException(final Class interceptPageClass)
+	public RestartResponseAtInterceptPageException(final Class< ? extends Page> interceptPageClass)
 	{
 		if (interceptPageClass == null)
 		{
@@ -101,7 +101,7 @@
 	 * @param interceptPageClass
 	 *            The intercept page class to redirect to
 	 */
-	private void redirectToInterceptPage(final Class interceptPageClass)
+	private void redirectToInterceptPage(final Class< ? extends Page> interceptPageClass)
 	{
 		final RequestCycle cycle = RequestCycle.get();
 		final Page requestPage = cycle.getRequest().getPage();

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseException.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseException.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseException.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RestartResponseException.java Fri Apr 11 02:50:49 2008
@@ -32,7 +32,7 @@
 	 * @param pageClass
 	 *            class of bookmarkable page
 	 */
-	public RestartResponseException(Class pageClass)
+	public RestartResponseException(Class< ? extends Page> pageClass)
 	{
 		RequestCycle.get().setResponsePage(pageClass);
 	}
@@ -45,7 +45,7 @@
 	 * @param params
 	 *            bookmarkable page parameters
 	 */
-	public RestartResponseException(Class pageClass, PageParameters params)
+	public RestartResponseException(Class< ? extends Page> pageClass, PageParameters params)
 	{
 		RequestCycle.get().setResponsePage(pageClass, params);
 	}

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java Fri Apr 11 02:50:49 2008
@@ -164,7 +164,7 @@
 	private static final ThreadLocal<Session> current = new ThreadLocal<Session>();
 
 	/** A store for dirty objects for one request */
-	private static final ThreadLocal<List> dirtyObjects = new ThreadLocal<List>();
+	private static final ThreadLocal<List<IClusterable>> dirtyObjects = new ThreadLocal<List<IClusterable>>();
 
 	/** Logging object */
 	private static final Logger log = LoggerFactory.getLogger(Session.class);
@@ -175,11 +175,14 @@
 	private static final long serialVersionUID = 1L;
 
 	/** A store for touched pages for one request */
-	private static final ThreadLocal<List> touchedPages = new ThreadLocal<List>();
+	private static final ThreadLocal<List<Page>> touchedPages = new ThreadLocal<List<Page>>();
 
 	/** Prefix for attributes holding page map entries */
 	static final String pageMapEntryAttributePrefix = "p:";
 
+	/** */
+	private int pageIdCounter = 0;
+
 	/**
 	 * Checks if the <code>Session</code> threadlocal is set in this thread
 	 * 
@@ -306,7 +309,7 @@
 	private Locale locale;
 
 	/** Application level meta data. */
-	private MetaDataEntry[] metaData;
+	private MetaDataEntry< ? >[] metaData;
 
 	/**
 	 * We need to know both thread that keeps the pagemap lock and the RequestCycle
@@ -343,7 +346,7 @@
 	private transient Map<String, Object> temporarySessionAttributes;
 
 	/** A linked list for last used pagemap queue */
-	private final LinkedList/* <IPageMap> */<IPageMap>usedPageMaps = new LinkedList<IPageMap>();
+	private final LinkedList/* <IPageMap> */<IPageMap> usedPageMaps = new LinkedList<IPageMap>();
 
 	/**
 	 * Constructor. Note that {@link RequestCycle} is not available until this constructor returns.
@@ -1011,7 +1014,7 @@
 	 * @throws IllegalArgumentException
 	 * @see MetaDataKey
 	 */
-	public final void setMetaData(final MetaDataKey key, final Serializable object)
+	public final void setMetaData(final MetaDataKey< ? > key, final Serializable object)
 	{
 		metaData = key.set(metaData, object);
 	}
@@ -1067,7 +1070,7 @@
 	 */
 	public final void untouch(Page page)
 	{
-		List lst = touchedPages.get();
+		List<Page> lst = touchedPages.get();
 		if (lst != null)
 		{
 			lst.remove(page);
@@ -1362,13 +1365,13 @@
 	 */
 	final void requestDetached()
 	{
-		List touchedPages = Session.touchedPages.get();
+		List<Page> touchedPages = Session.touchedPages.get();
 		Session.touchedPages.set(null);
 		if (touchedPages != null)
 		{
 			for (int i = 0; i < touchedPages.size(); i++)
 			{
-				Page page = (Page)touchedPages.get(i);
+				Page page = touchedPages.get(i);
 				page.getPageMap().put(page);
 			}
 		}
@@ -1390,7 +1393,7 @@
 			}
 		}
 
-		List dirtyObjects = Session.dirtyObjects.get();
+		List<IClusterable> dirtyObjects = Session.dirtyObjects.get();
 		Session.dirtyObjects.set(null);
 
 		Map<String, Object> tempMap = new HashMap<String, Object>();
@@ -1398,7 +1401,7 @@
 		// Go through all dirty entries, replicating any dirty objects
 		if (dirtyObjects != null)
 		{
-			for (final Iterator iterator = dirtyObjects.iterator(); iterator.hasNext();)
+			for (final Iterator<IClusterable> iterator = dirtyObjects.iterator(); iterator.hasNext();)
 			{
 				String attribute = null;
 				Object object = iterator.next();
@@ -1460,8 +1463,10 @@
 		}
 	}
 
-	private int pageIdCounter = 0;
-
+	/**
+	 * 
+	 * @return
+	 */
 	synchronized protected int nextPageId()
 	{
 		return pageIdCounter++;

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java Fri Apr 11 02:50:49 2008
@@ -92,13 +92,13 @@
 	}
 
 	/** Map of Class to alias String */
-	private final Map/* <Class, String> */classAliasMap = new WeakHashMap();
+	private final Map<Class< ? >, String> classAliasMap = new WeakHashMap<Class< ? >, String>();
 
 	/** Map of alias String to WeakReference(Class) */
-	private final Map/* <String, WeakReference<Class>> */aliasClassMap = new HashMap();
+	private final Map<String, WeakReference<Class< ? >>> aliasClassMap = new HashMap<String, WeakReference<Class< ? >>>();
 
 	/** Map of shared resources states */
-	private final Map/* <String, Resource> */resourceMap = new HashMap();
+	private final Map<String, Resource> resourceMap = new HashMap<String, Resource>();
 
 	/**
 	 * Construct.
@@ -124,14 +124,14 @@
 	 * @param resource
 	 *            Resource to store
 	 */
-	public final void add(final Class scope, final String name, final Locale locale,
-			final String style, final Resource resource)
+	public final void add(final Class< ? > scope, final String name, final Locale locale,
+		final String style, final Resource resource)
 	{
 		// Store resource
 		final String key = resourceKey(scope, name, locale, style);
 		synchronized (resourceMap)
 		{
-			Resource value = (Resource)resourceMap.get(key);
+			Resource value = resourceMap.get(key);
 			if (value == null)
 			{
 				resourceMap.put(key, resource);
@@ -186,8 +186,8 @@
 	 * 
 	 * @return The logical resource
 	 */
-	public final Resource get(final Class scope, final String name, final Locale locale,
-			final String style, boolean exact)
+	public final Resource get(final Class< ? > scope, final String name, final Locale locale,
+		final String style, boolean exact)
 	{
 		// 1. Look for fully qualified entry with locale and style
 		if (locale != null && style != null)
@@ -250,7 +250,7 @@
 	{
 		synchronized (resourceMap)
 		{
-			return (Resource)resourceMap.get(key);
+			return resourceMap.get(key);
 		}
 	}
 
@@ -263,10 +263,10 @@
 	 * @param alias
 	 *            The alias string.
 	 */
-	public final void putClassAlias(Class clz, String alias)
+	public final void putClassAlias(Class< ? > clz, String alias)
 	{
 		classAliasMap.put(clz, alias);
-		aliasClassMap.put(alias, new WeakReference(clz));
+		aliasClassMap.put(alias, new WeakReference<Class< ? >>(clz));
 	}
 
 	/**
@@ -276,14 +276,14 @@
 	 * @return The class this is an alias for.
 	 * @see #putClassAlias(Class, String)
 	 */
-	public final Class getAliasClass(String alias)
+	public final Class< ? > getAliasClass(String alias)
 	{
-		Object classRef = aliasClassMap.get(alias);
+		WeakReference<Class< ? >> classRef = aliasClassMap.get(alias);
 		if (classRef == null)
 		{
 			return null;
 		}
-		return (Class)((WeakReference)classRef).get();
+		return classRef.get();
 	}
 
 	/**
@@ -313,10 +313,10 @@
 	 *            The style (see {@link org.apache.wicket.Session})
 	 * @return The localized path
 	 */
-	public String resourceKey(final Class scope, final String path, final Locale locale,
-			final String style)
+	public String resourceKey(final Class< ? > scope, final String path, final Locale locale,
+		final String style)
 	{
-		String alias = (String)classAliasMap.get(scope);
+		String alias = classAliasMap.get(scope);
 		if (alias == null)
 		{
 			alias = scope.getName();

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java Fri Apr 11 02:50:49 2008
@@ -52,7 +52,7 @@
 	 * 
 	 * @return List of attributes for this session
 	 */
-	List getAttributeNames(Request request);
+	List<String> getAttributeNames(Request request);
 
 
 	/**

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/collections/ArrayListStack.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/collections/ArrayListStack.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/collections/ArrayListStack.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/collections/ArrayListStack.java Fri Apr 11 02:50:49 2008
@@ -26,8 +26,9 @@
  * ArrayListStack(int) constructor.
  * 
  * @author Jonathan Locke
+ * @param <T>
  */
-public final class ArrayListStack extends ArrayList
+public final class ArrayListStack<T> extends ArrayList<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -56,7 +57,7 @@
 	 * @param collection
 	 *            The collection to add
 	 */
-	public ArrayListStack(final Collection collection)
+	public ArrayListStack(final Collection<T> collection)
 	{
 		super(collection);
 	}
@@ -67,7 +68,7 @@
 	 * @param item
 	 *            the item to be pushed onto this stack.
 	 */
-	public final void push(final Object item)
+	public final void push(final T item)
 	{
 		add(item);
 	}
@@ -79,9 +80,9 @@
 	 * @exception EmptyStackException
 	 *                If this stack is empty.
 	 */
-	public final Object pop()
+	public final T pop()
 	{
-		final Object top = peek();
+		final T top = peek();
 		remove(size() - 1);
 		return top;
 	}
@@ -93,7 +94,7 @@
 	 * @exception EmptyStackException
 	 *                If this stack is empty.
 	 */
-	public final Object peek()
+	public final T peek()
 	{
 		int size = size();
 		if (size == 0)
@@ -126,7 +127,7 @@
 	 * @return the 1-based position from the top of the stack where the object is located; the
 	 *         return value <code>-1</code> indicates that the object is not on the stack.
 	 */
-	public final int search(final Object o)
+	public final int search(final T o)
 	{
 		int i = lastIndexOf(o);
 		if (i >= 0)

Modified: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java?rev=647095&r1=647094&r2=647095&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java Fri Apr 11 02:50:49 2008
@@ -28,6 +28,7 @@
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.util.value.IValueMap;
 import org.apache.wicket.util.value.ValueMap;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,25 +37,28 @@
 /**
  * 
  * @author marrink
- * 
+ * @param <T>
+ *            The model object type
  */
-public class UsernamePasswordSignInPanel extends Panel
+public class UsernamePasswordSignInPanel<T> extends Panel<T>
 {
-	/**
-	 * 
-	 */
+	/** */
 	private static final long serialVersionUID = 1L;
+
+	/** */
 	private static final Logger log = LoggerFactory.getLogger(UsernamePasswordSignInPanel.class);
 
 	/**
 	 * Constructor.
+	 * 
+	 * @param id
 	 */
 	public UsernamePasswordSignInPanel(final String id)
 	{
 		super(id);
 
 		add(new FeedbackPanel("feedback"));
-		add(new Label("naam"));
+		add(new Label<Object>("naam"));
 		add(new SignInForm("signInForm"));
 	}
 
@@ -72,7 +76,7 @@
 	/**
 	 * Sign in form.
 	 */
-	public final class SignInForm extends StatelessForm
+	public final class SignInForm extends StatelessForm<IValueMap>
 	{
 		/** Voor serializatie. */
 		private static final long serialVersionUID = 1L;
@@ -88,22 +92,25 @@
 		 */
 		public SignInForm(final String id)
 		{
-			super(id, new CompoundPropertyModel(new ValueMap()));
+			super(id, new CompoundPropertyModel<IValueMap>(new ValueMap()));
 
 			// only save username, not passwords
-			add(new TextField("username").setPersistent(rememberMe));
+			add(new TextField<String>("username").setPersistent(rememberMe));
 			add(new PasswordTextField("password"));
 			// MarkupContainer row for remember me checkbox
-			WebMarkupContainer rememberMeRow = new WebMarkupContainer("rememberMeRow");
+			WebMarkupContainer<Boolean> rememberMeRow = new WebMarkupContainer<Boolean>(
+				"rememberMeRow");
 			add(rememberMeRow);
 
 			// Add rememberMe checkbox
-			rememberMeRow.add(new CheckBox("rememberMe", new PropertyModel(this, "rememberMe")));
+			rememberMeRow.add(new CheckBox("rememberMe", new PropertyModel<Boolean>(this,
+				"rememberMe")));
 		}
 
 		/**
 		 * @see wicket.markup.html.form.Form#onSubmit()
 		 */
+		@Override
 		public final void onSubmit()
 		{
 			if (!rememberMe)
@@ -128,12 +135,14 @@
 				// Try the component based localizer first. If not found try the
 				// application localizer. Else use the default
 				error(getLocalizer().getString("exception.login", this,
-						"Illegal username password combo"));
+					"Illegal username password combo"));
 			}
 		}
 
 		/**
 		 * Geeft terug of de waarden van het formulier bewaard moeten worden of niet.
+		 * 
+		 * @return
 		 */
 		public boolean getRememberMe()
 		{
@@ -142,11 +151,13 @@
 
 		/**
 		 * Zet of de waarden van het formulier bewaard moeten worden of niet.
+		 * 
+		 * @param rememberMe
 		 */
 		public void setRememberMe(boolean rememberMe)
 		{
 			this.rememberMe = rememberMe;
-			((FormComponent)get("username")).setPersistent(rememberMe);
+			((FormComponent< ? >)get("username")).setPersistent(rememberMe);
 		}
 	}
 }