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;
+ }
+}