release notes for 1.5.1

git-svn-id: https://svn.apache.org/repos/asf/wicket/branches/wicket-1.5-RC7@1173195 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGELOG-1.5 b/CHANGELOG-1.5
index f57827a..fd4945a 100644
--- a/CHANGELOG-1.5
+++ b/CHANGELOG-1.5
@@ -1,5 +1,67 @@
 This file contains all changes done on the 1.5 version.
 
+Release Notes - Wicket - Version 1.5.1
+
+** Sub-task
+    * [WICKET-3934] - Provide AttributeModifier#remove(String)
+    * [WICKET-4029] - Improve RequestLogger to not do anything after IPageManager#commitRequest()
+
+** Bug
+    * [WICKET-3773] - Onclick Script displayed as Link Text
+    * [WICKET-3977] - Calling FormTester.select for DropDownChoice invokes onSelectionChanged with null argument
+    * [WICKET-3991] - SignInPanel prevents the page being Stateless when signing in with the "rember me" facility.
+    * [WICKET-3993] - Wrong ASCII Key Code for END Key. AutoComplete not working properly
+    * [WICKET-3998] - CreditCardValidator returns incorrect cardId for VISA
+    * [WICKET-4004] - PageExpiredException still thrown after handled by IRequestCycleListener
+    * [WICKET-4005] - AutoHide of DatePicker breaks showOnFieldClick
+    * [WICKET-4009] - Page Lock on Browser Back Button after Page Expiry
+    * [WICKET-4010] - SignInPanel may lead to infinite redirects if there is rememberMe cookie with outdated data
+    * [WICKET-4012] - Component's onAfterRender() is called so many times as it is depth in the component tree + 1
+    * [WICKET-4014] - Wicket 1.5 Form Post Action and Link Get discard Page Class Information
+    * [WICKET-4016] - MarkupContainer.toString(true) fails with MarkupNotFoundException if the call is made in the component constructor
+    * [WICKET-4020] - ResourceMapper throws IllegalStateException when attempting to map a request to a URL ending in a empty segment (directory)
+    * [WICKET-4021] - PageProvider can instantiate pages even if isNewPageInstance returns false
+    * [WICKET-4022] - Hidden auto generated field in Form has invalid value for autocomplete
+    * [WICKET-4025] - AbstractLink does not detach body model
+    * [WICKET-4030] - HeaderResponse.renderCSSReference does not render context path relative url, but wicket filter url-pattern relative url
+    * [WICKET-4031] - TextRequestHandler doesn't set Content-Length header
+    * [WICKET-4032] - ComponentStringResourceLoader must not include the index of repeater items in resource lookup but still resolve properties to them
+    * [WICKET-4038] - MountedMapper.mapHandler ruins Links inside mounted pages appending parameters wicket-ajax and wicket-ajax-baseurl
+    * [WICKET-4047] - WebClientInfocauses NullPointerException when the request header "User-Agent" is null.
+    * [WICKET-4048] - label's wicket:for does not work completely for Radios
+    * [WICKET-4051] - max-age header is set in milliseconds rather than seconds
+    * [WICKET-4053] - AbstractTree#updateTree(AjaxRequestTarget target) is invoked even when request is non-ajax
+    * [WICKET-4054] - Memory leakage in browser with AbstractAjaxTimerBehavior
+    * [WICKET-4055] - LocaleFirstMapper does not strip Locale from url in getCompatibilityScore()
+    * [WICKET-4058] - RadioGroup WicktTester with a AjaxSubmitLink fails
+    * [WICKET-4059] - CheckBoxMultipleChoice does not respect isEnabled
+    * [WICKET-4061] - Invalid listener url generated for nested components that have an id which starts with a dash
+    * [WICKET-4063] - Theading issue in AsynchronousDataStore causes OutOfMemory exception
+    * [WICKET-4066] - RestartResponseAtInterceptPageException.InterceptData is never cleared
+
+** Improvement
+    * [WICKET-2790] - Submitting a form with Ajax in WicketTester does not check if form is multiPart
+    * [WICKET-2930] - Method isSelected in Select should be public
+    * [WICKET-3938] - Impossible to remove particular key-value from PageParameters
+    * [WICKET-4006] - Add a check preventing trying to add the current component as a child to itself
+    * [WICKET-4023] - Please Allow AjaxLink to use getChannelName
+    * [WICKET-4024] - Provide a Convenience API for usage of Ajax Channels
+    * [WICKET-4028] - Improve PageInstanceMapper#getCompatibilityScore() to return higher value if the request starts with 'wicket/page'
+    * [WICKET-4037] - Archetype quickstart references release candidate
+    * [WICKET-4042] - Typo in FormTester fail message
+    * [WICKET-4044] - Change the style of "WICKET AJAX DEBUG" link when some error gets logged
+    * [WICKET-4046] - Touch pages only when they are returned from the data stores
+    * [WICKET-4049] - Enable SSL for quickstart to make debugging SSL errors easier
+    * [WICKET-4052] - Add org.apache.wicket.request.Response.write(byte[], int, int) to make it easier to write buffered data to the web response
+    * [WICKET-4065] - Improve behavior#getStatelessHint() by accounting for the common cases when behaviors are not stateless
+    * [WICKET-4067] - Register devutils only if IDebugSettings#isDevelopmentUtilitiesEnabled() is true
+    * [WICKET-4068] - Assume that form.onsubmit() without explicit return value means that submit should proceed
+
+** New Feature
+    * [WICKET-4015] - Implement a listener which can be used to measure the render time of a component
+
+Promoted Wicket 1.5-RC7 to 1.5.0
+
 Release Notes - Wicket - Version 1.5-RC7
 
 ** Bug
diff --git a/wicket-auth-roles/src/test/java/org/apache/wicket/authroles/authorization/strategies/role/metadata/InstantiationPermissionsTest.java b/wicket-auth-roles/src/test/java/org/apache/wicket/authroles/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
index cf4dcf9..82e3787 100644
--- a/wicket-auth-roles/src/test/java/org/apache/wicket/authroles/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
+++ b/wicket-auth-roles/src/test/java/org/apache/wicket/authroles/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
@@ -1,125 +1,125 @@
-/*

- * 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.authroles.authorization.strategies.role.metadata;

-

-import junit.framework.TestCase;

-

-import org.apache.wicket.Page;

-import org.apache.wicket.authroles.authorization.strategies.role.IRoleCheckingStrategy;

-import org.apache.wicket.authroles.authorization.strategies.role.Roles;

-import org.apache.wicket.util.tester.WicketTester;

-

-/**

- * Test case for

- * {@link org.apache.wicket.authorization.strategies.role.metadata.InstantiationPermissions}.

- * 

- * @author Eelco Hillenius

- */

-public class InstantiationPermissionsTest extends TestCase

-{

-	private WicketTester tester;

-

-	@Override

-	protected void setUp() throws Exception

-	{

-		tester = new WicketTester();

-	}

-

-	@Override

-	protected void tearDown() throws Exception

-	{

-		tester.destroy();

-	}

-

-	/**

-	 * Test adding roles.

-	 * 

-	 * @throws Exception

-	 */

-	public void testAdd1() throws Exception

-	{

-		InstantiationPermissions permissions = new InstantiationPermissions();

-		permissions.authorize(Page.class, new Roles("jonathan"));

-		permissions.authorize(Page.class, new Roles("johan"));

-		permissions.authorize(Page.class, new Roles("maurice"));

-		permissions.authorize(Page.class, new Roles("eelco"));

-		assertEquals(4, permissions.getRolesForComponentClass().get(Page.class).size());

-		permissions.unauthorize(Page.class, new Roles("maurice"));

-		assertEquals(3, permissions.getRolesForComponentClass().get(Page.class).size());

-		permissions.authorizeAll(Page.class);

-		assertEquals(null, permissions.getRolesForComponentClass().get(Page.class));

-	}

-

-	/**

-	 * Test removing roles.

-	 * 

-	 * @throws Exception

-	 */

-	public void testRemove1() throws Exception

-	{

-		InstantiationPermissions permissions = new InstantiationPermissions();

-		assertEquals(null, permissions.getRolesForComponentClass().get(Page.class));

-		permissions.unauthorize(Page.class, new Roles("eelco"));

-		assertEquals(new Roles(MetaDataRoleAuthorizationStrategy.NO_ROLE),

-			permissions.getRolesForComponentClass().get(Page.class));

-	}

-

-	/**

-	 * Test for issue <a href="http://issues.apache.org/jira/browse/WICKET-1152">WICKET-1152</a>.

-	 * 

-	 */

-	public void testRemove2()

-	{

-		MetaDataRoleAuthorizationStrategy strategy = new MetaDataRoleAuthorizationStrategy(

-			new IRoleCheckingStrategy()

-			{

-

-				public boolean hasAnyRole(Roles roles)

-				{

-					return false;

-				}

-			});

-		tester.getApplication().setMetaData(

-			MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,

-			new InstantiationPermissions());

-		MetaDataRoleAuthorizationStrategy.unauthorize(Page.class, "martijn");

-		assertFalse(strategy.isInstantiationAuthorized(Page.class));

-	}

-

-	/**

-	 * Test consistency in behavior between authorizing a role for a class and then unauthorizing it

-	 * with {@link #testRemove2()}.

-	 */

-	public void testRemove3()

-	{

-		MetaDataRoleAuthorizationStrategy strategy = new MetaDataRoleAuthorizationStrategy(

-			new IRoleCheckingStrategy()

-			{

-

-				public boolean hasAnyRole(Roles roles)

-				{

-					return false;

-				}

-			});

-		tester.getApplication().setMetaData(

-			MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,

-			new InstantiationPermissions());

-		MetaDataRoleAuthorizationStrategy.authorize(Page.class, "martijn");

-		MetaDataRoleAuthorizationStrategy.unauthorize(Page.class, "martijn");

-		assertFalse(strategy.isInstantiationAuthorized(Page.class));

-	}

-}

+/*
+ * 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.authroles.authorization.strategies.role.metadata;
+
+import junit.framework.TestCase;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.authroles.authorization.strategies.role.IRoleCheckingStrategy;
+import org.apache.wicket.authroles.authorization.strategies.role.Roles;
+import org.apache.wicket.util.tester.WicketTester;
+
+/**
+ * Test case for
+ * {@link org.apache.wicket.authorization.strategies.role.metadata.InstantiationPermissions}.
+ * 
+ * @author Eelco Hillenius
+ */
+public class InstantiationPermissionsTest extends TestCase
+{
+	private WicketTester tester;
+
+	@Override
+	protected void setUp() throws Exception
+	{
+		tester = new WicketTester();
+	}
+
+	@Override
+	protected void tearDown() throws Exception
+	{
+		tester.destroy();
+	}
+
+	/**
+	 * Test adding roles.
+	 * 
+	 * @throws Exception
+	 */
+	public void testAdd1() throws Exception
+	{
+		InstantiationPermissions permissions = new InstantiationPermissions();
+		permissions.authorize(Page.class, new Roles("jonathan"));
+		permissions.authorize(Page.class, new Roles("johan"));
+		permissions.authorize(Page.class, new Roles("maurice"));
+		permissions.authorize(Page.class, new Roles("eelco"));
+		assertEquals(4, permissions.getRolesForComponentClass().get(Page.class).size());
+		permissions.unauthorize(Page.class, new Roles("maurice"));
+		assertEquals(3, permissions.getRolesForComponentClass().get(Page.class).size());
+		permissions.authorizeAll(Page.class);
+		assertEquals(null, permissions.getRolesForComponentClass().get(Page.class));
+	}
+
+	/**
+	 * Test removing roles.
+	 * 
+	 * @throws Exception
+	 */
+	public void testRemove1() throws Exception
+	{
+		InstantiationPermissions permissions = new InstantiationPermissions();
+		assertEquals(null, permissions.getRolesForComponentClass().get(Page.class));
+		permissions.unauthorize(Page.class, new Roles("eelco"));
+		assertEquals(new Roles(MetaDataRoleAuthorizationStrategy.NO_ROLE),
+			permissions.getRolesForComponentClass().get(Page.class));
+	}
+
+	/**
+	 * Test for issue <a href="http://issues.apache.org/jira/browse/WICKET-1152">WICKET-1152</a>.
+	 * 
+	 */
+	public void testRemove2()
+	{
+		MetaDataRoleAuthorizationStrategy strategy = new MetaDataRoleAuthorizationStrategy(
+			new IRoleCheckingStrategy()
+			{
+
+				public boolean hasAnyRole(Roles roles)
+				{
+					return false;
+				}
+			});
+		tester.getApplication().setMetaData(
+			MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,
+			new InstantiationPermissions());
+		MetaDataRoleAuthorizationStrategy.unauthorize(Page.class, "martijn");
+		assertFalse(strategy.isInstantiationAuthorized(Page.class));
+	}
+
+	/**
+	 * Test consistency in behavior between authorizing a role for a class and then unauthorizing it
+	 * with {@link #testRemove2()}.
+	 */
+	public void testRemove3()
+	{
+		MetaDataRoleAuthorizationStrategy strategy = new MetaDataRoleAuthorizationStrategy(
+			new IRoleCheckingStrategy()
+			{
+
+				public boolean hasAnyRole(Roles roles)
+				{
+					return false;
+				}
+			});
+		tester.getApplication().setMetaData(
+			MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,
+			new InstantiationPermissions());
+		MetaDataRoleAuthorizationStrategy.authorize(Page.class, "martijn");
+		MetaDataRoleAuthorizationStrategy.unauthorize(Page.class, "martijn");
+		assertFalse(strategy.isInstantiationAuthorized(Page.class));
+	}
+}