You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2013/11/28 20:36:12 UTC

[1/4] WICKET-5410 moved all settings to org.apache.wicket.settings

Updated Branches:
  refs/heads/master d7b13f72f -> 3ecbe996e


http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/SecuritySettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/SecuritySettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/SecuritySettings.java
deleted file mode 100644
index 96d66c8..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/SecuritySettings.java
+++ /dev/null
@@ -1,235 +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.settings.def;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.authentication.IAuthenticationStrategy;
-import org.apache.wicket.authentication.strategy.DefaultAuthenticationStrategy;
-import org.apache.wicket.authorization.IAuthorizationStrategy;
-import org.apache.wicket.authorization.IUnauthorizedComponentInstantiationListener;
-import org.apache.wicket.authorization.IUnauthorizedResourceRequestListener;
-import org.apache.wicket.authorization.UnauthorizedInstantiationException;
-import org.apache.wicket.util.crypt.CachingSunJceCryptFactory;
-import org.apache.wicket.util.crypt.ICryptFactory;
-import org.apache.wicket.util.lang.Args;
-
-/**
- * Interface for security related settings
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class SecuritySettings
-{
-	/**
-	 * encryption key used by default crypt factory
-	 */
-	public static final String DEFAULT_ENCRYPTION_KEY = "WiCkEt-FRAMEwork";
-
-	/** The authorization strategy. */
-	private IAuthorizationStrategy authorizationStrategy = IAuthorizationStrategy.ALLOW_ALL;
-
-	/** The authentication strategy. */
-	private IAuthenticationStrategy authenticationStrategy;
-
-	/** factory for creating crypt objects */
-	private ICryptFactory cryptFactory;
-
-	/**
-	 * Whether mounts should be enforced. If true, requests for mounted targets have to done through
-	 * the mounted paths. If, for instance, a bookmarkable page is mounted to a path, a request to
-	 * that same page via the bookmarkablePage parameter will be denied.
-	 */
-	private boolean enforceMounts = false;
-
-	/** Authorizer for component instantiations */
-	private static final IUnauthorizedComponentInstantiationListener DEFAULT_UNAUTHORIZED_COMPONENT_INSTANTIATION_LISTENER = new IUnauthorizedComponentInstantiationListener()
-	{
-		/**
-		 * Called when an unauthorized component instantiation is about to take place (but before it
-		 * happens).
-		 * 
-		 * @param component
-		 *            The partially constructed component (only the id is guaranteed to be valid).
-		 */
-		@Override
-		public void onUnauthorizedInstantiation(final Component component)
-		{
-			throw new UnauthorizedInstantiationException(component.getClass());
-		}
-	};
-
-	private IUnauthorizedComponentInstantiationListener unauthorizedComponentInstantiationListener =
-			DEFAULT_UNAUTHORIZED_COMPONENT_INSTANTIATION_LISTENER;
-
-	private static final IUnauthorizedResourceRequestListener DEFAULT_UNAUTHORIZED_RESOURCE_REQUEST_LISTENER =
-			new DefaultUnauthorizedResourceRequestListener();
-
-	private IUnauthorizedResourceRequestListener unauthorizedResourceRequestListener = DEFAULT_UNAUTHORIZED_RESOURCE_REQUEST_LISTENER;
-
-	/**
-	 * Gets the authorization strategy.
-	 *
-	 * @return Returns the authorizationStrategy.
-	 */
-	public IAuthorizationStrategy getAuthorizationStrategy()
-	{
-		return authorizationStrategy;
-	}
-
-	/**
-	 * Note: Prints a warning to stderr if no factory was set and {@link #DEFAULT_ENCRYPTION_KEY} is
-	 * used instead.
-	 * 
-	 * @return crypt factory used to generate crypt objects
-	 */
-	public synchronized ICryptFactory getCryptFactory()
-	{
-		if (cryptFactory == null)
-		{
-			System.err
-				.print("********************************************************************\n"
-					+ "*** WARNING: Wicket is using a DEFAULT_ENCRYPTION_KEY            ***\n"
-					+ "***                            ^^^^^^^^^^^^^^^^^^^^^^            ***\n"
-					+ "*** Do NOT deploy to your live server(s) without changing this.  ***\n"
-					+ "*** See SecuritySettings#setCryptFactory() for more information. ***\n"
-					+ "********************************************************************\n");
-
-			cryptFactory = new CachingSunJceCryptFactory(DEFAULT_ENCRYPTION_KEY);
-		}
-		return cryptFactory;
-	}
-
-	/**
-	 * Gets whether mounts should be enforced. If true, requests for mounted targets have to done
-	 * through the mounted paths. If, for instance, a bookmarkable page is mounted to a path, a
-	 * request to that same page via the bookmarkablePage parameter will be denied.
-	 *
-	 * @return Whether mounts should be enforced
-	 */
-	public boolean getEnforceMounts()
-	{
-		return enforceMounts;
-	}
-
-	/**
-	 * @return The listener
-	 * @see IUnauthorizedComponentInstantiationListener
-	 */
-	public IUnauthorizedComponentInstantiationListener getUnauthorizedComponentInstantiationListener()
-	{
-		return unauthorizedComponentInstantiationListener;
-	}
-
-	/**
-	 * Sets the authorization strategy.
-	 *
-	 * @param strategy
-	 *            new authorization strategy
-	 */
-	public void setAuthorizationStrategy(IAuthorizationStrategy strategy)
-	{
-		Args.notNull(strategy, "strategy");
-		authorizationStrategy = strategy;
-	}
-
-	/**
-	 * Sets the factory that will be used to create crypt objects. The crypt object returned from
-	 * the first call is cached.
-	 *
-	 * @param cryptFactory
-	 */
-	public void setCryptFactory(ICryptFactory cryptFactory)
-	{
-		Args.notNull(cryptFactory, "cryptFactory");
-		this.cryptFactory = cryptFactory;
-	}
-
-	/**
-	 * Sets whether mounts should be enforced. If true, requests for mounted targets have to done
-	 * through the mounted paths. If, for instance, a bookmarkable page is mounted to a path, a
-	 * request to that same page via the bookmarkablePage parameter will be denied.
-	 *
-	 * @param enforce
-	 *            Whether mounts should be enforced
-	 */
-	public void setEnforceMounts(boolean enforce)
-	{
-		enforceMounts = enforce;
-	}
-
-	/**
-	 * @param listener
-	 *            The listener to set
-	 * @see IUnauthorizedComponentInstantiationListener
-	 */
-	public void setUnauthorizedComponentInstantiationListener(
-		IUnauthorizedComponentInstantiationListener listener)
-	{
-		this.unauthorizedComponentInstantiationListener = listener == null ? DEFAULT_UNAUTHORIZED_COMPONENT_INSTANTIATION_LISTENER : listener;
-	}
-
-	/**
-	 * @return The listener that will be used when a request to an IResource is not allowed for some reason
-	 */
-	public IUnauthorizedResourceRequestListener getUnauthorizedResourceRequestListener()
-	{
-		return unauthorizedResourceRequestListener;
-	}
-
-	/**
-	 * Sets a listener that will be used when a request to an IResource is not allowed for some reason
-	 *
-	 * @param listener
-	 *          The listener
-	 */
-	public void setUnauthorizedResourceRequestListener(IUnauthorizedResourceRequestListener listener)
-	{
-		this.unauthorizedResourceRequestListener = listener == null ? DEFAULT_UNAUTHORIZED_RESOURCE_REQUEST_LISTENER : listener;
-	}
-
-	/**
-	 * Gets the authentication strategy.
-	 *
-	 * @return Returns the authentication strategy.
-	 */
-	public IAuthenticationStrategy getAuthenticationStrategy()
-	{
-		if (authenticationStrategy == null)
-		{
-			authenticationStrategy = new DefaultAuthenticationStrategy("LoggedIn");
-		}
-		return authenticationStrategy;
-	}
-
-	/**
-	 * Sets the authentication strategy.
-	 *
-	 * @param strategy
-	 *            new authentication strategy
-	 */
-	public void setAuthenticationStrategy(final IAuthenticationStrategy strategy)
-	{
-		authenticationStrategy = strategy;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java
deleted file mode 100644
index 2269f98..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java
+++ /dev/null
@@ -1,201 +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.settings.def;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.lang.Bytes;
-
-/**
- * An interface for settings related to the the storages where page instances are persisted -
- * {@link org.apache.wicket.pageStore.IPageStore},
- * {@link org.apache.wicket.pageStore.IDataStore} and {@link org.apache.wicket.page.IPageManager}.
- * <p>
- * For more information about page storages read <a
- * href="https://cwiki.apache.org/confluence/x/qIaoAQ">Page Storage - Wiki page</a>
- * </p>
- *
- * @since 1.5
- */
-public class StoreSettings
-{
-	private static final int DEFAULT_CACHE_SIZE = 40;
-
-	private static final Bytes DEFAULT_MAX_SIZE_PER_SESSION = Bytes.megabytes(10);
-
-	private static final int DEFAULT_ASYNCHRONOUS_QUEUE_CAPACITY = 100;
-
-	private int inmemoryCacheSize = DEFAULT_CACHE_SIZE;
-
-	private Bytes maxSizePerSession = DEFAULT_MAX_SIZE_PER_SESSION;
-
-	private File fileStoreFolder = null;
-
-	private int asynchronousQueueCapacity = DEFAULT_ASYNCHRONOUS_QUEUE_CAPACITY;
-
-	private boolean isAsynchronous = true;
-
-	/**
-	 * Construct.
-	 * 
-	 * @param application
-	 */
-	public StoreSettings(final Application application)
-	{
-	}
-
-	/**
-	 * @return the number of page instances which will be stored in the application scoped cache for
-	 *         faster retrieval
-	 */
-	public int getInmemoryCacheSize()
-	{
-		return inmemoryCacheSize;
-	}
-
-	/**
-	 * Sets the maximum number of page instances which will be stored in the application scoped
-	 * second level cache for faster retrieval
-	 *
-	 * @param inmemoryCacheSize
-	 *            the maximum number of page instances which will be held in the application scoped
-	 *            cache
-	 */
-	public void setInmemoryCacheSize(int inmemoryCacheSize)
-	{
-		this.inmemoryCacheSize = inmemoryCacheSize;
-	}
-
-	/**
-	 * @return maximum page size. After this size is exceeded,
-	 * the {@link org.apache.wicket.pageStore.DiskDataStore} will start saving the
-	 * pages at the beginning of file.
-	 */
-	public Bytes getMaxSizePerSession()
-	{
-		return maxSizePerSession;
-	}
-
-	/**
-	 * Sets the maximum size of the {@link File} where page instances per session are stored. After
-	 * reaching this size the {@link org.apache.wicket.pageStore.DiskDataStore} will start overriding the
-	 * oldest pages at the beginning of the file.
-	 *
-	 * @param maxSizePerSession
-	 *            the maximum size of the file where page instances are stored per session. In
-	 *            bytes.
-	 */
-	public void setMaxSizePerSession(final Bytes maxSizePerSession)
-	{
-		this.maxSizePerSession = Args.notNull(maxSizePerSession, "maxSizePerSession");
-	}
-
-	/**
-	 * @return the location of the folder where {@link org.apache.wicket.pageStore.DiskDataStore} will store the files with page
-	 *         instances per session
-	 */
-	public File getFileStoreFolder()
-	{
-		if (fileStoreFolder == null)
-		{
-			if (Application.exists())
-			{
-				fileStoreFolder = (File)((WebApplication)Application.get()).getServletContext()
-					.getAttribute("javax.servlet.context.tempdir");
-			}
-
-			if (fileStoreFolder != null)
-			{
-				return fileStoreFolder;
-			}
-
-			try
-			{
-				fileStoreFolder = File.createTempFile("file-prefix", null).getParentFile();
-			}
-			catch (IOException e)
-			{
-				throw new WicketRuntimeException(e);
-			}
-		}
-		return fileStoreFolder;
-	}
-
-	/**
-	 * Sets the folder where {@link org.apache.wicket.pageStore.DiskDataStore} will store the files with page instances per
-	 * session
-	 *
-	 * @param fileStoreFolder
-	 *            the new location
-	 */
-	public void setFileStoreFolder(final File fileStoreFolder)
-	{
-		this.fileStoreFolder = Args.notNull(fileStoreFolder, "fileStoreFolder");
-	}
-
-	/**
-	 * @return the capacity of the queue used to store the pages which will be stored asynchronously
-	 * @see org.apache.wicket.pageStore.AsynchronousDataStore
-	 */
-	public int getAsynchronousQueueCapacity()
-	{
-		return asynchronousQueueCapacity;
-	}
-
-	/**
-	 * Sets the capacity of the queue used to store the pages which will be stored asynchronously
-	 *
-	 * @param queueCapacity
-	 *            the capacity of the queue
-	 * @see org.apache.wicket.pageStore.AsynchronousDataStore
-	 */
-	public void setAsynchronousQueueCapacity(int queueCapacity)
-	{
-		if (queueCapacity < 1)
-		{
-			throw new IllegalArgumentException(
-				"The capacity of the asynchronous queue should be at least 1.");
-		}
-		asynchronousQueueCapacity = queueCapacity;
-	}
-
-	/**
-	 * Sets a flag whether to wrap the configured {@link org.apache.wicket.pageStore.IDataStore} with
-	 * {@link org.apache.wicket.pageStore.AsynchronousDataStore}. By doing this the HTTP worker thread will not wait for the
-	 * actual write of the page's bytes into the wrapped {@link org.apache.wicket.pageStore.IDataStore}.
-	 *
-	 * @param async
-	 *            {@code true} to make it asynchronous, {@code false} - otherwise
-	 */
-	public void setAsynchronous(boolean async)
-	{
-		isAsynchronous = async;
-	}
-
-	/**
-	 * @return {@code true} if the storing of page's bytes is asynchronous
-	 */
-	public boolean isAsynchronous()
-	{
-		return isAsynchronous;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index 9f7c4c3..1603d08 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -123,7 +123,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.session.ISessionStore.UnboundListener;
-import org.apache.wicket.settings.def.RequestCycleSettings.RenderStrategy;
+import org.apache.wicket.settings.RequestCycleSettings.RenderStrategy;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.lang.Classes;
 import org.apache.wicket.util.lang.Generics;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java b/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
index 0ce397c..614ed33 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ApplicationSettingsTest.java
@@ -29,8 +29,8 @@ import org.apache.wicket.resource.loader.IStringResourceLoader;
 import org.apache.wicket.resource.loader.InitializerStringResourceLoader;
 import org.apache.wicket.resource.loader.PackageStringResourceLoader;
 import org.apache.wicket.resource.loader.ValidatorStringResourceLoader;
-import org.apache.wicket.settings.def.FrameworkSettings;
-import org.apache.wicket.settings.def.ResourceSettings;
+import org.apache.wicket.settings.FrameworkSettings;
+import org.apache.wicket.settings.ResourceSettings;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/DefaultExceptionMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/DefaultExceptionMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/DefaultExceptionMapperTest.java
index b0b1b40..7da753d 100644
--- a/wicket-core/src/test/java/org/apache/wicket/DefaultExceptionMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/DefaultExceptionMapperTest.java
@@ -28,7 +28,7 @@ import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.settings.def.ExceptionSettings;
+import org.apache.wicket.settings.ExceptionSettings;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.junit.Assert;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/LocalizerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/LocalizerTest.java b/wicket-core/src/test/java/org/apache/wicket/LocalizerTest.java
index 96f61a8..d98bc64 100644
--- a/wicket-core/src/test/java/org/apache/wicket/LocalizerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/LocalizerTest.java
@@ -30,7 +30,7 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.resource.DummyApplication;
 import org.apache.wicket.resource.loader.ComponentStringResourceLoader;
-import org.apache.wicket.settings.def.ResourceSettings;
+import org.apache.wicket.settings.ResourceSettings;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.tester.WicketTester;
 import org.apache.wicket.util.value.ValueMap;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/ajax/InternalErrorCallsAjaxOnFailureTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/InternalErrorCallsAjaxOnFailureTest.java b/wicket-core/src/test/java/org/apache/wicket/ajax/InternalErrorCallsAjaxOnFailureTest.java
index 30eb563..e85d6b6 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/InternalErrorCallsAjaxOnFailureTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/InternalErrorCallsAjaxOnFailureTest.java
@@ -21,7 +21,7 @@ import org.apache.wicket.markup.html.pages.ExceptionErrorPage;
 import org.apache.wicket.markup.html.pages.InternalErrorPage;
 import org.apache.wicket.protocol.http.mock.MockHttpServletResponse;
 import org.apache.wicket.resource.DummyApplication;
-import org.apache.wicket.settings.def.ExceptionSettings;
+import org.apache.wicket.settings.ExceptionSettings;
 import org.apache.wicket.util.tester.BaseWicketTester;
 import org.apache.wicket.util.tester.WicketTester;
 import org.junit.Test;
@@ -39,8 +39,8 @@ public class InternalErrorCallsAjaxOnFailureTest extends WicketTestCase
 {
 
 	/**
-	 * The default {@link org.apache.wicket.settings.def.ExceptionSettings#getAjaxErrorHandlingStrategy()} is
-	 * {@link org.apache.wicket.settings.def.ExceptionSettings.AjaxErrorStrategy#REDIRECT_TO_ERROR_PAGE}
+	 * The default {@link org.apache.wicket.settings.ExceptionSettings#getAjaxErrorHandlingStrategy()} is
+	 * {@link org.apache.wicket.settings.ExceptionSettings.AjaxErrorStrategy#REDIRECT_TO_ERROR_PAGE}
 	 */
 	@Test
 	public void showsInternalErrorPage()
@@ -63,7 +63,7 @@ public class InternalErrorCallsAjaxOnFailureTest extends WicketTestCase
 
 
 	/**
-	 * Setup {@link org.apache.wicket.settings.def.ExceptionSettings.AjaxErrorStrategy#INVOKE_FAILURE_HANDLER}
+	 * Setup {@link org.apache.wicket.settings.ExceptionSettings.AjaxErrorStrategy#INVOKE_FAILURE_HANDLER}
 	 * so Wicket will not redirect to the configured {@link InternalErrorPage}/{@link ExceptionErrorPage}
 	 * but will preserve the current page and send http status 500 to wicket-ajax.js
 	 */

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
index 7377e72..d1e33df 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/CryptoMapperTest.java
@@ -35,7 +35,7 @@ import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandle
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.UrlResourceReference;
-import org.apache.wicket.settings.def.SecuritySettings;
+import org.apache.wicket.settings.SecuritySettings;
 import org.apache.wicket.util.IProvider;
 import org.apache.wicket.util.crypt.CachingSunJceCryptFactory;
 import org.apache.wicket.util.crypt.ICrypt;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageOnePassRenderTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageOnePassRenderTest.java b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageOnePassRenderTest.java
index 4a076f5..9a0d771 100644
--- a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageOnePassRenderTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageOnePassRenderTest.java
@@ -18,7 +18,7 @@ package org.apache.wicket.dontstoreunrendered;
 
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-5415

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToBufferTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToBufferTest.java b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToBufferTest.java
index 6b99315..5dfadf9 100644
--- a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToBufferTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToBufferTest.java
@@ -18,7 +18,7 @@ package org.apache.wicket.dontstoreunrendered;
 
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-5415

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToRenderTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToRenderTest.java b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToRenderTest.java
index 578ade5..3c46306 100644
--- a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToRenderTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageRedirectToRenderTest.java
@@ -18,7 +18,7 @@ package org.apache.wicket.dontstoreunrendered;
 
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-5415

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
index cb2a060..45ca138 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
@@ -624,7 +624,7 @@ public final class MarkupParserTest extends WicketTestCase
 
 	/**
 	 * Tests that IE conditional comments are properly preserved when
-	 * {@link org.apache.wicket.settings.def.MarkupSettings#setStripComments(boolean)} is set to true
+	 * {@link org.apache.wicket.settings.MarkupSettings#setStripComments(boolean)} is set to true
 	 * 
 	 * @see <a href="https://issues.apache.org/jira/browse/WICKET-3648">WICKET-3648</a>
 	 * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
index c991172..398638c 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
@@ -105,7 +105,7 @@ public class MountedPageLinkTest extends WicketTestCase
 
 	/**
 	 * Tests if the {@link PageInstanceMapper} is used if
-	 * {@link org.apache.wicket.settings.def.PageSettings#getRecreateMountedPagesAfterExpiry()}
+	 * {@link org.apache.wicket.settings.PageSettings#getRecreateMountedPagesAfterExpiry()}
 	 * is disabled
 	 */
 	@Test

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskDataStoreTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskDataStoreTest.java b/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskDataStoreTest.java
index 03283e5..e69ead6 100644
--- a/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskDataStoreTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/pageStore/DiskDataStoreTest.java
@@ -26,7 +26,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.wicket.settings.def.StoreSettings;
+import org.apache.wicket.settings.StoreSettings;
 import org.apache.wicket.util.SlowTests;
 import org.apache.wicket.util.lang.Bytes;
 import org.junit.Assert;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java
index cab51d0..7128e8a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java
@@ -20,8 +20,8 @@ import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.pages.PageExpiredErrorPage;
-import org.apache.wicket.settings.def.ExceptionSettings;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.ExceptionSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 import org.junit.Test;
 
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
index 79e7b31..3ea7078 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
@@ -80,7 +80,7 @@ public class WebPageRendererTest
 	}
 
 	/**
-	 * Tests that when {@link org.apache.wicket.settings.def.RequestCycleSettings.RenderStrategy#ONE_PASS_RENDER}
+	 * Tests that when {@link org.apache.wicket.settings.RequestCycleSettings.RenderStrategy#ONE_PASS_RENDER}
 	 * is configured there wont be a redirect issued
 	 */
 	@Test
@@ -109,7 +109,7 @@ public class WebPageRendererTest
 	}
 
 	/**
-	 * Tests that even when {@link org.apache.wicket.settings.def.RequestCycleSettings.RenderStrategy#ONE_PASS_RENDER}
+	 * Tests that even when {@link org.apache.wicket.settings.RequestCycleSettings.RenderStrategy#ONE_PASS_RENDER}
 	 * is configured but the {@link RedirectPolicy} says that it needs to redirect it will redirect.
 	 */
 	@Test
@@ -144,7 +144,7 @@ public class WebPageRendererTest
 	}
 
 	/**
-	 * Tests that when {@link org.apache.wicket.settings.def.RequestCycleSettings.RenderStrategy#ONE_PASS_RENDER}
+	 * Tests that when {@link org.apache.wicket.settings.RequestCycleSettings.RenderStrategy#ONE_PASS_RENDER}
 	 * is configured but the current request is Ajax then a redirect should be issued
 	 */
 	@Test
@@ -211,7 +211,7 @@ public class WebPageRendererTest
 
 	/**
 	 * Tests that when the fromUrl and toUrl are the same and
-	 * {@link org.apache.wicket.settings.def.RequestCycleSettings.RenderStrategy#REDIRECT_TO_RENDER}
+	 * {@link org.apache.wicket.settings.RequestCycleSettings.RenderStrategy#REDIRECT_TO_RENDER}
 	 * is configured there wont be a redirect issued
 	 */
 	@Test
@@ -377,7 +377,7 @@ public class WebPageRendererTest
 	}
 
 	/**
-	 * Tests that when {@link org.apache.wicket.settings.def.RequestCycleSettings.RenderStrategy#REDIRECT_TO_RENDER}
+	 * Tests that when {@link org.apache.wicket.settings.RequestCycleSettings.RenderStrategy#REDIRECT_TO_RENDER}
 	 * is configured then no matter what are the fromUrl and toUrl a redirect will happen
 	 */
 	@Test

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessOnePassTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessOnePassTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessOnePassTest.java
index 115be55..8787dc4 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessOnePassTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessOnePassTest.java
@@ -18,7 +18,7 @@ package org.apache.wicket.util.tester;
 
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-5426

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
index 27ac62f..03d3f33 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
@@ -18,7 +18,7 @@ package org.apache.wicket.util.tester;
 
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-5426

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToRenderTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToRenderTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToRenderTest.java
index 83b578d..0f228e5 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToRenderTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToRenderTest.java
@@ -18,7 +18,7 @@ package org.apache.wicket.util.tester;
 
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-5426

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/DebugPageManagerProvider.java
----------------------------------------------------------------------
diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/DebugPageManagerProvider.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/DebugPageManagerProvider.java
index e219ed5..7893638 100644
--- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/DebugPageManagerProvider.java
+++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/DebugPageManagerProvider.java
@@ -22,7 +22,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.DefaultPageManagerProvider;
 import org.apache.wicket.pageStore.DiskDataStore;
 import org.apache.wicket.pageStore.IDataStore;
-import org.apache.wicket.settings.def.StoreSettings;
+import org.apache.wicket.settings.StoreSettings;
 import org.apache.wicket.util.lang.Bytes;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-examples/src/main/java/org/apache/wicket/examples/WicketExampleApplication.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/WicketExampleApplication.java b/wicket-examples/src/main/java/org/apache/wicket/examples/WicketExampleApplication.java
index 8fa6b93..2a63041 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/WicketExampleApplication.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/WicketExampleApplication.java
@@ -17,7 +17,7 @@
 package org.apache.wicket.examples;
 
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.settings.def.SecuritySettings;
+import org.apache.wicket.settings.SecuritySettings;
 import org.apache.wicket.util.crypt.ClassCryptFactory;
 import org.apache.wicket.util.crypt.NoCrypt;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java
index bd1251c..d5d99cb 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java
@@ -29,7 +29,7 @@ import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.settings.def.ExceptionSettings;
+import org.apache.wicket.settings.ExceptionSettings;
 
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-examples/src/main/java/org/apache/wicket/examples/library/LibraryApplication.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/library/LibraryApplication.java b/wicket-examples/src/main/java/org/apache/wicket/examples/library/LibraryApplication.java
index 886735d..3fbf445 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/library/LibraryApplication.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/library/LibraryApplication.java
@@ -23,7 +23,7 @@ import org.apache.wicket.authorization.strategies.page.SimplePageAuthorizationSt
 import org.apache.wicket.examples.WicketExampleApplication;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Response;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationSettingsMBean.java
----------------------------------------------------------------------
diff --git a/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationSettingsMBean.java b/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationSettingsMBean.java
index 8d84f4d..f8a5027 100644
--- a/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationSettingsMBean.java
+++ b/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationSettingsMBean.java
@@ -30,7 +30,7 @@ public interface ApplicationSettingsMBean
 	 * Gets the access denied page class.
 	 * 
 	 * @return Returns the accessDeniedPage.
-	 * @see org.apache.wicket.settings.def.ApplicationSettings#getAccessDeniedPage()
+	 * @see org.apache.wicket.settings.ApplicationSettings#getAccessDeniedPage()
 	 */
 	String getAccessDeniedPage();
 
@@ -53,7 +53,7 @@ public interface ApplicationSettingsMBean
 	 * Gets internal error page class.
 	 * 
 	 * @return Returns the internalErrorPage.
-	 * @see org.apache.wicket.settings.def.ApplicationSettings#getInternalErrorPage()
+	 * @see org.apache.wicket.settings.ApplicationSettings#getInternalErrorPage()
 	 */
 	String getInternalErrorPage();
 
@@ -61,7 +61,7 @@ public interface ApplicationSettingsMBean
 	 * Gets the page expired page class.
 	 * 
 	 * @return Returns the pageExpiredErrorPage.
-	 * @see org.apache.wicket.settings.def.ApplicationSettings#getPageExpiredErrorPage()
+	 * @see org.apache.wicket.settings.ApplicationSettings#getPageExpiredErrorPage()
 	 */
 	String getPageExpiredErrorPage();
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-jmx/src/main/java/org/apache/wicket/jmx/ResourceSettingsMBean.java
----------------------------------------------------------------------
diff --git a/wicket-jmx/src/main/java/org/apache/wicket/jmx/ResourceSettingsMBean.java b/wicket-jmx/src/main/java/org/apache/wicket/jmx/ResourceSettingsMBean.java
index f3af599..f1dfa61 100644
--- a/wicket-jmx/src/main/java/org/apache/wicket/jmx/ResourceSettingsMBean.java
+++ b/wicket-jmx/src/main/java/org/apache/wicket/jmx/ResourceSettingsMBean.java
@@ -51,13 +51,13 @@ public interface ResourceSettingsMBean
 	 * Gets the resource finder to use when searching for resources.
 	 * 
 	 * @return Returns the resourceFinder.
-	 * @see org.apache.wicket.settings.def.ResourceSettings#getResourceFinders()
+	 * @see org.apache.wicket.settings.ResourceSettings#getResourceFinders()
 	 */
 	String getResourceFinders();
 
 	/**
 	 * @return Returns the resourcePollFrequency.
-	 * @see org.apache.wicket.settings.def.ResourceSettings#setResourcePollFrequency(Duration)
+	 * @see org.apache.wicket.settings.ResourceSettings#setResourcePollFrequency(Duration)
 	 */
 	String getResourcePollFrequency();
 
@@ -72,7 +72,7 @@ public interface ResourceSettingsMBean
 	String[] getStringResourceLoaders();
 
 	/**
-	 * @see org.apache.wicket.settings.def.ResourceSettings#getThrowExceptionOnMissingResource()
+	 * @see org.apache.wicket.settings.ResourceSettings#getThrowExceptionOnMissingResource()
 	 * 
 	 * @return boolean
 	 */
@@ -84,7 +84,7 @@ public interface ResourceSettingsMBean
 	boolean getUseDefaultOnMissingResource();
 
 	/**
-	 * @see org.apache.wicket.settings.def.ResourceSettings#setThrowExceptionOnMissingResource(boolean)
+	 * @see org.apache.wicket.settings.ResourceSettings#setThrowExceptionOnMissingResource(boolean)
 	 * 
 	 * @param throwExceptionOnMissingResource
 	 */


[2/4] WICKET-5410 moved all settings to org.apache.wicket.settings

Posted by sv...@apache.org.
http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/DebugSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/DebugSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/DebugSettings.java
deleted file mode 100644
index 38515f0..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/DebugSettings.java
+++ /dev/null
@@ -1,213 +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.settings.def;
-
-/**
- * Settings interface for various debug settings
- * <p>
- * <i>componentUseCheck </i> (defaults to true in development mode) - causes the framework to do a
- * check after rendering each page to ensure that each component was used in rendering the markup.
- * If components are found that are not referenced in the markup, an appropriate error will be
- * displayed
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class DebugSettings
-{
-	/** ajax debug mode status */
-	private boolean ajaxDebugModeEnabled = false;
-
-	/** True to check that each component on a page is used */
-	private boolean componentUseCheck = true;
-
-	/**
-	 * whether wicket should track line precise additions of components for error reporting.
-	 */
-	private boolean linePreciseReportingOnAddComponentEnabled = false;
-
-	/**
-	 * whether wicket should track line precise instantiations of components for error reporting.
-	 */
-	private boolean linePreciseReportingOnNewComponentEnabled = false;
-
-	/**
-	 * Whether the container's class name should be printed to response (in a html comment).
-	 */
-	private boolean outputMarkupContainerClassName = false;
-
-	private boolean outputComponentPath = false;
-
-	private boolean developmentUtilitiesEnabled = false;
-
-	/**
-	 * @return true if componentUseCheck is enabled
-	 */
-	public boolean getComponentUseCheck()
-	{
-		return componentUseCheck;
-	}
-
-	/**
-	 * Returns status of ajax debug mode.
-	 *
-	 * @return true if ajax debug mode is enabled, false otherwise
-	 */
-	public boolean isAjaxDebugModeEnabled()
-	{
-		return ajaxDebugModeEnabled;
-	}
-
-	/**
-	 * Returns status of line precise error reporting for added components that are not present in
-	 * the markup: it points to the line where the component was added to the hierarchy in your Java
-	 * classes. This can cause a significant decrease in performance, do not use in customer facing
-	 * applications.
-	 *
-	 * @return true if the line precise error reporting is enabled
-	 */
-	public boolean isLinePreciseReportingOnAddComponentEnabled()
-	{
-		return linePreciseReportingOnAddComponentEnabled;
-	}
-
-	/**
-	 * Returns status of line precise error reporting for new components that are not present in the
-	 * markup: it points to the line where the component was created in your Java classes. This can
-	 * cause a significant decrease in performance, do not use in customer facing applications.
-	 *
-	 * @return true if the line precise error reporting is enabled
-	 */
-	public boolean isLinePreciseReportingOnNewComponentEnabled()
-	{
-		return linePreciseReportingOnNewComponentEnabled;
-	}
-
-	/**
-	 * Returns whether the output of markup container's should be wrapped by comments containing the
-	 * container's class name.
-	 *
-	 * @return true if the markup container's class name should be written to response
-	 */
-	public boolean isOutputMarkupContainerClassName()
-	{
-		return outputMarkupContainerClassName;
-	}
-
-	/**
-	 * Enables or disables ajax debug mode.
-	 *
-	 * @param enable
-	 */
-	public void setAjaxDebugModeEnabled(boolean enable)
-	{
-		ajaxDebugModeEnabled = enable;
-	}
-
-	/**
-	 * Sets componentUseCheck debug settings
-	 *
-	 * @param componentUseCheck
-	 */
-	public void setComponentUseCheck(final boolean componentUseCheck)
-	{
-		this.componentUseCheck = componentUseCheck;
-	}
-
-	/**
-	 * Enables line precise error reporting for added components that are not present in the markup:
-	 * it points to the line where the component was added to the hierarchy in your Java classes.
-	 * This can cause a significant decrease in performance, do not use in customer facing
-	 * applications.
-	 *
-	 * @param enable
-	 */
-	public void setLinePreciseReportingOnAddComponentEnabled(boolean enable)
-	{
-		linePreciseReportingOnAddComponentEnabled = enable;
-	}
-
-	/**
-	 * Enables line precise error reporting for new components that are not present in the markup:
-	 * it points to the line where the component was created in your Java classes. This can cause a
-	 * significant decrease in performance, do not use in customer facing applications.
-	 *
-	 * @param enable
-	 */
-	public void setLinePreciseReportingOnNewComponentEnabled(boolean enable)
-	{
-		linePreciseReportingOnNewComponentEnabled = enable;
-	}
-
-	/**
-	 * Enables wrapping output of markup container in html comments that contain markup container's
-	 * class name. (Useful for determining which part of page belongs to which markup file).
-	 *
-	 * @param enable
-	 */
-	public void setOutputMarkupContainerClassName(boolean enable)
-	{
-		outputMarkupContainerClassName = enable;
-	}
-
-	/**
-	 * @see #setOutputComponentPath(boolean)
-	 * @return <code>true</code> if output component path feature is enabled, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isOutputComponentPath()
-	{
-		return outputComponentPath;
-	}
-
-	/**
-	 * If set to <code>true</code> wicket will output component path in a <code>wicketpath</code>
-	 * attribute of the component tag. This can be useful for debugging and automating tests.
-	 *
-	 * @param outputComponentPath
-	 */
-	public void setOutputComponentPath(boolean outputComponentPath)
-	{
-		this.outputComponentPath = outputComponentPath;
-	}
-
-	/**
-	 * Enables all of the panels and pages, etc, from wicket-devutils package.
-	 *
-	 * @param enable
-	 */
-	public void setDevelopmentUtilitiesEnabled(boolean enable)
-	{
-		developmentUtilitiesEnabled = enable;
-	}
-
-	/**
-	 * Are all of the panels and pages, etc, from wicket-devutils package enabled?
-	 *
-	 * @return true if all of the panels and pages, etc, from wicket-devutils package are enabled
-	 */
-	public boolean isDevelopmentUtilitiesEnabled()
-	{
-		return developmentUtilitiesEnabled;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/DefaultUnauthorizedResourceRequestListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/DefaultUnauthorizedResourceRequestListener.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/DefaultUnauthorizedResourceRequestListener.java
deleted file mode 100644
index d13a994..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/DefaultUnauthorizedResourceRequestListener.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.settings.def;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.wicket.authorization.IUnauthorizedResourceRequestListener;
-import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.request.http.handler.ErrorCodeRequestHandler;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.IResource;
-
-/**
- * An IUnauthorizedResourceRequestListener that schedules a response with status code 403 (Forbidden)
- */
-public class DefaultUnauthorizedResourceRequestListener implements IUnauthorizedResourceRequestListener
-{
-	@Override
-	public void onUnauthorizedRequest(IResource resource, PageParameters parameters)
-	{
-		RequestCycle cycle = RequestCycle.get();
-		if (cycle != null)
-		{
-			IRequestHandler handler = new ErrorCodeRequestHandler(HttpServletResponse.SC_FORBIDDEN, createErrorMessage(resource, parameters));
-			cycle.replaceAllRequestHandlers(handler);
-		}
-	}
-
-	protected String createErrorMessage(IResource resource, PageParameters parameters)
-	{
-		return new StringBuilder()
-			.append("The request to resource '")
-			.append(resource)
-			.append("' with parameters '")
-			.append(parameters)
-			.append("' cannot be authorized.")
-			.toString();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/ExceptionSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/ExceptionSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/ExceptionSettings.java
deleted file mode 100644
index 1e75823..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/ExceptionSettings.java
+++ /dev/null
@@ -1,184 +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.settings.def;
-
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.lang.EnumeratedType;
-
-/**
- *
- * Settings interface for configuring exception handling related settings.
- * <p>
- * <i>unexpectedExceptionDisplay </i> (defaults to SHOW_EXCEPTION_PAGE) - Determines how exceptions
- * are displayed to the developer or user
- * <p>
- * <i>throwExceptionOnMissingResource </i> (defaults to true) - Set to true to throw a runtime
- * exception if a required string resource is not found. Set to false to return the requested
- * resource key surrounded by pairs of question mark characters (e.g. "??missingKey??")
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class ExceptionSettings
-{
-	/**
-	 * Enumerated type for different ways of displaying unexpected exceptions.
-	 */
-	public static final class UnexpectedExceptionDisplay extends EnumeratedType
-	{
-		private static final long serialVersionUID = 1L;
-
-		UnexpectedExceptionDisplay(final String name)
-		{
-			super(name);
-		}
-	}
-
-	/**
-	 * Indicates that an exception page appropriate to development should be shown when an
-	 * unexpected exception is thrown.
-	 */
-	public static final UnexpectedExceptionDisplay SHOW_EXCEPTION_PAGE = new UnexpectedExceptionDisplay(
-			"SHOW_EXCEPTION_PAGE");
-	/**
-	 * Indicates a generic internal error page should be shown when an unexpected exception is
-	 * thrown.
-	 */
-	public static final UnexpectedExceptionDisplay SHOW_INTERNAL_ERROR_PAGE = new UnexpectedExceptionDisplay(
-			"SHOW_INTERNAL_ERROR_PAGE");
-
-	/**
-	 * Indicates that no exception page should be shown when an unexpected exception is thrown.
-	 */
-	public static final UnexpectedExceptionDisplay SHOW_NO_EXCEPTION_PAGE = new UnexpectedExceptionDisplay(
-			"SHOW_NO_EXCEPTION_PAGE");
-
-	/**
-	 * How to handle errors while processing an Ajax request
-	 *
-	 * @author igor
-	 */
-	public static enum AjaxErrorStrategy {
-		/** redirect to error page, just like a normal requset */
-		REDIRECT_TO_ERROR_PAGE,
-		/** invoke client side failure handler */
-		INVOKE_FAILURE_HANDLER
-	}
-
-	/**
-	 * Which threads' stacktrace to dump when a page lock timeout occurs
-	 *
-	 * @author papegaaij
-	 */
-	public static enum ThreadDumpStrategy {
-		/** Do not dump any stacktraces */
-		NO_THREADS,
-		/** Dump the stacktrace of the thread holding the lock */
-		THREAD_HOLDING_LOCK,
-		/** Dump stacktraces of all threads of the application */
-		ALL_THREADS
-	}
-
-	/** Type of handling for unexpected exceptions */
-	private UnexpectedExceptionDisplay unexpectedExceptionDisplay = SHOW_EXCEPTION_PAGE;
-
-	private AjaxErrorStrategy errorHandlingStrategyDuringAjaxRequests = AjaxErrorStrategy.REDIRECT_TO_ERROR_PAGE;
-
-	/**
-	 * Strategy to use for dumping stack traces of live threads in the JVM.
-	 * <p>
-	 * By default will dump the stacktrace of the thread that holds the lock on the page.
-	 * </p>
-	 */
-	private ThreadDumpStrategy threadDumpStrategy = ThreadDumpStrategy.THREAD_HOLDING_LOCK;
-
-	/**
-	 * @return Returns the unexpectedExceptionDisplay.
-	 */
-	public UnexpectedExceptionDisplay getUnexpectedExceptionDisplay()
-	{
-		return unexpectedExceptionDisplay;
-	}
-
-	/**
-	 * The exception display type determines how the framework displays exceptions to you as a
-	 * developer or user.
-	 * <p>
-	 * The default value for exception display type is SHOW_EXCEPTION_PAGE. When this value is set
-	 * and an unhandled runtime exception is thrown by a page, a redirect to a helpful exception
-	 * display page will occur.
-	 * <p>
-	 * This is a developer feature, however, and you may want to instead show an internal error page
-	 * without developer details that allows a user to start over at the application's home page.
-	 * This can be accomplished by setting the exception display type to SHOW_INTERNAL_ERROR_PAGE.
-	 * <p>
-	 * Finally, if you are having trouble with the exception display pages themselves, you can
-	 * disable exception displaying entirely with the value SHOW_NO_EXCEPTION_PAGE. This will cause
-	 * the framework to re-throw any unhandled runtime exceptions after wrapping them in a
-	 * ServletException wrapper.
-	 *
-	 * @param unexpectedExceptionDisplay
-	 *            The unexpectedExceptionDisplay to set.
-	 */
-	public void setUnexpectedExceptionDisplay(UnexpectedExceptionDisplay unexpectedExceptionDisplay)
-	{
-		this.unexpectedExceptionDisplay = unexpectedExceptionDisplay;
-	}
-
-	/**
-	 * @return strategy used to handle errors during Ajax request processing
-	 */
-	public AjaxErrorStrategy getAjaxErrorHandlingStrategy()
-	{
-		return errorHandlingStrategyDuringAjaxRequests;
-	}
-
-	/**
-	 * Sets strategy used to handle errors during Ajax request processing
-	 *
-	 * @param errorHandlingStrategyDuringAjaxRequests
-	 */
-	public void setAjaxErrorHandlingStrategy(
-		AjaxErrorStrategy errorHandlingStrategyDuringAjaxRequests)
-	{
-		this.errorHandlingStrategyDuringAjaxRequests = errorHandlingStrategyDuringAjaxRequests;
-	}
-
-	/**
-	 * Sets the strategy to use for dumping stack traces of live threads in the JVM.
-	 *
-	 * @param strategy
-	 */
-	public void setThreadDumpStrategy(ThreadDumpStrategy strategy)
-	{
-		threadDumpStrategy = Args.notNull(strategy, "strategy");
-	}
-
-	/**
-	 * @return strategy to use for dumping stack traces of live threads in the JVM.
-	 */
-	public ThreadDumpStrategy getThreadDumpStrategy()
-	{
-		return threadDumpStrategy;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java
deleted file mode 100644
index 33c575e..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/FrameworkSettings.java
+++ /dev/null
@@ -1,179 +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.settings.def;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.Component;
-import org.apache.wicket.IComponentAwareEventSink;
-import org.apache.wicket.IDetachListener;
-import org.apache.wicket.IEventDispatcher;
-import org.apache.wicket.event.IEvent;
-import org.apache.wicket.event.IEventSink;
-import org.apache.wicket.serialize.ISerializer;
-import org.apache.wicket.serialize.java.JavaSerializer;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.string.Strings;
-
-/**
- * Framework settings for retrieving and configuring framework settings.
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class FrameworkSettings implements IEventDispatcher
-{
-	private IDetachListener detachListener;
-
-	private List<IEventDispatcher> eventDispatchers = null;
-
-	/**
-	 * The {@link ISerializer} that will be used to convert the pages to/from byte arrays
-	 */
-	private ISerializer serializer;
-
-	/**
-	 * Construct.
-	 * 
-	 * @param application
-	 */
-	public FrameworkSettings(final Application application)
-	{
-		serializer = new JavaSerializer(application.getApplicationKey());
-	}
-
-	/**
-	 * Gets the Wicket version. The Wicket version is in the same format as the version element in
-	 * the pom.xml file (project descriptor). The version is generated by maven in the build/release
-	 * cycle and put in the wicket.properties file located in the root folder of the Wicket jar.
-	 *
-	 * The version usually follows one of the following formats:
-	 * <ul>
-	 * <li>major.minor[.bug] for stable versions. 1.1, 1.2, 1.2.1 are examples</li>
-	 * <li>major.minor-state for development versions. 1.2-beta2, 1.3-SNAPSHOT are examples</li>
-	 * </ul>
-	 *
-	 * @return the Wicket version
-	 */
-	public String getVersion()
-	{
-		String implVersion = null;
-		Package pkg = getClass().getPackage();
-		if (pkg != null)
-		{
-			implVersion = pkg.getImplementationVersion();
-		}
-		return Strings.isEmpty(implVersion) ? "n/a" : implVersion;
-	}
-
-	/**
-	 * @return detach listener or <code>null</code> if none
-	 */
-	public IDetachListener getDetachListener()
-	{
-		return detachListener;
-	}
-
-	/**
-	 * Sets detach listener
-	 *
-	 * @param detachListener
-	 *            listener or <code>null</code> to remove
-	 */
-	public void setDetachListener(IDetachListener detachListener)
-	{
-		this.detachListener = detachListener;
-	}
-
-	/**
-	 * Registers a new event dispatcher
-	 *
-	 * @param dispatcher
-	 */
-	public void add(IEventDispatcher dispatcher)
-	{
-		Args.notNull(dispatcher, "dispatcher");
-		if (eventDispatchers == null)
-		{
-			eventDispatchers = new ArrayList<IEventDispatcher>();
-		}
-		if (!eventDispatchers.contains(dispatcher))
-		{
-			eventDispatchers.add(dispatcher);
-		}
-	}
-
-	/**
-	 * Dispatches event to registered dispatchers
-	 * 
-	 * @see IEventDispatcher#dispatchEvent(Object, IEvent, Component)
-	 * 
-	 * @param sink
-	 * @param event
-	 * @param component
-	 */
-	@Override
-	public void dispatchEvent(Object sink, IEvent<?> event, Component component)
-	{
-		// direct delivery
-		if (component != null && sink instanceof IComponentAwareEventSink)
-		{
-			((IComponentAwareEventSink)sink).onEvent(component, event);
-		}
-		else if (sink instanceof IEventSink)
-		{
-			((IEventSink)sink).onEvent(event);
-		}
-
-		// additional dispatchers delivery
-		if (eventDispatchers == null)
-		{
-			return;
-		}
-		for (IEventDispatcher dispatcher : eventDispatchers)
-		{
-			dispatcher.dispatchEvent(sink, event, component);
-		}
-	}
-
-	/**
-	 * Sets the {@link ISerializer} that will be used to convert objects to/from byte arrays
-	 *
-	 * @param serializer
-	 *            the {@link ISerializer} to use
-	 */
-	public void setSerializer(ISerializer serializer)
-	{
-		this.serializer = Args.notNull(serializer, "serializer");
-	}
-
-	/**
-	 * @return the {@link ISerializer} that will be used to convert objects to/from byte arrays
-	 */
-	public ISerializer getSerializer()
-	{
-		return serializer;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/JavaScriptLibrarySettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/JavaScriptLibrarySettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/JavaScriptLibrarySettings.java
deleted file mode 100644
index e0bf694..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/JavaScriptLibrarySettings.java
+++ /dev/null
@@ -1,121 +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.settings.def;
-
-import org.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference;
-import org.apache.wicket.ajax.WicketAjaxJQueryResourceReference;
-import org.apache.wicket.ajax.WicketEventJQueryResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.resource.JQueryResourceReference;
-import org.apache.wicket.util.lang.Args;
-
-/**
- * Interface for settings related to the JavaScript libraries that come with and are used by Wicket.
- * <p>
- * With these settings the user application can replace the JavaScript libraries used for Wicket's
- * event and Ajax functionality. By default Wicket uses {@linkplain JQueryResourceReference JQuery}
- * as a backing library but via this interface the application can replace the implementations of
- * wicket-event.js, wicket-ajax.js and wicket-ajax-debug.js to use implementations on other
- * libraries, such as YUI or DOJO. The resource reference implementations need to specify the
- * {@linkplain ResourceReference#getDependencies() dependency} on the backing library, if needed.
- *
- * @since 6.0
- */
-public class JavaScriptLibrarySettings
-{
-	private ResourceReference jQueryReference = JQueryResourceReference.get();
-
-	private ResourceReference wicketEventReference = WicketEventJQueryResourceReference.get();
-
-	private ResourceReference wicketAjaxReference = WicketAjaxJQueryResourceReference.get();
-
-	private ResourceReference wicketAjaxDebugReference = WicketAjaxDebugJQueryResourceReference.get();
-
-	/**
-	 * @return the reference to the JQuery JavaScript library used as backing library for
-	 *         wicket-event and wicket-ajax
-	 */
-	public ResourceReference getJQueryReference()
-	{
-		return jQueryReference;
-	}
-
-	/**
-	 * @param jQueryReference
-	 *            a reference to the JQuery JavaScript library used as backing library for
-	 *            wicket-event and wicket-ajax
-	 */
-	public void setJQueryReference(ResourceReference jQueryReference)
-	{
-		this.jQueryReference = Args.notNull(jQueryReference, "jQueryReference");
-	}
-
-	/**
-	 * @return the reference to the implementation of wicket-event.js
-	 */
-	public ResourceReference getWicketEventReference()
-	{
-		return wicketEventReference;
-	}
-
-	/**
-	 * @param wicketEventReference
-	 *            a reference to the implementation of wicket-event.js
-	 */
-	public void setWicketEventReference(ResourceReference wicketEventReference)
-	{
-		this.wicketEventReference = Args.notNull(wicketEventReference, "wicketEventReference");
-	}
-
-	/**
-	 * @return the reference to the implementation of wicket-ajax.js
-	 */
-	public ResourceReference getWicketAjaxReference()
-	{
-		return wicketAjaxReference;
-	}
-
-	/**
-	 * @param wicketAjaxReference
-	 *            a reference to the implementation of wicket-ajax.js
-	 */
-	public void setWicketAjaxReference(ResourceReference wicketAjaxReference)
-	{
-		this.wicketAjaxReference = Args.notNull(wicketAjaxReference, "wicketAjaxReference");
-	}
-
-	/**
-	 * The Wicket Ajax Debug Window.
-	 *
-	 * @return the reference to the implementation of wicket-ajax-debug.js
-	 */
-	public ResourceReference getWicketAjaxDebugReference()
-	{
-		return wicketAjaxDebugReference;
-	}
-
-	/**
-	 * @param wicketAjaxDebugReference
-	 *            a reference to the implementation of wicket-ajax-debug.js
-	 */
-	public void setWicketAjaxDebugReference(ResourceReference wicketAjaxDebugReference)
-	{
-		this.wicketAjaxDebugReference = Args.notNull(wicketAjaxDebugReference,
-			"wicketAjaxDebugReference");
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/MarkupSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/MarkupSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/MarkupSettings.java
deleted file mode 100644
index ddb3a6a..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/MarkupSettings.java
+++ /dev/null
@@ -1,233 +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.settings.def;
-
-import org.apache.wicket.markup.MarkupFactory;
-import org.apache.wicket.util.lang.Args;
-
-/**
- * Interface for markup related settings.
- * <p>
- * <i>compressWhitespace </i> (defaults to false) - Causes pages to render with redundant whitespace
- * removed. Whitespace stripping is not HTML or JavaScript savvy and can conceivably break pages,
- * but should provide significant performance improvements.
- * <p>
- * <i>stripComments</i> (defaults to false) - Set to true to strip HTML comments during markup
- * loading
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class MarkupSettings
-{
-	/** Application default for automatically resolving hrefs */
-	private boolean automaticLinking = false;
-
-	/** True if multiple tabs/spaces should be compressed to a single space */
-	private boolean compressWhitespace = false;
-
-	/** Default markup encoding. If null, the OS default will be used */
-	private String defaultMarkupEncoding;
-
-	/** Factory for creating markup parsers */
-	private MarkupFactory markupFactory;
-
-	/** if true than throw an exception if the xml declaration is missing from the markup file */
-	private boolean throwExceptionOnMissingXmlDeclaration = false;
-
-	/** Should HTML comments be stripped during rendering? */
-	private boolean stripComments = false;
-
-	/**
-	 * If true, wicket tags ( <wicket: ..>) and wicket:id attributes we be removed from output
-	 */
-	private boolean stripWicketTags = false;
-
-	/**
-	 * Construct
-	 */
-	public MarkupSettings()
-	{
-	}
-
-	/**
-	 * If true, automatic link resolution is enabled. Disabled by default.
-	 *
-	 * @see org.apache.wicket.markup.resolver.AutoLinkResolver
-	 * @see org.apache.wicket.markup.parser.filter.WicketLinkTagHandler
-	 * @return Returns the automaticLinking.
-	 */
-	public boolean getAutomaticLinking()
-	{
-		return automaticLinking;
-	}
-
-	/**
-	 * @return Returns the compressWhitespace.
-	 */
-	public boolean getCompressWhitespace()
-	{
-		return compressWhitespace;
-	}
-
-	/**
-	 * @since 1.1
-	 * @return Returns default encoding of markup files. If null, the operating system provided
-	 *         encoding will be used.
-	 */
-	public String getDefaultMarkupEncoding()
-	{
-		return defaultMarkupEncoding;
-	}
-
-	/**
-	 * Get the markup factory
-	 *
-	 * @return A new instance of MarkupFactory.
-	 */
-	public MarkupFactory getMarkupFactory()
-	{
-		if (markupFactory == null)
-		{
-			markupFactory = new MarkupFactory();
-		}
-		return markupFactory;
-	}
-
-	/**
-	 * @return Returns the stripComments.
-	 */
-	public boolean getStripComments()
-	{
-		return stripComments;
-	}
-
-	/**
-	 * Gets whether to remove wicket tags from the output.
-	 *
-	 * @return whether to remove wicket tags from the output
-	 */
-	public boolean getStripWicketTags()
-	{
-		return stripWicketTags;
-	}
-
-	/**
-	 * @since 1.3
-	 * @return if true, an exception is thrown if the markup file does not contain a xml declaration
-	 */
-	public boolean getThrowExceptionOnMissingXmlDeclaration()
-	{
-		return throwExceptionOnMissingXmlDeclaration;
-	}
-
-	/**
-	 * Application default for automatic link resolution.
-	 *
-	 * @param automaticLinking
-	 *            The automaticLinking to set.
-	 * @see org.apache.wicket.markup.resolver.AutoLinkResolver
-	 * @see org.apache.wicket.markup.parser.filter.WicketLinkTagHandler
-	 */
-	public void setAutomaticLinking(boolean automaticLinking)
-	{
-		this.automaticLinking = automaticLinking;
-	}
-
-	/**
-	 * Turns on whitespace compression. Multiple occurrences of space/tab characters will be
-	 * compressed to a single space. Multiple line breaks newline/carriage-return will also be
-	 * compressed to a single newline.
-	 * <p>
-	 * Compression is currently not HTML aware and so it may be possible for whitespace compression
-	 * to break pages. For this reason, whitespace compression is off by default and you should test
-	 * your application thoroughly after turning whitespace compression on.
-	 * <p>
-	 * Spaces are removed from markup at markup load time and there should be no effect on page
-	 * rendering speed. In fact, your pages should render faster with whitespace compression
-	 * enabled.
-	 *
-	 * @param compressWhitespace
-	 *            The compressWhitespace to set.
-	 */
-	public void setCompressWhitespace(final boolean compressWhitespace)
-	{
-		this.compressWhitespace = compressWhitespace;
-	}
-
-	/**
-	 * Set default encoding for markup files. If null, the encoding provided by the operating system
-	 * will be used.
-	 *
-	 * @since 1.1
-	 * @param encoding
-	 */
-	public void setDefaultMarkupEncoding(final String encoding)
-	{
-		defaultMarkupEncoding = encoding;
-	}
-
-	/**
-	 * Set a new markup factory
-	 *
-	 * @param factory
-	 */
-	public void setMarkupFactory(final MarkupFactory factory)
-	{
-		Args.notNull(factory, "markup factory");
-		markupFactory = factory;
-	}
-
-	/**
-	 * Enables stripping of markup comments denoted in markup by HTML comment tagging.
-	 *
-	 * @param stripComments
-	 *            True to strip markup comments from rendered pages
-	 */
-	public void setStripComments(boolean stripComments)
-	{
-		this.stripComments = stripComments;
-	}
-
-	/**
-	 * Sets whether to remove wicket tags from the output.
-	 *
-	 * @param stripWicketTags
-	 *            whether to remove wicket tags from the output
-	 */
-	public void setStripWicketTags(boolean stripWicketTags)
-	{
-		this.stripWicketTags = stripWicketTags;
-	}
-
-	/**
-	 * If true, an exception is thrown if the markup file does not contain a xml declaration
-	 *
-	 * @since 1.3
-	 * @param throwException
-	 */
-	public void setThrowExceptionOnMissingXmlDeclaration(boolean throwException)
-	{
-		throwExceptionOnMissingXmlDeclaration = throwException;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/PageSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/PageSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/PageSettings.java
deleted file mode 100644
index 4d7d92b..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/PageSettings.java
+++ /dev/null
@@ -1,118 +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.settings.def;
-
-import java.util.List;
-
-import org.apache.wicket.markup.resolver.IComponentResolver;
-import org.apache.wicket.util.lang.Generics;
-
-/**
- * Interface for page related settings.
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class PageSettings
-{
-	/** List of (static) ComponentResolvers */
-	private final List<IComponentResolver> componentResolvers = Generics.newArrayList();
-
-	/** Determines if pages should be managed by a version manager by default */
-	private boolean versionPagesByDefault = true;
-
-	/** determines if mounted pages should be recreated after expiry */
-	private boolean recreateMountedPagesAfterExpiry = true;
-
-	/**
-	 * Adds a component resolver to the list.
-	 *
-	 * @param resolver
-	 *            The {@link IComponentResolver} that is added
-	 */
-	public void addComponentResolver(IComponentResolver resolver)
-	{
-		componentResolvers.add(resolver);
-	}
-
-	/**
-	 * Get the (modifiable) list of IComponentResolvers.
-	 *
-	 * @return List of ComponentResolvers
-	 */
-	public List<IComponentResolver> getComponentResolvers()
-	{
-		return componentResolvers;
-	}
-
-	/**
-	 * @return whether all pages should should update their page id when their component hierarchy
-	 *      changes somehow
-	 */
-	public boolean getVersionPagesByDefault()
-	{
-		return versionPagesByDefault;
-	}
-
-	/**
-	 * A global setting that tells the pages to update their page id if their component
-	 * hierarchy changes somehow. This way versioned pages can have several versions
-	 * stored in the page stores and the user can go back and forth through the different
-	 * versions. If a page is not versioned then only its last state is keep in the page
-	 * stores and going back will lead the user to the page before the current one, not
-	 * to the previous state of the current one.
-	 *
-	 * @param pagesVersionedByDefault
-	 *      a flag that indicates whether pages should increase their page id when
-	 *      their component hierarchy changes somehow.
-	 */
-	public void setVersionPagesByDefault(boolean pagesVersionedByDefault)
-	{
-		versionPagesByDefault = pagesVersionedByDefault;
-	}
-
-	/**
-	 * When enabled (default), urls on mounted pages will contain the full mount path, including
-	 * PageParameters, allowing wicket to reinstantiate the page if got expired. When disabled, urls
-	 * only use the page id. If this setting is enabled, you should take care that names form fields
-	 * on mounted pages do not clash with the page parameters.
-	 *
-	 * @return if urls on mounted pages should be the full mount path
-	 * @see <a href="https://issues.apache.org/jira/browse/WICKET-4014">WICKET-4014</a>
-	 * @see <a href="https://issues.apache.org/jira/browse/WICKET-4290">WICKET-4290</a>
-	 */
-	public boolean getRecreateMountedPagesAfterExpiry()
-	{
-		return recreateMountedPagesAfterExpiry;
-	}
-
-	/**
-	 * Sets the recreateMountedPagesAfterExpiry setting
-	 *
-	 * @param recreateMountedPagesAfterExpiry
-	 */
-	public void setRecreateMountedPagesAfterExpiry(boolean recreateMountedPagesAfterExpiry)
-	{
-		this.recreateMountedPagesAfterExpiry = recreateMountedPagesAfterExpiry;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestCycleSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestCycleSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestCycleSettings.java
deleted file mode 100644
index d631a7a..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestCycleSettings.java
+++ /dev/null
@@ -1,407 +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.settings.def;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.wicket.response.filter.IResponseFilter;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.time.Duration;
-
-/**
- * Interface for request related settings
- * <p>
- * <i>bufferResponse </i> (defaults to true) - True if the application should buffer responses. This
- * does require some additional memory, but helps keep exception displays accurate because the whole
- * rendering process completes before the page is sent to the user, thus avoiding the possibility of
- * a partially rendered page.
- * <p>
- * <i>renderStrategy </i>- Sets in what way the render part of a request is handled. Basically,
- * there are two different options:
- * <ul>
- * <li>Direct, IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER. Everything is handled in one
- * physical request. This is efficient, and is the best option if you want to do sophisticated
- * clustering. It does not however, shield you from what is commonly known as the <i>Double submit
- * problem </i></li>
- * <li>Using a redirect. This follows the pattern <a
- * href="http://www.theserverside.com/articles/article.tss?l=RedirectAfterPost" >as described at the
- * serverside </a> and that is commonly known as Redirect after post. Wicket takes it one step
- * further to do any rendering after a redirect, so that not only form submits are shielded from the
- * double submit problem, but also the IRequestListener handlers (that could be e.g. a link that
- * deletes a row). With this pattern, you have two options to choose from:
- * <ul>
- * <li>IRequestCycleSettings.RenderStrategy.REDIRECT_TO_RENDER. This option first handles the
- * 'action' part of the request, which is either page construction (bookmarkable pages or the home
- * page) or calling a IRequestListener handler, such as Link.onClick. When that part is done, a
- * redirect is issued to the render part, which does all the rendering of the page and its
- * components. <strong>Be aware </strong> that this may mean, depending on whether you access any
- * models in the action part of the request, that attachment and detachment of some models is done
- * twice for a request.</li>
- * <li>IRequestCycleSettings.RenderStrategy.REDIRECT_TO_BUFFER. This option handles both the action-
- * and the render part of the request in one physical request, but instead of streaming the result
- * to the browser directly, it is kept in memory, and a redirect is issued to get this buffered
- * result (after which it is immediately removed). This option currently is the default render
- * strategy, as it shields you from the double submit problem, while being more efficient and less
- * error prone regarding to detachable models.</li>
- * </ul>
- * Note: In rare cases the strategies involving redirect may lose session data! For example: if
- * after the first phase of the strategy the server node fails without having the chance to
- * replicate the session then the second phase will be executed on another node and the whole
- * process will be restarted and thus anything stored in the first phase will be lost with the
- * failure of the server node. For similar reasons it is recommended to use sticky sessions when
- * using redirect strategies.</li>
- * </ul>
- *
- * <p>
- * More documentation is available about each setting in the setter method for the property.
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class RequestCycleSettings
-{
-	/**
-	 * Enum type for different render strategies
-	 */
-	public static enum RenderStrategy {
-		/**
-		 * All logical parts of a request (the action and render part) are handled within the same
-		 * request.
-		 * <p>
-		 * This strategy is more efficient than the 'REDIRECT_TO_RENDER' strategy, and doesn't have
-		 * some of the potential problems of it, it also does not solve the double submit problem.
-		 * It is however the best option to use when you want to do sophisticated (non-sticky
-		 * session) clustering.
-		 * </p>
-		 */
-		ONE_PASS_RENDER,
-
-		/**
-		 * All logical parts of a request (the action and render part) are handled within the same
-		 * request, but instead of streaming the render result to the browser directly, the result
-		 * is cached on the server. A client side redirect command is issued to the browser
-		 * specifically to render this request.
-		 */
-		REDIRECT_TO_BUFFER,
-
-		/**
-		 * The render part of a request (opposed to the 'action part' which is either the
-		 * construction of a bookmarkable page or the execution of a IRequestListener handler) is
-		 * handled by a separate request by issuing a redirect request to the browser. This is
-		 * commonly known as the 'redirect after submit' pattern, though in our case, we use it for
-		 * GET and POST requests instead of just the POST requests.
-		 * <p>
-		 * This pattern solves the 'refresh' problem. While it is a common feature of browsers to
-		 * refresh/ reload a web page, this results in problems in many dynamic web applications.
-		 * For example, when you have a link with an event handler that e.g. deletes a row from a
-		 * list, you usually want to ignore refresh requests after that link is clicked on. By using
-		 * this strategy, the refresh request only results in the re-rendering of the page without
-		 * executing the event handler again.
-		 * </p>
-		 * <p>
-		 * Though it solves the refresh problem, it introduces potential problems, as the request
-		 * that is logically one, are actually two separate request. Not only is this less
-		 * efficient, but this also can mean that within the same request attachment/ detachment of
-		 * models is done twice (in case you use models in the bookmarkable page constructors and
-		 * IRequestListener handlers). If you use this strategy, you should be aware of this
-		 * possibility, and should also be aware that for one logical request, actually two
-		 * instances of RequestCycle are created and processed.
-		 * </p>
-		 * <p>
-		 * Also, even with this strategy set, it is ignored for instances of
-		 * {@link org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler},
-		 * because otherwise they wouldn't be bookmarkable.
-		 * </p>
-		 */
-		REDIRECT_TO_RENDER
-	}
-
-	/** True if the response should be buffered */
-	private boolean bufferResponse = true;
-
-	/**
-	 * Whether Wicket should try to get extensive client info by redirecting to
-	 * {@link org.apache.wicket.markup.html.pages.BrowserInfoPage a page that polls for client
-	 * capabilities}. False by default.
-	 */
-	private boolean gatherExtendedBrowserInfo = false;
-
-	/**
-	 * The render strategy, defaults to 'REDIRECT_TO_BUFFER'. This property influences the default
-	 * way in how a logical request that consists of an 'action' and a 'render' part is handled, and
-	 * is mainly used to have a means to circumvent the 'refresh' problem.
-	 */
-	private RequestCycleSettings.RenderStrategy renderStrategy = RenderStrategy.REDIRECT_TO_BUFFER;
-
-	/** List of {@link IResponseFilter}s. */
-	private List<IResponseFilter> responseFilters;
-
-	/**
-	 * In order to do proper form parameter decoding it is important that the response and the
-	 * following request have the same encoding. see
-	 * http://www.crazysquirrel.com/computing/general/form-encoding.jspx for additional information.
-	 */
-	private String responseRequestEncoding = "UTF-8";
-
-	/**
-	 * The time that a request will by default be waiting for the previous request to be handled
-	 * before giving up. Defaults to one minute.
-	 */
-	private Duration timeout = Duration.ONE_MINUTE;
-
-	private int exceptionRetryCount = 10;
-
-// ****************************************************************************
-// IRequestCycleSettings Implementation
-// ****************************************************************************
-
-	/**
-	 * Adds a response filter to the list. Filters are evaluated in the order they have been added.
-	 *
-	 * @param responseFilter
-	 *            The {@link IResponseFilter} that is added
-	 */
-	public void addResponseFilter(IResponseFilter responseFilter)
-	{
-		if (responseFilters == null)
-		{
-			responseFilters = new ArrayList<IResponseFilter>(3);
-		}
-		responseFilters.add(responseFilter);
-	}
-
-	/**
-	 * Decides whether to buffer the response's headers until the end of the request processing.
-	 * The buffering is needed if the application makes use of
-	 * {@link org.apache.wicket.Component#setResponsePage(org.apache.wicket.request.component.IRequestablePage)} or
-	 * {@link org.apache.wicket.request.flow.ResetResponseException}
-	 *
-	 * @return {@code true} if the application should buffer the response's headers.
-	 */
-	public boolean getBufferResponse()
-	{
-		return bufferResponse;
-	}
-
-	/**
-	 * Gets whether Wicket should try to get extensive client info by redirecting to
-	 * {@link org.apache.wicket.markup.html.pages.BrowserInfoPage a page that polls for client capabilities}. This method is used by the
-	 * default implementation of {@link org.apache.wicket.Session#getClientInfo()}, so if that method is
-	 * overridden, there is no guarantee this method will be taken into account.
-	 *
-	 * @return Whether to gather extensive client info
-	 */
-	public boolean getGatherExtendedBrowserInfo()
-	{
-		return gatherExtendedBrowserInfo;
-	}
-
-	/**
-	 * Gets in what way the render part of a request is handled.
-	 *
-	 * @return the render strategy
-	 */
-	public RequestCycleSettings.RenderStrategy getRenderStrategy()
-	{
-		return renderStrategy;
-	}
-
-	/**
-	 * @return an unmodifiable list of added response filters, null if none
-	 */
-	public List<IResponseFilter> getResponseFilters()
-	{
-		if (responseFilters == null)
-		{
-			return null;
-		}
-		else
-		{
-			return Collections.unmodifiableList(responseFilters);
-		}
-	}
-
-
-	/**
-	 * In order to do proper form parameter encoding it is important that the response and the
-	 * subsequent request stipulate a common character encoding.
-	 *
-	 * possible form encodings and their problems:
-	 *
-	 * <ul>
-	 * <li><a
-	 * href="http://www.crazysquirrel.com/computing/general/form-encoding.jspx">application/x-
-	 * www-form-urlencoded</a></li>
-	 * <li><a href=
-	 * "http://stackoverflow.com/questions/546365/utf-8-text-is-garbled-when-form-is-posted-as-multipart-form-data"
-	 * >multipart/form-data</a></li>
-	 * </ul>
-	 *
-	 * wicket now uses multipart/form-data for it's forms.
-	 *
-	 * @return The request and response encoding
-	 */
-	public String getResponseRequestEncoding()
-	{
-		return responseRequestEncoding;
-	}
-
-	/**
-	 * Gets the time that a request will by default be waiting for the previous request to be
-	 * handled before giving up.
-	 *
-	 * @return The time out
-	 */
-	public Duration getTimeout()
-	{
-		return timeout;
-	}
-
-	/**
-	 * Sets a flag whether the application should buffer the response's headers until the end
-	 * of the request processing. The buffering is needed if the application makes use of
-	 * {@link org.apache.wicket.Component#setResponsePage(org.apache.wicket.request.component.IRequestablePage)}
-	 * or {@link org.apache.wicket.request.flow.ResetResponseException}
-	 *
-	 * @param bufferResponse
-	 *            {@code true} if the application should buffer response's headers.
-	 */
-	public void setBufferResponse(boolean bufferResponse)
-	{
-		this.bufferResponse = bufferResponse;
-	}
-
-	/**
-	 * Sets whether Wicket should try to get extensive client info by redirecting to
-	 * {@link org.apache.wicket.markup.html.pages.BrowserInfoPage a page that polls for client capabilities}. This method is used by the
-	 * default implementation of {@link org.apache.wicket.Session#getClientInfo()}, so if that method is
-	 * overridden, there is no guarantee this method will be taken into account.
-	 *
-	 * <p>
-	 * <strong>WARNING: </strong> though this facility should work transparently in most cases, it
-	 * is recommended that you trigger the roundtrip to get the browser info somewhere where it
-	 * hurts the least. The roundtrip will be triggered the first time you call
-	 * {@link org.apache.wicket.Session#getClientInfo()} for a session, and after the roundtrip a new request with the
-	 * same info (url, post parameters) is handled. So rather than calling this in the middle of an
-	 * implementation of a form submit method, which would result in the code of that method before
-	 * the call to {@link org.apache.wicket.Session#getClientInfo()} to be executed twice, you best call
-	 * {@link org.apache.wicket.Session#getClientInfo()} e.g. in a page constructor or somewhere else where you didn't
-	 * do a lot of processing first.
-	 * </p>
-	 *
-	 * @param gatherExtendedBrowserInfo
-	 *            Whether to gather extensive client info
-	 */
-	public void setGatherExtendedBrowserInfo(boolean gatherExtendedBrowserInfo)
-	{
-		this.gatherExtendedBrowserInfo = gatherExtendedBrowserInfo;
-	}
-
-	/**
-	 * Sets in what way the render part of a request is handled. Basically, there are two different
-	 * options:
-	 * <ul>
-	 * <li>Direct, ApplicationSettings.ONE_PASS_RENDER. Everything is handled in one physical
-	 * request. This is efficient, and is the best option if you want to do sophisticated
-	 * clustering. It does not however, shield you from what is commonly known as the <i>Double
-	 * submit problem </i></li>
-	 * <li>Using a redirect. This follows the pattern <a
-	 * href="http://www.theserverside.com/articles/article.tss?l=RedirectAfterPost" >as described at
-	 * the serverside </a> and that is commonly known as Redirect after post. Wicket takes it one
-	 * step further to do any rendering after a redirect, so that not only form submits are shielded
-	 * from the double submit problem, but also the IRequestListener handlers (that could be e.g. a
-	 * link that deletes a row). With this pattern, you have two options to choose from:
-	 * <ul>
-	 * <li>ApplicationSettings.REDIRECT_TO_RENDER. This option first handles the 'action' part of
-	 * the request, which is either page construction (bookmarkable pages or the home page) or
-	 * calling a IRequestListener handler, such as Link.onClick. When that part is done, a redirect
-	 * is issued to the render part, which does all the rendering of the page and its components.
-	 * <strong>Be aware </strong> that this may mean, depending on whether you access any models in
-	 * the action part of the request, that attachment and detachment of some models is done twice
-	 * for a request.</li>
-	 * <li>ApplicationSettings.REDIRECT_TO_BUFFER. This option handles both the action- and the
-	 * render part of the request in one physical request, but instead of streaming the result to
-	 * the browser directly, it is kept in memory, and a redirect is issue to get this buffered
-	 * result (after which it is immediately removed). This option currently is the default render
-	 * strategy, as it shields you from the double submit problem, while being more efficient and
-	 * less error prone regarding to detachable models.</li>
-	 * </ul>
-	 *
-	 * @param renderStrategy
-	 *            the render strategy that should be used by default.
-	 */
-	public void setRenderStrategy(RequestCycleSettings.RenderStrategy renderStrategy)
-	{
-		this.renderStrategy = renderStrategy;
-	}
-
-	/**
-	 * In order to do proper form parameter decoding it is important that the response and the
-	 * following request have the same encoding. see
-	 * http://www.crazysquirrel.com/computing/general/form-encoding.jspx for additional information.
-	 *
-	 * Default encoding: UTF-8
-	 *
-	 * @param encoding
-	 *            The request and response encoding to be used.
-	 */
-	public void setResponseRequestEncoding(final String encoding)
-	{
-		Args.notNull(encoding, "encoding");
-		this.responseRequestEncoding = encoding;
-	}
-
-	/**
-	 * Sets the time that a request will by default be waiting for the previous request to be
-	 * handled before giving up.
-	 *
-	 * @param timeout
-	 */
-	public void setTimeout(Duration timeout)
-	{
-		Args.notNull(timeout, "timeout");
-		this.timeout = timeout;
-	}
-
-	/**
-	 * Sets how many attempts Wicket will make to render the exception request handler before
-	 *         giving up.
-	 * @param retries
-	 *      the number of attempts
-	 */
-	public void setExceptionRetryCount(int retries)
-	{
-		this.exceptionRetryCount = retries;
-	}
-
-	/**
-	 * @return How many times will Wicket attempt to render the exception request handler before
-	 *         giving up.
-	 */
-	public int getExceptionRetryCount()
-	{
-		return exceptionRetryCount;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestLoggerSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestLoggerSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestLoggerSettings.java
deleted file mode 100644
index 380479c..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/RequestLoggerSettings.java
+++ /dev/null
@@ -1,93 +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.settings.def;
-
-/**
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class RequestLoggerSettings
-{
-	private boolean recordSessionSize = true;
-
-	private int requestsWindowSize = 0;
-
-	private boolean requestLoggerEnabled;
-
-	/**
-	 * @return true if the session size is recorded. (default true)
-	 */
-	public boolean getRecordSessionSize()
-	{
-		return recordSessionSize;
-	}
-
-	/**
-	 * @return The window size of the recorded requests. (default 2000)
-	 */
-	public int getRequestsWindowSize()
-	{
-		return requestsWindowSize;
-	}
-
-	/**
-	 * @return true if the request Logger is enabled. (default false)
-	 */
-	public boolean isRequestLoggerEnabled()
-	{
-		return requestLoggerEnabled;
-	}
-
-	/**
-	 * Enable/Disable the recording of the session size for every request.
-	 *
-	 * @param record
-	 */
-	public void setRecordSessionSize(boolean record)
-	{
-		recordSessionSize = record;
-	}
-
-	/**
-	 * Enable/Disable the request logger.
-	 *
-	 * @param enable
-	 *            boolean.
-	 */
-	public void setRequestLoggerEnabled(boolean enable)
-	{
-		requestLoggerEnabled = enable;
-	}
-
-	/**
-	 * Set the window of all the requests that is kept in memory for viewing. Default is 2000, You
-	 * can set this to 0 then only Sessions data is recorded (number of request, total time, latest
-	 * size)
-	 *
-	 * @param size
-	 */
-	public void setRequestsWindowSize(int size)
-	{
-		requestsWindowSize = size;
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/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
deleted file mode 100644
index 421c198..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java
+++ /dev/null
@@ -1,731 +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.settings.def;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.Component;
-import org.apache.wicket.IResourceFactory;
-import org.apache.wicket.Localizer;
-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.css.ICssCompressor;
-import org.apache.wicket.javascript.IJavaScriptCompressor;
-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;
-import org.apache.wicket.request.resource.caching.IResourceCachingStrategy;
-import org.apache.wicket.request.resource.caching.NoOpResourceCachingStrategy;
-import org.apache.wicket.request.resource.caching.version.CachingResourceVersion;
-import org.apache.wicket.request.resource.caching.version.IResourceVersion;
-import org.apache.wicket.request.resource.caching.version.LastModifiedResourceVersion;
-import org.apache.wicket.request.resource.caching.version.MessageDigestResourceVersion;
-import org.apache.wicket.request.resource.caching.version.RequestCycleCachedResourceVersion;
-import org.apache.wicket.resource.IPropertiesFactoryContext;
-import org.apache.wicket.resource.PropertiesFactory;
-import org.apache.wicket.resource.loader.ClassStringResourceLoader;
-import org.apache.wicket.resource.loader.ComponentStringResourceLoader;
-import org.apache.wicket.resource.loader.IStringResourceLoader;
-import org.apache.wicket.resource.loader.InitializerStringResourceLoader;
-import org.apache.wicket.resource.loader.PackageStringResourceLoader;
-import org.apache.wicket.resource.loader.ValidatorStringResourceLoader;
-import org.apache.wicket.util.file.IFileCleaner;
-import org.apache.wicket.util.file.IResourceFinder;
-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.time.Duration;
-import org.apache.wicket.util.watch.IModificationWatcher;
-import org.apache.wicket.util.watch.ModificationWatcher;
-
-/**
- * Interface for resource related settings
- * <p>
- * <i>resourcePollFrequency </i> (defaults to no polling frequency) - Frequency at which resources
- * should be polled for changes.
- * <p>
- * <i>resourceFinders</i> - Add/modify this to alter the search path for resources.
- * <p>
- * <i>useDefaultOnMissingResource </i> (defaults to true) - Set to true to return a default value if
- * available when a required string resource is not found. If set to false then the
- * throwExceptionOnMissingResource flag is used to determine how to behave. If no default is
- * available then this is the same as if this flag were false
- * <p>
- * <i>A ResourceStreamLocator </i>- An Application's ResourceStreamLocator is used to find resources
- * such as images or markup files. You can supply your own ResourceStreamLocator if your prefer to
- * store your application's resources in a non-standard location (such as a different filesystem
- * location, a particular JAR file or even a database) by overriding the getResourceLocator()
- * method.
- * <p>
- * <i>Resource Factories </i>- Resource factories can be used to create resources dynamically from
- * specially formatted HTML tag attribute values. For more details, see {@link IResourceFactory},
- * {@link org.apache.wicket.markup.html.image.resource.DefaultButtonImageResourceFactory} and
- * especially {@link org.apache.wicket.markup.html.image.resource.LocalizedImageResource}.
- * <p>
- * <i>A Localizer </i> The getLocalizer() method returns an object encapsulating all of the
- * functionality required to access localized resources. For many localization problems, even this
- * will not be required, as there are convenience methods available to all components:
- * {@link org.apache.wicket.Component#getString(String key)} and
- * {@link org.apache.wicket.Component#getString(String key, org.apache.wicket.model.IModel model)}.
- * <p>
- * <i>stringResourceLoaders </i>- A chain of <code>IStringResourceLoader</code> instances that are
- * searched in order to obtain string resources used during localization. By default the chain is
- * set up to first search for resources against a particular component (e.g. page etc.) and then
- * against the application.
- * </p>
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class ResourceSettings implements IPropertiesFactoryContext
-{
-	/** I18N support */
-	private Localizer localizer;
-
-	/** Map to look up resource factories by name */
-	private final Map<String, IResourceFactory> nameToResourceFactory = Generics.newHashMap();
-
-	/** The package resource guard. */
-	private IPackageResourceGuard packageResourceGuard = new SecurePackageResourceGuard(
-		new SecurePackageResourceGuard.SimpleCache(100));
-
-	/** The factory to be used for the property files */
-	private org.apache.wicket.resource.IPropertiesFactory propertiesFactory;
-
-	/** Filesystem Path to search for resources */
-	private List<IResourceFinder> resourceFinders = new ArrayList<IResourceFinder>();
-
-	/** Frequency at which files should be polled */
-	private Duration resourcePollFrequency = null;
-
-	/** resource locator for this application */
-	private IResourceStreamLocator resourceStreamLocator;
-
-	/** ModificationWatcher to watch for changes in markup files */
-	private IModificationWatcher resourceWatcher;
-
-	/**
-	 * A cleaner that removes files asynchronously.
-	 * <p>
-	 * Used internally to remove the temporary files created by FileUpload functionality.
-	 */
-	private IFileCleaner fileCleaner;
-
-	/** Chain of string resource loaders to use */
-	private final List<IStringResourceLoader> stringResourceLoaders = Generics.newArrayList(4);
-
-	/** Flags used to determine how to behave if resources are not found */
-	private boolean throwExceptionOnMissingResource = true;
-
-	/** Determines behavior of string resource loading if string is missing */
-	private boolean useDefaultOnMissingResource = true;
-
-	/** Default cache duration */
-	private Duration defaultCacheDuration = WebResponse.MAX_CACHE_DURATION;
-
-	/** The JavaScript compressor */
-	private IJavaScriptCompressor javascriptCompressor;
-
-	/** The Css compressor */
-	private ICssCompressor cssCompressor;
-
-	/** escape string for '..' within resource keys */
-	private String parentFolderPlaceholder = "::";
-
-	// resource caching strategy
-	private IResourceCachingStrategy resourceCachingStrategy;
-
-	// application these settings are bound to
-	private final Application application;
-
-	private boolean useMinifiedResources = true;
-
-	private Comparator<? super RecordedHeaderItem> headerItemComparator = new PriorityFirstComparator(
-		false);
-
-	private boolean encodeJSessionId = false;
-
-	/**
-	 * Configures Wicket's default ResourceLoaders.<br>
-	 * For an example in {@code FooApplication} let {@code bar.Foo} extend {@link Component}, this
-	 * results in the following ordering:
-	 * <dl>
-	 * <dt>component specific</dt>
-	 * <dd>
-	 * <ul>
-	 * <li>bar/Foo.properties</li>
-	 * <li>org/apache/wicket/Component.properties</li>
-	 * </ul>
-	 * </dd>
-	 * <dt>package specific</dt>
-	 * <dd>
-	 * <ul>
-	 * <li>bar/package.properties</li>
-	 * <li>package.properties (on Foo's class loader)</li>
-	 * <li>org/apache/wicket/package.properties</li>
-	 * <li>org/apache/package.properties</li>
-	 * <li>org/package.properties</li>
-	 * <li>package.properties (on Component's class loader)</li>
-	 * </ul>
-	 * </dd>
-	 * <dt>application specific</dt>
-	 * <dd>
-	 * <ul>
-	 * <li>FooApplication.properties</li>
-	 * <li>Application.properties</li>
-	 * </ul>
-	 * </dd>
-	 * <dt>validator specific</dt>
-	 * <dt>Initializer specific</dt>
-	 * <dd>
-	 * <ul>
-	 * <li>bar.Foo.properties (Foo implementing IInitializer)</li>
-	 * </ul>
-	 * </dd>
-	 * </dl>
-	 * 
-	 * @param application
-	 */
-	public ResourceSettings(final Application application)
-	{
-		this.application = application;
-		stringResourceLoaders.add(new ComponentStringResourceLoader());
-		stringResourceLoaders.add(new PackageStringResourceLoader());
-		stringResourceLoaders.add(new ClassStringResourceLoader(application.getClass()));
-		stringResourceLoaders.add(new ValidatorStringResourceLoader());
-		stringResourceLoaders.add(new InitializerStringResourceLoader(application.getInitializers()));
-	}
-
-	/**
-	 * Adds a resource factory to the list of factories to consult when generating resources
-	 * automatically
-	 *
-	 * @param name
-	 *            The name to give to the factory
-	 * @param resourceFactory
-	 *            The resource factory to add
-	 */
-	public void addResourceFactory(final String name, IResourceFactory resourceFactory)
-	{
-		nameToResourceFactory.put(name, resourceFactory);
-	}
-
-	public Localizer getLocalizer()
-	{
-		if (localizer == null)
-		{
-			localizer = new Localizer();
-		}
-		return localizer;
-	}
-
-	/**
-	 * Gets the {@link org.apache.wicket.markup.html.PackageResourceGuard package resource guard}.
-	 *
-	 * @return The package resource guard
-	 */
-	public IPackageResourceGuard getPackageResourceGuard()
-	{
-		return packageResourceGuard;
-	}
-
-	/**
-	 * Get the property factory which will be used to load property files
-	 *
-	 * @return PropertiesFactory
-	 */
-	public org.apache.wicket.resource.IPropertiesFactory getPropertiesFactory()
-	{
-		if (propertiesFactory == null)
-		{
-			propertiesFactory = new PropertiesFactory(this);
-		}
-		return propertiesFactory;
-	}
-
-	/**
-	 * @param name
-	 *            Name of the factory to get
-	 * @return The IResourceFactory with the given name.
-	 */
-	public IResourceFactory getResourceFactory(final String name)
-	{
-		return nameToResourceFactory.get(name);
-	}
-
-	/**
-	 * Gets the resource finders to use when searching for resources. By default, a finder that
-	 * looks in the classpath root is configured. {@link org.apache.wicket.protocol.http.WebApplication} adds the classpath
-	 * directory META-INF/resources. To configure additional search paths or filesystem paths, add
-	 * to this list.
-	 *
-	 * @return Returns the resourceFinders.
-	 */
-	public List<IResourceFinder> getResourceFinders()
-	{
-		return resourceFinders;
-	}
-
-	/**
-	 * @return Returns the resourcePollFrequency.
-	 */
-	public Duration getResourcePollFrequency()
-	{
-		return resourcePollFrequency;
-	}
-
-	public IResourceStreamLocator getResourceStreamLocator()
-	{
-		if (resourceStreamLocator == null)
-		{
-			// Create compound resource locator using source path from
-			// application settings
-			resourceStreamLocator = new ResourceStreamLocator(getResourceFinders());
-			resourceStreamLocator = new CachingResourceStreamLocator(resourceStreamLocator);
-		}
-		return resourceStreamLocator;
-	}
-
-	public IModificationWatcher getResourceWatcher(boolean start)
-	{
-		if (resourceWatcher == null && start)
-		{
-			synchronized (this)
-			{
-				if (resourceWatcher == null)
-				{
-					final Duration pollFrequency = getResourcePollFrequency();
-					if (pollFrequency != null)
-					{
-						resourceWatcher = new ModificationWatcher(pollFrequency);
-					}
-				}
-			}
-		}
-		return resourceWatcher;
-	}
-
-	/**
-	 * Sets the resource watcher
-	 *
-	 * @param watcher
-	 */
-	public void setResourceWatcher(IModificationWatcher watcher)
-	{
-		resourceWatcher = watcher;
-	}
-
-	/**
-	 * @return the a cleaner which can be used to remove files asynchronously.
-	 */
-	public IFileCleaner getFileCleaner()
-	{
-		return fileCleaner;
-	}
-
-	/**
-	 * Sets a cleaner that can be used to remove files asynchronously.
-	 * <p>
-	 * Used internally to delete the temporary files created by FileUpload functionality
-	 *
-	 * @param fileUploadCleaner
-	 *            the actual cleaner implementation. Can be <code>null</code>
-	 */
-	public void setFileCleaner(IFileCleaner fileUploadCleaner)
-	{
-		fileCleaner = fileUploadCleaner;
-	}
-
-	/**
-	 * @return mutable list of all available string resource loaders
-	 */
-	public List<IStringResourceLoader> getStringResourceLoaders()
-	{
-		return stringResourceLoaders;
-	}
-
-	public boolean getThrowExceptionOnMissingResource()
-	{
-		return throwExceptionOnMissingResource;
-	}
-
-	/**
-	 * @return Whether to use a default value (if available) when a missing resource is requested
-	 */
-	public boolean getUseDefaultOnMissingResource()
-	{
-		return useDefaultOnMissingResource;
-	}
-
-	/**
-	 * Sets the localizer which will be used to find property values.
-	 *
-	 * @param localizer
-	 * @since 1.3.0
-	 */
-	public void setLocalizer(final Localizer localizer)
-	{
-		this.localizer = localizer;
-	}
-
-	/**
-	 * Sets the {@link org.apache.wicket.markup.html.PackageResourceGuard package resource guard}.
-	 *
-	 * @param packageResourceGuard
-	 *            The package resource guard
-	 */
-	public void setPackageResourceGuard(IPackageResourceGuard packageResourceGuard)
-	{
-		this.packageResourceGuard = Args.notNull(packageResourceGuard, "packageResourceGuard");
-	}
-
-	/**
-	 * Set the property factory which will be used to load property files
-	 *
-	 * @param factory
-	 */
-	public void setPropertiesFactory(org.apache.wicket.resource.IPropertiesFactory factory)
-	{
-		propertiesFactory = factory;
-	}
-
-	/**
-	 * Sets the finders to use when searching for resources. By default, the resources are located
-	 * on the classpath. To add additional search paths, add to the list given by
-	 * {@link #getResourceFinders()}. Use this method if you want to completely exchange the list of
-	 * resource finders.
-	 *
-	 * @param resourceFinders
-	 *            The resourceFinders to set
-	 */
-	public void setResourceFinders(final List<IResourceFinder> resourceFinders)
-	{
-		Args.notNull(resourceFinders, "resourceFinders");
-		this.resourceFinders = resourceFinders;
-
-		// Cause resource locator to get recreated
-		resourceStreamLocator = null;
-	}
-
-	/**
-	 * Sets the resource polling frequency. This is the duration of time between checks of resource
-	 * modification times. If a resource, such as an HTML file, has changed, it will be reloaded.
-	 * The default is one second in 'development' mode and 'never' in deployment mode.
-	 *
-	 * @param resourcePollFrequency
-	 *            Frequency at which to poll resources or <code>null</code> if polling should be
-	 *            disabled
-	 */
-	public void setResourcePollFrequency(final Duration resourcePollFrequency)
-	{
-		this.resourcePollFrequency = resourcePollFrequency;
-	}
-
-	/**
-	 * /**
-	 * Sets the resource stream locator for this application
-	 *
-	 * Consider wrapping <code>resourceStreamLocator</code> in {@link CachingResourceStreamLocator}.
-	 * This way the locator will not be asked more than once for {@link IResourceStream}s which do
-	 * not exist.
-	 * @param resourceStreamLocator
-	 *            new resource stream locator
-	 *
-	 * @see #getResourceStreamLocator()
-	 */
-	public void setResourceStreamLocator(IResourceStreamLocator resourceStreamLocator)
-	{
-		this.resourceStreamLocator = resourceStreamLocator;
-	}
-
-	public void setThrowExceptionOnMissingResource(final boolean throwExceptionOnMissingResource)
-	{
-		this.throwExceptionOnMissingResource = throwExceptionOnMissingResource;
-	}
-
-	/**
-	 * @param useDefaultOnMissingResource
-	 *            Whether to use a default value (if available) when a missing resource is requested
-	 */
-	public void setUseDefaultOnMissingResource(final boolean useDefaultOnMissingResource)
-	{
-		this.useDefaultOnMissingResource = useDefaultOnMissingResource;
-	}
-
-	/**
-	 * Get the the default cache duration for resources.
-	 * <p/>
-	 *
-	 * @return cache duration (Duration.NONE will be returned if caching is disabled)
-	 *
-	 * @see org.apache.wicket.util.time.Duration#NONE
-	 */
-	public final Duration getDefaultCacheDuration()
-	{
-		return defaultCacheDuration;
-	}
-
-	/**
-	 * Set the the default cache duration for resources.
-	 * <p/>
-	 * Based on RFC-2616 this should not exceed one year. If you set Duration.NONE caching will be
-	 * disabled.
-	 *
-	 * @param duration
-	 *            default cache duration in seconds
-	 *
-	 * @see org.apache.wicket.util.time.Duration#NONE
-	 * @see org.apache.wicket.request.http.WebResponse#MAX_CACHE_DURATION
-	 */
-	public final void setDefaultCacheDuration(Duration duration)
-	{
-		Args.notNull(duration, "duration");
-		defaultCacheDuration = duration;
-	}
-
-	/**
-	 * Get the javascript compressor to remove comments and whitespace characters from javascripts
-	 *
-	 * @return whether the comments and whitespace characters will be stripped from resources served
-	 *         through {@link org.apache.wicket.request.resource.JavaScriptPackageResource
-	 *         JavaScriptPackageResource}. Null is a valid value.
-	 */
-	public IJavaScriptCompressor getJavaScriptCompressor()
-	{
-		return javascriptCompressor;
-	}
-
-	/**
-	 * Set the javascript compressor implemententation use e.g. by
-	 * {@link org.apache.wicket.request.resource.JavaScriptPackageResource
-	 * JavaScriptPackageResource}. A typical implementation will remove comments and whitespace. But
-	 * a no-op implementation is available as well.
-	 *
-	 * @param compressor
-	 *            The implementation to be used
-	 * @return The old value
-	 */
-	public IJavaScriptCompressor setJavaScriptCompressor(IJavaScriptCompressor compressor)
-	{
-		IJavaScriptCompressor old = javascriptCompressor;
-		javascriptCompressor = compressor;
-		return old;
-	}
-
-	/**
-	 * Get the CSS compressor to remove comments and whitespace characters from css resources
-	 *
-	 * @return whether the comments and whitespace characters will be stripped from resources served
-	 *         through {@link org.apache.wicket.request.resource.CssPackageResource
-	 *         CssPackageResource}. Null is a valid value.
-	 */
-	public ICssCompressor getCssCompressor()
-	{
-		return cssCompressor;
-	}
-
-	/**
-	 * Set the CSS compressor implemententation use e.g. by
-	 * {@link org.apache.wicket.request.resource.CssPackageResource CssPackageResource}. A typical
-	 * implementation will remove comments and whitespace. But a no-op implementation is available
-	 * as well.
-	 *
-	 * @param compressor
-	 *            The implementation to be used
-	 * @return The old value
-	 */
-	public ICssCompressor setCssCompressor(ICssCompressor compressor)
-	{
-		ICssCompressor old = cssCompressor;
-		cssCompressor = compressor;
-		return old;
-	}
-
-	/**
-	 * Placeholder string for '..' within resource urls (which will be crippled by the browser and
-	 * not work anymore). Note that by default the placeholder string is <code>::</code>. Resources
-	 * are protected by a {@link org.apache.wicket.markup.html.IPackageResourceGuard
-	 * IPackageResourceGuard} implementation such as
-	 * {@link org.apache.wicket.markup.html.PackageResourceGuard} which you may use or extend based
-	 * on your needs.
-	 *
-	 * @return placeholder
-	 */
-	public String getParentFolderPlaceholder()
-	{
-		return parentFolderPlaceholder;
-	}
-
-	/**
-	 * Placeholder string for '..' within resource urls (which will be crippled by the browser and
-	 * not work anymore). Note that by default the placeholder string is <code>null</code> and thus
-	 * will not allow to access parent folders. That is by purpose and for security reasons (see
-	 * Wicket-1992). In case you really need it, a good value for placeholder would e.g. be "$up$".
-	 * Resources additionally are protected by a
-	 * {@link org.apache.wicket.markup.html.IPackageResourceGuard IPackageResourceGuard}
-	 * implementation such as {@link org.apache.wicket.markup.html.PackageResourceGuard} which you
-	 * may use or extend based on your needs.
-	 *
-	 * @see #getParentFolderPlaceholder()
-	 *
-	 * @param sequence
-	 *            character sequence which must not be ambiguous within urls
-	 */
-	public void setParentFolderPlaceholder(final String sequence)
-	{
-		parentFolderPlaceholder = sequence;
-	}
-
-	/**
-	 * gets the resource caching strategy
-	 *
-	 * @return strategy
-	 */
-	public IResourceCachingStrategy getCachingStrategy()
-	{
-		if (resourceCachingStrategy == null)
-		{
-			final IResourceVersion resourceVersion;
-
-			if (application.usesDevelopmentConfig())
-			{
-				// development mode:
-				// use last-modified timestamp of packaged resource for resource caching
-				// cache the version information for the lifetime of the current http request
-				resourceVersion = new RequestCycleCachedResourceVersion(
-					new LastModifiedResourceVersion());
-			}
-			else
-			{
-				// deployment mode:
-				// use message digest over resource content for resource caching
-				// cache the version information for the lifetime of the application
-				resourceVersion = new CachingResourceVersion(new MessageDigestResourceVersion());
-			}
-			// cache resource with a version string in the filename
-			resourceCachingStrategy = new FilenameWithVersionResourceCachingStrategy(
-				resourceVersion);
-		}
-		return resourceCachingStrategy;
-	}
-
-	/**
-	 * sets the resource caching strategy
-	 *
-	 * @param strategy
-	 *            instance of resource caching strategy
-	 *
-	 * @see IResourceCachingStrategy
-	 */
-	public void setCachingStrategy(IResourceCachingStrategy strategy)
-	{
-		if (strategy == null)
-		{
-			throw new NullPointerException(
-				"It is not allowed to set the resource caching strategy to value NULL. " +
-					"Please use " + NoOpResourceCachingStrategy.class.getName() + " instead.");
-		}
-		resourceCachingStrategy = strategy;
-	}
-
-	/**
-	 * Sets whether to use pre-minified resources when available. Minified resources are detected by
-	 * name. The minified version of {@code x.js} is expected to be called {@code x.min.js}. For css
-	 * files, the same convention is used: {@code x.min.css} is the minified version of
-	 * {@code x.css}. When this is null, minified resources will only be used in deployment
-	 * configuration.
-	 *
-	 * @param useMinifiedResources
-	 *            The new value for the setting
-	 */
-	public void setUseMinifiedResources(boolean useMinifiedResources)
-	{
-		this.useMinifiedResources = useMinifiedResources;
-	}
-
-	/**
-	 * @return Whether pre-minified resources will be used.
-	 */
-	public boolean getUseMinifiedResources()
-	{
-		return useMinifiedResources;
-	}
-
-	/**
-	 * @return The comparator used to sort header items.
-	 */
-	public Comparator<? super RecordedHeaderItem> getHeaderItemComparator()
-	{
-		return headerItemComparator;
-	}
-
-	/**
-	 * Sets the comparator used by the {@linkplain org.apache.wicket.markup.head.ResourceAggregator resource aggregator} for
-	 * sorting header items. It should be noted that sorting header items may break resource
-	 * dependencies. This comparator should therefore at least respect dependencies declared by
-	 * resource references. By default, items are sorted using the {@link PriorityFirstComparator}.
-	 *
-	 * @param headerItemComparator
-	 *            The comparator used to sort header items, when null, header items will not be
-	 *            sorted.
-	 */
-	public void setHeaderItemComparator(Comparator<? super RecordedHeaderItem> headerItemComparator)
-	{
-		this.headerItemComparator = headerItemComparator;
-	}
-
-	/**
-	 * A flag indicating whether static resources should have <tt>jsessionid</tt> encoded in their
-	 * url.
-	 *
-	 * @return {@code true} if the jsessionid should be encoded in the url for resources
-	 *         implementing
-	 *         {@link org.apache.wicket.request.resource.caching.IStaticCacheableResource} when the
-	 *         cookies are disabled and there is an active http session.
-	 */
-	public boolean isEncodeJSessionId()
-	{
-		return encodeJSessionId;
-	}
-
-	/**
-	 * Sets a flag indicating whether the jsessionid should be encoded in the url for resources
-	 * implementing {@link org.apache.wicket.request.resource.caching.IStaticCacheableResource} when
-	 * the cookies are disabled and there is an active http session.
-	 *
-	 * @param encodeJSessionId
-	 *            {@code true} when the jsessionid should be encoded, {@code false} - otherwise
-	 */
-	public void setEncodeJSessionId(boolean encodeJSessionId)
-	{
-		this.encodeJSessionId = encodeJSessionId;
-	}
-}


[3/4] WICKET-5410 moved all settings to org.apache.wicket.settings

Posted by sv...@apache.org.
http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/JavaScriptLibrarySettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/JavaScriptLibrarySettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/JavaScriptLibrarySettings.java
new file mode 100644
index 0000000..35a2fb8
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/JavaScriptLibrarySettings.java
@@ -0,0 +1,121 @@
+/*
+ * 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.settings;
+
+import org.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference;
+import org.apache.wicket.ajax.WicketAjaxJQueryResourceReference;
+import org.apache.wicket.ajax.WicketEventJQueryResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.resource.JQueryResourceReference;
+import org.apache.wicket.util.lang.Args;
+
+/**
+ * Interface for settings related to the JavaScript libraries that come with and are used by Wicket.
+ * <p>
+ * With these settings the user application can replace the JavaScript libraries used for Wicket's
+ * event and Ajax functionality. By default Wicket uses {@linkplain JQueryResourceReference JQuery}
+ * as a backing library but via this interface the application can replace the implementations of
+ * wicket-event.js, wicket-ajax.js and wicket-ajax-debug.js to use implementations on other
+ * libraries, such as YUI or DOJO. The resource reference implementations need to specify the
+ * {@linkplain ResourceReference#getDependencies() dependency} on the backing library, if needed.
+ *
+ * @since 6.0
+ */
+public class JavaScriptLibrarySettings
+{
+	private ResourceReference jQueryReference = JQueryResourceReference.get();
+
+	private ResourceReference wicketEventReference = WicketEventJQueryResourceReference.get();
+
+	private ResourceReference wicketAjaxReference = WicketAjaxJQueryResourceReference.get();
+
+	private ResourceReference wicketAjaxDebugReference = WicketAjaxDebugJQueryResourceReference.get();
+
+	/**
+	 * @return the reference to the JQuery JavaScript library used as backing library for
+	 *         wicket-event and wicket-ajax
+	 */
+	public ResourceReference getJQueryReference()
+	{
+		return jQueryReference;
+	}
+
+	/**
+	 * @param jQueryReference
+	 *            a reference to the JQuery JavaScript library used as backing library for
+	 *            wicket-event and wicket-ajax
+	 */
+	public void setJQueryReference(ResourceReference jQueryReference)
+	{
+		this.jQueryReference = Args.notNull(jQueryReference, "jQueryReference");
+	}
+
+	/**
+	 * @return the reference to the implementation of wicket-event.js
+	 */
+	public ResourceReference getWicketEventReference()
+	{
+		return wicketEventReference;
+	}
+
+	/**
+	 * @param wicketEventReference
+	 *            a reference to the implementation of wicket-event.js
+	 */
+	public void setWicketEventReference(ResourceReference wicketEventReference)
+	{
+		this.wicketEventReference = Args.notNull(wicketEventReference, "wicketEventReference");
+	}
+
+	/**
+	 * @return the reference to the implementation of wicket-ajax.js
+	 */
+	public ResourceReference getWicketAjaxReference()
+	{
+		return wicketAjaxReference;
+	}
+
+	/**
+	 * @param wicketAjaxReference
+	 *            a reference to the implementation of wicket-ajax.js
+	 */
+	public void setWicketAjaxReference(ResourceReference wicketAjaxReference)
+	{
+		this.wicketAjaxReference = Args.notNull(wicketAjaxReference, "wicketAjaxReference");
+	}
+
+	/**
+	 * The Wicket Ajax Debug Window.
+	 *
+	 * @return the reference to the implementation of wicket-ajax-debug.js
+	 */
+	public ResourceReference getWicketAjaxDebugReference()
+	{
+		return wicketAjaxDebugReference;
+	}
+
+	/**
+	 * @param wicketAjaxDebugReference
+	 *            a reference to the implementation of wicket-ajax-debug.js
+	 */
+	public void setWicketAjaxDebugReference(ResourceReference wicketAjaxDebugReference)
+	{
+		this.wicketAjaxDebugReference = Args.notNull(wicketAjaxDebugReference,
+			"wicketAjaxDebugReference");
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/MarkupSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/MarkupSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/MarkupSettings.java
new file mode 100644
index 0000000..c79260b
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/MarkupSettings.java
@@ -0,0 +1,233 @@
+/*
+ * 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.settings;
+
+import org.apache.wicket.markup.MarkupFactory;
+import org.apache.wicket.util.lang.Args;
+
+/**
+ * Interface for markup related settings.
+ * <p>
+ * <i>compressWhitespace </i> (defaults to false) - Causes pages to render with redundant whitespace
+ * removed. Whitespace stripping is not HTML or JavaScript savvy and can conceivably break pages,
+ * but should provide significant performance improvements.
+ * <p>
+ * <i>stripComments</i> (defaults to false) - Set to true to strip HTML comments during markup
+ * loading
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class MarkupSettings
+{
+	/** Application default for automatically resolving hrefs */
+	private boolean automaticLinking = false;
+
+	/** True if multiple tabs/spaces should be compressed to a single space */
+	private boolean compressWhitespace = false;
+
+	/** Default markup encoding. If null, the OS default will be used */
+	private String defaultMarkupEncoding;
+
+	/** Factory for creating markup parsers */
+	private MarkupFactory markupFactory;
+
+	/** if true than throw an exception if the xml declaration is missing from the markup file */
+	private boolean throwExceptionOnMissingXmlDeclaration = false;
+
+	/** Should HTML comments be stripped during rendering? */
+	private boolean stripComments = false;
+
+	/**
+	 * If true, wicket tags ( <wicket: ..>) and wicket:id attributes we be removed from output
+	 */
+	private boolean stripWicketTags = false;
+
+	/**
+	 * Construct
+	 */
+	public MarkupSettings()
+	{
+	}
+
+	/**
+	 * If true, automatic link resolution is enabled. Disabled by default.
+	 *
+	 * @see org.apache.wicket.markup.resolver.AutoLinkResolver
+	 * @see org.apache.wicket.markup.parser.filter.WicketLinkTagHandler
+	 * @return Returns the automaticLinking.
+	 */
+	public boolean getAutomaticLinking()
+	{
+		return automaticLinking;
+	}
+
+	/**
+	 * @return Returns the compressWhitespace.
+	 */
+	public boolean getCompressWhitespace()
+	{
+		return compressWhitespace;
+	}
+
+	/**
+	 * @since 1.1
+	 * @return Returns default encoding of markup files. If null, the operating system provided
+	 *         encoding will be used.
+	 */
+	public String getDefaultMarkupEncoding()
+	{
+		return defaultMarkupEncoding;
+	}
+
+	/**
+	 * Get the markup factory
+	 *
+	 * @return A new instance of MarkupFactory.
+	 */
+	public MarkupFactory getMarkupFactory()
+	{
+		if (markupFactory == null)
+		{
+			markupFactory = new MarkupFactory();
+		}
+		return markupFactory;
+	}
+
+	/**
+	 * @return Returns the stripComments.
+	 */
+	public boolean getStripComments()
+	{
+		return stripComments;
+	}
+
+	/**
+	 * Gets whether to remove wicket tags from the output.
+	 *
+	 * @return whether to remove wicket tags from the output
+	 */
+	public boolean getStripWicketTags()
+	{
+		return stripWicketTags;
+	}
+
+	/**
+	 * @since 1.3
+	 * @return if true, an exception is thrown if the markup file does not contain a xml declaration
+	 */
+	public boolean getThrowExceptionOnMissingXmlDeclaration()
+	{
+		return throwExceptionOnMissingXmlDeclaration;
+	}
+
+	/**
+	 * Application default for automatic link resolution.
+	 *
+	 * @param automaticLinking
+	 *            The automaticLinking to set.
+	 * @see org.apache.wicket.markup.resolver.AutoLinkResolver
+	 * @see org.apache.wicket.markup.parser.filter.WicketLinkTagHandler
+	 */
+	public void setAutomaticLinking(boolean automaticLinking)
+	{
+		this.automaticLinking = automaticLinking;
+	}
+
+	/**
+	 * Turns on whitespace compression. Multiple occurrences of space/tab characters will be
+	 * compressed to a single space. Multiple line breaks newline/carriage-return will also be
+	 * compressed to a single newline.
+	 * <p>
+	 * Compression is currently not HTML aware and so it may be possible for whitespace compression
+	 * to break pages. For this reason, whitespace compression is off by default and you should test
+	 * your application thoroughly after turning whitespace compression on.
+	 * <p>
+	 * Spaces are removed from markup at markup load time and there should be no effect on page
+	 * rendering speed. In fact, your pages should render faster with whitespace compression
+	 * enabled.
+	 *
+	 * @param compressWhitespace
+	 *            The compressWhitespace to set.
+	 */
+	public void setCompressWhitespace(final boolean compressWhitespace)
+	{
+		this.compressWhitespace = compressWhitespace;
+	}
+
+	/**
+	 * Set default encoding for markup files. If null, the encoding provided by the operating system
+	 * will be used.
+	 *
+	 * @since 1.1
+	 * @param encoding
+	 */
+	public void setDefaultMarkupEncoding(final String encoding)
+	{
+		defaultMarkupEncoding = encoding;
+	}
+
+	/**
+	 * Set a new markup factory
+	 *
+	 * @param factory
+	 */
+	public void setMarkupFactory(final MarkupFactory factory)
+	{
+		Args.notNull(factory, "markup factory");
+		markupFactory = factory;
+	}
+
+	/**
+	 * Enables stripping of markup comments denoted in markup by HTML comment tagging.
+	 *
+	 * @param stripComments
+	 *            True to strip markup comments from rendered pages
+	 */
+	public void setStripComments(boolean stripComments)
+	{
+		this.stripComments = stripComments;
+	}
+
+	/**
+	 * Sets whether to remove wicket tags from the output.
+	 *
+	 * @param stripWicketTags
+	 *            whether to remove wicket tags from the output
+	 */
+	public void setStripWicketTags(boolean stripWicketTags)
+	{
+		this.stripWicketTags = stripWicketTags;
+	}
+
+	/**
+	 * If true, an exception is thrown if the markup file does not contain a xml declaration
+	 *
+	 * @since 1.3
+	 * @param throwException
+	 */
+	public void setThrowExceptionOnMissingXmlDeclaration(boolean throwException)
+	{
+		throwExceptionOnMissingXmlDeclaration = throwException;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/PageSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/PageSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/PageSettings.java
new file mode 100644
index 0000000..19ddaa0
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/PageSettings.java
@@ -0,0 +1,118 @@
+/*
+ * 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.settings;
+
+import java.util.List;
+
+import org.apache.wicket.markup.resolver.IComponentResolver;
+import org.apache.wicket.util.lang.Generics;
+
+/**
+ * Interface for page related settings.
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class PageSettings
+{
+	/** List of (static) ComponentResolvers */
+	private final List<IComponentResolver> componentResolvers = Generics.newArrayList();
+
+	/** Determines if pages should be managed by a version manager by default */
+	private boolean versionPagesByDefault = true;
+
+	/** determines if mounted pages should be recreated after expiry */
+	private boolean recreateMountedPagesAfterExpiry = true;
+
+	/**
+	 * Adds a component resolver to the list.
+	 *
+	 * @param resolver
+	 *            The {@link IComponentResolver} that is added
+	 */
+	public void addComponentResolver(IComponentResolver resolver)
+	{
+		componentResolvers.add(resolver);
+	}
+
+	/**
+	 * Get the (modifiable) list of IComponentResolvers.
+	 *
+	 * @return List of ComponentResolvers
+	 */
+	public List<IComponentResolver> getComponentResolvers()
+	{
+		return componentResolvers;
+	}
+
+	/**
+	 * @return whether all pages should should update their page id when their component hierarchy
+	 *      changes somehow
+	 */
+	public boolean getVersionPagesByDefault()
+	{
+		return versionPagesByDefault;
+	}
+
+	/**
+	 * A global setting that tells the pages to update their page id if their component
+	 * hierarchy changes somehow. This way versioned pages can have several versions
+	 * stored in the page stores and the user can go back and forth through the different
+	 * versions. If a page is not versioned then only its last state is keep in the page
+	 * stores and going back will lead the user to the page before the current one, not
+	 * to the previous state of the current one.
+	 *
+	 * @param pagesVersionedByDefault
+	 *      a flag that indicates whether pages should increase their page id when
+	 *      their component hierarchy changes somehow.
+	 */
+	public void setVersionPagesByDefault(boolean pagesVersionedByDefault)
+	{
+		versionPagesByDefault = pagesVersionedByDefault;
+	}
+
+	/**
+	 * When enabled (default), urls on mounted pages will contain the full mount path, including
+	 * PageParameters, allowing wicket to reinstantiate the page if got expired. When disabled, urls
+	 * only use the page id. If this setting is enabled, you should take care that names form fields
+	 * on mounted pages do not clash with the page parameters.
+	 *
+	 * @return if urls on mounted pages should be the full mount path
+	 * @see <a href="https://issues.apache.org/jira/browse/WICKET-4014">WICKET-4014</a>
+	 * @see <a href="https://issues.apache.org/jira/browse/WICKET-4290">WICKET-4290</a>
+	 */
+	public boolean getRecreateMountedPagesAfterExpiry()
+	{
+		return recreateMountedPagesAfterExpiry;
+	}
+
+	/**
+	 * Sets the recreateMountedPagesAfterExpiry setting
+	 *
+	 * @param recreateMountedPagesAfterExpiry
+	 */
+	public void setRecreateMountedPagesAfterExpiry(boolean recreateMountedPagesAfterExpiry)
+	{
+		this.recreateMountedPagesAfterExpiry = recreateMountedPagesAfterExpiry;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/RequestCycleSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/RequestCycleSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/RequestCycleSettings.java
new file mode 100644
index 0000000..512159e
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/RequestCycleSettings.java
@@ -0,0 +1,407 @@
+/*
+ * 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.settings;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.wicket.response.filter.IResponseFilter;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.time.Duration;
+
+/**
+ * Interface for request related settings
+ * <p>
+ * <i>bufferResponse </i> (defaults to true) - True if the application should buffer responses. This
+ * does require some additional memory, but helps keep exception displays accurate because the whole
+ * rendering process completes before the page is sent to the user, thus avoiding the possibility of
+ * a partially rendered page.
+ * <p>
+ * <i>renderStrategy </i>- Sets in what way the render part of a request is handled. Basically,
+ * there are two different options:
+ * <ul>
+ * <li>Direct, IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER. Everything is handled in one
+ * physical request. This is efficient, and is the best option if you want to do sophisticated
+ * clustering. It does not however, shield you from what is commonly known as the <i>Double submit
+ * problem </i></li>
+ * <li>Using a redirect. This follows the pattern <a
+ * href="http://www.theserverside.com/articles/article.tss?l=RedirectAfterPost" >as described at the
+ * serverside </a> and that is commonly known as Redirect after post. Wicket takes it one step
+ * further to do any rendering after a redirect, so that not only form submits are shielded from the
+ * double submit problem, but also the IRequestListener handlers (that could be e.g. a link that
+ * deletes a row). With this pattern, you have two options to choose from:
+ * <ul>
+ * <li>IRequestCycleSettings.RenderStrategy.REDIRECT_TO_RENDER. This option first handles the
+ * 'action' part of the request, which is either page construction (bookmarkable pages or the home
+ * page) or calling a IRequestListener handler, such as Link.onClick. When that part is done, a
+ * redirect is issued to the render part, which does all the rendering of the page and its
+ * components. <strong>Be aware </strong> that this may mean, depending on whether you access any
+ * models in the action part of the request, that attachment and detachment of some models is done
+ * twice for a request.</li>
+ * <li>IRequestCycleSettings.RenderStrategy.REDIRECT_TO_BUFFER. This option handles both the action-
+ * and the render part of the request in one physical request, but instead of streaming the result
+ * to the browser directly, it is kept in memory, and a redirect is issued to get this buffered
+ * result (after which it is immediately removed). This option currently is the default render
+ * strategy, as it shields you from the double submit problem, while being more efficient and less
+ * error prone regarding to detachable models.</li>
+ * </ul>
+ * Note: In rare cases the strategies involving redirect may lose session data! For example: if
+ * after the first phase of the strategy the server node fails without having the chance to
+ * replicate the session then the second phase will be executed on another node and the whole
+ * process will be restarted and thus anything stored in the first phase will be lost with the
+ * failure of the server node. For similar reasons it is recommended to use sticky sessions when
+ * using redirect strategies.</li>
+ * </ul>
+ *
+ * <p>
+ * More documentation is available about each setting in the setter method for the property.
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class RequestCycleSettings
+{
+	/**
+	 * Enum type for different render strategies
+	 */
+	public static enum RenderStrategy {
+		/**
+		 * All logical parts of a request (the action and render part) are handled within the same
+		 * request.
+		 * <p>
+		 * This strategy is more efficient than the 'REDIRECT_TO_RENDER' strategy, and doesn't have
+		 * some of the potential problems of it, it also does not solve the double submit problem.
+		 * It is however the best option to use when you want to do sophisticated (non-sticky
+		 * session) clustering.
+		 * </p>
+		 */
+		ONE_PASS_RENDER,
+
+		/**
+		 * All logical parts of a request (the action and render part) are handled within the same
+		 * request, but instead of streaming the render result to the browser directly, the result
+		 * is cached on the server. A client side redirect command is issued to the browser
+		 * specifically to render this request.
+		 */
+		REDIRECT_TO_BUFFER,
+
+		/**
+		 * The render part of a request (opposed to the 'action part' which is either the
+		 * construction of a bookmarkable page or the execution of a IRequestListener handler) is
+		 * handled by a separate request by issuing a redirect request to the browser. This is
+		 * commonly known as the 'redirect after submit' pattern, though in our case, we use it for
+		 * GET and POST requests instead of just the POST requests.
+		 * <p>
+		 * This pattern solves the 'refresh' problem. While it is a common feature of browsers to
+		 * refresh/ reload a web page, this results in problems in many dynamic web applications.
+		 * For example, when you have a link with an event handler that e.g. deletes a row from a
+		 * list, you usually want to ignore refresh requests after that link is clicked on. By using
+		 * this strategy, the refresh request only results in the re-rendering of the page without
+		 * executing the event handler again.
+		 * </p>
+		 * <p>
+		 * Though it solves the refresh problem, it introduces potential problems, as the request
+		 * that is logically one, are actually two separate request. Not only is this less
+		 * efficient, but this also can mean that within the same request attachment/ detachment of
+		 * models is done twice (in case you use models in the bookmarkable page constructors and
+		 * IRequestListener handlers). If you use this strategy, you should be aware of this
+		 * possibility, and should also be aware that for one logical request, actually two
+		 * instances of RequestCycle are created and processed.
+		 * </p>
+		 * <p>
+		 * Also, even with this strategy set, it is ignored for instances of
+		 * {@link org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler},
+		 * because otherwise they wouldn't be bookmarkable.
+		 * </p>
+		 */
+		REDIRECT_TO_RENDER
+	}
+
+	/** True if the response should be buffered */
+	private boolean bufferResponse = true;
+
+	/**
+	 * Whether Wicket should try to get extensive client info by redirecting to
+	 * {@link org.apache.wicket.markup.html.pages.BrowserInfoPage a page that polls for client
+	 * capabilities}. False by default.
+	 */
+	private boolean gatherExtendedBrowserInfo = false;
+
+	/**
+	 * The render strategy, defaults to 'REDIRECT_TO_BUFFER'. This property influences the default
+	 * way in how a logical request that consists of an 'action' and a 'render' part is handled, and
+	 * is mainly used to have a means to circumvent the 'refresh' problem.
+	 */
+	private RequestCycleSettings.RenderStrategy renderStrategy = RenderStrategy.REDIRECT_TO_BUFFER;
+
+	/** List of {@link IResponseFilter}s. */
+	private List<IResponseFilter> responseFilters;
+
+	/**
+	 * In order to do proper form parameter decoding it is important that the response and the
+	 * following request have the same encoding. see
+	 * http://www.crazysquirrel.com/computing/general/form-encoding.jspx for additional information.
+	 */
+	private String responseRequestEncoding = "UTF-8";
+
+	/**
+	 * The time that a request will by default be waiting for the previous request to be handled
+	 * before giving up. Defaults to one minute.
+	 */
+	private Duration timeout = Duration.ONE_MINUTE;
+
+	private int exceptionRetryCount = 10;
+
+// ****************************************************************************
+// IRequestCycleSettings Implementation
+// ****************************************************************************
+
+	/**
+	 * Adds a response filter to the list. Filters are evaluated in the order they have been added.
+	 *
+	 * @param responseFilter
+	 *            The {@link IResponseFilter} that is added
+	 */
+	public void addResponseFilter(IResponseFilter responseFilter)
+	{
+		if (responseFilters == null)
+		{
+			responseFilters = new ArrayList<IResponseFilter>(3);
+		}
+		responseFilters.add(responseFilter);
+	}
+
+	/**
+	 * Decides whether to buffer the response's headers until the end of the request processing.
+	 * The buffering is needed if the application makes use of
+	 * {@link org.apache.wicket.Component#setResponsePage(org.apache.wicket.request.component.IRequestablePage)} or
+	 * {@link org.apache.wicket.request.flow.ResetResponseException}
+	 *
+	 * @return {@code true} if the application should buffer the response's headers.
+	 */
+	public boolean getBufferResponse()
+	{
+		return bufferResponse;
+	}
+
+	/**
+	 * Gets whether Wicket should try to get extensive client info by redirecting to
+	 * {@link org.apache.wicket.markup.html.pages.BrowserInfoPage a page that polls for client capabilities}. This method is used by the
+	 * default implementation of {@link org.apache.wicket.Session#getClientInfo()}, so if that method is
+	 * overridden, there is no guarantee this method will be taken into account.
+	 *
+	 * @return Whether to gather extensive client info
+	 */
+	public boolean getGatherExtendedBrowserInfo()
+	{
+		return gatherExtendedBrowserInfo;
+	}
+
+	/**
+	 * Gets in what way the render part of a request is handled.
+	 *
+	 * @return the render strategy
+	 */
+	public RequestCycleSettings.RenderStrategy getRenderStrategy()
+	{
+		return renderStrategy;
+	}
+
+	/**
+	 * @return an unmodifiable list of added response filters, null if none
+	 */
+	public List<IResponseFilter> getResponseFilters()
+	{
+		if (responseFilters == null)
+		{
+			return null;
+		}
+		else
+		{
+			return Collections.unmodifiableList(responseFilters);
+		}
+	}
+
+
+	/**
+	 * In order to do proper form parameter encoding it is important that the response and the
+	 * subsequent request stipulate a common character encoding.
+	 *
+	 * possible form encodings and their problems:
+	 *
+	 * <ul>
+	 * <li><a
+	 * href="http://www.crazysquirrel.com/computing/general/form-encoding.jspx">application/x-
+	 * www-form-urlencoded</a></li>
+	 * <li><a href=
+	 * "http://stackoverflow.com/questions/546365/utf-8-text-is-garbled-when-form-is-posted-as-multipart-form-data"
+	 * >multipart/form-data</a></li>
+	 * </ul>
+	 *
+	 * wicket now uses multipart/form-data for it's forms.
+	 *
+	 * @return The request and response encoding
+	 */
+	public String getResponseRequestEncoding()
+	{
+		return responseRequestEncoding;
+	}
+
+	/**
+	 * Gets the time that a request will by default be waiting for the previous request to be
+	 * handled before giving up.
+	 *
+	 * @return The time out
+	 */
+	public Duration getTimeout()
+	{
+		return timeout;
+	}
+
+	/**
+	 * Sets a flag whether the application should buffer the response's headers until the end
+	 * of the request processing. The buffering is needed if the application makes use of
+	 * {@link org.apache.wicket.Component#setResponsePage(org.apache.wicket.request.component.IRequestablePage)}
+	 * or {@link org.apache.wicket.request.flow.ResetResponseException}
+	 *
+	 * @param bufferResponse
+	 *            {@code true} if the application should buffer response's headers.
+	 */
+	public void setBufferResponse(boolean bufferResponse)
+	{
+		this.bufferResponse = bufferResponse;
+	}
+
+	/**
+	 * Sets whether Wicket should try to get extensive client info by redirecting to
+	 * {@link org.apache.wicket.markup.html.pages.BrowserInfoPage a page that polls for client capabilities}. This method is used by the
+	 * default implementation of {@link org.apache.wicket.Session#getClientInfo()}, so if that method is
+	 * overridden, there is no guarantee this method will be taken into account.
+	 *
+	 * <p>
+	 * <strong>WARNING: </strong> though this facility should work transparently in most cases, it
+	 * is recommended that you trigger the roundtrip to get the browser info somewhere where it
+	 * hurts the least. The roundtrip will be triggered the first time you call
+	 * {@link org.apache.wicket.Session#getClientInfo()} for a session, and after the roundtrip a new request with the
+	 * same info (url, post parameters) is handled. So rather than calling this in the middle of an
+	 * implementation of a form submit method, which would result in the code of that method before
+	 * the call to {@link org.apache.wicket.Session#getClientInfo()} to be executed twice, you best call
+	 * {@link org.apache.wicket.Session#getClientInfo()} e.g. in a page constructor or somewhere else where you didn't
+	 * do a lot of processing first.
+	 * </p>
+	 *
+	 * @param gatherExtendedBrowserInfo
+	 *            Whether to gather extensive client info
+	 */
+	public void setGatherExtendedBrowserInfo(boolean gatherExtendedBrowserInfo)
+	{
+		this.gatherExtendedBrowserInfo = gatherExtendedBrowserInfo;
+	}
+
+	/**
+	 * Sets in what way the render part of a request is handled. Basically, there are two different
+	 * options:
+	 * <ul>
+	 * <li>Direct, ApplicationSettings.ONE_PASS_RENDER. Everything is handled in one physical
+	 * request. This is efficient, and is the best option if you want to do sophisticated
+	 * clustering. It does not however, shield you from what is commonly known as the <i>Double
+	 * submit problem </i></li>
+	 * <li>Using a redirect. This follows the pattern <a
+	 * href="http://www.theserverside.com/articles/article.tss?l=RedirectAfterPost" >as described at
+	 * the serverside </a> and that is commonly known as Redirect after post. Wicket takes it one
+	 * step further to do any rendering after a redirect, so that not only form submits are shielded
+	 * from the double submit problem, but also the IRequestListener handlers (that could be e.g. a
+	 * link that deletes a row). With this pattern, you have two options to choose from:
+	 * <ul>
+	 * <li>ApplicationSettings.REDIRECT_TO_RENDER. This option first handles the 'action' part of
+	 * the request, which is either page construction (bookmarkable pages or the home page) or
+	 * calling a IRequestListener handler, such as Link.onClick. When that part is done, a redirect
+	 * is issued to the render part, which does all the rendering of the page and its components.
+	 * <strong>Be aware </strong> that this may mean, depending on whether you access any models in
+	 * the action part of the request, that attachment and detachment of some models is done twice
+	 * for a request.</li>
+	 * <li>ApplicationSettings.REDIRECT_TO_BUFFER. This option handles both the action- and the
+	 * render part of the request in one physical request, but instead of streaming the result to
+	 * the browser directly, it is kept in memory, and a redirect is issue to get this buffered
+	 * result (after which it is immediately removed). This option currently is the default render
+	 * strategy, as it shields you from the double submit problem, while being more efficient and
+	 * less error prone regarding to detachable models.</li>
+	 * </ul>
+	 *
+	 * @param renderStrategy
+	 *            the render strategy that should be used by default.
+	 */
+	public void setRenderStrategy(RequestCycleSettings.RenderStrategy renderStrategy)
+	{
+		this.renderStrategy = renderStrategy;
+	}
+
+	/**
+	 * In order to do proper form parameter decoding it is important that the response and the
+	 * following request have the same encoding. see
+	 * http://www.crazysquirrel.com/computing/general/form-encoding.jspx for additional information.
+	 *
+	 * Default encoding: UTF-8
+	 *
+	 * @param encoding
+	 *            The request and response encoding to be used.
+	 */
+	public void setResponseRequestEncoding(final String encoding)
+	{
+		Args.notNull(encoding, "encoding");
+		this.responseRequestEncoding = encoding;
+	}
+
+	/**
+	 * Sets the time that a request will by default be waiting for the previous request to be
+	 * handled before giving up.
+	 *
+	 * @param timeout
+	 */
+	public void setTimeout(Duration timeout)
+	{
+		Args.notNull(timeout, "timeout");
+		this.timeout = timeout;
+	}
+
+	/**
+	 * Sets how many attempts Wicket will make to render the exception request handler before
+	 *         giving up.
+	 * @param retries
+	 *      the number of attempts
+	 */
+	public void setExceptionRetryCount(int retries)
+	{
+		this.exceptionRetryCount = retries;
+	}
+
+	/**
+	 * @return How many times will Wicket attempt to render the exception request handler before
+	 *         giving up.
+	 */
+	public int getExceptionRetryCount()
+	{
+		return exceptionRetryCount;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/RequestLoggerSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/RequestLoggerSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/RequestLoggerSettings.java
new file mode 100644
index 0000000..bca2d41
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/RequestLoggerSettings.java
@@ -0,0 +1,93 @@
+/*
+ * 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.settings;
+
+/**
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class RequestLoggerSettings
+{
+	private boolean recordSessionSize = true;
+
+	private int requestsWindowSize = 0;
+
+	private boolean requestLoggerEnabled;
+
+	/**
+	 * @return true if the session size is recorded. (default true)
+	 */
+	public boolean getRecordSessionSize()
+	{
+		return recordSessionSize;
+	}
+
+	/**
+	 * @return The window size of the recorded requests. (default 2000)
+	 */
+	public int getRequestsWindowSize()
+	{
+		return requestsWindowSize;
+	}
+
+	/**
+	 * @return true if the request Logger is enabled. (default false)
+	 */
+	public boolean isRequestLoggerEnabled()
+	{
+		return requestLoggerEnabled;
+	}
+
+	/**
+	 * Enable/Disable the recording of the session size for every request.
+	 *
+	 * @param record
+	 */
+	public void setRecordSessionSize(boolean record)
+	{
+		recordSessionSize = record;
+	}
+
+	/**
+	 * Enable/Disable the request logger.
+	 *
+	 * @param enable
+	 *            boolean.
+	 */
+	public void setRequestLoggerEnabled(boolean enable)
+	{
+		requestLoggerEnabled = enable;
+	}
+
+	/**
+	 * Set the window of all the requests that is kept in memory for viewing. Default is 2000, You
+	 * can set this to 0 then only Sessions data is recorded (number of request, total time, latest
+	 * size)
+	 *
+	 * @param size
+	 */
+	public void setRequestsWindowSize(int size)
+	{
+		requestsWindowSize = size;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/ResourceSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/ResourceSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/ResourceSettings.java
new file mode 100644
index 0000000..1d7bf1c
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/ResourceSettings.java
@@ -0,0 +1,731 @@
+/*
+ * 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.settings;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.Component;
+import org.apache.wicket.IResourceFactory;
+import org.apache.wicket.Localizer;
+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.css.ICssCompressor;
+import org.apache.wicket.javascript.IJavaScriptCompressor;
+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;
+import org.apache.wicket.request.resource.caching.IResourceCachingStrategy;
+import org.apache.wicket.request.resource.caching.NoOpResourceCachingStrategy;
+import org.apache.wicket.request.resource.caching.version.CachingResourceVersion;
+import org.apache.wicket.request.resource.caching.version.IResourceVersion;
+import org.apache.wicket.request.resource.caching.version.LastModifiedResourceVersion;
+import org.apache.wicket.request.resource.caching.version.MessageDigestResourceVersion;
+import org.apache.wicket.request.resource.caching.version.RequestCycleCachedResourceVersion;
+import org.apache.wicket.resource.IPropertiesFactoryContext;
+import org.apache.wicket.resource.PropertiesFactory;
+import org.apache.wicket.resource.loader.ClassStringResourceLoader;
+import org.apache.wicket.resource.loader.ComponentStringResourceLoader;
+import org.apache.wicket.resource.loader.IStringResourceLoader;
+import org.apache.wicket.resource.loader.InitializerStringResourceLoader;
+import org.apache.wicket.resource.loader.PackageStringResourceLoader;
+import org.apache.wicket.resource.loader.ValidatorStringResourceLoader;
+import org.apache.wicket.util.file.IFileCleaner;
+import org.apache.wicket.util.file.IResourceFinder;
+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.time.Duration;
+import org.apache.wicket.util.watch.IModificationWatcher;
+import org.apache.wicket.util.watch.ModificationWatcher;
+
+/**
+ * Interface for resource related settings
+ * <p>
+ * <i>resourcePollFrequency </i> (defaults to no polling frequency) - Frequency at which resources
+ * should be polled for changes.
+ * <p>
+ * <i>resourceFinders</i> - Add/modify this to alter the search path for resources.
+ * <p>
+ * <i>useDefaultOnMissingResource </i> (defaults to true) - Set to true to return a default value if
+ * available when a required string resource is not found. If set to false then the
+ * throwExceptionOnMissingResource flag is used to determine how to behave. If no default is
+ * available then this is the same as if this flag were false
+ * <p>
+ * <i>A ResourceStreamLocator </i>- An Application's ResourceStreamLocator is used to find resources
+ * such as images or markup files. You can supply your own ResourceStreamLocator if your prefer to
+ * store your application's resources in a non-standard location (such as a different filesystem
+ * location, a particular JAR file or even a database) by overriding the getResourceLocator()
+ * method.
+ * <p>
+ * <i>Resource Factories </i>- Resource factories can be used to create resources dynamically from
+ * specially formatted HTML tag attribute values. For more details, see {@link IResourceFactory},
+ * {@link org.apache.wicket.markup.html.image.resource.DefaultButtonImageResourceFactory} and
+ * especially {@link org.apache.wicket.markup.html.image.resource.LocalizedImageResource}.
+ * <p>
+ * <i>A Localizer </i> The getLocalizer() method returns an object encapsulating all of the
+ * functionality required to access localized resources. For many localization problems, even this
+ * will not be required, as there are convenience methods available to all components:
+ * {@link org.apache.wicket.Component#getString(String key)} and
+ * {@link org.apache.wicket.Component#getString(String key, org.apache.wicket.model.IModel model)}.
+ * <p>
+ * <i>stringResourceLoaders </i>- A chain of <code>IStringResourceLoader</code> instances that are
+ * searched in order to obtain string resources used during localization. By default the chain is
+ * set up to first search for resources against a particular component (e.g. page etc.) and then
+ * against the application.
+ * </p>
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class ResourceSettings implements IPropertiesFactoryContext
+{
+	/** I18N support */
+	private Localizer localizer;
+
+	/** Map to look up resource factories by name */
+	private final Map<String, IResourceFactory> nameToResourceFactory = Generics.newHashMap();
+
+	/** The package resource guard. */
+	private IPackageResourceGuard packageResourceGuard = new SecurePackageResourceGuard(
+		new SecurePackageResourceGuard.SimpleCache(100));
+
+	/** The factory to be used for the property files */
+	private org.apache.wicket.resource.IPropertiesFactory propertiesFactory;
+
+	/** Filesystem Path to search for resources */
+	private List<IResourceFinder> resourceFinders = new ArrayList<IResourceFinder>();
+
+	/** Frequency at which files should be polled */
+	private Duration resourcePollFrequency = null;
+
+	/** resource locator for this application */
+	private IResourceStreamLocator resourceStreamLocator;
+
+	/** ModificationWatcher to watch for changes in markup files */
+	private IModificationWatcher resourceWatcher;
+
+	/**
+	 * A cleaner that removes files asynchronously.
+	 * <p>
+	 * Used internally to remove the temporary files created by FileUpload functionality.
+	 */
+	private IFileCleaner fileCleaner;
+
+	/** Chain of string resource loaders to use */
+	private final List<IStringResourceLoader> stringResourceLoaders = Generics.newArrayList(4);
+
+	/** Flags used to determine how to behave if resources are not found */
+	private boolean throwExceptionOnMissingResource = true;
+
+	/** Determines behavior of string resource loading if string is missing */
+	private boolean useDefaultOnMissingResource = true;
+
+	/** Default cache duration */
+	private Duration defaultCacheDuration = WebResponse.MAX_CACHE_DURATION;
+
+	/** The JavaScript compressor */
+	private IJavaScriptCompressor javascriptCompressor;
+
+	/** The Css compressor */
+	private ICssCompressor cssCompressor;
+
+	/** escape string for '..' within resource keys */
+	private String parentFolderPlaceholder = "::";
+
+	// resource caching strategy
+	private IResourceCachingStrategy resourceCachingStrategy;
+
+	// application these settings are bound to
+	private final Application application;
+
+	private boolean useMinifiedResources = true;
+
+	private Comparator<? super RecordedHeaderItem> headerItemComparator = new PriorityFirstComparator(
+		false);
+
+	private boolean encodeJSessionId = false;
+
+	/**
+	 * Configures Wicket's default ResourceLoaders.<br>
+	 * For an example in {@code FooApplication} let {@code bar.Foo} extend {@link Component}, this
+	 * results in the following ordering:
+	 * <dl>
+	 * <dt>component specific</dt>
+	 * <dd>
+	 * <ul>
+	 * <li>bar/Foo.properties</li>
+	 * <li>org/apache/wicket/Component.properties</li>
+	 * </ul>
+	 * </dd>
+	 * <dt>package specific</dt>
+	 * <dd>
+	 * <ul>
+	 * <li>bar/package.properties</li>
+	 * <li>package.properties (on Foo's class loader)</li>
+	 * <li>org/apache/wicket/package.properties</li>
+	 * <li>org/apache/package.properties</li>
+	 * <li>org/package.properties</li>
+	 * <li>package.properties (on Component's class loader)</li>
+	 * </ul>
+	 * </dd>
+	 * <dt>application specific</dt>
+	 * <dd>
+	 * <ul>
+	 * <li>FooApplication.properties</li>
+	 * <li>Application.properties</li>
+	 * </ul>
+	 * </dd>
+	 * <dt>validator specific</dt>
+	 * <dt>Initializer specific</dt>
+	 * <dd>
+	 * <ul>
+	 * <li>bar.Foo.properties (Foo implementing IInitializer)</li>
+	 * </ul>
+	 * </dd>
+	 * </dl>
+	 * 
+	 * @param application
+	 */
+	public ResourceSettings(final Application application)
+	{
+		this.application = application;
+		stringResourceLoaders.add(new ComponentStringResourceLoader());
+		stringResourceLoaders.add(new PackageStringResourceLoader());
+		stringResourceLoaders.add(new ClassStringResourceLoader(application.getClass()));
+		stringResourceLoaders.add(new ValidatorStringResourceLoader());
+		stringResourceLoaders.add(new InitializerStringResourceLoader(application.getInitializers()));
+	}
+
+	/**
+	 * Adds a resource factory to the list of factories to consult when generating resources
+	 * automatically
+	 *
+	 * @param name
+	 *            The name to give to the factory
+	 * @param resourceFactory
+	 *            The resource factory to add
+	 */
+	public void addResourceFactory(final String name, IResourceFactory resourceFactory)
+	{
+		nameToResourceFactory.put(name, resourceFactory);
+	}
+
+	public Localizer getLocalizer()
+	{
+		if (localizer == null)
+		{
+			localizer = new Localizer();
+		}
+		return localizer;
+	}
+
+	/**
+	 * Gets the {@link org.apache.wicket.markup.html.PackageResourceGuard package resource guard}.
+	 *
+	 * @return The package resource guard
+	 */
+	public IPackageResourceGuard getPackageResourceGuard()
+	{
+		return packageResourceGuard;
+	}
+
+	/**
+	 * Get the property factory which will be used to load property files
+	 *
+	 * @return PropertiesFactory
+	 */
+	public org.apache.wicket.resource.IPropertiesFactory getPropertiesFactory()
+	{
+		if (propertiesFactory == null)
+		{
+			propertiesFactory = new PropertiesFactory(this);
+		}
+		return propertiesFactory;
+	}
+
+	/**
+	 * @param name
+	 *            Name of the factory to get
+	 * @return The IResourceFactory with the given name.
+	 */
+	public IResourceFactory getResourceFactory(final String name)
+	{
+		return nameToResourceFactory.get(name);
+	}
+
+	/**
+	 * Gets the resource finders to use when searching for resources. By default, a finder that
+	 * looks in the classpath root is configured. {@link org.apache.wicket.protocol.http.WebApplication} adds the classpath
+	 * directory META-INF/resources. To configure additional search paths or filesystem paths, add
+	 * to this list.
+	 *
+	 * @return Returns the resourceFinders.
+	 */
+	public List<IResourceFinder> getResourceFinders()
+	{
+		return resourceFinders;
+	}
+
+	/**
+	 * @return Returns the resourcePollFrequency.
+	 */
+	public Duration getResourcePollFrequency()
+	{
+		return resourcePollFrequency;
+	}
+
+	public IResourceStreamLocator getResourceStreamLocator()
+	{
+		if (resourceStreamLocator == null)
+		{
+			// Create compound resource locator using source path from
+			// application settings
+			resourceStreamLocator = new ResourceStreamLocator(getResourceFinders());
+			resourceStreamLocator = new CachingResourceStreamLocator(resourceStreamLocator);
+		}
+		return resourceStreamLocator;
+	}
+
+	public IModificationWatcher getResourceWatcher(boolean start)
+	{
+		if (resourceWatcher == null && start)
+		{
+			synchronized (this)
+			{
+				if (resourceWatcher == null)
+				{
+					final Duration pollFrequency = getResourcePollFrequency();
+					if (pollFrequency != null)
+					{
+						resourceWatcher = new ModificationWatcher(pollFrequency);
+					}
+				}
+			}
+		}
+		return resourceWatcher;
+	}
+
+	/**
+	 * Sets the resource watcher
+	 *
+	 * @param watcher
+	 */
+	public void setResourceWatcher(IModificationWatcher watcher)
+	{
+		resourceWatcher = watcher;
+	}
+
+	/**
+	 * @return the a cleaner which can be used to remove files asynchronously.
+	 */
+	public IFileCleaner getFileCleaner()
+	{
+		return fileCleaner;
+	}
+
+	/**
+	 * Sets a cleaner that can be used to remove files asynchronously.
+	 * <p>
+	 * Used internally to delete the temporary files created by FileUpload functionality
+	 *
+	 * @param fileUploadCleaner
+	 *            the actual cleaner implementation. Can be <code>null</code>
+	 */
+	public void setFileCleaner(IFileCleaner fileUploadCleaner)
+	{
+		fileCleaner = fileUploadCleaner;
+	}
+
+	/**
+	 * @return mutable list of all available string resource loaders
+	 */
+	public List<IStringResourceLoader> getStringResourceLoaders()
+	{
+		return stringResourceLoaders;
+	}
+
+	public boolean getThrowExceptionOnMissingResource()
+	{
+		return throwExceptionOnMissingResource;
+	}
+
+	/**
+	 * @return Whether to use a default value (if available) when a missing resource is requested
+	 */
+	public boolean getUseDefaultOnMissingResource()
+	{
+		return useDefaultOnMissingResource;
+	}
+
+	/**
+	 * Sets the localizer which will be used to find property values.
+	 *
+	 * @param localizer
+	 * @since 1.3.0
+	 */
+	public void setLocalizer(final Localizer localizer)
+	{
+		this.localizer = localizer;
+	}
+
+	/**
+	 * Sets the {@link org.apache.wicket.markup.html.PackageResourceGuard package resource guard}.
+	 *
+	 * @param packageResourceGuard
+	 *            The package resource guard
+	 */
+	public void setPackageResourceGuard(IPackageResourceGuard packageResourceGuard)
+	{
+		this.packageResourceGuard = Args.notNull(packageResourceGuard, "packageResourceGuard");
+	}
+
+	/**
+	 * Set the property factory which will be used to load property files
+	 *
+	 * @param factory
+	 */
+	public void setPropertiesFactory(org.apache.wicket.resource.IPropertiesFactory factory)
+	{
+		propertiesFactory = factory;
+	}
+
+	/**
+	 * Sets the finders to use when searching for resources. By default, the resources are located
+	 * on the classpath. To add additional search paths, add to the list given by
+	 * {@link #getResourceFinders()}. Use this method if you want to completely exchange the list of
+	 * resource finders.
+	 *
+	 * @param resourceFinders
+	 *            The resourceFinders to set
+	 */
+	public void setResourceFinders(final List<IResourceFinder> resourceFinders)
+	{
+		Args.notNull(resourceFinders, "resourceFinders");
+		this.resourceFinders = resourceFinders;
+
+		// Cause resource locator to get recreated
+		resourceStreamLocator = null;
+	}
+
+	/**
+	 * Sets the resource polling frequency. This is the duration of time between checks of resource
+	 * modification times. If a resource, such as an HTML file, has changed, it will be reloaded.
+	 * The default is one second in 'development' mode and 'never' in deployment mode.
+	 *
+	 * @param resourcePollFrequency
+	 *            Frequency at which to poll resources or <code>null</code> if polling should be
+	 *            disabled
+	 */
+	public void setResourcePollFrequency(final Duration resourcePollFrequency)
+	{
+		this.resourcePollFrequency = resourcePollFrequency;
+	}
+
+	/**
+	 * /**
+	 * Sets the resource stream locator for this application
+	 *
+	 * Consider wrapping <code>resourceStreamLocator</code> in {@link CachingResourceStreamLocator}.
+	 * This way the locator will not be asked more than once for {@link IResourceStream}s which do
+	 * not exist.
+	 * @param resourceStreamLocator
+	 *            new resource stream locator
+	 *
+	 * @see #getResourceStreamLocator()
+	 */
+	public void setResourceStreamLocator(IResourceStreamLocator resourceStreamLocator)
+	{
+		this.resourceStreamLocator = resourceStreamLocator;
+	}
+
+	public void setThrowExceptionOnMissingResource(final boolean throwExceptionOnMissingResource)
+	{
+		this.throwExceptionOnMissingResource = throwExceptionOnMissingResource;
+	}
+
+	/**
+	 * @param useDefaultOnMissingResource
+	 *            Whether to use a default value (if available) when a missing resource is requested
+	 */
+	public void setUseDefaultOnMissingResource(final boolean useDefaultOnMissingResource)
+	{
+		this.useDefaultOnMissingResource = useDefaultOnMissingResource;
+	}
+
+	/**
+	 * Get the the default cache duration for resources.
+	 * <p/>
+	 *
+	 * @return cache duration (Duration.NONE will be returned if caching is disabled)
+	 *
+	 * @see org.apache.wicket.util.time.Duration#NONE
+	 */
+	public final Duration getDefaultCacheDuration()
+	{
+		return defaultCacheDuration;
+	}
+
+	/**
+	 * Set the the default cache duration for resources.
+	 * <p/>
+	 * Based on RFC-2616 this should not exceed one year. If you set Duration.NONE caching will be
+	 * disabled.
+	 *
+	 * @param duration
+	 *            default cache duration in seconds
+	 *
+	 * @see org.apache.wicket.util.time.Duration#NONE
+	 * @see org.apache.wicket.request.http.WebResponse#MAX_CACHE_DURATION
+	 */
+	public final void setDefaultCacheDuration(Duration duration)
+	{
+		Args.notNull(duration, "duration");
+		defaultCacheDuration = duration;
+	}
+
+	/**
+	 * Get the javascript compressor to remove comments and whitespace characters from javascripts
+	 *
+	 * @return whether the comments and whitespace characters will be stripped from resources served
+	 *         through {@link org.apache.wicket.request.resource.JavaScriptPackageResource
+	 *         JavaScriptPackageResource}. Null is a valid value.
+	 */
+	public IJavaScriptCompressor getJavaScriptCompressor()
+	{
+		return javascriptCompressor;
+	}
+
+	/**
+	 * Set the javascript compressor implemententation use e.g. by
+	 * {@link org.apache.wicket.request.resource.JavaScriptPackageResource
+	 * JavaScriptPackageResource}. A typical implementation will remove comments and whitespace. But
+	 * a no-op implementation is available as well.
+	 *
+	 * @param compressor
+	 *            The implementation to be used
+	 * @return The old value
+	 */
+	public IJavaScriptCompressor setJavaScriptCompressor(IJavaScriptCompressor compressor)
+	{
+		IJavaScriptCompressor old = javascriptCompressor;
+		javascriptCompressor = compressor;
+		return old;
+	}
+
+	/**
+	 * Get the CSS compressor to remove comments and whitespace characters from css resources
+	 *
+	 * @return whether the comments and whitespace characters will be stripped from resources served
+	 *         through {@link org.apache.wicket.request.resource.CssPackageResource
+	 *         CssPackageResource}. Null is a valid value.
+	 */
+	public ICssCompressor getCssCompressor()
+	{
+		return cssCompressor;
+	}
+
+	/**
+	 * Set the CSS compressor implemententation use e.g. by
+	 * {@link org.apache.wicket.request.resource.CssPackageResource CssPackageResource}. A typical
+	 * implementation will remove comments and whitespace. But a no-op implementation is available
+	 * as well.
+	 *
+	 * @param compressor
+	 *            The implementation to be used
+	 * @return The old value
+	 */
+	public ICssCompressor setCssCompressor(ICssCompressor compressor)
+	{
+		ICssCompressor old = cssCompressor;
+		cssCompressor = compressor;
+		return old;
+	}
+
+	/**
+	 * Placeholder string for '..' within resource urls (which will be crippled by the browser and
+	 * not work anymore). Note that by default the placeholder string is <code>::</code>. Resources
+	 * are protected by a {@link org.apache.wicket.markup.html.IPackageResourceGuard
+	 * IPackageResourceGuard} implementation such as
+	 * {@link org.apache.wicket.markup.html.PackageResourceGuard} which you may use or extend based
+	 * on your needs.
+	 *
+	 * @return placeholder
+	 */
+	public String getParentFolderPlaceholder()
+	{
+		return parentFolderPlaceholder;
+	}
+
+	/**
+	 * Placeholder string for '..' within resource urls (which will be crippled by the browser and
+	 * not work anymore). Note that by default the placeholder string is <code>null</code> and thus
+	 * will not allow to access parent folders. That is by purpose and for security reasons (see
+	 * Wicket-1992). In case you really need it, a good value for placeholder would e.g. be "$up$".
+	 * Resources additionally are protected by a
+	 * {@link org.apache.wicket.markup.html.IPackageResourceGuard IPackageResourceGuard}
+	 * implementation such as {@link org.apache.wicket.markup.html.PackageResourceGuard} which you
+	 * may use or extend based on your needs.
+	 *
+	 * @see #getParentFolderPlaceholder()
+	 *
+	 * @param sequence
+	 *            character sequence which must not be ambiguous within urls
+	 */
+	public void setParentFolderPlaceholder(final String sequence)
+	{
+		parentFolderPlaceholder = sequence;
+	}
+
+	/**
+	 * gets the resource caching strategy
+	 *
+	 * @return strategy
+	 */
+	public IResourceCachingStrategy getCachingStrategy()
+	{
+		if (resourceCachingStrategy == null)
+		{
+			final IResourceVersion resourceVersion;
+
+			if (application.usesDevelopmentConfig())
+			{
+				// development mode:
+				// use last-modified timestamp of packaged resource for resource caching
+				// cache the version information for the lifetime of the current http request
+				resourceVersion = new RequestCycleCachedResourceVersion(
+					new LastModifiedResourceVersion());
+			}
+			else
+			{
+				// deployment mode:
+				// use message digest over resource content for resource caching
+				// cache the version information for the lifetime of the application
+				resourceVersion = new CachingResourceVersion(new MessageDigestResourceVersion());
+			}
+			// cache resource with a version string in the filename
+			resourceCachingStrategy = new FilenameWithVersionResourceCachingStrategy(
+				resourceVersion);
+		}
+		return resourceCachingStrategy;
+	}
+
+	/**
+	 * sets the resource caching strategy
+	 *
+	 * @param strategy
+	 *            instance of resource caching strategy
+	 *
+	 * @see IResourceCachingStrategy
+	 */
+	public void setCachingStrategy(IResourceCachingStrategy strategy)
+	{
+		if (strategy == null)
+		{
+			throw new NullPointerException(
+				"It is not allowed to set the resource caching strategy to value NULL. " +
+					"Please use " + NoOpResourceCachingStrategy.class.getName() + " instead.");
+		}
+		resourceCachingStrategy = strategy;
+	}
+
+	/**
+	 * Sets whether to use pre-minified resources when available. Minified resources are detected by
+	 * name. The minified version of {@code x.js} is expected to be called {@code x.min.js}. For css
+	 * files, the same convention is used: {@code x.min.css} is the minified version of
+	 * {@code x.css}. When this is null, minified resources will only be used in deployment
+	 * configuration.
+	 *
+	 * @param useMinifiedResources
+	 *            The new value for the setting
+	 */
+	public void setUseMinifiedResources(boolean useMinifiedResources)
+	{
+		this.useMinifiedResources = useMinifiedResources;
+	}
+
+	/**
+	 * @return Whether pre-minified resources will be used.
+	 */
+	public boolean getUseMinifiedResources()
+	{
+		return useMinifiedResources;
+	}
+
+	/**
+	 * @return The comparator used to sort header items.
+	 */
+	public Comparator<? super RecordedHeaderItem> getHeaderItemComparator()
+	{
+		return headerItemComparator;
+	}
+
+	/**
+	 * Sets the comparator used by the {@linkplain org.apache.wicket.markup.head.ResourceAggregator resource aggregator} for
+	 * sorting header items. It should be noted that sorting header items may break resource
+	 * dependencies. This comparator should therefore at least respect dependencies declared by
+	 * resource references. By default, items are sorted using the {@link PriorityFirstComparator}.
+	 *
+	 * @param headerItemComparator
+	 *            The comparator used to sort header items, when null, header items will not be
+	 *            sorted.
+	 */
+	public void setHeaderItemComparator(Comparator<? super RecordedHeaderItem> headerItemComparator)
+	{
+		this.headerItemComparator = headerItemComparator;
+	}
+
+	/**
+	 * A flag indicating whether static resources should have <tt>jsessionid</tt> encoded in their
+	 * url.
+	 *
+	 * @return {@code true} if the jsessionid should be encoded in the url for resources
+	 *         implementing
+	 *         {@link org.apache.wicket.request.resource.caching.IStaticCacheableResource} when the
+	 *         cookies are disabled and there is an active http session.
+	 */
+	public boolean isEncodeJSessionId()
+	{
+		return encodeJSessionId;
+	}
+
+	/**
+	 * Sets a flag indicating whether the jsessionid should be encoded in the url for resources
+	 * implementing {@link org.apache.wicket.request.resource.caching.IStaticCacheableResource} when
+	 * the cookies are disabled and there is an active http session.
+	 *
+	 * @param encodeJSessionId
+	 *            {@code true} when the jsessionid should be encoded, {@code false} - otherwise
+	 */
+	public void setEncodeJSessionId(boolean encodeJSessionId)
+	{
+		this.encodeJSessionId = encodeJSessionId;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/SecuritySettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/SecuritySettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/SecuritySettings.java
new file mode 100644
index 0000000..35abba6
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/SecuritySettings.java
@@ -0,0 +1,235 @@
+/*
+ * 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.settings;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.authentication.IAuthenticationStrategy;
+import org.apache.wicket.authentication.strategy.DefaultAuthenticationStrategy;
+import org.apache.wicket.authorization.IAuthorizationStrategy;
+import org.apache.wicket.authorization.IUnauthorizedComponentInstantiationListener;
+import org.apache.wicket.authorization.IUnauthorizedResourceRequestListener;
+import org.apache.wicket.authorization.UnauthorizedInstantiationException;
+import org.apache.wicket.util.crypt.CachingSunJceCryptFactory;
+import org.apache.wicket.util.crypt.ICryptFactory;
+import org.apache.wicket.util.lang.Args;
+
+/**
+ * Interface for security related settings
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class SecuritySettings
+{
+	/**
+	 * encryption key used by default crypt factory
+	 */
+	public static final String DEFAULT_ENCRYPTION_KEY = "WiCkEt-FRAMEwork";
+
+	/** The authorization strategy. */
+	private IAuthorizationStrategy authorizationStrategy = IAuthorizationStrategy.ALLOW_ALL;
+
+	/** The authentication strategy. */
+	private IAuthenticationStrategy authenticationStrategy;
+
+	/** factory for creating crypt objects */
+	private ICryptFactory cryptFactory;
+
+	/**
+	 * Whether mounts should be enforced. If true, requests for mounted targets have to done through
+	 * the mounted paths. If, for instance, a bookmarkable page is mounted to a path, a request to
+	 * that same page via the bookmarkablePage parameter will be denied.
+	 */
+	private boolean enforceMounts = false;
+
+	/** Authorizer for component instantiations */
+	private static final IUnauthorizedComponentInstantiationListener DEFAULT_UNAUTHORIZED_COMPONENT_INSTANTIATION_LISTENER = new IUnauthorizedComponentInstantiationListener()
+	{
+		/**
+		 * Called when an unauthorized component instantiation is about to take place (but before it
+		 * happens).
+		 * 
+		 * @param component
+		 *            The partially constructed component (only the id is guaranteed to be valid).
+		 */
+		@Override
+		public void onUnauthorizedInstantiation(final Component component)
+		{
+			throw new UnauthorizedInstantiationException(component.getClass());
+		}
+	};
+
+	private IUnauthorizedComponentInstantiationListener unauthorizedComponentInstantiationListener =
+			DEFAULT_UNAUTHORIZED_COMPONENT_INSTANTIATION_LISTENER;
+
+	private static final IUnauthorizedResourceRequestListener DEFAULT_UNAUTHORIZED_RESOURCE_REQUEST_LISTENER =
+			new DefaultUnauthorizedResourceRequestListener();
+
+	private IUnauthorizedResourceRequestListener unauthorizedResourceRequestListener = DEFAULT_UNAUTHORIZED_RESOURCE_REQUEST_LISTENER;
+
+	/**
+	 * Gets the authorization strategy.
+	 *
+	 * @return Returns the authorizationStrategy.
+	 */
+	public IAuthorizationStrategy getAuthorizationStrategy()
+	{
+		return authorizationStrategy;
+	}
+
+	/**
+	 * Note: Prints a warning to stderr if no factory was set and {@link #DEFAULT_ENCRYPTION_KEY} is
+	 * used instead.
+	 * 
+	 * @return crypt factory used to generate crypt objects
+	 */
+	public synchronized ICryptFactory getCryptFactory()
+	{
+		if (cryptFactory == null)
+		{
+			System.err
+				.print("********************************************************************\n"
+					+ "*** WARNING: Wicket is using a DEFAULT_ENCRYPTION_KEY            ***\n"
+					+ "***                            ^^^^^^^^^^^^^^^^^^^^^^            ***\n"
+					+ "*** Do NOT deploy to your live server(s) without changing this.  ***\n"
+					+ "*** See SecuritySettings#setCryptFactory() for more information. ***\n"
+					+ "********************************************************************\n");
+
+			cryptFactory = new CachingSunJceCryptFactory(DEFAULT_ENCRYPTION_KEY);
+		}
+		return cryptFactory;
+	}
+
+	/**
+	 * Gets whether mounts should be enforced. If true, requests for mounted targets have to done
+	 * through the mounted paths. If, for instance, a bookmarkable page is mounted to a path, a
+	 * request to that same page via the bookmarkablePage parameter will be denied.
+	 *
+	 * @return Whether mounts should be enforced
+	 */
+	public boolean getEnforceMounts()
+	{
+		return enforceMounts;
+	}
+
+	/**
+	 * @return The listener
+	 * @see IUnauthorizedComponentInstantiationListener
+	 */
+	public IUnauthorizedComponentInstantiationListener getUnauthorizedComponentInstantiationListener()
+	{
+		return unauthorizedComponentInstantiationListener;
+	}
+
+	/**
+	 * Sets the authorization strategy.
+	 *
+	 * @param strategy
+	 *            new authorization strategy
+	 */
+	public void setAuthorizationStrategy(IAuthorizationStrategy strategy)
+	{
+		Args.notNull(strategy, "strategy");
+		authorizationStrategy = strategy;
+	}
+
+	/**
+	 * Sets the factory that will be used to create crypt objects. The crypt object returned from
+	 * the first call is cached.
+	 *
+	 * @param cryptFactory
+	 */
+	public void setCryptFactory(ICryptFactory cryptFactory)
+	{
+		Args.notNull(cryptFactory, "cryptFactory");
+		this.cryptFactory = cryptFactory;
+	}
+
+	/**
+	 * Sets whether mounts should be enforced. If true, requests for mounted targets have to done
+	 * through the mounted paths. If, for instance, a bookmarkable page is mounted to a path, a
+	 * request to that same page via the bookmarkablePage parameter will be denied.
+	 *
+	 * @param enforce
+	 *            Whether mounts should be enforced
+	 */
+	public void setEnforceMounts(boolean enforce)
+	{
+		enforceMounts = enforce;
+	}
+
+	/**
+	 * @param listener
+	 *            The listener to set
+	 * @see IUnauthorizedComponentInstantiationListener
+	 */
+	public void setUnauthorizedComponentInstantiationListener(
+		IUnauthorizedComponentInstantiationListener listener)
+	{
+		this.unauthorizedComponentInstantiationListener = listener == null ? DEFAULT_UNAUTHORIZED_COMPONENT_INSTANTIATION_LISTENER : listener;
+	}
+
+	/**
+	 * @return The listener that will be used when a request to an IResource is not allowed for some reason
+	 */
+	public IUnauthorizedResourceRequestListener getUnauthorizedResourceRequestListener()
+	{
+		return unauthorizedResourceRequestListener;
+	}
+
+	/**
+	 * Sets a listener that will be used when a request to an IResource is not allowed for some reason
+	 *
+	 * @param listener
+	 *          The listener
+	 */
+	public void setUnauthorizedResourceRequestListener(IUnauthorizedResourceRequestListener listener)
+	{
+		this.unauthorizedResourceRequestListener = listener == null ? DEFAULT_UNAUTHORIZED_RESOURCE_REQUEST_LISTENER : listener;
+	}
+
+	/**
+	 * Gets the authentication strategy.
+	 *
+	 * @return Returns the authentication strategy.
+	 */
+	public IAuthenticationStrategy getAuthenticationStrategy()
+	{
+		if (authenticationStrategy == null)
+		{
+			authenticationStrategy = new DefaultAuthenticationStrategy("LoggedIn");
+		}
+		return authenticationStrategy;
+	}
+
+	/**
+	 * Sets the authentication strategy.
+	 *
+	 * @param strategy
+	 *            new authentication strategy
+	 */
+	public void setAuthenticationStrategy(final IAuthenticationStrategy strategy)
+	{
+		authenticationStrategy = strategy;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/StoreSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/StoreSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/StoreSettings.java
new file mode 100644
index 0000000..bcf142e
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/StoreSettings.java
@@ -0,0 +1,201 @@
+/*
+ * 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.settings;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.lang.Bytes;
+
+/**
+ * An interface for settings related to the the storages where page instances are persisted -
+ * {@link org.apache.wicket.pageStore.IPageStore},
+ * {@link org.apache.wicket.pageStore.IDataStore} and {@link org.apache.wicket.page.IPageManager}.
+ * <p>
+ * For more information about page storages read <a
+ * href="https://cwiki.apache.org/confluence/x/qIaoAQ">Page Storage - Wiki page</a>
+ * </p>
+ *
+ * @since 1.5
+ */
+public class StoreSettings
+{
+	private static final int DEFAULT_CACHE_SIZE = 40;
+
+	private static final Bytes DEFAULT_MAX_SIZE_PER_SESSION = Bytes.megabytes(10);
+
+	private static final int DEFAULT_ASYNCHRONOUS_QUEUE_CAPACITY = 100;
+
+	private int inmemoryCacheSize = DEFAULT_CACHE_SIZE;
+
+	private Bytes maxSizePerSession = DEFAULT_MAX_SIZE_PER_SESSION;
+
+	private File fileStoreFolder = null;
+
+	private int asynchronousQueueCapacity = DEFAULT_ASYNCHRONOUS_QUEUE_CAPACITY;
+
+	private boolean isAsynchronous = true;
+
+	/**
+	 * Construct.
+	 * 
+	 * @param application
+	 */
+	public StoreSettings(final Application application)
+	{
+	}
+
+	/**
+	 * @return the number of page instances which will be stored in the application scoped cache for
+	 *         faster retrieval
+	 */
+	public int getInmemoryCacheSize()
+	{
+		return inmemoryCacheSize;
+	}
+
+	/**
+	 * Sets the maximum number of page instances which will be stored in the application scoped
+	 * second level cache for faster retrieval
+	 *
+	 * @param inmemoryCacheSize
+	 *            the maximum number of page instances which will be held in the application scoped
+	 *            cache
+	 */
+	public void setInmemoryCacheSize(int inmemoryCacheSize)
+	{
+		this.inmemoryCacheSize = inmemoryCacheSize;
+	}
+
+	/**
+	 * @return maximum page size. After this size is exceeded,
+	 * the {@link org.apache.wicket.pageStore.DiskDataStore} will start saving the
+	 * pages at the beginning of file.
+	 */
+	public Bytes getMaxSizePerSession()
+	{
+		return maxSizePerSession;
+	}
+
+	/**
+	 * Sets the maximum size of the {@link File} where page instances per session are stored. After
+	 * reaching this size the {@link org.apache.wicket.pageStore.DiskDataStore} will start overriding the
+	 * oldest pages at the beginning of the file.
+	 *
+	 * @param maxSizePerSession
+	 *            the maximum size of the file where page instances are stored per session. In
+	 *            bytes.
+	 */
+	public void setMaxSizePerSession(final Bytes maxSizePerSession)
+	{
+		this.maxSizePerSession = Args.notNull(maxSizePerSession, "maxSizePerSession");
+	}
+
+	/**
+	 * @return the location of the folder where {@link org.apache.wicket.pageStore.DiskDataStore} will store the files with page
+	 *         instances per session
+	 */
+	public File getFileStoreFolder()
+	{
+		if (fileStoreFolder == null)
+		{
+			if (Application.exists())
+			{
+				fileStoreFolder = (File)((WebApplication)Application.get()).getServletContext()
+					.getAttribute("javax.servlet.context.tempdir");
+			}
+
+			if (fileStoreFolder != null)
+			{
+				return fileStoreFolder;
+			}
+
+			try
+			{
+				fileStoreFolder = File.createTempFile("file-prefix", null).getParentFile();
+			}
+			catch (IOException e)
+			{
+				throw new WicketRuntimeException(e);
+			}
+		}
+		return fileStoreFolder;
+	}
+
+	/**
+	 * Sets the folder where {@link org.apache.wicket.pageStore.DiskDataStore} will store the files with page instances per
+	 * session
+	 *
+	 * @param fileStoreFolder
+	 *            the new location
+	 */
+	public void setFileStoreFolder(final File fileStoreFolder)
+	{
+		this.fileStoreFolder = Args.notNull(fileStoreFolder, "fileStoreFolder");
+	}
+
+	/**
+	 * @return the capacity of the queue used to store the pages which will be stored asynchronously
+	 * @see org.apache.wicket.pageStore.AsynchronousDataStore
+	 */
+	public int getAsynchronousQueueCapacity()
+	{
+		return asynchronousQueueCapacity;
+	}
+
+	/**
+	 * Sets the capacity of the queue used to store the pages which will be stored asynchronously
+	 *
+	 * @param queueCapacity
+	 *            the capacity of the queue
+	 * @see org.apache.wicket.pageStore.AsynchronousDataStore
+	 */
+	public void setAsynchronousQueueCapacity(int queueCapacity)
+	{
+		if (queueCapacity < 1)
+		{
+			throw new IllegalArgumentException(
+				"The capacity of the asynchronous queue should be at least 1.");
+		}
+		asynchronousQueueCapacity = queueCapacity;
+	}
+
+	/**
+	 * Sets a flag whether to wrap the configured {@link org.apache.wicket.pageStore.IDataStore} with
+	 * {@link org.apache.wicket.pageStore.AsynchronousDataStore}. By doing this the HTTP worker thread will not wait for the
+	 * actual write of the page's bytes into the wrapped {@link org.apache.wicket.pageStore.IDataStore}.
+	 *
+	 * @param async
+	 *            {@code true} to make it asynchronous, {@code false} - otherwise
+	 */
+	public void setAsynchronous(boolean async)
+	{
+		isAsynchronous = async;
+	}
+
+	/**
+	 * @return {@code true} if the storing of page's bytes is asynchronous
+	 */
+	public boolean isAsynchronous()
+	{
+		return isAsynchronous;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/def/ApplicationSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/ApplicationSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/ApplicationSettings.java
deleted file mode 100644
index 8c0b1a9..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/settings/def/ApplicationSettings.java
+++ /dev/null
@@ -1,254 +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.settings.def;
-
-import java.lang.ref.WeakReference;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.application.DefaultClassResolver;
-import org.apache.wicket.application.IClassResolver;
-import org.apache.wicket.feedback.DefaultCleanupFeedbackMessageFilter;
-import org.apache.wicket.feedback.IFeedbackMessageFilter;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.lang.Bytes;
-
-/**
- * * Settings interface for application settings.
- * <p>
- * <i>internalErrorPage </i>- You can override this with your own page class to display internal
- * errors in a different way.
- * <p>
- * <i>pageExpiredErrorPage </i>- You can override this with your own bookmarkable page class to
- * display expired page errors in a different way. You can set property homePageRenderStrategy to
- * choose from different ways the home page url shows up in your browser.
- * <p>
- * <b>A Converter Factory </b>- By overriding getConverterFactory(), you can provide your own
- * factory which creates locale sensitive Converter instances.
- *
- * @author Jonathan Locke
- * @author Chris Turner
- * @author Eelco Hillenius
- * @author Juergen Donnerstag
- * @author Johan Compagner
- * @author Igor Vaynberg (ivaynberg)
- * @author Martijn Dashorst
- * @author James Carman
- */
-public class ApplicationSettings
-{
-	private WeakReference<Class<? extends Page>> accessDeniedPage;
-
-	private IClassResolver classResolver = new DefaultClassResolver();
-
-	private WeakReference<Class<? extends Page>> internalErrorPage;
-
-	private WeakReference<Class<? extends Page>> pageExpiredErrorPage;
-
-	private Bytes defaultMaximumUploadSize = Bytes.MAX;
-
-	private boolean uploadProgressUpdatesEnabled = false;
-
-	private IFeedbackMessageFilter feedbackMessageCleanupFilter = new DefaultCleanupFeedbackMessageFilter();
-
-	/**
-	 * Gets the access denied page class.
-	 *
-	 * @return Returns the accessDeniedPage.
-	 */
-	public Class<? extends Page> getAccessDeniedPage()
-	{
-		return accessDeniedPage.get();
-	}
-
-	/**
-	 * Gets the default resolver to use when finding classes and resources.
-	 *
-	 * @return Default class resolver
-	 */
-	public IClassResolver getClassResolver()
-	{
-		return classResolver;
-	}
-
-	/**
-	 * Gets the default maximum size for uploads. This is used by {@link org.apache.wicket.markup.html.form.Form#getMaxSize()} if no
-	 * value is explicitly set through {@link org.apache.wicket.markup.html.form.Form#setMaxSize(Bytes)}.
-	 *
-	 * @return the default maximum size for uploads
-	 */
-	public Bytes getDefaultMaximumUploadSize()
-	{
-		return defaultMaximumUploadSize;
-	}
-
-	/**
-	 * Gets internal error page class.
-	 *
-	 * @return Returns the internalErrorPage.
-	 */
-	public Class<? extends Page> getInternalErrorPage()
-	{
-		return internalErrorPage.get();
-	}
-
-	/**
-	 * Gets the page expired page class.
-	 *
-	 * @return Returns the pageExpiredErrorPage.
-	 */
-	public Class<? extends Page> getPageExpiredErrorPage()
-	{
-		return pageExpiredErrorPage.get();
-	}
-
-	/**
-	 * Gets whether wicket is providing updates about the upload progress or not.
-	 *
-	 * @return if true upload progress monitoring is enabled
-	 */
-	public boolean isUploadProgressUpdatesEnabled()
-	{
-		return uploadProgressUpdatesEnabled;
-	}
-
-	/**
-	 * Sets the access denied page class. The class must be bookmarkable and must extend Page.
-	 *
-	 * @param accessDeniedPage
-	 *            The accessDeniedPage to set.
-	 */
-	public void setAccessDeniedPage(Class<? extends Page> accessDeniedPage)
-	{
-		if (accessDeniedPage == null)
-		{
-			throw new IllegalArgumentException("Argument accessDeniedPage may not be null");
-		}
-		checkPageClass(accessDeniedPage);
-
-		this.accessDeniedPage = new WeakReference<Class<? extends Page>>(accessDeniedPage);
-	}
-
-	/**
-	 * Sets the default class resolver to use when finding classes and resources.
-	 *
-	 * @param defaultClassResolver
-	 *            The default class resolver
-	 */
-	public void setClassResolver(final IClassResolver defaultClassResolver)
-	{
-		classResolver = defaultClassResolver;
-	}
-
-	/**
-	 * Sets the default maximum size for uploads. This is used by {@link org.apache.wicket.markup.html.form.Form#getMaxSize()} if no
-	 * value is explicitly set through {@link org.apache.wicket.markup.html.form.Form#setMaxSize(Bytes)}.
-	 *
-	 * @param defaultMaximumUploadSize
-	 *            the default maximum size for uploads
-	 */
-	public void setDefaultMaximumUploadSize(Bytes defaultMaximumUploadSize)
-	{
-		this.defaultMaximumUploadSize = defaultMaximumUploadSize;
-	}
-
-	/**
-	 * Sets internal error page class. The class must be bookmarkable and must extend Page.
-	 *
-	 * @param internalErrorPage
-	 *            The internalErrorPage to set.
-	 */
-	public void setInternalErrorPage(final Class<? extends Page> internalErrorPage)
-	{
-		Args.notNull(internalErrorPage, "internalErrorPage");
-		checkPageClass(internalErrorPage);
-
-		this.internalErrorPage = new WeakReference<Class<? extends Page>>(internalErrorPage);
-	}
-
-	/**
-	 * Sets the page expired page class. The class must be bookmarkable and must extend Page.
-	 *
-	 * @param pageExpiredErrorPage
-	 *            The pageExpiredErrorPage to set.
-	 */
-	public void setPageExpiredErrorPage(final Class<? extends Page> pageExpiredErrorPage)
-	{
-		if (pageExpiredErrorPage == null)
-		{
-			throw new IllegalArgumentException("Argument pageExpiredErrorPage may not be null");
-		}
-		checkPageClass(pageExpiredErrorPage);
-
-		this.pageExpiredErrorPage = new WeakReference<Class<? extends Page>>(pageExpiredErrorPage);
-	}
-
-	/**
-	 * Sets whether wicket should provide updates about the upload progress or not.
-	 *
-	 * @param uploadProgressUpdatesEnabled
-	 *            if true upload progress monitoring is enabled
-	 */
-	public void setUploadProgressUpdatesEnabled(boolean uploadProgressUpdatesEnabled)
-	{
-		this.uploadProgressUpdatesEnabled = uploadProgressUpdatesEnabled;
-	}
-
-	/**
-	 * Throws an IllegalArgumentException if the given class is not a subclass of Page.
-	 * 
-	 * @param <C>
-	 * @param pageClass
-	 *            the page class to check
-	 */
-	private <C extends Page> void checkPageClass(final Class<C> pageClass)
-	{
-		// NOTE: we can't really check on whether it is a bookmarkable page
-		// here, as - though the default is that a bookmarkable page must
-		// either have a default constructor and/or a constructor with a
-		// PageParameters object, this could be different for another
-		// IPageFactory implementation
-		if (!Page.class.isAssignableFrom(pageClass))
-		{
-			throw new IllegalArgumentException("argument " + pageClass +
-				" must be a subclass of Page");
-		}
-	}
-
-	/**
-	 * Sets the cleanup feedback message filter. see {@link #getFeedbackMessageCleanupFilter()} for
-	 * more details.
-	 *
-	 * @param filter
-	 */
-	public void setFeedbackMessageCleanupFilter(IFeedbackMessageFilter filter)
-	{
-		Args.notNull(filter, "filter");
-		feedbackMessageCleanupFilter = filter;
-	}
-
-	/**
-	 * Returns the cleanup feedack message filter. At the end of request all messages are ran
-	 * through this filter, and the ones accepted are removed. The default implementation accepts
-	 * (and therefore remkoves) all rendered messages.
-	 *
-	 * @return feedback message filter
-	 */
-	public IFeedbackMessageFilter getFeedbackMessageCleanupFilter()
-	{
-		return feedbackMessageCleanupFilter;
-	}
-}


[4/4] git commit: WICKET-5410 moved all settings to org.apache.wicket.settings

Posted by sv...@apache.org.
WICKET-5410 moved all settings to org.apache.wicket.settings

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3ecbe996
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3ecbe996
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3ecbe996

Branch: refs/heads/master
Commit: 3ecbe996ed8adc6f20fc42e5e50e0f189bc2c128
Parents: d7b13f7
Author: svenmeier <sv...@meiers.net>
Authored: Thu Nov 28 20:35:44 2013 +0100
Committer: svenmeier <sv...@meiers.net>
Committed: Thu Nov 28 20:35:44 2013 +0100

----------------------------------------------------------------------
 .../authentication/panel/SignInPanel.java       |   2 +-
 .../java/org/apache/wicket/Application.java     |  24 +-
 .../main/java/org/apache/wicket/Component.java  |   2 +-
 .../apache/wicket/DefaultExceptionMapper.java   |   2 +-
 .../wicket/DefaultPageManagerProvider.java      |   2 +-
 .../java/org/apache/wicket/IDetachListener.java |   2 +-
 .../org/apache/wicket/IEventDispatcher.java     |   2 +-
 .../main/java/org/apache/wicket/Localizer.java  |   6 +-
 .../java/org/apache/wicket/MarkupContainer.java |   2 +-
 .../src/main/java/org/apache/wicket/Page.java   |   4 +-
 .../authorization/IAuthorizationStrategy.java   |   2 +-
 .../core/request/mapper/CryptoMapper.java       |   4 +-
 .../wicket/core/util/lang/WicketObjects.java    |   2 +-
 .../resource/locator/ResourceStreamLocator.java |   2 +-
 .../wicket/markup/AbstractMarkupParser.java     |   2 +-
 .../org/apache/wicket/markup/IMarkupCache.java  |   2 +-
 .../org/apache/wicket/markup/MarkupCache.java   |   6 +-
 .../markup/head/OnDomReadyHeaderItem.java       |   2 +-
 .../wicket/markup/head/OnEventHeaderItem.java   |   2 +-
 .../wicket/markup/head/OnLoadHeaderItem.java    |   2 +-
 .../markup/html/SecurePackageResourceGuard.java |   2 +-
 .../apache/wicket/markup/html/form/Form.java    |   6 +-
 .../wicket/markup/html/link/DownloadLink.java   |   2 +-
 .../markup/html/pages/BrowserInfoPage.java      |   2 +-
 .../wicket/markup/html/panel/FeedbackPanel.java |   2 +-
 .../markup/resolver/IComponentResolver.java     |   2 +-
 .../wicket/page/PageAccessSynchronizer.java     |   2 +-
 .../protocol/http/AbstractRequestLogger.java    |   2 +-
 .../protocol/http/PageExpiredException.java     |   2 +-
 .../http/RequestLoggerRequestCycleListener.java |   2 +-
 .../servlet/MultipartServletWebRequestImpl.java |   2 +-
 .../request/handler/render/PageRenderer.java    |   2 +-
 .../resource/ResourceRequestHandler.java        |   2 +-
 .../resource/ResourceStreamRequestHandler.java  |   2 +-
 .../request/resource/AbstractResource.java      |   4 +-
 .../request/resource/CssResourceReference.java  |   2 +-
 .../resource/JavaScriptResourceReference.java   |   2 +-
 .../request/resource/PackageResource.java       |   2 +-
 .../resource/CoreLibrariesContributor.java      |   4 +-
 .../resource/JQueryResourceReference.java       |   4 +-
 .../wicket/resource/PropertiesFactory.java      |   4 +-
 .../wicket/serialize/java/JavaSerializer.java   |   2 +-
 .../wicket/settings/ApplicationSettings.java    | 254 +++++++
 .../apache/wicket/settings/DebugSettings.java   | 213 ++++++
 ...aultUnauthorizedResourceRequestListener.java |  55 ++
 .../wicket/settings/ExceptionSettings.java      | 184 +++++
 .../wicket/settings/FrameworkSettings.java      | 179 +++++
 .../settings/JavaScriptLibrarySettings.java     | 121 +++
 .../apache/wicket/settings/MarkupSettings.java  | 233 ++++++
 .../apache/wicket/settings/PageSettings.java    | 118 +++
 .../wicket/settings/RequestCycleSettings.java   | 407 +++++++++++
 .../wicket/settings/RequestLoggerSettings.java  |  93 +++
 .../wicket/settings/ResourceSettings.java       | 731 +++++++++++++++++++
 .../wicket/settings/SecuritySettings.java       | 235 ++++++
 .../apache/wicket/settings/StoreSettings.java   | 201 +++++
 .../settings/def/ApplicationSettings.java       | 254 -------
 .../wicket/settings/def/DebugSettings.java      | 213 ------
 ...aultUnauthorizedResourceRequestListener.java |  55 --
 .../wicket/settings/def/ExceptionSettings.java  | 184 -----
 .../wicket/settings/def/FrameworkSettings.java  | 179 -----
 .../settings/def/JavaScriptLibrarySettings.java | 121 ---
 .../wicket/settings/def/MarkupSettings.java     | 233 ------
 .../wicket/settings/def/PageSettings.java       | 118 ---
 .../settings/def/RequestCycleSettings.java      | 407 -----------
 .../settings/def/RequestLoggerSettings.java     |  93 ---
 .../wicket/settings/def/ResourceSettings.java   | 731 -------------------
 .../wicket/settings/def/SecuritySettings.java   | 235 ------
 .../wicket/settings/def/StoreSettings.java      | 201 -----
 .../wicket/util/tester/BaseWicketTester.java    |   2 +-
 .../apache/wicket/ApplicationSettingsTest.java  |   4 +-
 .../wicket/DefaultExceptionMapperTest.java      |   2 +-
 .../java/org/apache/wicket/LocalizerTest.java   |   2 +-
 .../InternalErrorCallsAjaxOnFailureTest.java    |   8 +-
 .../core/request/mapper/CryptoMapperTest.java   |   2 +-
 ...ntStoreNotRenderedPageOnePassRenderTest.java |   2 +-
 ...toreNotRenderedPageRedirectToBufferTest.java |   2 +-
 ...toreNotRenderedPageRedirectToRenderTest.java |   2 +-
 .../apache/wicket/markup/MarkupParserTest.java  |   2 +-
 .../markup/html/link/MountedPageLinkTest.java   |   2 +-
 .../wicket/pageStore/DiskDataStoreTest.java     |   2 +-
 .../http/WebResponseExceptionsTest.java         |   4 +-
 .../handler/render/WebPageRendererTest.java     |  10 +-
 ...ketTesterLazyIsPageStatelessOnePassTest.java |   2 +-
 ...LazyIsPageStatelessRedirectToBufferTest.java |   2 +-
 ...LazyIsPageStatelessRedirectToRenderTest.java |   2 +-
 .../diskstore/DebugPageManagerProvider.java     |   2 +-
 .../examples/WicketExampleApplication.java      |   2 +-
 .../wicket/examples/ajax/builtin/LinksPage.java |   2 +-
 .../examples/library/LibraryApplication.java    |   2 +-
 .../wicket/jmx/ApplicationSettingsMBean.java    |   6 +-
 .../wicket/jmx/ResourceSettingsMBean.java       |   8 +-
 91 files changed, 3126 insertions(+), 3126 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel.java
----------------------------------------------------------------------
diff --git a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel.java b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel.java
index 8d9b113..f9e9dac 100644
--- a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel.java
+++ b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel.java
@@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory;
  * session.
  * 
  * @see {@link IAuthenticationStrategy}
- * @see {@link org.apache.wicket.settings.def.SecuritySettings#getAuthenticationStrategy()}
+ * @see {@link org.apache.wicket.settings.SecuritySettings#getAuthenticationStrategy()}
  * @see {@link DefaultAuthenticationStrategy}
  *
  * @author Jonathan Locke

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/Application.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Application.java b/wicket-core/src/main/java/org/apache/wicket/Application.java
index 1a81c58..ff4b501 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Application.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Application.java
@@ -84,18 +84,18 @@ import org.apache.wicket.response.filter.EmptySrcAttributeCheckFilter;
 import org.apache.wicket.session.DefaultPageFactory;
 import org.apache.wicket.session.ISessionStore;
 import org.apache.wicket.session.ISessionStore.UnboundListener;
-import org.apache.wicket.settings.def.ApplicationSettings;
-import org.apache.wicket.settings.def.DebugSettings;
-import org.apache.wicket.settings.def.ExceptionSettings;
-import org.apache.wicket.settings.def.FrameworkSettings;
-import org.apache.wicket.settings.def.JavaScriptLibrarySettings;
-import org.apache.wicket.settings.def.MarkupSettings;
-import org.apache.wicket.settings.def.PageSettings;
-import org.apache.wicket.settings.def.RequestCycleSettings;
-import org.apache.wicket.settings.def.RequestLoggerSettings;
-import org.apache.wicket.settings.def.ResourceSettings;
-import org.apache.wicket.settings.def.SecuritySettings;
-import org.apache.wicket.settings.def.StoreSettings;
+import org.apache.wicket.settings.ApplicationSettings;
+import org.apache.wicket.settings.DebugSettings;
+import org.apache.wicket.settings.ExceptionSettings;
+import org.apache.wicket.settings.FrameworkSettings;
+import org.apache.wicket.settings.JavaScriptLibrarySettings;
+import org.apache.wicket.settings.MarkupSettings;
+import org.apache.wicket.settings.PageSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
+import org.apache.wicket.settings.RequestLoggerSettings;
+import org.apache.wicket.settings.ResourceSettings;
+import org.apache.wicket.settings.SecuritySettings;
+import org.apache.wicket.settings.StoreSettings;
 import org.apache.wicket.util.IProvider;
 import org.apache.wicket.util.io.IOUtils;
 import org.apache.wicket.util.io.Streams;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/Component.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java
index bb5adfe..cc1a69c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -78,7 +78,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.response.StringResponse;
-import org.apache.wicket.settings.def.DebugSettings;
+import org.apache.wicket.settings.DebugSettings;
 import org.apache.wicket.util.IHierarchical;
 import org.apache.wicket.util.convert.IConverter;
 import org.apache.wicket.util.io.IClusterable;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/DefaultExceptionMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/DefaultExceptionMapper.java b/wicket-core/src/main/java/org/apache/wicket/DefaultExceptionMapper.java
index 9eebf7b..e088db2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/DefaultExceptionMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/DefaultExceptionMapper.java
@@ -34,7 +34,7 @@ import org.apache.wicket.request.handler.EmptyRequestHandler;
 import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.request.http.handler.ErrorCodeRequestHandler;
-import org.apache.wicket.settings.def.ExceptionSettings;
+import org.apache.wicket.settings.ExceptionSettings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
index e0f0657..4d8adcb 100644
--- a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
@@ -27,7 +27,7 @@ import org.apache.wicket.pageStore.DiskDataStore;
 import org.apache.wicket.pageStore.IDataStore;
 import org.apache.wicket.pageStore.IPageStore;
 import org.apache.wicket.serialize.ISerializer;
-import org.apache.wicket.settings.def.StoreSettings;
+import org.apache.wicket.settings.StoreSettings;
 import org.apache.wicket.util.lang.Bytes;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/IDetachListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IDetachListener.java b/wicket-core/src/main/java/org/apache/wicket/IDetachListener.java
index ba36f9f..8582287 100644
--- a/wicket-core/src/main/java/org/apache/wicket/IDetachListener.java
+++ b/wicket-core/src/main/java/org/apache/wicket/IDetachListener.java
@@ -24,7 +24,7 @@ package org.apache.wicket;
  * 
  * @author igor.vaynberg
  * 
- * @see org.apache.wicket.settings.def.FrameworkSettings#setDetachListener(IDetachListener)
+ * @see org.apache.wicket.settings.FrameworkSettings#setDetachListener(IDetachListener)
  */
 public interface IDetachListener
 {

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/IEventDispatcher.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IEventDispatcher.java b/wicket-core/src/main/java/org/apache/wicket/IEventDispatcher.java
index b66dbe9..ce7a9cf 100644
--- a/wicket-core/src/main/java/org/apache/wicket/IEventDispatcher.java
+++ b/wicket-core/src/main/java/org/apache/wicket/IEventDispatcher.java
@@ -22,7 +22,7 @@ import org.apache.wicket.event.IEventSink;
 
 /**
  * Delivers an event to a component. Developers can implement and register their dispatchers in
- * {@link org.apache.wicket.settings.def.FrameworkSettings} to create custom strategies for
+ * {@link org.apache.wicket.settings.FrameworkSettings} to create custom strategies for
  * how events get delivered to components
  * 
  * @see IEventSink

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/Localizer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Localizer.java b/wicket-core/src/main/java/org/apache/wicket/Localizer.java
index 00ccc3b..06c6f5d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Localizer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Localizer.java
@@ -29,7 +29,7 @@ import org.apache.wicket.core.util.string.interpolator.ConvertingPropertyVariabl
 import org.apache.wicket.markup.repeater.AbstractRepeater;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.resource.loader.IStringResourceLoader;
-import org.apache.wicket.settings.def.ResourceSettings;
+import org.apache.wicket.settings.ResourceSettings;
 import org.apache.wicket.util.lang.Generics;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.slf4j.Logger;
@@ -45,9 +45,9 @@ import org.slf4j.LoggerFactory;
  * strategy for the properties. E.g. string resource loaders which load the properties from a
  * database. There should be hardly any need to extend Localizer.
  * 
- * @see org.apache.wicket.settings.def.ResourceSettings#getLocalizer()
+ * @see org.apache.wicket.settings.ResourceSettings#getLocalizer()
  * @see org.apache.wicket.resource.loader.IStringResourceLoader
- * @see org.apache.wicket.settings.def.ResourceSettings#getStringResourceLoaders()
+ * @see org.apache.wicket.settings.ResourceSettings#getStringResourceLoaders()
  * 
  * @author Chris Turner
  * @author Juergen Donnerstag

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
index e5a1580..6e0c3c2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -40,7 +40,7 @@ import org.apache.wicket.markup.resolver.ComponentResolvers;
 import org.apache.wicket.model.IComponentInheritedModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.IWrapModel;
-import org.apache.wicket.settings.def.DebugSettings;
+import org.apache.wicket.settings.DebugSettings;
 import org.apache.wicket.util.io.IClusterable;
 import org.apache.wicket.util.iterator.ComponentHierarchyIterator;
 import org.apache.wicket.util.lang.Args;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/Page.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Page.java b/wicket-core/src/main/java/org/apache/wicket/Page.java
index a2bf4f8..2be236d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -35,7 +35,7 @@ import org.apache.wicket.pageStore.IPageStore;
 import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.settings.def.DebugSettings;
+import org.apache.wicket.settings.DebugSettings;
 import org.apache.wicket.util.lang.Classes;
 import org.apache.wicket.util.lang.Generics;
 import org.apache.wicket.util.string.StringValue;
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  * with PageParameters will be used.</li>
  * <li><b>Versioning </b>- Pages support the browser's back button when versioning is enabled via
  * {@link #setVersioned(boolean)}. By default all pages are versioned if not configured differently
- * in {@link org.apache.wicket.settings.def.PageSettings#setVersionPagesByDefault(boolean)}</li>
+ * in {@link org.apache.wicket.settings.PageSettings#setVersionPagesByDefault(boolean)}</li>
  * </ul>
  * 
  * @see org.apache.wicket.markup.html.WebPage

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/authorization/IAuthorizationStrategy.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/authorization/IAuthorizationStrategy.java b/wicket-core/src/main/java/org/apache/wicket/authorization/IAuthorizationStrategy.java
index 98e2321..f8ae887 100644
--- a/wicket-core/src/main/java/org/apache/wicket/authorization/IAuthorizationStrategy.java
+++ b/wicket-core/src/main/java/org/apache/wicket/authorization/IAuthorizationStrategy.java
@@ -70,7 +70,7 @@ public interface IAuthorizationStrategy
 	/**
 	 * Checks whether an instance of the given component class may be created. If this method
 	 * returns false, the {@link IUnauthorizedComponentInstantiationListener} that is configured in
-	 * the {@link org.apache.wicket.settings.def.SecuritySettings security settings} will be called. The default implementation of
+	 * the {@link org.apache.wicket.settings.SecuritySettings security settings} will be called. The default implementation of
 	 * that listener throws a {@link UnauthorizedInstantiationException}.
 	 * <p>
 	 * If you wish to implement a strategy that authenticates users which cannot access a given Page

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
index 2c47525..be876fb 100755
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/CryptoMapper.java
@@ -56,9 +56,9 @@ public class CryptoMapper implements IRequestMapper
 	private final IProvider<ICrypt> cryptProvider;
 
 	/**
-	 * Encrypt with {@link org.apache.wicket.settings.def.SecuritySettings#getCryptFactory()}.
+	 * Encrypt with {@link org.apache.wicket.settings.SecuritySettings#getCryptFactory()}.
 	 * <p>
-	 * Note: Encryption is done with {@link org.apache.wicket.settings.def.SecuritySettings#DEFAULT_ENCRYPTION_KEY}
+	 * Note: Encryption is done with {@link org.apache.wicket.settings.SecuritySettings#DEFAULT_ENCRYPTION_KEY}
 	 * if you haven't configured an alternative {@link ICryptFactory}. Alternatively use
 	 * {@link CryptoMapper#CryptoMapper(IRequestMapper, IProvider)} with a specific {@link ICrypt}.
 	 * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/core/util/lang/WicketObjects.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/util/lang/WicketObjects.java b/wicket-core/src/main/java/org/apache/wicket/core/util/lang/WicketObjects.java
index 1d99452..bb7fa21 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/util/lang/WicketObjects.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/util/lang/WicketObjects.java
@@ -34,7 +34,7 @@ import org.apache.wicket.application.IClassResolver;
 import org.apache.wicket.model.IDetachable;
 import org.apache.wicket.serialize.ISerializer;
 import org.apache.wicket.serialize.java.JavaSerializer;
-import org.apache.wicket.settings.def.ApplicationSettings;
+import org.apache.wicket.settings.ApplicationSettings;
 import org.apache.wicket.util.io.ByteCountingOutputStream;
 import org.apache.wicket.util.lang.Generics;
 import org.apache.wicket.util.string.Strings;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java b/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
index 5cc313f..1c1f71f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * Resources will be actually loaded by the {@link IResourceFinder}s defined in the resource
  * settings. By default there are finders that look in the classpath and in the classpath in
  * META-INF/resources. You can add more by adding {@link WebApplicationPath}s or {@link Path}s to
- * {@link org.apache.wicket.settings.def.ResourceSettings#getResourceFinders()}.
+ * {@link org.apache.wicket.settings.ResourceSettings#getResourceFinders()}.
  * 
  * @author Juergen Donnerstag
  * @author Jonathan Locke

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java b/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java
index 762ac57..b469a3b 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java
@@ -27,7 +27,7 @@ import org.apache.wicket.markup.parser.IMarkupFilter;
 import org.apache.wicket.markup.parser.IXmlPullParser;
 import org.apache.wicket.markup.parser.XmlPullParser;
 import org.apache.wicket.markup.parser.filter.RootMarkupFilter;
-import org.apache.wicket.settings.def.MarkupSettings;
+import org.apache.wicket.settings.MarkupSettings;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupCache.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupCache.java b/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupCache.java
index 7b6393f..da78753 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupCache.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupCache.java
@@ -20,7 +20,7 @@ import org.apache.wicket.MarkupContainer;
 
 /**
  * Each Wicket application has a single IMarkupCache associated with it (see
- * {@link org.apache.wicket.settings.def.MarkupSettings}). Via {@link MarkupFactory}
+ * {@link org.apache.wicket.settings.MarkupSettings}). Via {@link MarkupFactory}
  * the markup cache is used by every Component to get its associated
  * markup stream.
  * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/MarkupCache.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupCache.java b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupCache.java
index 9445975..1a80d3c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupCache.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupCache.java
@@ -39,9 +39,9 @@ import org.slf4j.LoggerFactory;
  * removed from the cache and reloaded when needed.
  * <p>
  * MarkupCache is registered with {@link MarkupFactory} which in turn is registered with
- * {@link org.apache.wicket.settings.def.MarkupSettings} and thus can be replaced with a sub-classed version.
+ * {@link org.apache.wicket.settings.MarkupSettings} and thus can be replaced with a sub-classed version.
  * 
- * @see org.apache.wicket.settings.def.MarkupSettings
+ * @see org.apache.wicket.settings.MarkupSettings
  * @see MarkupFactory
  * 
  * @author Jonathan Locke
@@ -330,7 +330,7 @@ public class MarkupCache implements IMarkupCache
 	 * @param markup
 	 *            Markup.NO_MARKUP
 	 * @return Same as parameter "markup"
-	 * @see org.apache.wicket.settings.def.ResourceSettings#setResourceStreamLocator(org.apache.wicket.core.util.resource.locator.IResourceStreamLocator)
+	 * @see org.apache.wicket.settings.ResourceSettings#setResourceStreamLocator(org.apache.wicket.core.util.resource.locator.IResourceStreamLocator)
 	 */
 	protected Markup onMarkupNotFound(final String cacheKey, final MarkupContainer container,
 		final Markup markup)

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
index 8b8a50c..93547ca 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnDomReadyHeaderItem.java
@@ -22,7 +22,7 @@ import java.util.List;
 import org.apache.wicket.Application;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.settings.def.JavaScriptLibrarySettings;
+import org.apache.wicket.settings.JavaScriptLibrarySettings;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.apache.wicket.util.string.Strings;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
index 0326ad0..2df81f2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnEventHeaderItem.java
@@ -24,7 +24,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.settings.def.JavaScriptLibrarySettings;
+import org.apache.wicket.settings.JavaScriptLibrarySettings;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
index 930f774..76e45c0 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/OnLoadHeaderItem.java
@@ -23,7 +23,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.core.util.string.JavaScriptUtils;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.settings.def.JavaScriptLibrarySettings;
+import org.apache.wicket.settings.JavaScriptLibrarySettings;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/html/SecurePackageResourceGuard.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/SecurePackageResourceGuard.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/SecurePackageResourceGuard.java
index 19eec46..4890465 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/SecurePackageResourceGuard.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/SecurePackageResourceGuard.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  * </table>
  * 
  * @see IPackageResourceGuard
- * @see org.apache.wicket.settings.def.ResourceSettings#getPackageResourceGuard
+ * @see org.apache.wicket.settings.ResourceSettings#getPackageResourceGuard
  * @see PackageResourceGuard
  * 
  * @author Juergen Donnerstag

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index 3ab6d10..94f93a5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -270,7 +270,7 @@ public class Form<T> extends WebMarkupContainer implements IFormSubmitListener,
 
 	/**
 	 * Maximum size of an upload in bytes. If null, the setting
-	 * {@link org.apache.wicket.settings.def.ApplicationSettings#getDefaultMaximumUploadSize()} is used.
+	 * {@link org.apache.wicket.settings.ApplicationSettings#getDefaultMaximumUploadSize()} is used.
 	 */
 	private Bytes maxSize = null;
 
@@ -550,7 +550,7 @@ public class Form<T> extends WebMarkupContainer implements IFormSubmitListener,
 
 	/**
 	 * Gets the maximum size for uploads. If null, the setting
-	 * {@link org.apache.wicket.settings.def.ApplicationSettings#getDefaultMaximumUploadSize()} is used.
+	 * {@link org.apache.wicket.settings.ApplicationSettings#getDefaultMaximumUploadSize()} is used.
 	 * 
 	 * 
 	 * @return the maximum size
@@ -1023,7 +1023,7 @@ public class Form<T> extends WebMarkupContainer implements IFormSubmitListener,
 
 	/**
 	 * Sets the maximum size for uploads. If null, the setting
-	 * {@link org.apache.wicket.settings.def.ApplicationSettings#getDefaultMaximumUploadSize()} is used.
+	 * {@link org.apache.wicket.settings.ApplicationSettings#getDefaultMaximumUploadSize()} is used.
 	 * 
 	 * @param maxSize
 	 *            The maximum size

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
index aaff9cc..b44e534 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
@@ -60,7 +60,7 @@ public class DownloadLink extends Link<File>
 	 * The duration for which the file resource should be cached by the browser.
 	 * <p>
 	 * By default is {@code null} and
-	 * {@link org.apache.wicket.settings.def.ResourceSettings#getDefaultCacheDuration()} is used.
+	 * {@link org.apache.wicket.settings.ResourceSettings#getDefaultCacheDuration()} is used.
 	 * </p>
 	 */
 	private Duration cacheDuration;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
index 5692a28..e0e5d59 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
@@ -39,7 +39,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
  * <p>
  * This page is being used by the default implementation of {@link org.apache.wicket.Session#getClientInfo()},
  * which in turn uses
- * {@link org.apache.wicket.settings.def.RequestCycleSettings#getGatherExtendedBrowserInfo() a setting} to
+ * {@link org.apache.wicket.settings.RequestCycleSettings#getGatherExtendedBrowserInfo() a setting} to
  * determine whether this page should be redirected to (it does when it is true).
  * </p>
  * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
index cd44463..50fe999 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
@@ -73,7 +73,7 @@ public class FeedbackPanel extends Panel implements IFeedback
 				/**
 				 * WICKET-4258 Feedback messages might be cleared already.
 				 * 
-				 * @see org.apache.wicket.settings.def.ApplicationSettings#setFeedbackMessageCleanupFilter(org.apache.wicket.feedback.IFeedbackMessageFilter)
+				 * @see org.apache.wicket.settings.ApplicationSettings#setFeedbackMessageCleanupFilter(org.apache.wicket.feedback.IFeedbackMessageFilter)
 				 */
 				@Override
 				public FeedbackMessage getObject()

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/markup/resolver/IComponentResolver.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/IComponentResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/IComponentResolver.java
index 8d5d25e..b8d1588 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/IComponentResolver.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/IComponentResolver.java
@@ -20,7 +20,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
-import org.apache.wicket.settings.def.PageSettings;
+import org.apache.wicket.settings.PageSettings;
 import org.apache.wicket.util.io.IClusterable;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java b/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java
index 9442382..aa3a281 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java
@@ -22,7 +22,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.settings.def.ExceptionSettings.ThreadDumpStrategy;
+import org.apache.wicket.settings.ExceptionSettings.ThreadDumpStrategy;
 import org.apache.wicket.util.IProvider;
 import org.apache.wicket.util.LazyInitializer;
 import org.apache.wicket.util.lang.Threads;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
index 7583325..d342ee8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
@@ -431,7 +431,7 @@ public abstract class AbstractRequestLogger implements IRequestLogger
 
 	/**
 	 * Resizes the request buffer to match the
-	 * {@link org.apache.wicket.settings.def.RequestLoggerSettings#getRequestsWindowSize() configured window size}
+	 * {@link org.apache.wicket.settings.RequestLoggerSettings#getRequestsWindowSize() configured window size}
 	 */
 	private void resizeBuffer()
 	{

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/protocol/http/PageExpiredException.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/PageExpiredException.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/PageExpiredException.java
index c85c49b..d2f310d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/PageExpiredException.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/PageExpiredException.java
@@ -37,7 +37,7 @@ import org.apache.wicket.core.request.handler.IPageProvider;
  * stacktrace it is not really needed.</p>
  *
  * @see HttpSession#setMaxInactiveInterval(int)
- * @see org.apache.wicket.settings.def.StoreSettings#setMaxSizePerSession(org.apache.wicket.util.lang.Bytes)
+ * @see org.apache.wicket.settings.StoreSettings#setMaxSizePerSession(org.apache.wicket.util.lang.Bytes)
  * @see NotSerializableException
  * @see IPageProvider#getPageInstance()
  */

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
index c822c3b..00d2a22 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLoggerRequestCycleListener.java
@@ -22,7 +22,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.cycle.AbstractRequestCycleListener;
 import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.settings.def.RequestLoggerSettings;
+import org.apache.wicket.settings.RequestLoggerSettings;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
index 8e412a1..8a036ba 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
@@ -295,7 +295,7 @@ public class MultipartServletWebRequestImpl extends MultipartServletWebRequest
 
 	/**
 	 * Subclasses that want to receive upload notifications should return true. By default it takes
-	 * the value from {@link org.apache.wicket.settings.def.ApplicationSettings#isUploadProgressUpdatesEnabled()}.
+	 * the value from {@link org.apache.wicket.settings.ApplicationSettings#isUploadProgressUpdatesEnabled()}.
 	 * 
 	 * @return true if upload status update event should be invoked
 	 */

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/request/handler/render/PageRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/PageRenderer.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/PageRenderer.java
index c47371a..975d004 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/PageRenderer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/PageRenderer.java
@@ -23,7 +23,7 @@ import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
 import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
 import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.settings.def.RequestCycleSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
 
 /**
  * Delegate responsible for rendering the page. Depending on the implementation (web, test, portlet,

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java
index 8a1466e..4dcf2f1 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java
@@ -23,7 +23,7 @@ import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
-import org.apache.wicket.settings.def.DefaultUnauthorizedResourceRequestListener;
+import org.apache.wicket.settings.DefaultUnauthorizedResourceRequestListener;
 import org.apache.wicket.util.lang.Args;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceStreamRequestHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceStreamRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceStreamRequestHandler.java
index b7098c3..2fedc45 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceStreamRequestHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/resource/ResourceStreamRequestHandler.java
@@ -51,7 +51,7 @@ public class ResourceStreamRequestHandler implements IRequestHandler, ILoggableR
 	 * The duration fow which the resource will be cached by the browser.
 	 * <p>
 	 * By default is {@code null} and
-	 * {@link org.apache.wicket.settings.def.ResourceSettings#getDefaultCacheDuration()} is used.
+	 * {@link org.apache.wicket.settings.ResourceSettings#getDefaultCacheDuration()} is used.
 	 * </p>
 	 */
 	private Duration cacheDuration;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
index bc071bf..31a668c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
@@ -406,8 +406,8 @@ public abstract class AbstractResource implements IResource
 		 * 
 		 * @return duration for caching
 		 * 
-		 * @see org.apache.wicket.settings.def.ResourceSettings#setDefaultCacheDuration(org.apache.wicket.util.time.Duration)
-		 * @see org.apache.wicket.settings.def.ResourceSettings#getDefaultCacheDuration()
+		 * @see org.apache.wicket.settings.ResourceSettings#setDefaultCacheDuration(org.apache.wicket.util.time.Duration)
+		 * @see org.apache.wicket.settings.ResourceSettings#getDefaultCacheDuration()
 		 */
 		public Duration getCacheDuration()
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/request/resource/CssResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/CssResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/CssResourceReference.java
index f0d0884..652a887 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/CssResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/CssResourceReference.java
@@ -22,7 +22,7 @@ import java.util.Locale;
  * Static resource reference for css resources. The resources are filtered (stripped comments and
  * whitespace) if there is registered compressor.
  * 
- * @see org.apache.wicket.settings.def.ResourceSettings#getCssCompressor()
+ * @see org.apache.wicket.settings.ResourceSettings#getCssCompressor()
  */
 public class CssResourceReference extends PackageResourceReference
 {

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptResourceReference.java
index f4a681f..d40fb39 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptResourceReference.java
@@ -22,7 +22,7 @@ import java.util.Locale;
  * Static resource reference for javascript resources. The resources are filtered (stripped comments
  * and whitespace) if there is a registered compressor.
  * 
- * @see org.apache.wicket.settings.def.ResourceSettings#getJavaScriptCompressor()
+ * @see org.apache.wicket.settings.ResourceSettings#getJavaScriptCompressor()
  * @author Matej
  */
 public class JavaScriptResourceReference extends PackageResourceReference

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/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 c502829..ed75647 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
@@ -54,7 +54,7 @@ import org.slf4j.LoggerFactory;
  * </p>
  * 
  * Access to resources can be granted or denied via a {@link IPackageResourceGuard}. Please see
- * {@link org.apache.wicket.settings.def.ResourceSettings#getPackageResourceGuard()} as well.
+ * {@link org.apache.wicket.settings.ResourceSettings#getPackageResourceGuard()} as well.
  * 
  * @author Jonathan Locke
  * @author Eelco Hillenius

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java b/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
index f4722af..be32b02 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/CoreLibrariesContributor.java
@@ -20,8 +20,8 @@ import org.apache.wicket.Application;
 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.settings.def.DebugSettings;
-import org.apache.wicket.settings.def.JavaScriptLibrarySettings;
+import org.apache.wicket.settings.DebugSettings;
+import org.apache.wicket.settings.JavaScriptLibrarySettings;
 
 /**
  * A helper class that contributes all required JavaScript resources needed for Wicket Ajax

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
index cb6b4fb..a42e309 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
@@ -22,7 +22,7 @@ import org.apache.wicket.request.resource.JavaScriptResourceReference;
 /**
  * The resource reference for the jquery javascript library as released with Wicket. To add a JQuery
  * resource reference to a component, do not use this reference, but use
- * {@link org.apache.wicket.settings.def.JavaScriptLibrarySettings#getJQueryReference()}
+ * {@link org.apache.wicket.settings.JavaScriptLibrarySettings#getJQueryReference()}
  * to prevent version conflicts.
  * 
  * @author papegaaij
@@ -40,7 +40,7 @@ public class JQueryResourceReference extends JavaScriptResourceReference
 
 	/**
 	 * Normally you should not use this method, but use
-	 * {@link org.apache.wicket.settings.def.JavaScriptLibrarySettings#getJQueryReference()}
+	 * {@link org.apache.wicket.settings.JavaScriptLibrarySettings#getJQueryReference()}
 	 * to prevent version conflicts.
 	 * 
 	 * @return the single instance of the resource reference

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/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 eb56adb..af7f9af 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
@@ -40,11 +40,11 @@ import org.slf4j.LoggerFactory;
 /**
  * Default implementation of {@link IPropertiesFactory} which uses the
  * {@link IResourceStreamLocator} as defined by
- * {@link org.apache.wicket.settings.def.ResourceSettings#getResourceStreamLocator()}
+ * {@link org.apache.wicket.settings.ResourceSettings#getResourceStreamLocator()}
  * to load the {@link Properties} objects. Depending on the settings, it will assign
  * {@link ModificationWatcher}s to the loaded resources to support reloading.
  * 
- * @see org.apache.wicket.settings.def.ResourceSettings#getPropertiesFactory()
+ * @see org.apache.wicket.settings.ResourceSettings#getPropertiesFactory()
  * 
  * @author Juergen Donnerstag
  */

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/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 241412f..1f6961c 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.core.util.objects.checker.CheckingObjectOutputStream;
 import org.apache.wicket.core.util.objects.checker.ObjectSerializationChecker;
 import org.apache.wicket.serialize.ISerializer;
-import org.apache.wicket.settings.def.ApplicationSettings;
+import org.apache.wicket.settings.ApplicationSettings;
 import org.apache.wicket.util.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/ApplicationSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/ApplicationSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/ApplicationSettings.java
new file mode 100644
index 0000000..a69459e
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/ApplicationSettings.java
@@ -0,0 +1,254 @@
+/*
+ * 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.settings;
+
+import java.lang.ref.WeakReference;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.application.DefaultClassResolver;
+import org.apache.wicket.application.IClassResolver;
+import org.apache.wicket.feedback.DefaultCleanupFeedbackMessageFilter;
+import org.apache.wicket.feedback.IFeedbackMessageFilter;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.lang.Bytes;
+
+/**
+ * * Settings interface for application settings.
+ * <p>
+ * <i>internalErrorPage </i>- You can override this with your own page class to display internal
+ * errors in a different way.
+ * <p>
+ * <i>pageExpiredErrorPage </i>- You can override this with your own bookmarkable page class to
+ * display expired page errors in a different way. You can set property homePageRenderStrategy to
+ * choose from different ways the home page url shows up in your browser.
+ * <p>
+ * <b>A Converter Factory </b>- By overriding getConverterFactory(), you can provide your own
+ * factory which creates locale sensitive Converter instances.
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class ApplicationSettings
+{
+	private WeakReference<Class<? extends Page>> accessDeniedPage;
+
+	private IClassResolver classResolver = new DefaultClassResolver();
+
+	private WeakReference<Class<? extends Page>> internalErrorPage;
+
+	private WeakReference<Class<? extends Page>> pageExpiredErrorPage;
+
+	private Bytes defaultMaximumUploadSize = Bytes.MAX;
+
+	private boolean uploadProgressUpdatesEnabled = false;
+
+	private IFeedbackMessageFilter feedbackMessageCleanupFilter = new DefaultCleanupFeedbackMessageFilter();
+
+	/**
+	 * Gets the access denied page class.
+	 *
+	 * @return Returns the accessDeniedPage.
+	 */
+	public Class<? extends Page> getAccessDeniedPage()
+	{
+		return accessDeniedPage.get();
+	}
+
+	/**
+	 * Gets the default resolver to use when finding classes and resources.
+	 *
+	 * @return Default class resolver
+	 */
+	public IClassResolver getClassResolver()
+	{
+		return classResolver;
+	}
+
+	/**
+	 * Gets the default maximum size for uploads. This is used by {@link org.apache.wicket.markup.html.form.Form#getMaxSize()} if no
+	 * value is explicitly set through {@link org.apache.wicket.markup.html.form.Form#setMaxSize(Bytes)}.
+	 *
+	 * @return the default maximum size for uploads
+	 */
+	public Bytes getDefaultMaximumUploadSize()
+	{
+		return defaultMaximumUploadSize;
+	}
+
+	/**
+	 * Gets internal error page class.
+	 *
+	 * @return Returns the internalErrorPage.
+	 */
+	public Class<? extends Page> getInternalErrorPage()
+	{
+		return internalErrorPage.get();
+	}
+
+	/**
+	 * Gets the page expired page class.
+	 *
+	 * @return Returns the pageExpiredErrorPage.
+	 */
+	public Class<? extends Page> getPageExpiredErrorPage()
+	{
+		return pageExpiredErrorPage.get();
+	}
+
+	/**
+	 * Gets whether wicket is providing updates about the upload progress or not.
+	 *
+	 * @return if true upload progress monitoring is enabled
+	 */
+	public boolean isUploadProgressUpdatesEnabled()
+	{
+		return uploadProgressUpdatesEnabled;
+	}
+
+	/**
+	 * Sets the access denied page class. The class must be bookmarkable and must extend Page.
+	 *
+	 * @param accessDeniedPage
+	 *            The accessDeniedPage to set.
+	 */
+	public void setAccessDeniedPage(Class<? extends Page> accessDeniedPage)
+	{
+		if (accessDeniedPage == null)
+		{
+			throw new IllegalArgumentException("Argument accessDeniedPage may not be null");
+		}
+		checkPageClass(accessDeniedPage);
+
+		this.accessDeniedPage = new WeakReference<Class<? extends Page>>(accessDeniedPage);
+	}
+
+	/**
+	 * Sets the default class resolver to use when finding classes and resources.
+	 *
+	 * @param defaultClassResolver
+	 *            The default class resolver
+	 */
+	public void setClassResolver(final IClassResolver defaultClassResolver)
+	{
+		classResolver = defaultClassResolver;
+	}
+
+	/**
+	 * Sets the default maximum size for uploads. This is used by {@link org.apache.wicket.markup.html.form.Form#getMaxSize()} if no
+	 * value is explicitly set through {@link org.apache.wicket.markup.html.form.Form#setMaxSize(Bytes)}.
+	 *
+	 * @param defaultMaximumUploadSize
+	 *            the default maximum size for uploads
+	 */
+	public void setDefaultMaximumUploadSize(Bytes defaultMaximumUploadSize)
+	{
+		this.defaultMaximumUploadSize = defaultMaximumUploadSize;
+	}
+
+	/**
+	 * Sets internal error page class. The class must be bookmarkable and must extend Page.
+	 *
+	 * @param internalErrorPage
+	 *            The internalErrorPage to set.
+	 */
+	public void setInternalErrorPage(final Class<? extends Page> internalErrorPage)
+	{
+		Args.notNull(internalErrorPage, "internalErrorPage");
+		checkPageClass(internalErrorPage);
+
+		this.internalErrorPage = new WeakReference<Class<? extends Page>>(internalErrorPage);
+	}
+
+	/**
+	 * Sets the page expired page class. The class must be bookmarkable and must extend Page.
+	 *
+	 * @param pageExpiredErrorPage
+	 *            The pageExpiredErrorPage to set.
+	 */
+	public void setPageExpiredErrorPage(final Class<? extends Page> pageExpiredErrorPage)
+	{
+		if (pageExpiredErrorPage == null)
+		{
+			throw new IllegalArgumentException("Argument pageExpiredErrorPage may not be null");
+		}
+		checkPageClass(pageExpiredErrorPage);
+
+		this.pageExpiredErrorPage = new WeakReference<Class<? extends Page>>(pageExpiredErrorPage);
+	}
+
+	/**
+	 * Sets whether wicket should provide updates about the upload progress or not.
+	 *
+	 * @param uploadProgressUpdatesEnabled
+	 *            if true upload progress monitoring is enabled
+	 */
+	public void setUploadProgressUpdatesEnabled(boolean uploadProgressUpdatesEnabled)
+	{
+		this.uploadProgressUpdatesEnabled = uploadProgressUpdatesEnabled;
+	}
+
+	/**
+	 * Throws an IllegalArgumentException if the given class is not a subclass of Page.
+	 * 
+	 * @param <C>
+	 * @param pageClass
+	 *            the page class to check
+	 */
+	private <C extends Page> void checkPageClass(final Class<C> pageClass)
+	{
+		// NOTE: we can't really check on whether it is a bookmarkable page
+		// here, as - though the default is that a bookmarkable page must
+		// either have a default constructor and/or a constructor with a
+		// PageParameters object, this could be different for another
+		// IPageFactory implementation
+		if (!Page.class.isAssignableFrom(pageClass))
+		{
+			throw new IllegalArgumentException("argument " + pageClass +
+				" must be a subclass of Page");
+		}
+	}
+
+	/**
+	 * Sets the cleanup feedback message filter. see {@link #getFeedbackMessageCleanupFilter()} for
+	 * more details.
+	 *
+	 * @param filter
+	 */
+	public void setFeedbackMessageCleanupFilter(IFeedbackMessageFilter filter)
+	{
+		Args.notNull(filter, "filter");
+		feedbackMessageCleanupFilter = filter;
+	}
+
+	/**
+	 * Returns the cleanup feedack message filter. At the end of request all messages are ran
+	 * through this filter, and the ones accepted are removed. The default implementation accepts
+	 * (and therefore remkoves) all rendered messages.
+	 *
+	 * @return feedback message filter
+	 */
+	public IFeedbackMessageFilter getFeedbackMessageCleanupFilter()
+	{
+		return feedbackMessageCleanupFilter;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/DebugSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/DebugSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/DebugSettings.java
new file mode 100644
index 0000000..f073b18
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/DebugSettings.java
@@ -0,0 +1,213 @@
+/*
+ * 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.settings;
+
+/**
+ * Settings interface for various debug settings
+ * <p>
+ * <i>componentUseCheck </i> (defaults to true in development mode) - causes the framework to do a
+ * check after rendering each page to ensure that each component was used in rendering the markup.
+ * If components are found that are not referenced in the markup, an appropriate error will be
+ * displayed
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class DebugSettings
+{
+	/** ajax debug mode status */
+	private boolean ajaxDebugModeEnabled = false;
+
+	/** True to check that each component on a page is used */
+	private boolean componentUseCheck = true;
+
+	/**
+	 * whether wicket should track line precise additions of components for error reporting.
+	 */
+	private boolean linePreciseReportingOnAddComponentEnabled = false;
+
+	/**
+	 * whether wicket should track line precise instantiations of components for error reporting.
+	 */
+	private boolean linePreciseReportingOnNewComponentEnabled = false;
+
+	/**
+	 * Whether the container's class name should be printed to response (in a html comment).
+	 */
+	private boolean outputMarkupContainerClassName = false;
+
+	private boolean outputComponentPath = false;
+
+	private boolean developmentUtilitiesEnabled = false;
+
+	/**
+	 * @return true if componentUseCheck is enabled
+	 */
+	public boolean getComponentUseCheck()
+	{
+		return componentUseCheck;
+	}
+
+	/**
+	 * Returns status of ajax debug mode.
+	 *
+	 * @return true if ajax debug mode is enabled, false otherwise
+	 */
+	public boolean isAjaxDebugModeEnabled()
+	{
+		return ajaxDebugModeEnabled;
+	}
+
+	/**
+	 * Returns status of line precise error reporting for added components that are not present in
+	 * the markup: it points to the line where the component was added to the hierarchy in your Java
+	 * classes. This can cause a significant decrease in performance, do not use in customer facing
+	 * applications.
+	 *
+	 * @return true if the line precise error reporting is enabled
+	 */
+	public boolean isLinePreciseReportingOnAddComponentEnabled()
+	{
+		return linePreciseReportingOnAddComponentEnabled;
+	}
+
+	/**
+	 * Returns status of line precise error reporting for new components that are not present in the
+	 * markup: it points to the line where the component was created in your Java classes. This can
+	 * cause a significant decrease in performance, do not use in customer facing applications.
+	 *
+	 * @return true if the line precise error reporting is enabled
+	 */
+	public boolean isLinePreciseReportingOnNewComponentEnabled()
+	{
+		return linePreciseReportingOnNewComponentEnabled;
+	}
+
+	/**
+	 * Returns whether the output of markup container's should be wrapped by comments containing the
+	 * container's class name.
+	 *
+	 * @return true if the markup container's class name should be written to response
+	 */
+	public boolean isOutputMarkupContainerClassName()
+	{
+		return outputMarkupContainerClassName;
+	}
+
+	/**
+	 * Enables or disables ajax debug mode.
+	 *
+	 * @param enable
+	 */
+	public void setAjaxDebugModeEnabled(boolean enable)
+	{
+		ajaxDebugModeEnabled = enable;
+	}
+
+	/**
+	 * Sets componentUseCheck debug settings
+	 *
+	 * @param componentUseCheck
+	 */
+	public void setComponentUseCheck(final boolean componentUseCheck)
+	{
+		this.componentUseCheck = componentUseCheck;
+	}
+
+	/**
+	 * Enables line precise error reporting for added components that are not present in the markup:
+	 * it points to the line where the component was added to the hierarchy in your Java classes.
+	 * This can cause a significant decrease in performance, do not use in customer facing
+	 * applications.
+	 *
+	 * @param enable
+	 */
+	public void setLinePreciseReportingOnAddComponentEnabled(boolean enable)
+	{
+		linePreciseReportingOnAddComponentEnabled = enable;
+	}
+
+	/**
+	 * Enables line precise error reporting for new components that are not present in the markup:
+	 * it points to the line where the component was created in your Java classes. This can cause a
+	 * significant decrease in performance, do not use in customer facing applications.
+	 *
+	 * @param enable
+	 */
+	public void setLinePreciseReportingOnNewComponentEnabled(boolean enable)
+	{
+		linePreciseReportingOnNewComponentEnabled = enable;
+	}
+
+	/**
+	 * Enables wrapping output of markup container in html comments that contain markup container's
+	 * class name. (Useful for determining which part of page belongs to which markup file).
+	 *
+	 * @param enable
+	 */
+	public void setOutputMarkupContainerClassName(boolean enable)
+	{
+		outputMarkupContainerClassName = enable;
+	}
+
+	/**
+	 * @see #setOutputComponentPath(boolean)
+	 * @return <code>true</code> if output component path feature is enabled, <code>false</code>
+	 *         otherwise
+	 */
+	public boolean isOutputComponentPath()
+	{
+		return outputComponentPath;
+	}
+
+	/**
+	 * If set to <code>true</code> wicket will output component path in a <code>wicketpath</code>
+	 * attribute of the component tag. This can be useful for debugging and automating tests.
+	 *
+	 * @param outputComponentPath
+	 */
+	public void setOutputComponentPath(boolean outputComponentPath)
+	{
+		this.outputComponentPath = outputComponentPath;
+	}
+
+	/**
+	 * Enables all of the panels and pages, etc, from wicket-devutils package.
+	 *
+	 * @param enable
+	 */
+	public void setDevelopmentUtilitiesEnabled(boolean enable)
+	{
+		developmentUtilitiesEnabled = enable;
+	}
+
+	/**
+	 * Are all of the panels and pages, etc, from wicket-devutils package enabled?
+	 *
+	 * @return true if all of the panels and pages, etc, from wicket-devutils package are enabled
+	 */
+	public boolean isDevelopmentUtilitiesEnabled()
+	{
+		return developmentUtilitiesEnabled;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/DefaultUnauthorizedResourceRequestListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/DefaultUnauthorizedResourceRequestListener.java b/wicket-core/src/main/java/org/apache/wicket/settings/DefaultUnauthorizedResourceRequestListener.java
new file mode 100644
index 0000000..6b47e0d
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/DefaultUnauthorizedResourceRequestListener.java
@@ -0,0 +1,55 @@
+/*
+ * 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.settings;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.wicket.authorization.IUnauthorizedResourceRequestListener;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.http.handler.ErrorCodeRequestHandler;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.IResource;
+
+/**
+ * An IUnauthorizedResourceRequestListener that schedules a response with status code 403 (Forbidden)
+ */
+public class DefaultUnauthorizedResourceRequestListener implements IUnauthorizedResourceRequestListener
+{
+	@Override
+	public void onUnauthorizedRequest(IResource resource, PageParameters parameters)
+	{
+		RequestCycle cycle = RequestCycle.get();
+		if (cycle != null)
+		{
+			IRequestHandler handler = new ErrorCodeRequestHandler(HttpServletResponse.SC_FORBIDDEN, createErrorMessage(resource, parameters));
+			cycle.replaceAllRequestHandlers(handler);
+		}
+	}
+
+	protected String createErrorMessage(IResource resource, PageParameters parameters)
+	{
+		return new StringBuilder()
+			.append("The request to resource '")
+			.append(resource)
+			.append("' with parameters '")
+			.append(parameters)
+			.append("' cannot be authorized.")
+			.toString();
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/ExceptionSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/ExceptionSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/ExceptionSettings.java
new file mode 100644
index 0000000..7028150
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/ExceptionSettings.java
@@ -0,0 +1,184 @@
+/*
+ * 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.settings;
+
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.lang.EnumeratedType;
+
+/**
+ *
+ * Settings interface for configuring exception handling related settings.
+ * <p>
+ * <i>unexpectedExceptionDisplay </i> (defaults to SHOW_EXCEPTION_PAGE) - Determines how exceptions
+ * are displayed to the developer or user
+ * <p>
+ * <i>throwExceptionOnMissingResource </i> (defaults to true) - Set to true to throw a runtime
+ * exception if a required string resource is not found. Set to false to return the requested
+ * resource key surrounded by pairs of question mark characters (e.g. "??missingKey??")
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class ExceptionSettings
+{
+	/**
+	 * Enumerated type for different ways of displaying unexpected exceptions.
+	 */
+	public static final class UnexpectedExceptionDisplay extends EnumeratedType
+	{
+		private static final long serialVersionUID = 1L;
+
+		UnexpectedExceptionDisplay(final String name)
+		{
+			super(name);
+		}
+	}
+
+	/**
+	 * Indicates that an exception page appropriate to development should be shown when an
+	 * unexpected exception is thrown.
+	 */
+	public static final UnexpectedExceptionDisplay SHOW_EXCEPTION_PAGE = new UnexpectedExceptionDisplay(
+			"SHOW_EXCEPTION_PAGE");
+	/**
+	 * Indicates a generic internal error page should be shown when an unexpected exception is
+	 * thrown.
+	 */
+	public static final UnexpectedExceptionDisplay SHOW_INTERNAL_ERROR_PAGE = new UnexpectedExceptionDisplay(
+			"SHOW_INTERNAL_ERROR_PAGE");
+
+	/**
+	 * Indicates that no exception page should be shown when an unexpected exception is thrown.
+	 */
+	public static final UnexpectedExceptionDisplay SHOW_NO_EXCEPTION_PAGE = new UnexpectedExceptionDisplay(
+			"SHOW_NO_EXCEPTION_PAGE");
+
+	/**
+	 * How to handle errors while processing an Ajax request
+	 *
+	 * @author igor
+	 */
+	public static enum AjaxErrorStrategy {
+		/** redirect to error page, just like a normal requset */
+		REDIRECT_TO_ERROR_PAGE,
+		/** invoke client side failure handler */
+		INVOKE_FAILURE_HANDLER
+	}
+
+	/**
+	 * Which threads' stacktrace to dump when a page lock timeout occurs
+	 *
+	 * @author papegaaij
+	 */
+	public static enum ThreadDumpStrategy {
+		/** Do not dump any stacktraces */
+		NO_THREADS,
+		/** Dump the stacktrace of the thread holding the lock */
+		THREAD_HOLDING_LOCK,
+		/** Dump stacktraces of all threads of the application */
+		ALL_THREADS
+	}
+
+	/** Type of handling for unexpected exceptions */
+	private UnexpectedExceptionDisplay unexpectedExceptionDisplay = SHOW_EXCEPTION_PAGE;
+
+	private AjaxErrorStrategy errorHandlingStrategyDuringAjaxRequests = AjaxErrorStrategy.REDIRECT_TO_ERROR_PAGE;
+
+	/**
+	 * Strategy to use for dumping stack traces of live threads in the JVM.
+	 * <p>
+	 * By default will dump the stacktrace of the thread that holds the lock on the page.
+	 * </p>
+	 */
+	private ThreadDumpStrategy threadDumpStrategy = ThreadDumpStrategy.THREAD_HOLDING_LOCK;
+
+	/**
+	 * @return Returns the unexpectedExceptionDisplay.
+	 */
+	public UnexpectedExceptionDisplay getUnexpectedExceptionDisplay()
+	{
+		return unexpectedExceptionDisplay;
+	}
+
+	/**
+	 * The exception display type determines how the framework displays exceptions to you as a
+	 * developer or user.
+	 * <p>
+	 * The default value for exception display type is SHOW_EXCEPTION_PAGE. When this value is set
+	 * and an unhandled runtime exception is thrown by a page, a redirect to a helpful exception
+	 * display page will occur.
+	 * <p>
+	 * This is a developer feature, however, and you may want to instead show an internal error page
+	 * without developer details that allows a user to start over at the application's home page.
+	 * This can be accomplished by setting the exception display type to SHOW_INTERNAL_ERROR_PAGE.
+	 * <p>
+	 * Finally, if you are having trouble with the exception display pages themselves, you can
+	 * disable exception displaying entirely with the value SHOW_NO_EXCEPTION_PAGE. This will cause
+	 * the framework to re-throw any unhandled runtime exceptions after wrapping them in a
+	 * ServletException wrapper.
+	 *
+	 * @param unexpectedExceptionDisplay
+	 *            The unexpectedExceptionDisplay to set.
+	 */
+	public void setUnexpectedExceptionDisplay(UnexpectedExceptionDisplay unexpectedExceptionDisplay)
+	{
+		this.unexpectedExceptionDisplay = unexpectedExceptionDisplay;
+	}
+
+	/**
+	 * @return strategy used to handle errors during Ajax request processing
+	 */
+	public AjaxErrorStrategy getAjaxErrorHandlingStrategy()
+	{
+		return errorHandlingStrategyDuringAjaxRequests;
+	}
+
+	/**
+	 * Sets strategy used to handle errors during Ajax request processing
+	 *
+	 * @param errorHandlingStrategyDuringAjaxRequests
+	 */
+	public void setAjaxErrorHandlingStrategy(
+		AjaxErrorStrategy errorHandlingStrategyDuringAjaxRequests)
+	{
+		this.errorHandlingStrategyDuringAjaxRequests = errorHandlingStrategyDuringAjaxRequests;
+	}
+
+	/**
+	 * Sets the strategy to use for dumping stack traces of live threads in the JVM.
+	 *
+	 * @param strategy
+	 */
+	public void setThreadDumpStrategy(ThreadDumpStrategy strategy)
+	{
+		threadDumpStrategy = Args.notNull(strategy, "strategy");
+	}
+
+	/**
+	 * @return strategy to use for dumping stack traces of live threads in the JVM.
+	 */
+	public ThreadDumpStrategy getThreadDumpStrategy()
+	{
+		return threadDumpStrategy;
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/3ecbe996/wicket-core/src/main/java/org/apache/wicket/settings/FrameworkSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/FrameworkSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/FrameworkSettings.java
new file mode 100644
index 0000000..c562bf9
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/FrameworkSettings.java
@@ -0,0 +1,179 @@
+/*
+ * 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.settings;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.Component;
+import org.apache.wicket.IComponentAwareEventSink;
+import org.apache.wicket.IDetachListener;
+import org.apache.wicket.IEventDispatcher;
+import org.apache.wicket.event.IEvent;
+import org.apache.wicket.event.IEventSink;
+import org.apache.wicket.serialize.ISerializer;
+import org.apache.wicket.serialize.java.JavaSerializer;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.string.Strings;
+
+/**
+ * Framework settings for retrieving and configuring framework settings.
+ *
+ * @author Jonathan Locke
+ * @author Chris Turner
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Johan Compagner
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Martijn Dashorst
+ * @author James Carman
+ */
+public class FrameworkSettings implements IEventDispatcher
+{
+	private IDetachListener detachListener;
+
+	private List<IEventDispatcher> eventDispatchers = null;
+
+	/**
+	 * The {@link ISerializer} that will be used to convert the pages to/from byte arrays
+	 */
+	private ISerializer serializer;
+
+	/**
+	 * Construct.
+	 * 
+	 * @param application
+	 */
+	public FrameworkSettings(final Application application)
+	{
+		serializer = new JavaSerializer(application.getApplicationKey());
+	}
+
+	/**
+	 * Gets the Wicket version. The Wicket version is in the same format as the version element in
+	 * the pom.xml file (project descriptor). The version is generated by maven in the build/release
+	 * cycle and put in the wicket.properties file located in the root folder of the Wicket jar.
+	 *
+	 * The version usually follows one of the following formats:
+	 * <ul>
+	 * <li>major.minor[.bug] for stable versions. 1.1, 1.2, 1.2.1 are examples</li>
+	 * <li>major.minor-state for development versions. 1.2-beta2, 1.3-SNAPSHOT are examples</li>
+	 * </ul>
+	 *
+	 * @return the Wicket version
+	 */
+	public String getVersion()
+	{
+		String implVersion = null;
+		Package pkg = getClass().getPackage();
+		if (pkg != null)
+		{
+			implVersion = pkg.getImplementationVersion();
+		}
+		return Strings.isEmpty(implVersion) ? "n/a" : implVersion;
+	}
+
+	/**
+	 * @return detach listener or <code>null</code> if none
+	 */
+	public IDetachListener getDetachListener()
+	{
+		return detachListener;
+	}
+
+	/**
+	 * Sets detach listener
+	 *
+	 * @param detachListener
+	 *            listener or <code>null</code> to remove
+	 */
+	public void setDetachListener(IDetachListener detachListener)
+	{
+		this.detachListener = detachListener;
+	}
+
+	/**
+	 * Registers a new event dispatcher
+	 *
+	 * @param dispatcher
+	 */
+	public void add(IEventDispatcher dispatcher)
+	{
+		Args.notNull(dispatcher, "dispatcher");
+		if (eventDispatchers == null)
+		{
+			eventDispatchers = new ArrayList<IEventDispatcher>();
+		}
+		if (!eventDispatchers.contains(dispatcher))
+		{
+			eventDispatchers.add(dispatcher);
+		}
+	}
+
+	/**
+	 * Dispatches event to registered dispatchers
+	 * 
+	 * @see IEventDispatcher#dispatchEvent(Object, IEvent, Component)
+	 * 
+	 * @param sink
+	 * @param event
+	 * @param component
+	 */
+	@Override
+	public void dispatchEvent(Object sink, IEvent<?> event, Component component)
+	{
+		// direct delivery
+		if (component != null && sink instanceof IComponentAwareEventSink)
+		{
+			((IComponentAwareEventSink)sink).onEvent(component, event);
+		}
+		else if (sink instanceof IEventSink)
+		{
+			((IEventSink)sink).onEvent(event);
+		}
+
+		// additional dispatchers delivery
+		if (eventDispatchers == null)
+		{
+			return;
+		}
+		for (IEventDispatcher dispatcher : eventDispatchers)
+		{
+			dispatcher.dispatchEvent(sink, event, component);
+		}
+	}
+
+	/**
+	 * Sets the {@link ISerializer} that will be used to convert objects to/from byte arrays
+	 *
+	 * @param serializer
+	 *            the {@link ISerializer} to use
+	 */
+	public void setSerializer(ISerializer serializer)
+	{
+		this.serializer = Args.notNull(serializer, "serializer");
+	}
+
+	/**
+	 * @return the {@link ISerializer} that will be used to convert objects to/from byte arrays
+	 */
+	public ISerializer getSerializer()
+	{
+		return serializer;
+	}
+}