You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/03/07 11:42:23 UTC

[13/24] WICKET-4439 Move classes around so that there are no two packages with the same name in different modules

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java b/wicket-core/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java
deleted file mode 100644
index c2d33ee..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.request.mapper;
-
-import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder;
-import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.request.resource.caching.IResourceCachingStrategy;
-import org.apache.wicket.util.IProvider;
-
-/**
- * Generic {@link ResourceReference} encoder that encodes and decodes non-mounted
- * {@link ResourceReference}s.
- * <p>
- * Decodes and encodes the following URLs:
- * 
- * <pre>
- *    /wicket/resource/org.apache.wicket.ResourceScope/name
- *    /wicket/resource/org.apache.wicket.ResourceScope/name?en
- *    /wicket/resource/org.apache.wicket.ResourceScope/name?-style
- *    /wicket/resource/org.apache.wicket.ResourceScope/resource/name.xyz?en_EN-style
- * </pre>
- * 
- * @author igor.vaynberg
- */
-public class ResourceReferenceMapper extends ParentPathReferenceRewriter
-{
-	/**
-	 * Construct.
-	 * 
-	 * @param pageParametersEncoder
-	 * @param parentPathPartEscapeSequence
-	 * @param cachingStrategy
-	 */
-	public ResourceReferenceMapper(IPageParametersEncoder pageParametersEncoder,
-		IProvider<String> parentPathPartEscapeSequence,
-		IProvider<IResourceCachingStrategy> cachingStrategy)
-	{
-		super(new BasicResourceReferenceMapper(pageParametersEncoder, cachingStrategy),
-			parentPathPartEscapeSequence);
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/mapper/StalePageException.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/mapper/StalePageException.java b/wicket-core/src/main/java/org/apache/wicket/request/mapper/StalePageException.java
deleted file mode 100644
index 8735a21..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/request/mapper/StalePageException.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.request.mapper;
-
-import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.request.component.IRequestablePage;
-
-/**
- * Exception invoked when when stale link has been clicked. The page should then be rerendered with
- * an explanatory error message.
- * 
- * @author Matej Knopp
- */
-public class StalePageException extends WicketRuntimeException
-{
-	private static final long serialVersionUID = 1L;
-
-	private final transient IRequestablePage page;
-
-	/**
-	 * 
-	 * Construct.
-	 * 
-	 * @param page
-	 */
-	public StalePageException(IRequestablePage page)
-	{
-		this.page = page;
-	}
-
-	/**
-	 * 
-	 * @return page instance
-	 */
-	public IRequestablePage getPage()
-	{
-		return page;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
index 544f7ad..fe78ea0 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
@@ -18,11 +18,10 @@ package org.apache.wicket.request.resource;
 
 import java.net.URLConnection;
 
-import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.util.time.Time;
-
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.wicket.util.time.Time;
+
 /**
  * An {@link IResource} for byte arrays. The byte array can be static - passed to the constructor,
  * or dynamic - by overriding

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
index 2aef173..753caf0 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
@@ -27,7 +27,7 @@ import org.apache.wicket.util.io.IOUtils;
 import org.apache.wicket.util.io.Streams;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.WebExternalResourceStream;
+import org.apache.wicket.core.util.resource.WebExternalResourceStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/IResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/IResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/IResource.java
index 1a6b1f4..26eaebb 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/IResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/IResource.java
@@ -16,11 +16,11 @@
  */
 package org.apache.wicket.request.resource;
 
-import org.apache.wicket.IClusterable;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.handler.resource.ResourceRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.io.IClusterable;
 import org.apache.wicket.util.lang.Args;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
index 467a151..46dcb7a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
@@ -30,11 +30,11 @@ import org.apache.wicket.request.resource.caching.IStaticCacheableResource;
 import org.apache.wicket.settings.IResourceSettings;
 import org.apache.wicket.util.io.IOUtils;
 import org.apache.wicket.util.lang.Packages;
-import org.apache.wicket.util.lang.WicketObjects;
+import org.apache.wicket.core.util.lang.WicketObjects;
 import org.apache.wicket.util.resource.IFixedLocationResourceStream;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.time.Time;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
index 6cb8d10..6becc8e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
@@ -24,7 +24,7 @@ import org.apache.wicket.Session;
 import org.apache.wicket.util.lang.Generics;
 import org.apache.wicket.util.lang.Packages;
 import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReference.java
index 49c354d..04521a8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReference.java
@@ -22,9 +22,10 @@ import java.util.Locale;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.markup.head.HeaderItem;
+import org.apache.wicket.util.io.IClusterable;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.lang.Objects;
-import org.apache.wicket.util.lang.WicketObjects;
+import org.apache.wicket.core.util.lang.WicketObjects;
 
 /**
  * Reference to a resource. Can be used to reference global resources.
@@ -38,7 +39,7 @@ import org.apache.wicket.util.lang.WicketObjects;
  * @author Matej Knopp
  * @author Juergen Donnerstag
  */
-public abstract class ResourceReference implements Serializable
+public abstract class ResourceReference implements IClusterable
 {
 	private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
index 7600aa8..53dd6cd 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
@@ -25,7 +25,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.lang.Bytes;
 import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.IResourceStreamWriter;
+import org.apache.wicket.core.util.resource.IResourceStreamWriter;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.time.Duration;
 import org.apache.wicket.util.time.Time;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/version/LastModifiedResourceVersion.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/version/LastModifiedResourceVersion.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/version/LastModifiedResourceVersion.java
index 0f213ca..e796e23 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/version/LastModifiedResourceVersion.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/version/LastModifiedResourceVersion.java
@@ -18,7 +18,6 @@ package org.apache.wicket.request.resource.caching.version;
 
 import org.apache.wicket.request.resource.caching.IStaticCacheableResource;
 import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.time.Time;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/resource/IPropertiesFactoryContext.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/IPropertiesFactoryContext.java b/wicket-core/src/main/java/org/apache/wicket/resource/IPropertiesFactoryContext.java
index 81901cf..e256236 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/IPropertiesFactoryContext.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/IPropertiesFactoryContext.java
@@ -17,7 +17,7 @@
 package org.apache.wicket.resource;
 
 import org.apache.wicket.Localizer;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
 import org.apache.wicket.util.watch.IModificationWatcher;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java b/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
index 18b98f8..efaa937 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
@@ -30,7 +30,7 @@ import org.apache.wicket.util.io.IOUtils;
 import org.apache.wicket.util.listener.IChangeListener;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
 import org.apache.wicket.util.value.ValueMap;
 import org.apache.wicket.util.watch.IModificationWatcher;
 import org.apache.wicket.util.watch.ModificationWatcher;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java b/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
index 126113c..7052e54 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
@@ -21,10 +21,10 @@ import java.io.InputStream;
 import java.nio.charset.Charset;
 
 import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.util.io.IOUtils;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java
index 7e85b92..8bb050e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/TextTemplateResourceReference.java
@@ -20,11 +20,11 @@ import java.util.Locale;
 import java.util.Map;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.IClusterable;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.request.resource.ResourceStreamResource;
+import org.apache.wicket.util.io.IClusterable;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.template.PackageTextTemplate;
 import org.apache.wicket.util.template.TextTemplate;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/resource/bundles/IResourceBundle.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/bundles/IResourceBundle.java b/wicket-core/src/main/java/org/apache/wicket/resource/bundles/IResourceBundle.java
index 8f7e7a7..88bae70 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/bundles/IResourceBundle.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/bundles/IResourceBundle.java
@@ -18,8 +18,8 @@ package org.apache.wicket.resource.bundles;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.ResourceBundles;
-import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.markup.head.HeaderItem;
+import org.apache.wicket.request.resource.ResourceReference;
 
 /***
  * Interface implemented by {@link ResourceReference}s that are bundles. A bundle is a resource that

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java b/wicket-core/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
index 8d702d3..c9bfcf1 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
@@ -31,8 +31,8 @@ import org.apache.wicket.markup.repeater.AbstractRepeater;
 import org.apache.wicket.resource.IPropertiesFactory;
 import org.apache.wicket.resource.Properties;
 import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
-import org.apache.wicket.util.resource.locator.ResourceNameIterator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.ResourceNameIterator;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java b/wicket-core/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
index c4a967c..b526e71 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
@@ -21,7 +21,7 @@ import java.util.Locale;
 import org.apache.wicket.Application;
 import org.apache.wicket.resource.IPropertiesFactory;
 import org.apache.wicket.resource.Properties;
-import org.apache.wicket.util.resource.locator.ResourceNameIterator;
+import org.apache.wicket.core.util.resource.locator.ResourceNameIterator;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/response/filter/AjaxServerAndClientTimeFilter.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/response/filter/AjaxServerAndClientTimeFilter.java b/wicket-core/src/main/java/org/apache/wicket/response/filter/AjaxServerAndClientTimeFilter.java
index 26139a0..618a39b 100644
--- a/wicket-core/src/main/java/org/apache/wicket/response/filter/AjaxServerAndClientTimeFilter.java
+++ b/wicket-core/src/main/java/org/apache/wicket/response/filter/AjaxServerAndClientTimeFilter.java
@@ -22,7 +22,7 @@ import java.util.Map;
 import org.apache.wicket.Application;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.util.string.AppendingStringBuffer;
-import org.apache.wicket.util.string.JavaScriptUtils;
+import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.apache.wicket.util.string.interpolator.MapVariableInterpolator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,7 +56,7 @@ public class AjaxServerAndClientTimeFilter implements IResponseFilter
 	private static Logger log = LoggerFactory.getLogger(AjaxServerAndClientTimeFilter.class);
 
 	/**
-	 * @see org.apache.wicket.IResponseFilter#filter(org.apache.wicket.util.string.AppendingStringBuffer)
+	 * @see IResponseFilter#filter(org.apache.wicket.util.string.AppendingStringBuffer)
 	 */
 	@Override
 	public AppendingStringBuffer filter(AppendingStringBuffer responseBuffer)

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/response/filter/ServerAndClientTimeFilter.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/response/filter/ServerAndClientTimeFilter.java b/wicket-core/src/main/java/org/apache/wicket/response/filter/ServerAndClientTimeFilter.java
index b003bc2..47f637f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/response/filter/ServerAndClientTimeFilter.java
+++ b/wicket-core/src/main/java/org/apache/wicket/response/filter/ServerAndClientTimeFilter.java
@@ -23,7 +23,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.util.string.AppendingStringBuffer;
-import org.apache.wicket.util.string.JavaScriptUtils;
+import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,7 +56,7 @@ public class ServerAndClientTimeFilter implements IResponseFilter
 	private static final Logger log = LoggerFactory.getLogger(ServerAndClientTimeFilter.class);
 
 	/**
-	 * @see org.apache.wicket.IResponseFilter#filter(AppendingStringBuffer)
+	 * @see IResponseFilter#filter(AppendingStringBuffer)
 	 */
 	@Override
 	public AppendingStringBuffer filter(AppendingStringBuffer responseBuffer)

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java b/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
index 9497f63..2b5beef 100644
--- a/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
@@ -33,7 +33,7 @@ import org.apache.wicket.application.IClassResolver;
 import org.apache.wicket.serialize.ISerializer;
 import org.apache.wicket.settings.IApplicationSettings;
 import org.apache.wicket.util.io.IOUtils;
-import org.apache.wicket.util.io.SerializableChecker;
+import org.apache.wicket.core.util.io.SerializableChecker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/settings/IRequestCycleSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/IRequestCycleSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/IRequestCycleSettings.java
index a269201..2d8e3c6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/settings/IRequestCycleSettings.java
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/IRequestCycleSettings.java
@@ -124,7 +124,7 @@ public interface IRequestCycleSettings
 		 * </p>
 		 * <p>
 		 * Also, even with this strategy set, it is ignored for instances of
-		 * {@link org.apache.wicket.request.handler.BookmarkableListenerInterfaceRequestHandler},
+		 * {@link org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler},
 		 * because otherwise they wouldn't be bookmarkable.
 		 * </p>
 		 */

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/settings/IResourceSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/IResourceSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/IResourceSettings.java
index b93d68a..225f41c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/settings/IResourceSettings.java
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/IResourceSettings.java
@@ -23,19 +23,19 @@ import org.apache.wicket.IResourceFactory;
 import org.apache.wicket.Localizer;
 import org.apache.wicket.css.ICssCompressor;
 import org.apache.wicket.javascript.IJavaScriptCompressor;
+import org.apache.wicket.markup.head.PriorityFirstComparator;
+import org.apache.wicket.markup.head.ResourceAggregator;
+import org.apache.wicket.markup.head.ResourceAggregator.RecordedHeaderItem;
 import org.apache.wicket.markup.html.IPackageResourceGuard;
 import org.apache.wicket.markup.html.PackageResourceGuard;
-import org.apache.wicket.markup.head.PriorityFirstComparator;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.resource.caching.IResourceCachingStrategy;
 import org.apache.wicket.resource.IPropertiesFactory;
 import org.apache.wicket.resource.IPropertiesFactoryContext;
-import org.apache.wicket.markup.head.ResourceAggregator;
-import org.apache.wicket.markup.head.ResourceAggregator.RecordedHeaderItem;
 import org.apache.wicket.resource.loader.IStringResourceLoader;
 import org.apache.wicket.util.file.IFileCleaner;
 import org.apache.wicket.util.file.IResourceFinder;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
 import org.apache.wicket.util.time.Duration;
 import org.apache.wicket.util.watch.IModificationWatcher;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java
index a1e5f14..63e78dc 100644
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java
@@ -26,8 +26,9 @@ import org.apache.wicket.IResourceFactory;
 import org.apache.wicket.Localizer;
 import org.apache.wicket.css.ICssCompressor;
 import org.apache.wicket.javascript.IJavaScriptCompressor;
-import org.apache.wicket.markup.html.IPackageResourceGuard;
 import org.apache.wicket.markup.head.PriorityFirstComparator;
+import org.apache.wicket.markup.head.ResourceAggregator.RecordedHeaderItem;
+import org.apache.wicket.markup.html.IPackageResourceGuard;
 import org.apache.wicket.markup.html.SecurePackageResourceGuard;
 import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy;
@@ -39,7 +40,6 @@ import org.apache.wicket.request.resource.caching.version.LastModifiedResourceVe
 import org.apache.wicket.request.resource.caching.version.MessageDigestResourceVersion;
 import org.apache.wicket.request.resource.caching.version.RequestCycleCachedResourceVersion;
 import org.apache.wicket.resource.PropertiesFactory;
-import org.apache.wicket.markup.head.ResourceAggregator.RecordedHeaderItem;
 import org.apache.wicket.resource.loader.ClassStringResourceLoader;
 import org.apache.wicket.resource.loader.ComponentStringResourceLoader;
 import org.apache.wicket.resource.loader.IStringResourceLoader;
@@ -54,9 +54,9 @@ import org.apache.wicket.util.file.Path;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.lang.Generics;
 import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
-import org.apache.wicket.util.resource.locator.ResourceStreamLocator;
-import org.apache.wicket.util.resource.locator.caching.CachingResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.ResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.caching.CachingResourceStreamLocator;
 import org.apache.wicket.util.time.Duration;
 import org.apache.wicket.util.watch.IModificationWatcher;
 import org.apache.wicket.util.watch.ModificationWatcher;

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieDefaults.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieDefaults.java b/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieDefaults.java
index 19daf47..a438e1a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieDefaults.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/cookies/CookieDefaults.java
@@ -16,7 +16,7 @@
  */
 package org.apache.wicket.util.cookies;
 
-import org.apache.wicket.IClusterable;
+import org.apache.wicket.util.io.IClusterable;
 
 /**
  * This class provides default values that are used by the CookieValuePersister class when it

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/util/crypt/KeyInSessionSunJceCryptFactory.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/crypt/KeyInSessionSunJceCryptFactory.java b/wicket-core/src/main/java/org/apache/wicket/util/crypt/KeyInSessionSunJceCryptFactory.java
deleted file mode 100644
index eee5591..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/util/crypt/KeyInSessionSunJceCryptFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.crypt;
-
-import java.util.UUID;
-
-import org.apache.wicket.MetaDataKey;
-import org.apache.wicket.Session;
-
-/**
- * Crypt factory that produces {@link SunJceCrypt} instances based on http session-specific
- * encryption key. This allows each user to have their own encryption key, hardening against CSRF
- * attacks.
- * 
- * Note that the use of this crypt factory will result in an immediate creation of a http session
- * 
- * @author igor.vaynberg
- */
-public class KeyInSessionSunJceCryptFactory implements ICryptFactory
-{
-	/** metadata-key used to store crypto-key in session metadata */
-	private static MetaDataKey<String> KEY = new MetaDataKey<String>()
-	{
-		private static final long serialVersionUID = 1L;
-	};
-
-
-	@Override
-	public ICrypt newCrypt()
-	{
-		Session session = Session.get();
-		session.bind();
-
-		// retrieve or generate encryption key from session
-		String key = session.getMetaData(KEY);
-		if (key == null)
-		{
-			// generate new key
-			key = session.getId() + "." + UUID.randomUUID().toString();
-			session.setMetaData(KEY, key);
-		}
-
-		// build the crypt based on session key
-		ICrypt crypt = new SunJceCrypt();
-		crypt.setKey(key);
-		return crypt;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java b/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java
deleted file mode 100644
index 5c6374a..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/util/file/WebApplicationPath.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.file;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.ServletContext;
-
-import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.UrlResourceStream;
-import org.apache.wicket.util.string.StringList;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Maintain a list of paths which might either be ordinary folders of the filesystem or relative
- * paths to the web application's servlet context.
- * 
- * @author Johan Compagner
- */
-public final class WebApplicationPath extends Path
-{
-	private final static Logger log = LoggerFactory.getLogger(WebApplicationPath.class);
-
-	private static final String WEB_INF = "WEB-INF/";
-
-	/** The list of urls in the path */
-	private final List<String> webappPaths = new ArrayList<String>();
-
-	/** The web apps servlet context */
-	private final ServletContext servletContext;
-
-	/**
-	 * Constructor
-	 * 
-	 * @param servletContext
-	 *            The webapplication context where the resources must be loaded from
-	 */
-	public WebApplicationPath(final ServletContext servletContext)
-	{
-		this.servletContext = servletContext;
-
-		// adding root so servlet context resources are always checked
-		webappPaths.add("/");
-	}
-
-	/**
-	 * @param path
-	 *            add a path that is lookup through the servlet context
-	 */
-	@Override
-	public void add(String path)
-	{
-		final Folder folder = new Folder(path);
-		if (folder.exists())
-		{
-			log.debug("Added path '{}' as a folder.", path);
-			super.add(folder);
-		}
-		else
-		{
-			if (!path.startsWith("/"))
-			{
-				path = "/" + path;
-			}
-			if (!path.endsWith("/"))
-			{
-				path += "/";
-			}
-			log.debug("Added path '{}' as a web path.", path);
-			webappPaths.add(path);
-		}
-	}
-
-	/**
-	 * 
-	 * @see org.apache.wicket.util.file.IResourceFinder#find(Class, String)
-	 */
-	@Override
-	public IResourceStream find(final Class<?> clazz, final String pathname)
-	{
-		if (pathname == null)
-		{
-			return null;
-		}
-
-		IResourceStream resourceStream = super.find(clazz, pathname);
-
-		if (resourceStream == null && pathname.startsWith(WEB_INF) == false)
-		{
-			for (String path : webappPaths)
-			{
-				try
-				{
-					final URL url = servletContext.getResource(path + pathname);
-					if (url != null)
-					{
-						resourceStream = new UrlResourceStream(url);
-						break;
-					}
-				}
-				catch (Exception ex)
-				{
-					// ignore, file couldn't be found
-				}
-			}
-		}
-
-		return resourceStream;
-	}
-
-	public List<String> getWebappPaths()
-	{
-		return webappPaths;
-	}
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	@Override
-	public String toString()
-	{
-		return "[folders = " + StringList.valueOf(getFolders()) + ", webapppaths: " +
-			StringList.valueOf(webappPaths) + "]";
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/ddc37320/wicket-core/src/main/java/org/apache/wicket/util/io/SerializableChecker.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/io/SerializableChecker.java b/wicket-core/src/main/java/org/apache/wicket/util/io/SerializableChecker.java
deleted file mode 100644
index c5c11c6..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/util/io/SerializableChecker.java
+++ /dev/null
@@ -1,734 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.util.io;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.NotSerializableException;
-import java.io.ObjectOutput;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamClass;
-import java.io.ObjectStreamField;
-import java.io.OutputStream;
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Set;
-import java.util.Stack;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.WicketRuntimeException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Utility class that analyzes objects for non-serializable nodes. Construct, then call
- * {@link #check(Object)} with the object you want to check. When a non-serializable object is
- * found, a {@link WicketNotSerializableException} is thrown with a message that shows the trace up
- * to the not-serializable object. The exception is thrown for the first non-serializable instance
- * it encounters, so multiple problems will not be shown.
- * <p>
- * As this class depends heavily on JDK's serialization internals using introspection, analyzing may
- * not be possible, for instance when the runtime environment does not have sufficient rights to set
- * fields accessible that would otherwise be hidden. You should call
- * {@link SerializableChecker#isAvailable()} to see whether this class can operate properly. If it
- * doesn't, you should fall back to e.g. re-throwing/ printing the {@link NotSerializableException}
- * you probably got before using this class.
- * </p>
- * 
- * @author eelcohillenius
- * @author Al Maw
- */
-public final class SerializableChecker extends ObjectOutputStream
-{
-
-	/** log. */
-	private static final Logger log = LoggerFactory.getLogger(SerializableChecker.class);
-
-	/**
-	 * Exception that is thrown when a non-serializable object was found.
-	 */
-	public static final class WicketNotSerializableException extends WicketRuntimeException
-	{
-		private static final long serialVersionUID = 1L;
-
-		WicketNotSerializableException(String message, Throwable cause)
-		{
-			super(message, cause);
-		}
-	}
-
-	/**
-	 * Does absolutely nothing.
-	 */
-	private static class NoopOutputStream extends OutputStream
-	{
-		@Override
-		public void close()
-		{
-		}
-
-		@Override
-		public void flush()
-		{
-		}
-
-		@Override
-		public void write(byte[] b)
-		{
-		}
-
-		@Override
-		public void write(byte[] b, int i, int l)
-		{
-		}
-
-		@Override
-		public void write(int b)
-		{
-		}
-	}
-
-	private static abstract class ObjectOutputAdaptor implements ObjectOutput
-	{
-
-		@Override
-		public void close() throws IOException
-		{
-		}
-
-		@Override
-		public void flush() throws IOException
-		{
-		}
-
-		@Override
-		public void write(byte[] b) throws IOException
-		{
-		}
-
-		@Override
-		public void write(byte[] b, int off, int len) throws IOException
-		{
-		}
-
-		@Override
-		public void write(int b) throws IOException
-		{
-		}
-
-		@Override
-		public void writeBoolean(boolean v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeByte(int v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeBytes(String s) throws IOException
-		{
-		}
-
-		@Override
-		public void writeChar(int v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeChars(String s) throws IOException
-		{
-		}
-
-		@Override
-		public void writeDouble(double v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeFloat(float v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeInt(int v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeLong(long v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeShort(int v) throws IOException
-		{
-		}
-
-		@Override
-		public void writeUTF(String str) throws IOException
-		{
-		}
-	}
-
-	/** Holds information about the field and the resulting object being traced. */
-	private static final class TraceSlot
-	{
-		private final String fieldDescription;
-
-		private final Object object;
-
-		TraceSlot(Object object, String fieldDescription)
-		{
-			super();
-			this.object = object;
-			this.fieldDescription = fieldDescription;
-		}
-
-		@Override
-		public String toString()
-		{
-			return object.getClass() + " - " + fieldDescription;
-		}
-	}
-
-	private static final NoopOutputStream DUMMY_OUTPUT_STREAM = new NoopOutputStream();
-
-	/** Whether we can execute the tests. If false, check will just return. */
-	private static boolean available = true;
-
-	// this hack - accessing the serialization API through introspection - is
-	// the only way to use Java serialization for our purposes without writing
-	// the whole thing from scratch (and even then, it would be limited). This
-	// way of working is of course fragile for internal API changes, but as we
-	// do an extra check on availability and we report when we can't use this
-	// introspection fu, we'll find out soon enough and clients on this class
-	// can fall back on Java's default exception for serialization errors (which
-	// sucks and is the main reason for this attempt).
-	private static Method LOOKUP_METHOD;
-
-	private static Method GET_CLASS_DATA_LAYOUT_METHOD;
-
-	private static Method GET_NUM_OBJ_FIELDS_METHOD;
-
-	private static Method GET_OBJ_FIELD_VALUES_METHOD;
-
-	private static Method GET_FIELD_METHOD;
-
-	private static Method HAS_WRITE_REPLACE_METHOD_METHOD;
-
-	private static Method INVOKE_WRITE_REPLACE_METHOD;
-
-	static
-	{
-		try
-		{
-			LOOKUP_METHOD = ObjectStreamClass.class.getDeclaredMethod("lookup", new Class[] {
-					Class.class, Boolean.TYPE });
-			LOOKUP_METHOD.setAccessible(true);
-
-			GET_CLASS_DATA_LAYOUT_METHOD = ObjectStreamClass.class.getDeclaredMethod(
-				"getClassDataLayout", (Class[])null);
-			GET_CLASS_DATA_LAYOUT_METHOD.setAccessible(true);
-
-			GET_NUM_OBJ_FIELDS_METHOD = ObjectStreamClass.class.getDeclaredMethod(
-				"getNumObjFields", (Class[])null);
-			GET_NUM_OBJ_FIELDS_METHOD.setAccessible(true);
-
-			GET_OBJ_FIELD_VALUES_METHOD = ObjectStreamClass.class.getDeclaredMethod(
-				"getObjFieldValues", new Class[] { Object.class, Object[].class });
-			GET_OBJ_FIELD_VALUES_METHOD.setAccessible(true);
-
-			GET_FIELD_METHOD = ObjectStreamField.class.getDeclaredMethod("getField", (Class[])null);
-			GET_FIELD_METHOD.setAccessible(true);
-
-			HAS_WRITE_REPLACE_METHOD_METHOD = ObjectStreamClass.class.getDeclaredMethod(
-				"hasWriteReplaceMethod", (Class[])null);
-			HAS_WRITE_REPLACE_METHOD_METHOD.setAccessible(true);
-
-			INVOKE_WRITE_REPLACE_METHOD = ObjectStreamClass.class.getDeclaredMethod(
-				"invokeWriteReplace", new Class[] { Object.class });
-			INVOKE_WRITE_REPLACE_METHOD.setAccessible(true);
-		}
-		catch (Exception e)
-		{
-			log.warn("SerializableChecker not available", e);
-			available = false;
-		}
-	}
-
-	/**
-	 * Gets whether we can execute the tests. If false, calling {@link #check(Object)} will just
-	 * return and you are advised to rely on the {@link NotSerializableException}. Clients are
-	 * advised to call this method prior to calling the check method.
-	 * 
-	 * @return whether security settings and underlying API etc allow for accessing the
-	 *         serialization API using introspection
-	 */
-	public static boolean isAvailable()
-	{
-		return available;
-	}
-
-	/** object stack that with the trace path. */
-	private final LinkedList<TraceSlot> traceStack = new LinkedList<TraceSlot>();
-
-	/** set for checking circular references. */
-	private final Map<Object, Object> checked = new IdentityHashMap<Object, Object>();
-
-	/** string stack with current names pushed. */
-	private final LinkedList<String> nameStack = new LinkedList<String>();
-
-	/** root object being analyzed. */
-	private Object root;
-
-	/** set of classes that had no writeObject methods at lookup (to avoid repeated checking) */
-	private final Set<Class<?>> writeObjectMethodMissing = new HashSet<Class<?>>();
-
-	/** current simple field name. */
-	private String simpleName = "";
-
-	/** current full field description. */
-	private String fieldDescription;
-
-	/** Exception that should be set as the cause when throwing a new exception. */
-	private final NotSerializableException exception;
-
-	private final Stack<Object> stack = new Stack<Object>();
-
-	/**
-	 * Construct.
-	 * 
-	 * @param exception
-	 *            exception that should be set as the cause when throwing a new exception
-	 * 
-	 * @throws IOException
-	 */
-	public SerializableChecker(NotSerializableException exception) throws IOException
-	{
-		this.exception = exception;
-	}
-
-	/**
-	 * @see java.io.ObjectOutputStream#reset()
-	 */
-	@Override
-	public void reset() throws IOException
-	{
-		root = null;
-		checked.clear();
-		fieldDescription = null;
-		simpleName = null;
-		traceStack.clear();
-		nameStack.clear();
-		writeObjectMethodMissing.clear();
-	}
-
-	private void check(Object obj)
-	{
-		if (obj == null)
-		{
-			return;
-		}
-
-		try
-		{
-			if (stack.contains(obj))
-			{
-				return;
-			}
-		}
-		catch (RuntimeException e)
-		{
-			log.warn("Wasn't possible to check the object " + obj.getClass() +
-				" possible due an problematic implementation of equals method");
-			/*
-			 * Can't check if this obj were in stack, giving up because we don't want to throw an
-			 * invaluable exception to user. The main goal of this checker is to find non
-			 * serializable data
-			 */
-			return;
-		}
-
-		stack.push(obj);
-		try
-		{
-			internalCheck(obj);
-		}
-		finally
-		{
-			stack.pop();
-		}
-	}
-
-	private void internalCheck(Object obj)
-	{
-		if (obj == null)
-		{
-			return;
-		}
-
-		Class<?> cls = obj.getClass();
-		nameStack.add(simpleName);
-		traceStack.add(new TraceSlot(obj, fieldDescription));
-
-		if (!(obj instanceof Serializable) && (!Proxy.isProxyClass(cls)))
-		{
-			throw new WicketNotSerializableException(
-				toPrettyPrintedStack(obj.getClass().getName()), exception);
-		}
-
-		ObjectStreamClass desc;
-		for (;;)
-		{
-			try
-			{
-				desc = (ObjectStreamClass)LOOKUP_METHOD.invoke(null, cls, Boolean.TRUE);
-				Class<?> repCl;
-				if (!(Boolean)HAS_WRITE_REPLACE_METHOD_METHOD.invoke(desc, (Object[])null) ||
-					(obj = INVOKE_WRITE_REPLACE_METHOD.invoke(desc, obj)) == null ||
-					(repCl = obj.getClass()) == cls)
-				{
-					break;
-				}
-				cls = repCl;
-			}
-			catch (IllegalAccessException e)
-			{
-				throw new RuntimeException(e);
-			}
-			catch (InvocationTargetException e)
-			{
-				throw new RuntimeException(e);
-			}
-		}
-
-		if (cls.isPrimitive())
-		{
-			// skip
-		}
-		else if (cls.isArray())
-		{
-			checked.put(obj, null);
-			Class<?> ccl = cls.getComponentType();
-			if (!(ccl.isPrimitive()))
-			{
-				Object[] objs = (Object[])obj;
-				for (int i = 0; i < objs.length; i++)
-				{
-					String arrayPos = "[" + i + "]";
-					simpleName = arrayPos;
-					fieldDescription += arrayPos;
-					check(objs[i]);
-				}
-			}
-		}
-		else if (obj instanceof Externalizable && (!Proxy.isProxyClass(cls)))
-		{
-			Externalizable extObj = (Externalizable)obj;
-			try
-			{
-				extObj.writeExternal(new ObjectOutputAdaptor()
-				{
-					private int count = 0;
-
-					@Override
-					public void writeObject(Object streamObj) throws IOException
-					{
-						// Check for circular reference.
-						if (checked.containsKey(streamObj))
-						{
-							return;
-						}
-
-						checked.put(streamObj, null);
-						String arrayPos = "[write:" + count++ + "]";
-						simpleName = arrayPos;
-						fieldDescription += arrayPos;
-
-						check(streamObj);
-					}
-				});
-			}
-			catch (Exception e)
-			{
-				if (e instanceof WicketNotSerializableException)
-				{
-					throw (WicketNotSerializableException)e;
-				}
-				log.warn("error delegating to Externalizable : " + e.getMessage() + ", path: " +
-					currentPath());
-			}
-		}
-		else
-		{
-			Method writeObjectMethod = null;
-			if (writeObjectMethodMissing.contains(cls) == false)
-			{
-				try
-				{
-					writeObjectMethod = cls.getDeclaredMethod("writeObject",
-						new Class[] { java.io.ObjectOutputStream.class });
-				}
-				catch (SecurityException e)
-				{
-					// we can't access / set accessible to true
-					writeObjectMethodMissing.add(cls);
-				}
-				catch (NoSuchMethodException e)
-				{
-					// cls doesn't have that method
-					writeObjectMethodMissing.add(cls);
-				}
-			}
-
-			final Object original = obj;
-			if (writeObjectMethod != null)
-			{
-				class InterceptingObjectOutputStream extends ObjectOutputStream
-				{
-					private int counter;
-
-					InterceptingObjectOutputStream() throws IOException
-					{
-						super(DUMMY_OUTPUT_STREAM);
-						enableReplaceObject(true);
-					}
-
-					@Override
-					protected Object replaceObject(Object streamObj) throws IOException
-					{
-						if (streamObj == original)
-						{
-							return streamObj;
-						}
-
-						counter++;
-						// Check for circular reference.
-						if (checked.containsKey(streamObj))
-						{
-							return null;
-						}
-
-						checked.put(streamObj, null);
-						String arrayPos = "[write:" + counter + "]";
-						simpleName = arrayPos;
-						fieldDescription += arrayPos;
-						check(streamObj);
-						return streamObj;
-					}
-				}
-				try
-				{
-					InterceptingObjectOutputStream ioos = new InterceptingObjectOutputStream();
-					ioos.writeObject(obj);
-				}
-				catch (Exception e)
-				{
-					if (e instanceof WicketNotSerializableException)
-					{
-						throw (WicketNotSerializableException)e;
-					}
-					log.warn("error delegating to writeObject : " + e.getMessage() + ", path: " +
-						currentPath());
-				}
-			}
-			else
-			{
-				Object[] slots;
-				try
-				{
-					slots = (Object[])GET_CLASS_DATA_LAYOUT_METHOD.invoke(desc, (Object[])null);
-				}
-				catch (Exception e)
-				{
-					throw new RuntimeException(e);
-				}
-				for (Object slot : slots)
-				{
-					ObjectStreamClass slotDesc;
-					try
-					{
-						Field descField = slot.getClass().getDeclaredField("desc");
-						descField.setAccessible(true);
-						slotDesc = (ObjectStreamClass)descField.get(slot);
-					}
-					catch (Exception e)
-					{
-						throw new RuntimeException(e);
-					}
-					checked.put(obj, null);
-					checkFields(obj, slotDesc);
-				}
-			}
-		}
-
-		traceStack.removeLast();
-		nameStack.removeLast();
-	}
-
-	private void checkFields(Object obj, ObjectStreamClass desc)
-	{
-		int numFields;
-		try
-		{
-			numFields = (Integer)GET_NUM_OBJ_FIELDS_METHOD.invoke(desc, (Object[])null);
-		}
-		catch (IllegalAccessException e)
-		{
-			throw new RuntimeException(e);
-		}
-		catch (InvocationTargetException e)
-		{
-			throw new RuntimeException(e);
-		}
-
-		if (numFields > 0)
-		{
-			int numPrimFields;
-			ObjectStreamField[] fields = desc.getFields();
-			Object[] objVals = new Object[numFields];
-			numPrimFields = fields.length - objVals.length;
-			try
-			{
-				GET_OBJ_FIELD_VALUES_METHOD.invoke(desc, obj, objVals);
-			}
-			catch (IllegalAccessException e)
-			{
-				throw new RuntimeException(e);
-			}
-			catch (InvocationTargetException e)
-			{
-				throw new RuntimeException(e);
-			}
-			for (int i = 0; i < objVals.length; i++)
-			{
-				if (objVals[i] instanceof String || objVals[i] instanceof Number ||
-					objVals[i] instanceof Date || objVals[i] instanceof Boolean ||
-					objVals[i] instanceof Class)
-				{
-					// filter out common cases
-					continue;
-				}
-
-				// Check for circular reference.
-				if (checked.containsKey(objVals[i]))
-				{
-					continue;
-				}
-
-				ObjectStreamField fieldDesc = fields[numPrimFields + i];
-				Field field;
-				try
-				{
-					field = (Field)GET_FIELD_METHOD.invoke(fieldDesc, (Object[])null);
-				}
-				catch (IllegalAccessException e)
-				{
-					throw new RuntimeException(e);
-				}
-				catch (InvocationTargetException e)
-				{
-					throw new RuntimeException(e);
-				}
-
-				field.getName();
-				simpleName = field.getName();
-				fieldDescription = field.toString();
-				check(objVals[i]);
-			}
-		}
-	}
-
-	/**
-	 * @return name from root to current node concatenated with slashes
-	 */
-	private StringBuilder currentPath()
-	{
-		StringBuilder b = new StringBuilder();
-		for (Iterator<String> it = nameStack.iterator(); it.hasNext();)
-		{
-			b.append(it.next());
-			if (it.hasNext())
-			{
-				b.append('/');
-			}
-		}
-		return b;
-	}
-
-	/**
-	 * Dump with indentation.
-	 * 
-	 * @param type
-	 *            the type that couldn't be serialized
-	 * @return A very pretty dump
-	 */
-	private final String toPrettyPrintedStack(String type)
-	{
-		StringBuilder result = new StringBuilder();
-		StringBuilder spaces = new StringBuilder();
-		result.append("Unable to serialize class: ");
-		result.append(type);
-		result.append("\nField hierarchy is:");
-		for (Iterator<TraceSlot> i = traceStack.listIterator(); i.hasNext();)
-		{
-			spaces.append("  ");
-			TraceSlot slot = i.next();
-			result.append("\n").append(spaces).append(slot.fieldDescription);
-			result.append(" [class=").append(slot.object.getClass().getName());
-			if (slot.object instanceof Component)
-			{
-				Component component = (Component)slot.object;
-				result.append(", path=").append(component.getPath());
-			}
-			result.append("]");
-		}
-		result.append(" <----- field that is not serializable");
-		return result.toString();
-	}
-
-	/**
-	 * @see java.io.ObjectOutputStream#writeObjectOverride(java.lang.Object)
-	 */
-	@Override
-	protected final void writeObjectOverride(Object obj) throws IOException
-	{
-		if (!available)
-		{
-			return;
-		}
-		root = obj;
-		if (fieldDescription == null)
-		{
-			fieldDescription = (root instanceof Component) ? ((Component)root).getPath() : "";
-		}
-
-		check(root);
-	}
-}
\ No newline at end of file