You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by so...@apache.org on 2017/10/02 08:17:06 UTC
[1/6] wicket git commit: Added wicket-http2-servlet4 module
Repository: wicket
Updated Branches:
refs/heads/WICKET-6105-java.time 2f1b9251b -> adeae9cea
Added wicket-http2-servlet4 module
* provides support for the servlet 4 api
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b8359c8a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b8359c8a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b8359c8a
Branch: refs/heads/WICKET-6105-java.time
Commit: b8359c8a360544f82e2bd53523e583fcab4ec9ae
Parents: e15993c
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Sun Sep 24 13:14:02 2017 +0200
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Sun Sep 24 13:15:31 2017 +0200
----------------------------------------------------------------------
.../wicket-http2/wicket-http2-servlet4/pom.xml | 47 ++++++++++++++
.../org/apache/wicket/http2/Initializer.java | 44 +++++++++++++
.../http2/markup/head/Servlet4PushBuilder.java | 65 ++++++++++++++++++++
.../services/org.apache.wicket.IInitializer | 1 +
.../util/license/ApacheLicenceHeaderTest.java | 34 ++++++++++
5 files changed, 191 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8359c8a/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
new file mode 100644
index 0000000..442d24d
--- /dev/null
+++ b/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.wicket.experimental.wicket8</groupId>
+ <artifactId>wicket-http2</artifactId>
+ <version>0.2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>wicket-http2-servlet4</artifactId>
+ <packaging>bundle</packaging>
+ <name>Wicket Http/2 Servlet 4</name>
+ <description>
+ Wicket’s implementation to use the PushBuilder API
+ to serve resource via http/2 with less requests. This
+ is the Servlet 4 implementation to resolve the PushBuilder API and
+ provide the IInitializer.
+ </description>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.wicket.experimental.wicket8</groupId>
+ <artifactId>wicket-http2-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>javax.servlet-api</artifactId>
+ <version>4.0.0</version><!--$NO-MVN-MAN-VER$-->
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8359c8a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/Initializer.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/Initializer.java b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/Initializer.java
new file mode 100644
index 0000000..8d40bba
--- /dev/null
+++ b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/Initializer.java
@@ -0,0 +1,44 @@
+/*
+ * 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.http2;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.IInitializer;
+import org.apache.wicket.http2.markup.head.Servlet4PushBuilder;
+
+/**
+ * Initializes the servlet 4 specific push builder API and makes it available through the HTTP2
+ * settings
+ */
+public class Initializer implements IInitializer
+{
+ /**
+ * Initializes the push builder API of Servlet 4
+ */
+ @Override
+ public void init(Application application)
+ {
+ Http2Settings http2Settings = Http2Settings.Holder.get(application);
+ http2Settings.setPushBuilder(new Servlet4PushBuilder());
+ }
+
+ @Override
+ public void destroy(Application application)
+ {
+ // NOOP
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8359c8a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/Servlet4PushBuilder.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/Servlet4PushBuilder.java b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/Servlet4PushBuilder.java
new file mode 100644
index 0000000..fe2a804
--- /dev/null
+++ b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/java/org/apache/wicket/http2/markup/head/Servlet4PushBuilder.java
@@ -0,0 +1,65 @@
+/*
+ * 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.http2.markup.head;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.wicket.http2.markup.head.PushItemHeaderValue.HeaderOperation;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Allows to push resources with the Servlet 4 specific push builder API
+ *
+ * @author Tobias Soloschenko
+ */
+public class Servlet4PushBuilder implements PushBuilder
+{
+ private static final Logger LOG = LoggerFactory.getLogger(Servlet4PushBuilder.class);
+
+ @Override
+ public void push(HttpServletRequest httpServletRequest, PushItem... pushItems)
+ {
+ Request request = RequestCycle.get().getRequest();
+ HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest();
+ javax.servlet.http.PushBuilder pushBuilder = httpRequest.newPushBuilder();
+ if (pushBuilder != null)
+ {
+ for (PushItem pushItem : pushItems)
+ {
+ pushBuilder.path(pushItem.getUrl());
+ pushItem.getHeaders().entrySet().stream().forEach(pushHeader -> {
+ String key = pushHeader.getKey();
+ PushItemHeaderValue value = pushHeader.getValue();
+ if(value.getOperation() == HeaderOperation.ADD){
+ pushBuilder.addHeader(key, value.getValue());
+ }else{
+ pushBuilder.setHeader(key, value.getValue());
+ }
+ });
+ pushBuilder.push();
+ }
+ }
+ else
+ {
+ LOG.warn("Attempted to use HTTP2 Push but it is not supported for the current request: {}!",
+ httpRequest);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8359c8a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/resources/META-INF/services/org.apache.wicket.IInitializer b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
new file mode 100644
index 0000000..f721b3e
--- /dev/null
+++ b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/main/resources/META-INF/services/org.apache.wicket.IInitializer
@@ -0,0 +1 @@
+org.apache.wicket.http2.Initializer
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8359c8a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
new file mode 100644
index 0000000..7efc3af
--- /dev/null
+++ b/wicket-experimental/wicket-http2/wicket-http2-servlet4/src/test/java/org/apache/wicket/util/license/ApacheLicenceHeaderTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.license;
+
+/**
+ * Test that the license headers are in place in this project. The tests are run from
+ * {@link ApacheLicenseHeaderTestCase}, but you can add project specific tests here if needed.
+ *
+ * @author Frank Bille Jensen (frankbille)
+ */
+public class ApacheLicenceHeaderTest extends ApacheLicenseHeaderTestCase
+{
+ /**
+ * Construct.
+ */
+ public ApacheLicenceHeaderTest()
+ {
+ // addHeaders = true;
+ }
+}
[5/6] wicket git commit: Merge branch 'master' into
WICKET-6105-java.time
Posted by so...@apache.org.
Merge branch 'master' into WICKET-6105-java.time
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9051b43f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9051b43f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9051b43f
Branch: refs/heads/WICKET-6105-java.time
Commit: 9051b43fb21243597809413c6387af896508db54
Parents: 2f1b925 77d8bf3
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Mon Oct 2 15:12:30 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Mon Oct 2 15:12:30 2017 +0700
----------------------------------------------------------------------
.../org/apache/wicket/Application_nl.properties | 8 ++-
.../mapper/AbstractBookmarkableMapper.java | 34 ++++++----
.../core/request/mapper/MountedMapperTest.java | 53 +++++++++++++++-
.../wicket-http2/wicket-http2-servlet4/pom.xml | 47 ++++++++++++++
.../org/apache/wicket/http2/Initializer.java | 44 +++++++++++++
.../http2/markup/head/Servlet4PushBuilder.java | 65 ++++++++++++++++++++
.../services/org.apache.wicket.IInitializer | 1 +
.../util/license/ApacheLicenceHeaderTest.java | 34 ++++++++++
8 files changed, 270 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
[4/6] wicket git commit: Dutch translations for paging navigator This
closes #234
Posted by so...@apache.org.
Dutch translations for paging navigator
This closes #234
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/77d8bf32
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/77d8bf32
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/77d8bf32
Branch: refs/heads/WICKET-6105-java.time
Commit: 77d8bf32d2063ac0174fc383da81ac2d6bcc482b
Parents: 2283dc5
Author: Sven Meier <sv...@apache.org>
Authored: Mon Sep 25 21:34:58 2017 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Mon Sep 25 21:35:19 2017 +0200
----------------------------------------------------------------------
.../main/java/org/apache/wicket/Application_nl.properties | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/77d8bf32/wicket-core/src/main/java/org/apache/wicket/Application_nl.properties
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Application_nl.properties b/wicket-core/src/main/java/org/apache/wicket/Application_nl.properties
index ee9b04b..b23d7d5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Application_nl.properties
+++ b/wicket-core/src/main/java/org/apache/wicket/Application_nl.properties
@@ -48,4 +48,10 @@ EqualInputValidator='${input0}' van ${label0} en '${input1}' van ${label1} zijn
EqualPasswordInputValidator=${label0} en ${label1} zijn niet gelijk aan elkaar.
null=Kies er een
-nullValid=
\ No newline at end of file
+nullValid=
+
+PagingNavigator.first=Ga naar eerste pagina
+PagingNavigator.previous=Ga naar vorige pagina
+PagingNavigator.next=Ga naar volgende pagina
+PagingNavigator.last=Ga naar laatste pagina
+PagingNavigation.page=Ga naar pagina ${page}
\ No newline at end of file
[6/6] wicket git commit: Comments are addressed
Posted by so...@apache.org.
Comments are addressed
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/adeae9ce
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/adeae9ce
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/adeae9ce
Branch: refs/heads/WICKET-6105-java.time
Commit: adeae9ceaef182858867f71ffab5d715b523b984
Parents: 9051b43
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Mon Oct 2 15:16:57 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Mon Oct 2 15:16:57 2017 +0700
----------------------------------------------------------------------
.../markup/html/form/datetime/DateTimeField.java | 10 ----------
.../markup/html/form/datetime/IDateConverter.java | 5 +++--
.../markup/html/form/datetime/StyleTimeConverter.java | 4 ----
.../markup/html/form/datetime/ZonedDateTimeConverter.java | 2 +-
4 files changed, 4 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/adeae9ce/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
index 200129f..0c6531d 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/DateTimeField.java
@@ -256,11 +256,6 @@ public class DateTimeField extends FormComponentPanel<ZonedDateTime>
dateTime = dateTime.with(ChronoField.MONTH_OF_YEAR, date.getMonthValue());
dateTime = dateTime.with(ChronoField.DAY_OF_YEAR, date.getDayOfMonth());
}
-
- @Override
- public void detach()
- {
- }
}
protected class TimeModel implements IModel<LocalTime>
@@ -279,10 +274,5 @@ public class DateTimeField extends FormComponentPanel<ZonedDateTime>
dateTime = dateTime.with(ChronoField.HOUR_OF_DAY, time.getHour());
dateTime = dateTime.with(ChronoField.MINUTE_OF_HOUR, time.getMinute());
}
-
- @Override
- public void detach()
- {
- }
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/adeae9ce/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/IDateConverter.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/IDateConverter.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/IDateConverter.java
index 6312716..59351e7 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/IDateConverter.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/IDateConverter.java
@@ -17,13 +17,14 @@
package org.apache.wicket.extensions.markup.html.form.datetime;
import java.time.format.DateTimeFormatter;
+import java.time.temporal.Temporal;
import java.util.Locale;
import org.apache.wicket.util.convert.IConverter;
/**
- * Base class for Joda Time based date converters. It contains the logic to parse and format,
+ * Base class for javax.time based date converters. It contains the logic to parse and format,
* optionally taking the time zone difference between clients and the server into account.
* <p>
* Converters of this class are best suited for per-component use.
@@ -31,7 +32,7 @@ import org.apache.wicket.util.convert.IConverter;
*
* @author eelcohillenius
*/
-public interface IDateConverter<T> extends IConverter<T>
+public interface IDateConverter<T extends Temporal> extends IConverter<T>
{
T convertToObject(String value, DateTimeFormatter format, Locale locale);
http://git-wip-us.apache.org/repos/asf/wicket/blob/adeae9ce/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/StyleTimeConverter.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/StyleTimeConverter.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/StyleTimeConverter.java
index 8ac59b4..1197f2a 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/StyleTimeConverter.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/StyleTimeConverter.java
@@ -32,10 +32,6 @@ import java.util.Locale;
* </p>
*
* @see org.apache.wicket.extensions.markup.html.form.DateTextField
- * @see java.time.LocalTime
- * @see DateTimeFormatter
- *
- * @author eelcohillenius
*/
public class StyleTimeConverter extends LocalTimeConverter
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/adeae9ce/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeConverter.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeConverter.java
index 9d0f430..2d45aa0 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeConverter.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/datetime/ZonedDateTimeConverter.java
@@ -31,7 +31,7 @@ import org.apache.wicket.util.string.Strings;
/**
- * Base class for Joda Time based date converters. It contains the logic to parse and format,
+ * Base class for javax.time based date converters. It contains the logic to parse and format,
* optionally taking the time zone difference between clients and the server into account.
* <p>
* Converters of this class are best suited for per-component use.
[3/6] wicket git commit: WICKET-6461 don't consume segments for
optional parameters if required parameters are following
Posted by so...@apache.org.
WICKET-6461 don't consume segments for optional parameters if required parameters are following
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2283dc50
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2283dc50
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2283dc50
Branch: refs/heads/WICKET-6105-java.time
Commit: 2283dc502fca56f9e912823a4f94a629188aa63f
Parents: c28b72d
Author: Sven Meier <sv...@apache.org>
Authored: Mon Sep 25 21:14:02 2017 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Mon Sep 25 21:18:27 2017 +0200
----------------------------------------------------------------------
.../mapper/AbstractBookmarkableMapper.java | 34 ++++++++-----
.../core/request/mapper/MountedMapperTest.java | 53 ++++++++++++++++++--
2 files changed, 72 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2283dc50/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
index a6bab53..9a39c10 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
@@ -622,46 +622,56 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
protected PageParameters extractPageParameters(Request request, Url url)
{
int[] matchedParameters = getMatchedSegmentSizes(url);
+
int total = 0;
for (int curMatchSize : matchedParameters)
+ {
total += curMatchSize;
+ }
PageParameters pageParameters = extractPageParameters(request, total, pageParametersEncoder);
if (pageParameters != null)
{
pageParameters.setLocale(resolveLocale());
}
- int skippedParameters = 0;
+ int segmentIndex = 0;
for (int pathSegmentIndex = 0; pathSegmentIndex < pathSegments.size(); pathSegmentIndex++)
{
- MountPathSegment curPathSegment = pathSegments.get(pathSegmentIndex);
- int matchSize = matchedParameters[pathSegmentIndex] - curPathSegment.getFixedPartSize();
- int optionalParameterMatch = matchSize - curPathSegment.getMinParameters();
- for (int matchSegment = 0; matchSegment < matchSize; matchSegment++)
+ MountPathSegment pathSegment = pathSegments.get(pathSegmentIndex);
+
+ int totalAdded = 0;
+ int requiredAdded = 0;
+ for (int segmentParameterIndex = 0; segmentParameterIndex < pathSegment.getMaxParameters() && totalAdded < matchedParameters[pathSegmentIndex]; segmentParameterIndex++)
{
if (pageParameters == null)
{
pageParameters = newPageParameters();
}
- int curSegmentIndex = matchSegment + curPathSegment.getSegmentIndex();
- String curSegment = mountSegments[curSegmentIndex];
+ String curSegment = mountSegments[pathSegment.getSegmentIndex() + segmentParameterIndex];
+
String placeholder = getPlaceholder(curSegment);
String optionalPlaceholder = getOptionalPlaceholder(curSegment);
// extract the parameter from URL
if (placeholder != null)
{
pageParameters.add(placeholder,
- url.getSegments().get(curSegmentIndex - skippedParameters), INamedParameters.Type.PATH);
+ url.getSegments().get(segmentIndex), INamedParameters.Type.PATH);
+ segmentIndex++;
+ totalAdded++;
+ requiredAdded++;
}
- else if (optionalPlaceholder != null && optionalParameterMatch > 0)
+ else if (optionalPlaceholder != null &&
+ matchedParameters[pathSegmentIndex] - segmentParameterIndex > pathSegment.getMinParameters() + pathSegment.getFixedPartSize() - requiredAdded)
{
pageParameters.add(optionalPlaceholder,
- url.getSegments().get(curSegmentIndex - skippedParameters), INamedParameters.Type.PATH);
- optionalParameterMatch--;
+ url.getSegments().get(segmentIndex), INamedParameters.Type.PATH);
+ segmentIndex++;
+ totalAdded++;
}
}
- skippedParameters += curPathSegment.getMaxParameters() - matchSize;
+
+ segmentIndex += pathSegment.getFixedPartSize();
}
return pageParameters;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2283dc50/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
index fcd8afc..5b809a7 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
@@ -739,7 +739,7 @@ public class MountedMapperTest extends AbstractMapperTest
IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
assertEquals(0, page.getPageParameters().getIndexedCount());
- assertTrue(page.getPageParameters().getNamedKeys().size() == 3);
+ assertEquals(3, page.getPageParameters().getNamedKeys().size());
assertEquals("p1", page.getPageParameters().get("param1").toString());
assertEquals("p2", page.getPageParameters().get("param2").toString());
assertEquals("p3", page.getPageParameters().get("param3").toString());
@@ -811,7 +811,7 @@ public class MountedMapperTest extends AbstractMapperTest
IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
assertEquals(1, page.getPageParameters().getIndexedCount());
- assertTrue(page.getPageParameters().getNamedKeys().size() == 2);
+ assertEquals(2, page.getPageParameters().getNamedKeys().size());
assertFalse("param1 should not be set",
page.getPageParameters().getNamedKeys().contains("param1"));
assertEquals("p2", page.getPageParameters().get("param2").toString());
@@ -859,7 +859,54 @@ public class MountedMapperTest extends AbstractMapperTest
assertEquals("some/path/p2/p3/i1/i2?a=b&b=c", url.toString());
}
- /* WICKET-5056 * */
+ /**
+ * WICKET-6461
+ */
+ @Test
+ public void optionalPlaceholdersBeforeRequiredPlaceholder() throws Exception
+ {
+ final MountedMapper mapper = new MountedMapper("/params/#{optional1}/#{optional2}/${required}", MockPage.class) {
+ @Override
+ protected IMapperContext getContext()
+ {
+ return context;
+ }
+
+ @Override
+ boolean getRecreateMountedPagesAfterExpiry()
+ {
+ return true;
+ }
+ };
+
+ IRequestHandler handler = mapper.mapRequest(getRequest(Url.parse("params/required")));
+ assertThat(handler, instanceOf(RenderPageRequestHandler.class));
+ IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
+ PageParameters p = page.getPageParameters();
+ assertEquals(1, p.getNamedKeys().size());
+ assertEquals("required", p.get("required").toString());
+
+ handler = mapper.mapRequest(getRequest(Url.parse("params/optional1/required")));
+ assertThat(handler, instanceOf(RenderPageRequestHandler.class));
+ page = ((RenderPageRequestHandler)handler).getPage();
+ p = page.getPageParameters();
+ assertEquals(2, p.getNamedKeys().size());
+ assertEquals("required", p.get("required").toString());
+ assertEquals("optional1", p.get("optional1").toString());
+
+ handler = mapper.mapRequest(getRequest(Url.parse("params/optional1/optional2/required")));
+ assertThat(handler, instanceOf(RenderPageRequestHandler.class));
+ page = ((RenderPageRequestHandler)handler).getPage();
+ p = page.getPageParameters();
+ assertEquals(3, p.getNamedKeys().size());
+ assertEquals("required", p.get("required").toString());
+ assertEquals("optional1", p.get("optional1").toString());
+ assertEquals("optional2", p.get("optional2").toString());
+ }
+
+ /**
+ * WICKET-5056
+ */
@Test
public void optionalParameterGetsLowerScore_ThanExactOne() throws Exception
{
[2/6] wicket git commit: Added wicket-http2-servlet4 module
Posted by so...@apache.org.
Added wicket-http2-servlet4 module
* fixed parent pom
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c28b72da
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c28b72da
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c28b72da
Branch: refs/heads/WICKET-6105-java.time
Commit: c28b72da6f6a4fef24b5b0210938b24c9c011627
Parents: b8359c8
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Sun Sep 24 13:20:37 2017 +0200
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Sun Sep 24 13:20:37 2017 +0200
----------------------------------------------------------------------
wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/c28b72da/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
index 442d24d..49127da 100644
--- a/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
+++ b/wicket-experimental/wicket-http2/wicket-http2-servlet4/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.wicket.experimental.wicket8</groupId>
<artifactId>wicket-http2</artifactId>
- <version>0.2-SNAPSHOT</version>
+ <version>0.3-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>wicket-http2-servlet4</artifactId>