Merge branch 'master' into lambdas
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9e6b047f Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9e6b047f Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9e6b047f Branch: refs/heads/lambdas Commit: 9e6b047f7839e7976b72e6e5c19964aff214992b Parents: a63005d 96e84e4 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Mar 8 23:36:03 2016 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Mar 8 23:36:03 2016 +0100 ---------------------------------------------------------------------- .../main/resources/archetype-resources/pom.xml | 24 +- .../src/test/java/Start.java | 5 + pom.xml | 10 +- .../testing/pages/InsertContactTest.java | 8 + testing/wicket-common-tests/pom.xml | 5 + testing/wicket-js-tests/package.json | 6 +- testing/wicket-js-tests/pom.xml | 11 +- testing/wicket-threadtest/pom.xml | 7 +- .../validation/BeanValidationConfiguration.java | 6 +- .../validation/DefaultValidatorProvider.java | 5 +- .../wicket/bean/validation/SizeTagModifier.java | 16 +- .../org/apache/wicket/cdi/CdiWicketTester.java | 9 +- .../java/org/apache/wicket/Application.java | 40 +- .../org/apache/wicket/IGenericComponent.java | 6 +- .../java/org/apache/wicket/MarkupContainer.java | 72 +- ...RestartResponseAtInterceptPageException.java | 1 - .../main/java/org/apache/wicket/Session.java | 5 +- .../java/org/apache/wicket/SystemMapper.java | 18 +- .../ajax/AbstractDefaultAjaxBehavior.java | 5 + .../wicket/ajax/AjaxPreventSubmitBehavior.java | 66 + .../ajax/attributes/AjaxAttributeName.java | 11 +- .../ajax/attributes/AjaxRequestAttributes.java | 29 +- ...AjaxFormChoiceComponentUpdatingBehavior.java | 1 + .../ajax/markup/html/AjaxFallbackLink.java | 11 +- .../wicket/ajax/markup/html/AjaxLink.java | 6 +- .../markup/html/form/AjaxFallbackButton.java | 8 +- .../wicket/ajax/res/js/wicket-ajax-jquery.js | 60 +- .../wicket/ajax/res/js/wicket-event-jquery.js | 3 +- .../mapper/AbstractBookmarkableMapper.java | 3 - .../mapper/BasicResourceReferenceMapper.java | 6 +- .../core/request/mapper/CryptoMapper.java | 29 +- .../core/request/mapper/HomePageMapper.java | 5 +- .../core/request/mapper/MountedMapper.java | 9 +- .../core/request/mapper/ResourceMapper.java | 32 +- .../request/mapper/ResourceReferenceMapper.java | 7 +- .../core/request/mapper/StalePageException.java | 1 + .../org/apache/wicket/markup/ContainerInfo.java | 14 + .../DefaultMarkupResourceStreamProvider.java | 3 +- .../wicket/markup/html/GenericWebPage.java | 6 +- .../html/TransparentWebMarkupContainer.java | 18 +- .../wicket/markup/html/basic/EnumLabel.java | 10 +- .../wicket/markup/html/border/Border.java | 14 +- .../markup/html/form/AbstractTextComponent.java | 9 +- .../apache/wicket/markup/html/form/Check.java | 7 +- .../html/form/CheckBoxMultipleChoice.java | 12 +- .../apache/wicket/markup/html/form/Form.java | 9 +- .../wicket/markup/html/form/FormComponent.java | 8 +- .../markup/html/form/FormComponentPanel.java | 31 +- .../apache/wicket/markup/html/form/Radio.java | 6 +- .../wicket/markup/html/form/RadioChoice.java | 18 +- .../wicket/markup/html/form/RadioGroup.java | 4 +- .../wicket/markup/html/image/ExternalImage.java | 339 + .../markup/html/image/ExternalSource.java | 141 + .../apache/wicket/markup/html/image/Image.java | 28 +- .../wicket/markup/html/internal/Enclosure.java | 14 - .../apache/wicket/markup/html/link/Link.java | 6 +- .../wicket/markup/html/list/ListItem.java | 6 +- .../navigation/paging/PagingNavigationLink.java | 4 +- .../wicket/markup/html/panel/GenericPanel.java | 6 +- .../org/apache/wicket/mock/MockApplication.java | 27 +- .../org/apache/wicket/model/ChainingModel.java | 9 - .../java/org/apache/wicket/model/IModel.java | 3 + .../wicket/model/lambda/WicketFunction.java | 2 +- .../wicket/page/PageAccessSynchronizer.java | 6 +- .../pageStore/memory/HttpSessionDataStore.java | 28 +- .../wicket/pageStore/memory/PageTable.java | 1 - .../pageStore/memory/PageTableCleaner.java | 5 + .../wicket/protocol/http/WebApplication.java | 39 +- .../protocol/http/mock/MockHttpSession.java | 10 +- .../servlet/AbstractRequestWrapperFactory.java | 4 +- .../request/resource/PackageResource.java | 18 +- .../request/resource/PartWriterCallback.java | 3 +- .../apache/wicket/resource/CssUrlReplacer.java | 67 +- .../DynamicJQueryResourceReference.java | 2 +- .../resource/FileSystemJarPathService.java | 94 + .../wicket/resource/FileSystemPathService.java | 53 + .../wicket/resource/FileSystemResource.java | 35 +- .../resource/FileSystemResourceReference.java | 132 +- .../resource/JQueryResourceReference.java | 2 +- .../wicket/resource/jquery/jquery-1.11.3.js | 10351 ---------- .../wicket/resource/jquery/jquery-1.11.3.min.js | 5 - .../wicket/resource/jquery/jquery-1.12.1.js | 11026 +++++++++++ .../wicket/resource/jquery/jquery-1.12.1.min.js | 5 + .../wicket/resource/jquery/jquery-2.1.4.js | 9210 --------- .../wicket/resource/jquery/jquery-2.1.4.min.js | 4 - .../wicket/resource/jquery/jquery-2.2.1.js | 9831 ++++++++++ .../wicket/resource/jquery/jquery-2.2.1.min.js | 4 + .../filter/XmlCleaningResponseFilter.java | 7 +- .../wicket/util/reference/ClassReference.java | 4 +- .../wicket/util/tester/BaseWicketTester.java | 73 +- .../apache/wicket/util/tester/WicketTester.java | 11 + ...apache.wicket.resource.FileSystemPathService | 1 + .../org/apache/wicket/ExceptionMapperTest.java | 13 +- .../org/apache/wicket/MockPanelWithLink.java | 6 +- .../apache/wicket/TestDetachPageAjaxResult.html | 2 +- .../wicket/TestDetachPageExpectedResult.html | 2 +- .../ajax/AjaxBehaviorEnabled_expected.html | 2 +- .../wicket/ajax/AjaxHeaderContributionPage.java | 16 +- .../ajax/AjaxHeaderContributionPage2.java | 22 +- ...axHeaderContributionPage2_ajax_expected.html | 2 +- .../AjaxHeaderContributionPage2_expected.html | 2 +- ...jaxHeaderContributionPage_ajax_expected.html | 2 +- .../AjaxHeaderContributionPage_expected.html | 2 +- .../apache/wicket/ajax/DomReadyOrderPage.java | 6 +- .../ajax/DomReadyOrderPage_ajax_expected.html | 2 +- .../wicket/ajax/DomReadyOrderPage_expected.html | 2 +- .../java/org/apache/wicket/ajax/HomePage.java | 9 +- .../ajax/attributes/AjaxAttributeNameTest.java | 4 +- .../ajax/form/AjaxFormSubmitTestPage.java | 4 +- .../form/AjaxFormSubmitTestPage_expected.html | 2 +- .../OnChangeAjaxBehaviorTestPage_expected.html | 2 +- .../ajax/markup/html/AjaxFallbackLinkTest.java | 6 +- .../ajaxLink/AjaxLinkPageExpectedResult.html | 2 +- .../AjaxLinkWithBorderPageExpectedResult.html | 2 +- .../html/ajaxLink/AjaxPage2_ExpectedResult.html | 2 +- .../SimpleTestPageExpectedResult-1.html | 2 +- .../SimpleTestPageExpectedResult.html | 2 +- .../BasicResourceReferenceMapperTest.java | 4 +- .../core/request/mapper/CryptoMapperTest.java | 7 +- .../MoreSpecificResourceMountPathTest.java | 173 + .../head/filter/FilteredHeaderPageExpected.html | 2 +- .../DoubleNestedTransparentContainerPage.java | 9 +- ...inerWithSiblingTransparentContainerPage.java | 9 +- .../SingleNestedTransparentContainerPage.java | 10 +- ...ntainerWithAutoTransparentContainerPage.java | 7 +- ...ainerWithManualTransparentContainerPage.java | 8 +- .../html/basic/SimplePageExpectedResult_13.html | 2 +- .../html/border/BorderWithAutoLabelPage.html | 28 + .../html/border/BorderWithAutoLabelPage.java | 38 + .../markup/html/border/ComponentBorderTest.java | 8 + .../HideableBorderPage_ExpectedResult.html | 2 +- .../form/EscapeAttributesInChoicesPage.html | 20 + .../form/EscapeAttributesInChoicesPage.java | 53 + .../form/EscapeAttributesInChoicesTest.java | 53 + .../form/FormComponentPanelProcessingTest.java | 33 +- .../html/form/FormWithMultipleButtonsTest.java | 5 +- .../html/header/MyPageExpectedResult.html | 2 +- .../markup/html/image/ExternalImageTest.java | 73 + .../html/image/ExternalImageTestPage.html | 14 + .../html/image/ExternalImageTestPage.java | 105 + .../panel/InlinePanelPageExpectedResult_7.html | 2 +- .../panel/InlinePanelPageExpectedResult_8.html | 2 +- .../wicket/model/lambda/LambdaModelTest.java | 4 +- .../http/servlet/WicketSessionFilterTest.java | 11 +- .../wicket/queueing/ComponentQueueingTest.java | 131 + .../queueing/bodyisachild/BodyIsAChildPage.html | 22 + .../queueing/bodyisachild/BodyIsAChildPage.java | 41 + .../wicket/queueing/bodyisachild/FormGroup.html | 15 + .../wicket/queueing/bodyisachild/FormGroup.java | 262 + .../queueing/bodyisachild/LoginPanel.html | 21 + .../queueing/bodyisachild/LoginPanel.java | 62 + .../resource/PackageResourceReferenceTest.java | 16 +- .../ResourceAggregatorTest1Page_results.html | 2 +- .../ResourceAggregatorTest2Page_results.html | 2 +- .../wicket/util/tester/WicketTesterTest.java | 16 + .../util/tester/apps_5/AjaxLinkClickTest.java | 11 +- .../wicket/util/tester/apps_6/LinkPage.java | 6 +- wicket-core/src/test/js/ajax.js | 24 +- wicket-core/src/test/js/all.html | 2 +- wicket-core/src/test/js/amd.html | 21 +- wicket-core/src/test/js/amd.js | 39 +- wicket-core/src/test/js/amd/require.js | 63 +- .../data/ajax/twoEvaluationsWithIdentifier.xml | 2 +- wicket-core/src/test/js/form.js | 11 +- wicket-core/src/test/js/qunit/qunit.css | 63 +- wicket-core/src/test/js/qunit/qunit.js | 3358 +++- .../datetime/markup/html/basic/DateLabel.java | 6 +- wicket-datetime/src/site/apt/index.apt | 24 - wicket-datetime/src/site/site.xml | 38 - .../yui/calendar/DatesPage1_ExpectedResult.html | 2 +- .../diskstore/browser/BrowserPanel.java | 15 +- .../devutils/inspector/EnhancedPageView.java | 12 +- wicket-eclipse-settings/pom.xml | 29 + wicket-eclipse-settings/release.sh | 3 + .../examples/ajax/builtin/EffectsPage.java | 11 +- .../wicket/examples/ajax/builtin/FormPage.html | 19 +- .../wicket/examples/ajax/builtin/FormPage.java | 51 +- .../wicket/examples/ajax/builtin/LinksPage.java | 8 +- .../examples/ajax/builtin/RatingsPage.java | 6 +- .../wicket/examples/ajax/builtin/TodoList.java | 41 +- .../wicket/examples/source/SourcesPage.java | 8 +- .../content/CheckedSelectableFolderContent.java | 8 +- .../tree/content/EditableFolderContent.java | 8 +- .../content/MultiSelectableFolderContent.java | 12 +- .../tree/content/SelectableFolderContent.java | 15 +- .../src/main/webapp/js-test/all.html | 1 + .../src/main/webapp/js-test/lib/gym.js | 15 +- .../src/main/webapp/js-test/lib/jquery.js | 17166 +++++++++-------- .../src/main/webapp/js-test/tests/ajax/form.js | 63 +- .../main/webapp/js-test/tests/mailtemplate.js | 2 +- .../ajax/markup/html/AjaxEditableLabel.java | 6 +- .../markup/html/IndicatingAjaxFallbackLink.java | 5 +- .../html/autocomplete/wicket-autocomplete.js | 2 +- .../ajax/markup/html/modal/ModalWindow.java | 44 +- .../data/sort/AjaxFallbackOrderByBorder.java | 4 +- .../data/sort/AjaxFallbackOrderByLink.java | 64 +- .../repeater/data/sort/AjaxOrderByLink.java | 105 + .../ajax/markup/html/tabs/AjaxTabbedPanel.java | 16 +- .../markup/html/form/select/SelectOption.java | 6 +- .../repeater/data/table/HeadersToolbar.java | 11 +- .../html/repeater/data/table/IColumn.java | 14 + .../markup/html/repeater/tree/AbstractTree.java | 11 +- .../markup/html/repeater/tree/NestedTree.java | 12 +- .../markup/html/repeater/tree/Node.java | 4 +- .../markup/html/repeater/tree/TableTree.java | 9 +- .../html/repeater/tree/content/Folder.java | 7 +- .../repeater/tree/content/StyledLinkLabel.java | 14 +- .../html/repeater/util/TreeModelProvider.java | 3 +- .../wicket/extensions/rating/RatingPanel.java | 20 +- .../requestlogger/JsonRequestLogger.java | 22 +- .../extensions/wizard/WizardButtonBar.java | 81 +- .../wicket/protocol/ws/WebSocketSettings.java | 26 +- .../ws/api/AbstractWebSocketProcessor.java | 22 +- .../protocol/ws/api/IWebSocketProcessor.java | 8 + .../protocol/ws/api/ServletRequestCopy.java | 95 +- .../protocol/ws/api/WebSocketBehavior.java | 36 +- .../protocol/ws/api/WebSocketRequest.java | 72 +- .../protocol/ws/api/WebSocketResource.java | 20 + .../protocol/ws/api/WebSocketResponse.java | 19 +- .../ws/api/event/WebSocketErrorPayload.java | 43 + .../protocol/ws/api/message/ErrorMessage.java | 48 + .../ws/javax/JavaxUpgradeHttpRequest.java | 2 +- .../ws/javax/JavaxWebSocketConnection.java | 6 +- .../protocol/ws/javax/WicketEndpoint.java | 2 + .../java/org/apache/wicket/request/Request.java | 2 +- .../wicket/request/mapper/AbstractMapper.java | 16 +- .../mapper/ParentPathReferenceRewriter.java | 7 +- .../apache/wicket/spring/SpringBeanLocator.java | 7 +- wicket-user-guide/grails-app/conf/Config.groovy | 4 +- wicket-user-guide/pom.xml | 5 + .../src/docs/guide/forms2/forms2_11.gdoc | 2 +- .../src/docs/guide/forms2/forms2_3.gdoc | 8 +- .../src/docs/guide/forms2/forms2_4.gdoc | 2 +- .../src/docs/guide/forms2/forms2_5.gdoc | 38 +- .../src/docs/guide/forms2/forms2_8.gdoc | 74 +- .../src/docs/guide/forms2/forms2_9.gdoc | 4 +- .../docs/guide/modelsforms/modelsforms_3.gdoc | 8 +- .../nativewebsockets/nativewebsockets_3.gdoc | 13 +- .../src/docs/guide/repeaters/repeaters_2.gdoc | 14 +- .../src/docs/guide/repeaters/repeaters_3.gdoc | 6 +- .../src/docs/guide/repeaters/repeaters_4.gdoc | 4 +- .../src/docs/guide/resources/resources_15.gdoc | 41 + .../src/docs/guide/resources/resources_16.gdoc | 19 +- .../src/docs/guide/resources/resources_17.gdoc | 7 + wicket-user-guide/src/docs/guide/toc.yml | 3 +- .../java/org/apache/wicket/util/IProvider.java | 4 +- .../org/apache/wicket/util/LazyInitializer.java | 4 +- .../org/apache/wicket/util/NestedIterator.java | 4 +- .../org/apache/wicket/util/NullProvider.java | 4 +- .../org/apache/wicket/util/ValueProvider.java | 4 +- 250 files changed, 35927 insertions(+), 30122 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/9e6b047f/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/9e6b047f/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/9e6b047f/wicket-core/src/test/java/org/apache/wicket/model/lambda/LambdaModelTest.java ---------------------------------------------------------------------- diff --cc wicket-core/src/test/java/org/apache/wicket/model/lambda/LambdaModelTest.java index b8e64f9,8bf21ae..2b26243 --- a/wicket-core/src/test/java/org/apache/wicket/model/lambda/LambdaModelTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/model/lambda/LambdaModelTest.java @@@ -19,7 -19,7 +19,8 @@@ package org.apache.wicket.model.lambda import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; --import static org.junit.Assert.*; ++import static org.junit.Assert.assertEquals; ++import static org.junit.Assert.assertThat; import org.apache.wicket.core.util.lang.WicketObjects; import org.apache.wicket.model.IModel; @@@ -88,32 -88,4 +89,31 @@@ public class LambdaModelTes assertThat(clone.getObject(), is(personName)); } - + static class Foo<T> { + + public void callT(T instance) { + + } + + static <T> Foo<T> of(Class<? extends T> type) { + return new Foo<>(); + } + } + + @Test + public void testMe() { + String s="foo"; + Class<? extends String> class1 = s.getClass(); + Foo<String> foo = Foo.of(class1); + foo.callT(s); + + + } + + static <X> void again(X s, Class<X> clazz) { + Class<? extends X> class1 = clazz; + s.getClass(); + Foo<X> foo = Foo.of(class1); + foo.callT(s); + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/9e6b047f/wicket-util/src/main/java/org/apache/wicket/util/NestedIterator.java ---------------------------------------------------------------------- diff --cc wicket-util/src/main/java/org/apache/wicket/util/NestedIterator.java index f2526db,0000000..6104df8 mode 100644,000000..100644 --- a/wicket-util/src/main/java/org/apache/wicket/util/NestedIterator.java +++ b/wicket-util/src/main/java/org/apache/wicket/util/NestedIterator.java @@@ -1,70 -1,0 +1,70 @@@ - package org.apache.wicket.util; - +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ ++package org.apache.wicket.util; ++ +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.Iterator; + +/** + * Wrapper class for {@link java.util.Iterator} meant to recursively + * iterate over its elements if they are iterable. + * + * @author Andrea Del Bene + */ +public class NestedIterator<E> implements Iterator<E> +{ + private Iterator<E> currentIterator; + private Deque<Iterator<E>> iteratorStack = new ArrayDeque<>(); + + public NestedIterator(Iterator<E> currentIterator) + { + this.currentIterator = currentIterator; + } + + public NestedIterator(Iterable<E> iterable) + { + this(iterable.iterator()); + } + + @Override + public boolean hasNext() + { + if (!currentIterator.hasNext() && !iteratorStack.isEmpty()) + { + currentIterator = iteratorStack.pop(); + } + + return currentIterator.hasNext(); + } + + @SuppressWarnings("unchecked") + @Override + public E next() + { + E nextElement = currentIterator.next(); + + if (nextElement instanceof Iterable) + { + iteratorStack.push(currentIterator); + currentIterator = ((Iterable<E>)nextElement).iterator(); + } + + return nextElement; + } + +}
