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 2018/01/28 05:10:38 UTC
[01/14] wicket git commit: [WICKET-6518] Log4j is replaced with
logback
Repository: wicket
Updated Branches:
refs/heads/WICKET-6498_deferred_javascript_2 8b14b4144 -> 3e65110d3
[WICKET-6518] Log4j is replaced with logback
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/cfd6a55f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/cfd6a55f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/cfd6a55f
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: cfd6a55fc9d613d4412a004efcc8e06d6ac1d73d
Parents: c787470
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sat Jan 13 10:18:56 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sat Jan 13 10:18:56 2018 +0700
----------------------------------------------------------------------
.../META-INF/maven/archetype-metadata.xml | 7 +------
.../src/main/resources/archetype-resources/pom.xml | 17 ++++++-----------
.../src/main/resources/__log4j.properties__ | 16 ----------------
pom.xml | 2 +-
4 files changed, 8 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/cfd6a55f/archetypes/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
----------------------------------------------------------------------
diff --git a/archetypes/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
index 14dcce0..d31de29 100644
--- a/archetypes/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/archetypes/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -1,10 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="quickstart">
- <requiredProperties>
- <requiredProperty key="log4j.properties">
- <defaultValue>log4j2.xml</defaultValue>
- </requiredProperty>
- </requiredProperties>
<fileSets>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
@@ -28,7 +23,7 @@
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>src/main/resources</directory>
<includes>
- <include>__log4j.properties__</include>
+ <include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="false" encoding="UTF-8">
http://git-wip-us.apache.org/repos/asf/wicket/blob/cfd6a55f/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml b/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
index 395ab9c..a32fb9f 100644
--- a/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
@@ -44,7 +44,7 @@
<properties>
<wicket.version>@project.version@</wicket.version>
<jetty9.version>@jetty.version@</jetty9.version>
- <log4j.version>@log4j.version@</log4j.version>
+ <logback.version>@logback.version@</logback.version>
<junit.version>@junit.version@</junit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- allowed values: R7, 1.0, 1.5, 2.0 or none -->
@@ -65,16 +65,11 @@
</dependency>
-->
- <!-- LOGGING DEPENDENCIES - LOG4J -->
+ <!-- LOGGING DEPENDENCIES - LOGBACK -->
<dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j-impl</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core</artifactId>
- <version>${log4j.version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
</dependency>
<!-- JUNIT DEPENDENCY FOR TESTING -->
@@ -103,7 +98,7 @@
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>javax-websocket-server-impl</artifactId>
- <version>${jetty.version}</version>
+ <version>${jetty9.version}</version>
<scope>test</scope>
</dependency>
-->
http://git-wip-us.apache.org/repos/asf/wicket/blob/cfd6a55f/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/__log4j.properties__
----------------------------------------------------------------------
diff --git a/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/__log4j.properties__ b/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/__log4j.properties__
deleted file mode 100644
index 63e6030..0000000
--- a/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/__log4j.properties__
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" configDebug="true">
- <Appenders>
- <Console name="CONSOLE" target="SYSTEM_OUT">
- <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
- </Console>
- </Appenders>
- <Loggers>
- <logger name="org.apache.wicket" level="INFO" additivity="false">
- <AppenderRef ref="CONSOLE"/>
- </logger>
- <Root level="WARN">
- <AppenderRef ref="CONSOLE"/>
- </Root>
- </Loggers>
-</log4j:configuration>
http://git-wip-us.apache.org/repos/asf/wicket/blob/cfd6a55f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 94d04ca..218e036 100644
--- a/pom.xml
+++ b/pom.xml
@@ -134,7 +134,7 @@
<maven.surefire.version>2.20</maven.surefire.version>
<mockito.version>2.9.0</mockito.version>
<slf4j.version>1.7.25</slf4j.version>
- <log4j.version>2.9.0</log4j.version>
+ <logback.version>1.2.3</logback.version>
<hamcrest.version>2.0.0.0</hamcrest.version>
<objenesis.version>2.6</objenesis.version>
<aspectj.version>1.8.10</aspectj.version>
[03/14] wicket git commit: Logback is replaced with slf4j-simple
Posted by so...@apache.org.
Logback is replaced with slf4j-simple
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/da3b69f5
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/da3b69f5
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/da3b69f5
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: da3b69f55077e8945108990df14dc751e4504741
Parents: 2e545f6
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Tue Jan 16 10:30:33 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Tue Jan 16 10:30:33 2018 +0700
----------------------------------------------------------------------
.../main/resources/archetype-resources/pom.xml | 10 +++----
.../src/main/resources/logback.xml | 30 --------------------
2 files changed, 5 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/da3b69f5/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml b/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
index a32fb9f..0a14313 100644
--- a/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/quickstart/src/main/resources/archetype-resources/pom.xml
@@ -44,7 +44,7 @@
<properties>
<wicket.version>@project.version@</wicket.version>
<jetty9.version>@jetty.version@</jetty9.version>
- <logback.version>@logback.version@</logback.version>
+ <slf4j.version>@slf4j.version@</slf4j.version>
<junit.version>@junit.version@</junit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- allowed values: R7, 1.0, 1.5, 2.0 or none -->
@@ -65,11 +65,11 @@
</dependency>
-->
- <!-- LOGGING DEPENDENCIES - LOGBACK -->
+ <!-- LOGGING DEPENDENCIES - SLF4J-SIMPLE -->
<dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <version>${logback.version}</version>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>${slf4j.version}</version>
</dependency>
<!-- JUNIT DEPENDENCY FOR TESTING -->
http://git-wip-us.apache.org/repos/asf/wicket/blob/da3b69f5/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml
----------------------------------------------------------------------
diff --git a/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml b/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml
deleted file mode 100644
index f749c74..0000000
--- a/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?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.
-
--->
-<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%5p %d{MM-dd HH:mm:ss.SSS } %r %L %c{15} [%.15thread] - %m%n</pattern>
- </layout>
- </appender>
- <root level="WARN">
- <appender-ref ref="CONSOLE" />
- </root>
-</configuration>
[08/14] wicket git commit: WICKET-6517 new AjaxFileDropBehavior
Posted by so...@apache.org.
WICKET-6517 new AjaxFileDropBehavior
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/237147fe
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/237147fe
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/237147fe
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 237147fee94e7fb2c0e91216aee0e4a51b448c30
Parents: 44fb374
Author: Sven Meier <sv...@apache.org>
Authored: Wed Jan 17 09:23:27 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Jan 26 23:09:37 2018 +0100
----------------------------------------------------------------------
.../examples/ajax/builtin/FileUploadPage.java | 4 +-
.../ajax/markup/html/AjaxFileDropBehavior.java | 160 +++++++++++++++++++
.../markup/html/AjaxFileUploadBehavior.java | 156 ------------------
3 files changed, 162 insertions(+), 158 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/237147fe/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
index ca6dc70..7399301 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
@@ -21,7 +21,7 @@ import java.util.List;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.AjaxFileUploadBehavior;
+import org.apache.wicket.extensions.ajax.markup.html.AjaxFileDropBehavior;
import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -116,7 +116,7 @@ public class FileUploadPage extends BasePage
});
WebMarkupContainer drop = new WebMarkupContainer("drop");
- drop.add(new AjaxFileUploadBehavior() {
+ drop.add(new AjaxFileDropBehavior() {
protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files) {
// display uploaded info
http://git-wip-us.apache.org/repos/asf/wicket/blob/237147fe/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
new file mode 100644
index 0000000..9073cd3
--- /dev/null
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
@@ -0,0 +1,160 @@
+/*
+ * 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.extensions.ajax.markup.html;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileUploadException;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
+import org.apache.wicket.markup.html.form.upload.FileUpload;
+import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.lang.Bytes;
+
+/**
+ * Uploads files from a drop event.
+ *
+ * @author Andrew Kondratev
+ * @author svenmeier
+ */
+public class AjaxFileDropBehavior extends AjaxEventBehavior
+{
+
+ private static final ResourceReference JS = new PackageResourceReference(AjaxFileDropBehavior.class, "datatransfer.js");
+
+ /**
+ * Maximum size of all uploaded files in bytes in a request.
+ */
+ private Bytes maxSize;
+
+ /**
+ * Maximum size of file of upload in bytes (if there are more than one) in a request.
+ */
+ private Bytes fileMaxSize;
+
+ private String parameterName = "f";
+
+ public AjaxFileDropBehavior()
+ {
+ super("drop");
+ }
+
+ @Override
+ public void renderHead(Component component, IHeaderResponse response)
+ {
+ super.renderHead(component, response);
+
+ response.render(JavaScriptHeaderItem.forReference(JS));
+
+ // default must be prevented for dragover event, otherwise browser will consume the dataTransfer
+ response.render(OnDomReadyHeaderItem.forScript(String.format("jQuery('#%s').on('dragover', function(e) { e.preventDefault(); });", component.getMarkupId())));
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
+ {
+ super.updateAjaxAttributes(attributes);
+
+ attributes.setMultipart(true);
+ attributes.setMethod(Method.POST);
+ // default must be prevented, otherwise browser will consume the dataTransfer
+ attributes.setPreventDefault(true);
+
+ attributes.getDynamicExtraParameters().add(
+ String.format("return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');", parameterName)
+ );
+ }
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target)
+ {
+ try
+ {
+ ServletWebRequest request = (ServletWebRequest)getComponent().getRequest();
+ final MultipartServletWebRequest multipartWebRequest = request.newMultipartWebRequest(
+ getMaxSize(), getComponent().getPage().getId());
+ multipartWebRequest.setFileMaxSize(getFileMaxSize());
+ multipartWebRequest.parseFileParts();
+
+ // TODO: Can't this be detected from header?
+ getComponent().getRequestCycle().setRequest(multipartWebRequest);
+
+ ArrayList<FileUpload> fileUploads = new ArrayList<>();
+
+ // Get the item for the path
+ final List<FileItem> fileItems = multipartWebRequest.getFile(parameterName);
+
+ if (fileItems != null)
+ {
+ for (FileItem item : fileItems)
+ {
+ fileUploads.add(new FileUpload(item));
+ }
+ }
+
+ onFileUpload(target, fileUploads);
+ }
+ catch (final FileUploadException fux)
+ {
+ onError(fux);
+ }
+ }
+
+ public Bytes getMaxSize()
+ {
+ if (maxSize == null) {
+ maxSize = getComponent().getApplication().getApplicationSettings().getDefaultMaximumUploadSize();
+ }
+ return maxSize;
+ }
+
+ public void setMaxSize(Bytes maxSize)
+ {
+ Args.notNull(maxSize, "maxSize");
+ this.maxSize = maxSize;
+ }
+
+ public Bytes getFileMaxSize()
+ {
+ return fileMaxSize;
+ }
+
+ public void setFileMaxSize(Bytes fileMaxSize)
+ {
+ this.fileMaxSize = fileMaxSize;
+ }
+
+ protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files)
+ {
+ }
+
+ protected void onError(FileUploadException fux)
+ {
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/237147fe/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java
deleted file mode 100644
index 3801c62..0000000
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java
+++ /dev/null
@@ -1,156 +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.extensions.ajax.markup.html;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxEventBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
-import org.apache.wicket.markup.html.form.upload.FileUpload;
-import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
-import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
-import org.apache.wicket.request.resource.PackageResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.lang.Bytes;
-
-/**
- * Uploads files from a drop event.
- *
- * @author svenmeier
- */
-public class AjaxFileUploadBehavior extends AjaxEventBehavior
-{
-
- private static final ResourceReference JS = new PackageResourceReference(AjaxFileUploadBehavior.class, "datatransfer.js");
-
- /**
- * Maximum size of all uploaded files in bytes in a request.
- */
- private Bytes maxSize;
-
- /**
- * Maximum size of file of upload in bytes (if there are more than one) in a request.
- */
- private Bytes fileMaxSize;
-
- private String parameterName = "f";
-
- public AjaxFileUploadBehavior()
- {
- super("drop");
- }
-
- @Override
- public void renderHead(Component component, IHeaderResponse response)
- {
- super.renderHead(component, response);
-
- response.render(JavaScriptHeaderItem.forReference(JS));
-
- // default must be prevented for dragover event, otherwise browser will consume the dataTransfer
- response.render(OnDomReadyHeaderItem.forScript(String.format("jQuery('#%s').on('dragover', function(e) { e.preventDefault(); });", component.getMarkupId())));
- }
-
- @Override
- protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
- {
- super.updateAjaxAttributes(attributes);
-
- attributes.setMultipart(true);
- attributes.setMethod(Method.POST);
- // default must be prevented, otherwise browser will consume the dataTransfer
- attributes.setPreventDefault(true);
-
- attributes.getDynamicExtraParameters().add(
- String.format("return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');", parameterName)
- );
- }
-
- @Override
- protected void onEvent(AjaxRequestTarget target)
- {
- try
- {
- ServletWebRequest request = (ServletWebRequest)getComponent().getRequest();
- final MultipartServletWebRequest multipartWebRequest = request.newMultipartWebRequest(
- getMaxSize(), getComponent().getPage().getId());
- multipartWebRequest.setFileMaxSize(getFileMaxSize());
- multipartWebRequest.parseFileParts();
-
- // TODO: Can't this be detected from header?
- getComponent().getRequestCycle().setRequest(multipartWebRequest);
-
- ArrayList<FileUpload> fileUploads = new ArrayList<>();
-
- // Get the item for the path
- final List<FileItem> fileItems = multipartWebRequest.getFile(parameterName);
-
- if (fileItems != null)
- {
- for (FileItem item : fileItems)
- {
- fileUploads.add(new FileUpload(item));
- }
- }
-
- onFileUpload(target, fileUploads);
- }
- catch (final FileUploadException fux)
- {
- onError(fux);
- }
- }
-
- public Bytes getMaxSize()
- {
- return maxSize;
- }
-
- public void setMaxSize(Bytes maxSize)
- {
- Args.notNull(maxSize, "maxSize");
- this.maxSize = maxSize;
- }
-
- public Bytes getFileMaxSize()
- {
- return fileMaxSize;
- }
-
- public void setFileMaxSize(Bytes fileMaxSize)
- {
- this.fileMaxSize = fileMaxSize;
- }
-
- protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files)
- {
- }
-
- protected void onError(FileUploadException fux)
- {
- }
-}
\ No newline at end of file
[12/14] wicket git commit: WICKET-6503 reintroduced markRendering
Posted by so...@apache.org.
WICKET-6503 reintroduced markRendering
- so rendered page or part checks hierarchy changes while rendering
- stateless pages can be unmarked after beforeRender() in PageAndComponentProvider
- prevent multiple onBeforeRender() calls for auto components that are already added
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d21bfe32
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d21bfe32
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d21bfe32
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: d21bfe32525151a235afb3a6288ea11bcfa15329
Parents: 2e4496e
Author: Sven Meier <sv...@apache.org>
Authored: Sat Jan 27 22:02:46 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Sat Jan 27 22:47:43 2018 +0100
----------------------------------------------------------------------
.../main/java/org/apache/wicket/Component.java | 32 +++++++++
.../java/org/apache/wicket/MarkupContainer.java | 15 +++++
.../src/main/java/org/apache/wicket/Page.java | 2 +
.../handler/PageAndComponentProvider.java | 1 +
.../org/apache/wicket/MarkupContainerTest.java | 71 +++++++++++++-------
5 files changed, 97 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d21bfe32/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 fc32b09..c1ae823 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -2117,6 +2117,23 @@ public abstract class Component
}
/**
+ * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
+ *
+ * Sets the RENDERING flag and removes the PREPARED_FOR_RENDER flag on component and it's
+ * children.
+ *
+ * @param setRenderingFlag
+ * if this is false only the PREPARED_FOR_RENDER flag is removed from component, the
+ * RENDERING flag is not set.
+ *
+ * @see #internalPrepareForRender(boolean)
+ */
+ public final void markRendering(boolean setRenderingFlag)
+ {
+ internalMarkRendering(setRenderingFlag);
+ }
+
+ /**
* Called to indicate that the model content for this component has been changed
*/
public final void modelChanged()
@@ -2190,6 +2207,8 @@ public abstract class Component
page.startComponentRender(this);
+ markRendering(true);
+
render();
page.endComponentRender(this);
@@ -3790,6 +3809,7 @@ public abstract class Component
*/
protected void onBeforeRender()
{
+ setRequestFlag(RFLAG_PREPARED_FOR_RENDER, true);
onBeforeRenderChildren();
setRequestFlag(RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIED, true);
}
@@ -4132,6 +4152,18 @@ public abstract class Component
}
/**
+ * @param setRenderingFlag
+ * rendering flag
+ */
+ void internalMarkRendering(boolean setRenderingFlag)
+ {
+ // WICKET-5460 no longer prepared for render
+ setRequestFlag(RFLAG_PREPARED_FOR_RENDER, false);
+
+ setRequestFlag(RFLAG_RENDERING, setRenderingFlag);
+ }
+
+ /**
* @return True if this component or any of its parents is in auto-add mode
*/
public final boolean isAuto()
http://git-wip-us.apache.org/repos/asf/wicket/blob/d21bfe32/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 aad0aac..038585d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -1695,6 +1695,21 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
}
/**
+ *
+ * @see org.apache.wicket.Component#internalMarkRendering(boolean)
+ */
+ @Override
+ void internalMarkRendering(boolean setRenderingFlag)
+ {
+ super.internalMarkRendering(setRenderingFlag);
+
+ for (Component child : this)
+ {
+ child.internalMarkRendering(setRenderingFlag);
+ }
+ }
+
+ /**
* @return a copy of the children array.
*/
@SuppressWarnings("unchecked")
http://git-wip-us.apache.org/repos/asf/wicket/blob/d21bfe32/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 9b8dc7f..ca8a874 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -995,6 +995,8 @@ public abstract class Page extends MarkupContainer
delay.release();
}
+ markRendering(true);
+
render();
}
finally
http://git-wip-us.apache.org/repos/asf/wicket/blob/d21bfe32/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java
index de59ecc..79b8d0d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java
@@ -170,6 +170,7 @@ public class PageAndComponentProvider extends PageProvider implements IPageAndCo
Page p = (Page)page;
p.internalInitialize();
p.beforeRender();
+ p.markRendering(false);
component = page.get(componentPath);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d21bfe32/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
index 4ab69da..8be4fe8 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
@@ -25,7 +25,6 @@ import static org.hamcrest.CoreMatchers.sameInstance;
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import java.lang.reflect.Field;
-import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
@@ -153,6 +152,43 @@ public class MarkupContainerTest extends WicketTestCase
assertEquals(2, page.beforeRenderCalls);
}
+ @Test
+ public void hierarchyChangeDuringRender()
+ {
+ HierarchyChangePage page = new HierarchyChangePage();
+ try
+ {
+ tester.startPage(page);
+ fail();
+ }
+ catch (WicketRuntimeException expected)
+ {
+ assertEquals(
+ "Cannot modify component hierarchy after render phase has started (page version cant change then anymore)",
+ expected.getMessage());
+ }
+ }
+
+ private static class HierarchyChangePage extends WebPage
+ implements
+ IMarkupResourceStreamProvider
+ {
+
+ @Override
+ protected void onRender()
+ {
+ // change hierarchy during render
+ add(new Label("child"));
+ }
+
+ @Override
+ public IResourceStream getMarkupResourceStream(MarkupContainer container,
+ Class<?> containerClass)
+ {
+ return new StringResourceStream("<html><body></body></html>");
+ }
+ }
+
/**
* https://issues.apache.org/jira/browse/WICKET-4012
*/
@@ -1274,28 +1310,23 @@ public class MarkupContainerTest extends WicketTestCase
public void stream()
{
LoginPage loginPage = new LoginPage();
- Optional<Component> first = loginPage.stream()
- .filter(c -> c.getId().equals("form"))
+ Optional<Component> first = loginPage.stream().filter(c -> c.getId().equals("form"))
.findFirst();
assertThat(first.isPresent(), is(false));
loginPage.add(new Form<>("form"));
- Optional<Component> second = loginPage.stream()
- .filter(c -> c.getId().equals("form"))
+ Optional<Component> second = loginPage.stream().filter(c -> c.getId().equals("form"))
.findFirst();
assertThat(second.isPresent(), is(true));
loginPage.add(new WebMarkupContainer("wmc"));
- Optional<Form> form = loginPage.stream()
- .filter(Form.class::isInstance)
- .map(Form.class::cast)
- .findFirst();
+ Optional<Form> form = loginPage.stream().filter(Form.class::isInstance)
+ .map(Form.class::cast).findFirst();
assertThat(form.isPresent(), is(true));
Optional<WebMarkupContainer> wmc = loginPage.stream()
- .filter(WebMarkupContainer.class::isInstance)
- .map(WebMarkupContainer.class::cast)
+ .filter(WebMarkupContainer.class::isInstance).map(WebMarkupContainer.class::cast)
.findFirst();
assertThat(wmc.isPresent(), is(true));
}
@@ -1304,8 +1335,7 @@ public class MarkupContainerTest extends WicketTestCase
public void streamChildren()
{
LoginPage loginPage = new LoginPage();
- Optional<Component> first = loginPage.stream()
- .filter(c -> c.getId().equals("form"))
+ Optional<Component> first = loginPage.stream().filter(c -> c.getId().equals("form"))
.findFirst();
assertThat(first.isPresent(), is(false));
@@ -1314,20 +1344,13 @@ public class MarkupContainerTest extends WicketTestCase
form.add(new TextField<>("field"));
- assertThat(loginPage.streamChildren()
- .filter(c -> c.getId().equals("form"))
- .findFirst()
+ assertThat(loginPage.streamChildren().filter(c -> c.getId().equals("form")).findFirst()
.isPresent(), is(true));
- assertThat(loginPage.streamChildren()
- .filter(c -> c.getId().equals("field"))
- .findFirst()
+ assertThat(loginPage.streamChildren().filter(c -> c.getId().equals("field")).findFirst()
.isPresent(), is(true));
- assertThat(loginPage.streamChildren()
- .filter(TextField.class::isInstance)
- .filter(c -> c.getId().equals("field"))
- .findFirst()
- .isPresent(), is(true));
+ assertThat(loginPage.streamChildren().filter(TextField.class::isInstance)
+ .filter(c -> c.getId().equals("field")).findFirst().isPresent(), is(true));
}
}
[05/14] wicket git commit: WICKET-6517 pass ajax target to onError
Posted by so...@apache.org.
WICKET-6517 pass ajax target to onError
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3f5c2932
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3f5c2932
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3f5c2932
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 3f5c2932c47a6798b3dd361c98bb5756b623eaaf
Parents: 237147f
Author: Sven Meier <sv...@apache.org>
Authored: Thu Jan 18 07:46:51 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Jan 26 23:09:37 2018 +0100
----------------------------------------------------------------------
.../examples/ajax/builtin/FileUploadPage.java | 9 +++
.../ajax/markup/html/AjaxFileDropBehavior.java | 82 +++++++++++++++-----
2 files changed, 70 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/3f5c2932/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
index 7399301..f7a473c 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
@@ -18,6 +18,7 @@ package org.apache.wicket.examples.ajax.builtin;
import java.util.List;
+import org.apache.commons.fileupload.FileUploadException;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -134,6 +135,14 @@ public class FileUploadPage extends BasePage
target.add(feedback);
}
+
+ @Override
+ protected void onError(AjaxRequestTarget target, FileUploadException fux)
+ {
+ info(fux.getMessage());
+
+ target.add(feedback);
+ }
});
add(drop);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/3f5c2932/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
index 9073cd3..b8806d9 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.wicket.Component;
+import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
@@ -46,34 +47,38 @@ import org.apache.wicket.util.lang.Bytes;
public class AjaxFileDropBehavior extends AjaxEventBehavior
{
- private static final ResourceReference JS = new PackageResourceReference(AjaxFileDropBehavior.class, "datatransfer.js");
+ private static final ResourceReference JS = new PackageResourceReference(
+ AjaxFileDropBehavior.class, "datatransfer.js");
/**
- * Maximum size of all uploaded files in bytes in a request.
+ * Maximum size of all uploaded files in bytes in a request.
*/
private Bytes maxSize;
/**
- * Maximum size of file of upload in bytes (if there are more than one) in a request.
+ * Maximum size of file of upload in bytes (if there are more than one) in a request.
*/
private Bytes fileMaxSize;
private String parameterName = "f";
-
+
public AjaxFileDropBehavior()
{
super("drop");
}
-
+
@Override
public void renderHead(Component component, IHeaderResponse response)
{
super.renderHead(component, response);
-
+
response.render(JavaScriptHeaderItem.forReference(JS));
-
- // default must be prevented for dragover event, otherwise browser will consume the dataTransfer
- response.render(OnDomReadyHeaderItem.forScript(String.format("jQuery('#%s').on('dragover', function(e) { e.preventDefault(); });", component.getMarkupId())));
+
+ // default must be prevented for dragover event, otherwise browser will consume the
+ // dataTransfer
+ response.render(OnDomReadyHeaderItem.forScript(
+ String.format("jQuery('#%s').on('dragover', function(e) { e.preventDefault(); });",
+ component.getMarkupId())));
}
@Override
@@ -86,9 +91,10 @@ public class AjaxFileDropBehavior extends AjaxEventBehavior
// default must be prevented, otherwise browser will consume the dataTransfer
attributes.setPreventDefault(true);
- attributes.getDynamicExtraParameters().add(
- String.format("return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');", parameterName)
- );
+ attributes.getDynamicExtraParameters()
+ .add(String.format(
+ "return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');",
+ parameterName));
}
@Override
@@ -97,14 +103,14 @@ public class AjaxFileDropBehavior extends AjaxEventBehavior
try
{
ServletWebRequest request = (ServletWebRequest)getComponent().getRequest();
- final MultipartServletWebRequest multipartWebRequest = request.newMultipartWebRequest(
- getMaxSize(), getComponent().getPage().getId());
+ final MultipartServletWebRequest multipartWebRequest = request
+ .newMultipartWebRequest(getMaxSize(), getComponent().getPage().getId());
multipartWebRequest.setFileMaxSize(getFileMaxSize());
multipartWebRequest.parseFileParts();
// TODO: Can't this be detected from header?
getComponent().getRequestCycle().setRequest(multipartWebRequest);
-
+
ArrayList<FileUpload> fileUploads = new ArrayList<>();
// Get the item for the path
@@ -117,23 +123,30 @@ public class AjaxFileDropBehavior extends AjaxEventBehavior
fileUploads.add(new FileUpload(item));
}
}
-
+
onFileUpload(target, fileUploads);
}
catch (final FileUploadException fux)
{
- onError(fux);
+ onError(target, fux);
}
}
public Bytes getMaxSize()
{
- if (maxSize == null) {
- maxSize = getComponent().getApplication().getApplicationSettings().getDefaultMaximumUploadSize();
+ if (maxSize == null)
+ {
+ maxSize = getComponent().getApplication().getApplicationSettings()
+ .getDefaultMaximumUploadSize();
}
return maxSize;
}
+ /**
+ * Set the maximum upload size.
+ *
+ * @param maxSize maximum size, must not be null
+ */
public void setMaxSize(Bytes maxSize)
{
Args.notNull(maxSize, "maxSize");
@@ -145,16 +158,43 @@ public class AjaxFileDropBehavior extends AjaxEventBehavior
return fileMaxSize;
}
+ /**
+ * Set an optional maximum size per file.
+ *
+ * @param fileMaxSize maximum size for each uploaded file
+ */
public void setFileMaxSize(Bytes fileMaxSize)
{
this.fileMaxSize = fileMaxSize;
}
-
+
+ /**
+ * Hook method called after a file was uploaded.
+ * <p>
+ * Note: {@link #onError(AjaxRequestTarget, FileUploadException)} is called instead when
+ * uploading failed
+ *
+ * @param target
+ * the current request handler
+ * @param files
+ * uploaded files
+ */
protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files)
{
}
- protected void onError(FileUploadException fux)
+ /**
+ * Hook method called to handle any error during uploading of the file.
+ * <p>
+ * Default implementation re-throws the exception.
+ *
+ * @param target
+ * the current request handler
+ * @param e
+ * the error that occurred
+ */
+ protected void onError(AjaxRequestTarget target, FileUploadException fux)
{
+ throw new WicketRuntimeException(fux);
}
}
\ No newline at end of file
[02/14] wicket git commit: [WICKET-6518] missing logback.xml is added
Posted by so...@apache.org.
[WICKET-6518] missing logback.xml is added
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2e545f66
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2e545f66
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2e545f66
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 2e545f66c1db7448f1962ca519d0b685c8b8ded9
Parents: cfd6a55
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sat Jan 13 15:36:08 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sat Jan 13 15:36:08 2018 +0700
----------------------------------------------------------------------
.../src/main/resources/logback.xml | 30 ++++++++++++++++++++
1 file changed, 30 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2e545f66/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml
----------------------------------------------------------------------
diff --git a/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml b/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml
new file mode 100644
index 0000000..f749c74
--- /dev/null
+++ b/archetypes/quickstart/src/main/resources/archetype-resources/src/main/resources/logback.xml
@@ -0,0 +1,30 @@
+<?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.
+
+-->
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <pattern>%5p %d{MM-dd HH:mm:ss.SSS } %r %L %c{15} [%.15thread] - %m%n</pattern>
+ </layout>
+ </appender>
+ <root level="WARN">
+ <appender-ref ref="CONSOLE" />
+ </root>
+</configuration>
[11/14] wicket git commit: WICKET-6517 fixed grunt error
Posted by so...@apache.org.
WICKET-6517 fixed grunt error
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2e4496e2
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2e4496e2
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2e4496e2
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 2e4496e20b5b4f8edf28bed873ddcf61f07dd29a
Parents: 29d2775
Author: Sven Meier <sv...@apache.org>
Authored: Sat Jan 27 00:14:09 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Sat Jan 27 00:14:09 2018 +0100
----------------------------------------------------------------------
.../main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2e4496e2/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index b2ad3a0..075a9ca 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -658,7 +658,7 @@
}
}
- var wwwFormUrlEncoded = undefined; // default
+ var wwwFormUrlEncoded; // undefined is jQuery's default
if (attrs.mp) {
try {
var formData = new FormData();
[13/14] wicket git commit: Merge branch 'master' into
WICKET-6498_deferred_javascript_2
Posted by so...@apache.org.
Merge branch 'master' into WICKET-6498_deferred_javascript_2
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/17b1b733
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/17b1b733
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/17b1b733
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 17b1b733d106b92874e736ce14d1e2f8f1d0665a
Parents: 8b14b41 d21bfe3
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sun Jan 28 10:03:46 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sun Jan 28 10:03:46 2018 +0700
----------------------------------------------------------------------
.../META-INF/maven/archetype-metadata.xml | 7 +-
.../main/resources/archetype-resources/pom.xml | 17 +-
.../src/main/resources/__log4j.properties__ | 16 --
pom.xml | 2 +-
.../main/java/org/apache/wicket/Component.java | 32 +++
.../java/org/apache/wicket/MarkupContainer.java | 15 +
.../src/main/java/org/apache/wicket/Page.java | 2 +
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 283 +++----------------
.../handler/PageAndComponentProvider.java | 1 +
.../org/apache/wicket/MarkupContainerTest.java | 71 +++--
wicket-core/src/test/js/ajax.js | 28 +-
.../examples/ajax/builtin/FileUploadPage.html | 25 +-
.../examples/ajax/builtin/FileUploadPage.java | 35 +++
.../wicket/extensions/Initializer.properties | 2 +
.../extensions/ajax/AjaxFileDropBehavior.java | 211 ++++++++++++++
.../wicket/extensions/ajax/wicket-ajaxupload.js | 54 ++++
16 files changed, 475 insertions(+), 326 deletions(-)
----------------------------------------------------------------------
[09/14] wicket git commit: WICKET-6517 dep could be multipart too
Posted by so...@apache.org.
WICKET-6517 dep could be multipart too
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/44fb3748
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/44fb3748
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/44fb3748
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 44fb374876210fc0545a5c02a83232ebc1500a38
Parents: f642f4a
Author: Sven Meier <sv...@apache.org>
Authored: Wed Jan 17 00:32:29 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Jan 26 23:09:37 2018 +0100
----------------------------------------------------------------------
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 49 ++----
.../examples/ajax/builtin/FileUploadPage.html | 10 +-
.../examples/ajax/builtin/FileUploadPage.java | 26 ++++
.../markup/html/AjaxFileUploadBehavior.java | 156 +++++++++++++++++++
.../extensions/ajax/markup/html/datatransfer.js | 54 +++++++
5 files changed, 261 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/44fb3748/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index 801a47d..b2ad3a0 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -49,8 +49,7 @@
};
}
- var createIFrame,
- getAjaxBaseUrl,
+ var getAjaxBaseUrl,
isUndef,
replaceAll,
htmlToDomDocument,
@@ -66,19 +65,6 @@
};
/**
- * Creates an iframe that can be used to load data asynchronously or as a
- * target for Ajax form submit.
- *
- * @param iframeName {String} the value of the iframe's name attribute
- */
- createIFrame = function (iframeName) {
- // WICKET-6340 properly close tag for XHTML markup
- var $iframe = jQuery('<iframe name="'+iframeName+'" id="'+iframeName+
- '" src="about:blank" style="position: absolute; top: -9999px; left: -9999px;"></iframe>');
- return $iframe[0];
- };
-
- /**
* A safe getter for Wicket's Ajax base URL.
* If the value is not defined or is empty string then
* return '.' (current folder) as base URL.
@@ -553,7 +539,7 @@
extraParam = this._asParamArray(extraParam);
params = params.concat(extraParam);
}
- return jQuery.param(params);
+ return params;
},
/**
@@ -583,6 +569,8 @@
'Wicket-Ajax': 'true',
'Wicket-Ajax-BaseURL': getAjaxBaseUrl()
},
+
+ url = attrs.u,
// the request (extra) parameters
data = this._asParamArray(attrs.ep),
@@ -658,6 +646,17 @@
var el = Wicket.$(attrs.c);
data = data.concat(Wicket.Form.serializeElement(el, attrs.sr));
}
+
+ // collect the dynamic extra parameters
+ if (jQuery.isArray(attrs.dep)) {
+ var dynamicData = this._calculateDynamicParameters(attrs);
+ if (attrs.m.toLowerCase() === 'post') {
+ data = data.concat(dynamicData);
+ } else {
+ var separator = url.indexOf('?') > -1 ? '&' : '?';
+ url = url + separator + jQuery.param(dynamicData);
+ }
+ }
var wwwFormUrlEncoded = undefined; // default
if (attrs.mp) {
@@ -676,29 +675,13 @@
// execute the request
var jqXHR = jQuery.ajax({
- url: attrs.u,
+ url: url,
type: attrs.m,
context: self,
processData: wwwFormUrlEncoded,
contentType: wwwFormUrlEncoded,
beforeSend: function (jqXHR, settings) {
- // collect the dynamic extra parameters
- if (jQuery.isArray(attrs.dep)) {
- var queryString,
- separator;
-
- queryString = this._calculateDynamicParameters(attrs);
- if (settings.type.toLowerCase() === 'post') {
- separator = settings.data.length > 0 ? '&' : '';
- settings.data = settings.data + separator + queryString;
- jqXHR.setRequestHeader("Content-Type", settings.contentType);
- } else {
- separator = settings.url.indexOf('?') > -1 ? '&' : '?';
- settings.url = settings.url + separator + queryString;
- }
- }
-
self._executeHandlers(attrs.bsh, attrs, jqXHR, settings);
we.publish(topic.AJAX_CALL_BEFORE_SEND, attrs, jqXHR, settings);
http://git-wip-us.apache.org/repos/asf/wicket/blob/44fb3748/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
index 9351d4c..4642ae3 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
@@ -1,4 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
+<html>
+<body>
<wicket:extend xmlns:wicket="http://wicket.apache.org">
Demonstrates Wicket's ability to transparently handle multipart forms via AJAX.<br/><br/>The only difference between this example and other non-AJAX upload examples is the option to trigger the form submit via an AjaxButton, everything else is handled transparently by Wicket.<br/><br/>
@@ -13,4 +15,10 @@ Demonstrates Wicket's ability to transparently handle multipart forms via AJAX.<
<input type="submit" value="Regular Submit"/> <input wicket:id="ajaxSubmit" type="button" value="Ajax Submit"/>
</form>
-</wicket:extend>
\ No newline at end of file
+<div wicket:id="drop" style="border: 1px dotted black; width:200px; height:200px;">
+ Drop file here.
+</div>
+
+</wicket:extend>
+</body>
+</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/44fb3748/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
index e2eda2e..ca6dc70 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
@@ -16,10 +16,14 @@
*/
package org.apache.wicket.examples.ajax.builtin;
+import java.util.List;
+
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.extensions.ajax.markup.html.AjaxFileUploadBehavior;
import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
+import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
@@ -110,5 +114,27 @@ public class FileUploadPage extends BasePage
}
});
+
+ WebMarkupContainer drop = new WebMarkupContainer("drop");
+ drop.add(new AjaxFileUploadBehavior() {
+ protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files) {
+
+ // display uploaded info
+ if (files == null || files.isEmpty())
+ {
+ info("No file uploaded");
+ }
+ else
+ {
+ for (FileUpload file : files) {
+ info("File-Name: " + file.getClientFileName() + " File-Size: " +
+ Bytes.bytes(file.getSize()).toString());
+ }
+ }
+
+ target.add(feedback);
+ }
+ });
+ add(drop);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/44fb3748/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java
new file mode 100644
index 0000000..3801c62
--- /dev/null
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileUploadBehavior.java
@@ -0,0 +1,156 @@
+/*
+ * 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.extensions.ajax.markup.html;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileUploadException;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
+import org.apache.wicket.markup.html.form.upload.FileUpload;
+import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.lang.Bytes;
+
+/**
+ * Uploads files from a drop event.
+ *
+ * @author svenmeier
+ */
+public class AjaxFileUploadBehavior extends AjaxEventBehavior
+{
+
+ private static final ResourceReference JS = new PackageResourceReference(AjaxFileUploadBehavior.class, "datatransfer.js");
+
+ /**
+ * Maximum size of all uploaded files in bytes in a request.
+ */
+ private Bytes maxSize;
+
+ /**
+ * Maximum size of file of upload in bytes (if there are more than one) in a request.
+ */
+ private Bytes fileMaxSize;
+
+ private String parameterName = "f";
+
+ public AjaxFileUploadBehavior()
+ {
+ super("drop");
+ }
+
+ @Override
+ public void renderHead(Component component, IHeaderResponse response)
+ {
+ super.renderHead(component, response);
+
+ response.render(JavaScriptHeaderItem.forReference(JS));
+
+ // default must be prevented for dragover event, otherwise browser will consume the dataTransfer
+ response.render(OnDomReadyHeaderItem.forScript(String.format("jQuery('#%s').on('dragover', function(e) { e.preventDefault(); });", component.getMarkupId())));
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
+ {
+ super.updateAjaxAttributes(attributes);
+
+ attributes.setMultipart(true);
+ attributes.setMethod(Method.POST);
+ // default must be prevented, otherwise browser will consume the dataTransfer
+ attributes.setPreventDefault(true);
+
+ attributes.getDynamicExtraParameters().add(
+ String.format("return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');", parameterName)
+ );
+ }
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target)
+ {
+ try
+ {
+ ServletWebRequest request = (ServletWebRequest)getComponent().getRequest();
+ final MultipartServletWebRequest multipartWebRequest = request.newMultipartWebRequest(
+ getMaxSize(), getComponent().getPage().getId());
+ multipartWebRequest.setFileMaxSize(getFileMaxSize());
+ multipartWebRequest.parseFileParts();
+
+ // TODO: Can't this be detected from header?
+ getComponent().getRequestCycle().setRequest(multipartWebRequest);
+
+ ArrayList<FileUpload> fileUploads = new ArrayList<>();
+
+ // Get the item for the path
+ final List<FileItem> fileItems = multipartWebRequest.getFile(parameterName);
+
+ if (fileItems != null)
+ {
+ for (FileItem item : fileItems)
+ {
+ fileUploads.add(new FileUpload(item));
+ }
+ }
+
+ onFileUpload(target, fileUploads);
+ }
+ catch (final FileUploadException fux)
+ {
+ onError(fux);
+ }
+ }
+
+ public Bytes getMaxSize()
+ {
+ return maxSize;
+ }
+
+ public void setMaxSize(Bytes maxSize)
+ {
+ Args.notNull(maxSize, "maxSize");
+ this.maxSize = maxSize;
+ }
+
+ public Bytes getFileMaxSize()
+ {
+ return fileMaxSize;
+ }
+
+ public void setFileMaxSize(Bytes fileMaxSize)
+ {
+ this.fileMaxSize = fileMaxSize;
+ }
+
+ protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files)
+ {
+ }
+
+ protected void onError(FileUploadException fux)
+ {
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/44fb3748/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js
new file mode 100644
index 0000000..05ff68a
--- /dev/null
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+;(function (undefined) {
+ 'use strict';
+
+ if (typeof(Wicket) === "undefined") {
+ window.Wicket = {};
+ }
+
+ if (Wicket.DataTransfer) {
+ return;
+ }
+
+ Wicket.DataTransfer = {
+ getFilesAsParamArray : function(ev, name) {
+ var files = [];
+
+ function pushFile(file) {
+ files.push({'name' : name, 'value' : file});
+ };
+
+ var dataTransfer = ev.dataTransfer;
+ var i;
+ if (dataTransfer.items) {
+ for (i = 0; i < dataTransfer.items.length; i++) {
+ if (dataTransfer.items[i].kind == 'file') {
+ pushFile(dataTransfer.items[i].getAsFile());
+ }
+ }
+ } else {
+ for (i = 0; i < dataTransfer.files.length; i++) {
+ pushFile(dataTransfer.files[i]);
+ }
+ }
+
+ return files;
+ }
+ };
+})();
[04/14] wicket git commit: Merge branch 'master' into
WICKET-6518-quickstart-logback
Posted by so...@apache.org.
Merge branch 'master' into WICKET-6518-quickstart-logback
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1d20044b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1d20044b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1d20044b
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 1d20044b5e9a5d282217514bffd040c13794b808
Parents: da3b69f eb9f6c9
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Mon Jan 22 10:21:59 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Mon Jan 22 10:21:59 2018 +0700
----------------------------------------------------------------------
pom.xml | 4 +-
.../main/java/org/apache/wicket/Component.java | 332 ++++++-------------
.../java/org/apache/wicket/MarkupContainer.java | 22 --
.../src/main/java/org/apache/wicket/Page.java | 36 +-
.../ComponentRenderingRequestHandler.java | 9 +-
.../handler/PageAndComponentProvider.java | 2 +-
.../core/util/string/ComponentRenderer.java | 3 +-
.../apache/wicket/feedback/FeedbackDelay.java | 119 +++++++
.../org/apache/wicket/feedback/IFeedback.java | 5 +-
.../apache/wicket/page/PartialPageUpdate.java | 74 ++++-
.../wicket/page/XmlPartialPageUpdate.java | 50 +--
.../wicket/feedback/FeedbackRenderTest.java | 22 +-
.../apache/wicket/feedback/FeedbacksPage.html | 16 +-
.../apache/wicket/feedback/FeedbacksPage.java | 31 +-
.../markup/html/internal/EnclosurePage_1.java | 50 ++-
.../markup/html/internal/EnclosureTest.java | 4 +
wicket-eclipse-settings/pom.xml | 2 +-
.../componentLifecycle_1.adoc | 11 +-
.../componentLifecycle_2.adoc | 9 +-
.../componentLifecycle_3.adoc | 6 +-
.../componentLifecycle_4.adoc | 23 +-
.../componentLifecycle_5.adoc | 6 +-
.../componentLifecycle_6.adoc | 3 +-
.../componentLifecycle_7.adoc | 5 +
.../main/asciidoc/img/component-lifecycle.png | Bin 10587 -> 34960 bytes
wicket-user-guide/src/main/asciidoc/single.adoc | 8 +-
26 files changed, 474 insertions(+), 378 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/1d20044b/pom.xml
----------------------------------------------------------------------
[10/14] wicket git commit: WICKET-6517 moved behavior out of markup
package
Posted by so...@apache.org.
WICKET-6517 moved behavior out of markup package
This closes #256
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/29d2775c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/29d2775c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/29d2775c
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 29d2775c05e8084ff3a01c2f2da27efcaa6d4b03
Parents: f1dd096
Author: Sven Meier <sv...@apache.org>
Authored: Fri Jan 19 09:22:35 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Jan 26 23:51:35 2018 +0100
----------------------------------------------------------------------
.../examples/ajax/builtin/FileUploadPage.html | 2 +-
.../examples/ajax/builtin/FileUploadPage.java | 2 +-
.../extensions/ajax/AjaxFileDropBehavior.java | 211 +++++++++++++++++++
.../ajax/markup/html/AjaxFileDropBehavior.java | 211 -------------------
.../extensions/ajax/markup/html/datatransfer.js | 54 -----
.../wicket/extensions/ajax/wicket-ajaxupload.js | 54 +++++
6 files changed, 267 insertions(+), 267 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/29d2775c/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
index 2ed083d..18d2bfb 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<html>
+<html xmlns:wicket="http://wicket.apache.org">
<head>
<wicket:head>
<style>
http://git-wip-us.apache.org/repos/asf/wicket/blob/29d2775c/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
index f7a473c..598efee 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
@@ -22,7 +22,7 @@ import org.apache.commons.fileupload.FileUploadException;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.AjaxFileDropBehavior;
+import org.apache.wicket.extensions.ajax.AjaxFileDropBehavior;
import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
http://git-wip-us.apache.org/repos/asf/wicket/blob/29d2775c/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java
new file mode 100644
index 0000000..0501610
--- /dev/null
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java
@@ -0,0 +1,211 @@
+/*
+ * 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.extensions.ajax;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileUploadException;
+import org.apache.wicket.Component;
+import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
+import org.apache.wicket.core.util.string.CssUtils;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.html.form.upload.FileUpload;
+import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.lang.Bytes;
+
+/**
+ * Uploads files from a drop event.
+ *
+ * @author Andrew Kondratev
+ * @author svenmeier
+ */
+public class AjaxFileDropBehavior extends AjaxEventBehavior
+{
+
+ public static final String DRAG_OVER_CLASS_KEY = CssUtils.key(AjaxFileDropBehavior.class, "dragover");
+
+ private static final ResourceReference JS = new PackageResourceReference(
+ AjaxFileDropBehavior.class, "wicket-ajaxupload.js");
+
+ /**
+ * Maximum size of all uploaded files in bytes in a request.
+ */
+ private Bytes maxSize;
+
+ /**
+ * Maximum size of file of upload in bytes (if there are more than one) in a request.
+ */
+ private Bytes fileMaxSize;
+
+ private String parameterName = "f";
+
+ /**
+ * Listen for 'dragover' and 'drop' events and prevent them, only 'drop' will initiate
+ * an Ajax request.
+ */
+ public AjaxFileDropBehavior()
+ {
+ super("dragenter dragover dragleave drop");
+ }
+
+ @Override
+ public void renderHead(Component component, IHeaderResponse response)
+ {
+ super.renderHead(component, response);
+
+ response.render(JavaScriptHeaderItem.forReference(JS));
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
+ {
+ super.updateAjaxAttributes(attributes);
+
+ attributes.setMultipart(true);
+ attributes.setMethod(Method.POST);
+ // default must be prevented, otherwise browser will consume the dataTransfer
+ attributes.setPreventDefault(true);
+
+ attributes.getAjaxCallListeners().add(new AjaxCallListener() {
+ @Override
+ public CharSequence getPrecondition(Component component)
+ {
+ String css = getComponent().getString(DRAG_OVER_CLASS_KEY);
+
+ return String.format("jQuery('#' + attrs.c).toggleClass('%s', attrs.event.type === 'dragover'); return (attrs.event.type === 'drop');", css);
+ }
+ });
+
+ attributes.getDynamicExtraParameters()
+ .add(String.format(
+ "return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');",
+ parameterName));
+ }
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target)
+ {
+ try
+ {
+ ServletWebRequest request = (ServletWebRequest)getComponent().getRequest();
+ final MultipartServletWebRequest multipartWebRequest = request
+ .newMultipartWebRequest(getMaxSize(), getComponent().getPage().getId());
+ multipartWebRequest.setFileMaxSize(getFileMaxSize());
+ multipartWebRequest.parseFileParts();
+
+ // TODO: Can't this be detected from header?
+ getComponent().getRequestCycle().setRequest(multipartWebRequest);
+
+ ArrayList<FileUpload> fileUploads = new ArrayList<>();
+
+ // Get the item for the path
+ final List<FileItem> fileItems = multipartWebRequest.getFile(parameterName);
+
+ if (fileItems != null)
+ {
+ for (FileItem item : fileItems)
+ {
+ fileUploads.add(new FileUpload(item));
+ }
+ }
+
+ onFileUpload(target, fileUploads);
+ }
+ catch (final FileUploadException fux)
+ {
+ onError(target, fux);
+ }
+ }
+
+ public Bytes getMaxSize()
+ {
+ if (maxSize == null)
+ {
+ maxSize = getComponent().getApplication().getApplicationSettings()
+ .getDefaultMaximumUploadSize();
+ }
+ return maxSize;
+ }
+
+ /**
+ * Set the maximum upload size.
+ *
+ * @param maxSize maximum size, must not be null
+ */
+ public void setMaxSize(Bytes maxSize)
+ {
+ Args.notNull(maxSize, "maxSize");
+ this.maxSize = maxSize;
+ }
+
+ public Bytes getFileMaxSize()
+ {
+ return fileMaxSize;
+ }
+
+ /**
+ * Set an optional maximum size per file.
+ *
+ * @param fileMaxSize maximum size for each uploaded file
+ */
+ public void setFileMaxSize(Bytes fileMaxSize)
+ {
+ this.fileMaxSize = fileMaxSize;
+ }
+
+ /**
+ * Hook method called after a file was uploaded.
+ * <p>
+ * Note: {@link #onError(AjaxRequestTarget, FileUploadException)} is called instead when
+ * uploading failed
+ *
+ * @param target
+ * the current request handler
+ * @param files
+ * uploaded files
+ */
+ protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files)
+ {
+ }
+
+ /**
+ * Hook method called to handle any error during uploading of the file.
+ * <p>
+ * Default implementation re-throws the exception.
+ *
+ * @param target
+ * the current request handler
+ * @param e
+ * the error that occurred
+ */
+ protected void onError(AjaxRequestTarget target, FileUploadException fux)
+ {
+ throw new WicketRuntimeException(fux);
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/29d2775c/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
deleted file mode 100644
index 817c2f4..0000000
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
+++ /dev/null
@@ -1,211 +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.extensions.ajax.markup.html;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.wicket.Component;
-import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.ajax.AjaxEventBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
-import org.apache.wicket.core.util.string.CssUtils;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.html.form.upload.FileUpload;
-import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
-import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
-import org.apache.wicket.request.resource.PackageResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.lang.Bytes;
-
-/**
- * Uploads files from a drop event.
- *
- * @author Andrew Kondratev
- * @author svenmeier
- */
-public class AjaxFileDropBehavior extends AjaxEventBehavior
-{
-
- public static final String DRAG_OVER_CLASS_KEY = CssUtils.key(AjaxFileDropBehavior.class, "dragover");
-
- private static final ResourceReference JS = new PackageResourceReference(
- AjaxFileDropBehavior.class, "datatransfer.js");
-
- /**
- * Maximum size of all uploaded files in bytes in a request.
- */
- private Bytes maxSize;
-
- /**
- * Maximum size of file of upload in bytes (if there are more than one) in a request.
- */
- private Bytes fileMaxSize;
-
- private String parameterName = "f";
-
- /**
- * Listen for 'dragover' and 'drop' events and prevent them, only 'drop' will initiate
- * an Ajax request.
- */
- public AjaxFileDropBehavior()
- {
- super("dragenter dragover dragleave drop");
- }
-
- @Override
- public void renderHead(Component component, IHeaderResponse response)
- {
- super.renderHead(component, response);
-
- response.render(JavaScriptHeaderItem.forReference(JS));
- }
-
- @Override
- protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
- {
- super.updateAjaxAttributes(attributes);
-
- attributes.setMultipart(true);
- attributes.setMethod(Method.POST);
- // default must be prevented, otherwise browser will consume the dataTransfer
- attributes.setPreventDefault(true);
-
- attributes.getAjaxCallListeners().add(new AjaxCallListener() {
- @Override
- public CharSequence getPrecondition(Component component)
- {
- String css = getComponent().getString(DRAG_OVER_CLASS_KEY);
-
- return String.format("jQuery('#' + attrs.c).toggleClass('%s', attrs.event.type === 'dragover'); return (attrs.event.type === 'drop');", css);
- }
- });
-
- attributes.getDynamicExtraParameters()
- .add(String.format(
- "return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');",
- parameterName));
- }
-
- @Override
- protected void onEvent(AjaxRequestTarget target)
- {
- try
- {
- ServletWebRequest request = (ServletWebRequest)getComponent().getRequest();
- final MultipartServletWebRequest multipartWebRequest = request
- .newMultipartWebRequest(getMaxSize(), getComponent().getPage().getId());
- multipartWebRequest.setFileMaxSize(getFileMaxSize());
- multipartWebRequest.parseFileParts();
-
- // TODO: Can't this be detected from header?
- getComponent().getRequestCycle().setRequest(multipartWebRequest);
-
- ArrayList<FileUpload> fileUploads = new ArrayList<>();
-
- // Get the item for the path
- final List<FileItem> fileItems = multipartWebRequest.getFile(parameterName);
-
- if (fileItems != null)
- {
- for (FileItem item : fileItems)
- {
- fileUploads.add(new FileUpload(item));
- }
- }
-
- onFileUpload(target, fileUploads);
- }
- catch (final FileUploadException fux)
- {
- onError(target, fux);
- }
- }
-
- public Bytes getMaxSize()
- {
- if (maxSize == null)
- {
- maxSize = getComponent().getApplication().getApplicationSettings()
- .getDefaultMaximumUploadSize();
- }
- return maxSize;
- }
-
- /**
- * Set the maximum upload size.
- *
- * @param maxSize maximum size, must not be null
- */
- public void setMaxSize(Bytes maxSize)
- {
- Args.notNull(maxSize, "maxSize");
- this.maxSize = maxSize;
- }
-
- public Bytes getFileMaxSize()
- {
- return fileMaxSize;
- }
-
- /**
- * Set an optional maximum size per file.
- *
- * @param fileMaxSize maximum size for each uploaded file
- */
- public void setFileMaxSize(Bytes fileMaxSize)
- {
- this.fileMaxSize = fileMaxSize;
- }
-
- /**
- * Hook method called after a file was uploaded.
- * <p>
- * Note: {@link #onError(AjaxRequestTarget, FileUploadException)} is called instead when
- * uploading failed
- *
- * @param target
- * the current request handler
- * @param files
- * uploaded files
- */
- protected void onFileUpload(AjaxRequestTarget target, List<FileUpload> files)
- {
- }
-
- /**
- * Hook method called to handle any error during uploading of the file.
- * <p>
- * Default implementation re-throws the exception.
- *
- * @param target
- * the current request handler
- * @param e
- * the error that occurred
- */
- protected void onError(AjaxRequestTarget target, FileUploadException fux)
- {
- throw new WicketRuntimeException(fux);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/29d2775c/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js
deleted file mode 100644
index 05ff68a..0000000
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/datatransfer.js
+++ /dev/null
@@ -1,54 +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.
- */
-
-;(function (undefined) {
- 'use strict';
-
- if (typeof(Wicket) === "undefined") {
- window.Wicket = {};
- }
-
- if (Wicket.DataTransfer) {
- return;
- }
-
- Wicket.DataTransfer = {
- getFilesAsParamArray : function(ev, name) {
- var files = [];
-
- function pushFile(file) {
- files.push({'name' : name, 'value' : file});
- };
-
- var dataTransfer = ev.dataTransfer;
- var i;
- if (dataTransfer.items) {
- for (i = 0; i < dataTransfer.items.length; i++) {
- if (dataTransfer.items[i].kind == 'file') {
- pushFile(dataTransfer.items[i].getAsFile());
- }
- }
- } else {
- for (i = 0; i < dataTransfer.files.length; i++) {
- pushFile(dataTransfer.files[i]);
- }
- }
-
- return files;
- }
- };
-})();
http://git-wip-us.apache.org/repos/asf/wicket/blob/29d2775c/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxupload.js
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxupload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxupload.js
new file mode 100644
index 0000000..05ff68a
--- /dev/null
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxupload.js
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+;(function (undefined) {
+ 'use strict';
+
+ if (typeof(Wicket) === "undefined") {
+ window.Wicket = {};
+ }
+
+ if (Wicket.DataTransfer) {
+ return;
+ }
+
+ Wicket.DataTransfer = {
+ getFilesAsParamArray : function(ev, name) {
+ var files = [];
+
+ function pushFile(file) {
+ files.push({'name' : name, 'value' : file});
+ };
+
+ var dataTransfer = ev.dataTransfer;
+ var i;
+ if (dataTransfer.items) {
+ for (i = 0; i < dataTransfer.items.length; i++) {
+ if (dataTransfer.items[i].kind == 'file') {
+ pushFile(dataTransfer.items[i].getAsFile());
+ }
+ }
+ } else {
+ for (i = 0; i < dataTransfer.files.length; i++) {
+ pushFile(dataTransfer.files[i]);
+ }
+ }
+
+ return files;
+ }
+ };
+})();
[07/14] wicket git commit: WICKET-6517 added some CSS styling
Posted by so...@apache.org.
WICKET-6517 added some CSS styling
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f1dd096c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f1dd096c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f1dd096c
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: f1dd096c772feb9f878f783c5764a37403e82e5b
Parents: 3f5c293
Author: Sven Meier <sv...@apache.org>
Authored: Thu Jan 18 22:43:21 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Jan 26 23:09:37 2018 +0100
----------------------------------------------------------------------
.../examples/ajax/builtin/FileUploadPage.html | 17 +++++++++++-
.../wicket/extensions/Initializer.properties | 2 ++
.../ajax/markup/html/AjaxFileDropBehavior.java | 27 ++++++++++++++------
3 files changed, 37 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/f1dd096c/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
index 4642ae3..2ed083d 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.html
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<html>
+<head>
+ <wicket:head>
+ <style>
+ .drop-zone {
+ border: 1px dotted #FF9925;
+ width:200px;
+ height:200px;
+ }
+ .drop-zone.drag-over {
+ background: #FF9925;
+ color: #ffffff;
+ }
+ </style>
+ </wicket:head>
+</head>
<body>
<wicket:extend xmlns:wicket="http://wicket.apache.org">
@@ -15,7 +30,7 @@ Demonstrates Wicket's ability to transparently handle multipart forms via AJAX.<
<input type="submit" value="Regular Submit"/> <input wicket:id="ajaxSubmit" type="button" value="Ajax Submit"/>
</form>
-<div wicket:id="drop" style="border: 1px dotted black; width:200px; height:200px;">
+<div wicket:id="drop" class="drop-zone">
Drop file here.
</div>
http://git-wip-us.apache.org/repos/asf/wicket/blob/f1dd096c/wicket-extensions/src/main/java/org/apache/wicket/extensions/Initializer.properties
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/Initializer.properties b/wicket-extensions/src/main/java/org/apache/wicket/extensions/Initializer.properties
index 98f7925..6b43d43 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/Initializer.properties
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/Initializer.properties
@@ -45,3 +45,5 @@ AbstractDateTimeField.CSS.time=datetime-time
TimeField.hoursSeparator=\u00a0:\u00a0
TimeField.CSS.hours=time-hours
TimeField.CSS.minutes=time-minutes
+
+AjaxFileDropBehavior.CSS.dragover=drag-over
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/f1dd096c/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
index b8806d9..817c2f4 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxFileDropBehavior.java
@@ -25,11 +25,12 @@ import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
+import org.apache.wicket.core.util.string.CssUtils;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
@@ -47,6 +48,8 @@ import org.apache.wicket.util.lang.Bytes;
public class AjaxFileDropBehavior extends AjaxEventBehavior
{
+ public static final String DRAG_OVER_CLASS_KEY = CssUtils.key(AjaxFileDropBehavior.class, "dragover");
+
private static final ResourceReference JS = new PackageResourceReference(
AjaxFileDropBehavior.class, "datatransfer.js");
@@ -62,9 +65,13 @@ public class AjaxFileDropBehavior extends AjaxEventBehavior
private String parameterName = "f";
+ /**
+ * Listen for 'dragover' and 'drop' events and prevent them, only 'drop' will initiate
+ * an Ajax request.
+ */
public AjaxFileDropBehavior()
{
- super("drop");
+ super("dragenter dragover dragleave drop");
}
@Override
@@ -73,12 +80,6 @@ public class AjaxFileDropBehavior extends AjaxEventBehavior
super.renderHead(component, response);
response.render(JavaScriptHeaderItem.forReference(JS));
-
- // default must be prevented for dragover event, otherwise browser will consume the
- // dataTransfer
- response.render(OnDomReadyHeaderItem.forScript(
- String.format("jQuery('#%s').on('dragover', function(e) { e.preventDefault(); });",
- component.getMarkupId())));
}
@Override
@@ -91,6 +92,16 @@ public class AjaxFileDropBehavior extends AjaxEventBehavior
// default must be prevented, otherwise browser will consume the dataTransfer
attributes.setPreventDefault(true);
+ attributes.getAjaxCallListeners().add(new AjaxCallListener() {
+ @Override
+ public CharSequence getPrecondition(Component component)
+ {
+ String css = getComponent().getString(DRAG_OVER_CLASS_KEY);
+
+ return String.format("jQuery('#' + attrs.c).toggleClass('%s', attrs.event.type === 'dragover'); return (attrs.event.type === 'drop');", css);
+ }
+ });
+
attributes.getDynamicExtraParameters()
.add(String.format(
"return Wicket.DataTransfer.getFilesAsParamArray(attrs.event.originalEvent, '%s');",
[06/14] wicket git commit: WICKET-6517 use FormData,
removed submitMultipartForm
Posted by so...@apache.org.
WICKET-6517 use FormData, removed submitMultipartForm
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f642f4ad
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f642f4ad
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f642f4ad
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: f642f4ad4266319731b200e517eadf53fef5a56b
Parents: 1d20044
Author: Sven Meier <sv...@apache.org>
Authored: Fri Jan 12 12:45:55 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Jan 26 23:09:37 2018 +0100
----------------------------------------------------------------------
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 234 +++----------------
wicket-core/src/test/js/ajax.js | 28 +--
2 files changed, 28 insertions(+), 234 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/f642f4ad/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index d4f3100..801a47d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -643,11 +643,6 @@
we.publish(topic.AJAX_CALL_PRECONDITION, attrs);
- if (attrs.mp) { // multipart form. jQuery.ajax() doesn't help here ...
- var ret = self.submitMultipartForm(context);
- return ret;
- }
-
if (attrs.f) {
// serialize the form with id == attrs.f
var form = Wicket.$(attrs.f);
@@ -658,23 +653,36 @@
var scName = attrs.sc;
data = data.concat({name: scName, value: 1});
}
-
} else if (attrs.c && !jQuery.isWindow(attrs.c)) {
// serialize just the form component with id == attrs.c
var el = Wicket.$(attrs.c);
data = data.concat(Wicket.Form.serializeElement(el, attrs.sr));
}
- // convert to URL encoded string
- data = jQuery.param(data);
+ var wwwFormUrlEncoded = undefined; // default
+ if (attrs.mp) {
+ try {
+ var formData = new FormData();
+ for (var i = 0; i < data.length; i++) {
+ formData.append(data[i].name, data[i].value);
+ }
+
+ data = formData;
+ wwwFormUrlEncoded = false;
+ } catch (exception) {
+ Wicket.Log.error("Ajax multipat not supported:" + exception);
+ }
+ }
// execute the request
var jqXHR = jQuery.ajax({
url: attrs.u,
type: attrs.m,
context: self,
+ processData: wwwFormUrlEncoded,
+ contentType: wwwFormUrlEncoded,
+
beforeSend: function (jqXHR, settings) {
-
// collect the dynamic extra parameters
if (jQuery.isArray(attrs.dep)) {
var queryString,
@@ -831,203 +839,6 @@
}
},
- /**
- * This method serializes a form and sends it as POST body. If the form contains multipart content
- * this function will post the form using an iframe instead of the regular ajax call
- * and bridge the output - transparently making this work as if it was an ajax call.
- *
- * @param {Object} context - the context for the ajax call (request attributes + steps)
- */
- submitMultipartForm: function (context) {
-
- var attrs = context.attrs;
-
- var form = Wicket.$(attrs.f);
- if (!form) {
- Wicket.Log.error("Wicket.Ajax.Call.submitForm: Trying to submit form with id '" + attrs.f + "' that is not in document.");
- return;
- }
-
- // find root form
- if (form.tagName.toLowerCase() !== "form") {
- do {
- form = form.parentNode;
- } while(form.tagName.toLowerCase() !== "form" && form !== document.body);
- }
-
- if (form.tagName.toLowerCase() !== "form") {
- Wicket.Log.error("Cannot submit form with id " + attrs.f + " because there is no form element in the hierarchy.");
- return false;
- }
-
- var submittingAttribute = 'data-wicket-submitting';
-
- if (form.onsubmit && !form.getAttribute(submittingAttribute)) {
- form.setAttribute(submittingAttribute, submittingAttribute);
- var retValue = true;
- try {
- retValue = form.onsubmit();
- } finally {
- form.removeAttribute(submittingAttribute);
- }
- if (!retValue) {
- return;
- }
- }
-
- var originalFormAction = form.action;
- var originalFormTarget = form.target;
- var originalFormMethod = form.method;
- var originalFormEnctype = form.enctype;
- var originalFormEncoding = form.encoding;
-
- var iframeName = "wicket-submit-" + ("" + Math.random()).substr(2);
-
- var iframe = createIFrame(iframeName);
-
- document.body.appendChild(iframe);
-
- // reconfigure the form
- form.target = iframe.name;
- var separator = (attrs.u.indexOf("?")>-1 ? "&" : "?");
- form.action = attrs.u + separator + "wicket-ajax=true&wicket-ajax-baseurl=" + Wicket.Form.encode(getAjaxBaseUrl());
-
- // add the static extra parameters
- if (attrs.ep) {
- var extraParametersArray = this._asParamArray(attrs.ep);
- if (extraParametersArray.length > 0) {
- var extraParametersQueryString = jQuery.param(extraParametersArray);
- form.action = form.action + '&' + extraParametersQueryString;
- }
- }
-
- // add the dynamic extra parameters
- if (jQuery.isArray(attrs.dep)) {
- var dynamicExtraParameters = this._calculateDynamicParameters(attrs);
- if (dynamicExtraParameters) {
- form.action = form.action + '&' + dynamicExtraParameters;
- }
- }
- form.method = 'post';
- form.enctype = "multipart/form-data";
- form.encoding = "multipart/form-data";
-
- // create submitting button element
- if (attrs.sc) {
- var $btn = jQuery("<input type='hidden' name='" + attrs.sc + "' id='" + iframe.id + "-btn' value='1'/>");
- form.appendChild($btn[0]);
- }
-
- var we = Wicket.Event;
- var topic = we.Topic;
-
- this._executeHandlers(attrs.bsh, attrs, null, null);
- we.publish(topic.AJAX_CALL_BEFORE_SEND, attrs, null, null);
-
- if (attrs.i) {
- // show the indicator
- Wicket.DOM.showIncrementally(attrs.i);
- }
-
- //submit the form into the iframe, response will be handled by the onload callback
- form.submit();
-
- this._executeHandlers(attrs.ah, attrs);
- we.publish(topic.AJAX_CALL_AFTER, attrs);
-
- // a step to execute in both successful and erroneous completion
- context.endStep = jQuery.proxy(function(notify) {
- // remove the iframe and button elements
- setTimeout(function() {
- jQuery('#'+iframe.id + '-btn').remove();
- jQuery(iframe).remove();
- }, 0);
-
- var attrs = context.attrs;
- if (attrs.i && context.isRedirecting !== true) {
- // hide the indicator
- Wicket.DOM.hideIncrementally(attrs.i);
- }
-
- this._executeHandlers(attrs.coh, attrs, null, null);
- Wicket.Event.publish(Wicket.Event.Topic.AJAX_CALL_COMPLETE, attrs, null, null);
-
- this.done(attrs);
- return FunctionsExecuter.DONE;
- }, this);
-
- // an error handler that is used when the connection to the server fails for any reason
- if (attrs.rt) {
- context.errorHandle = setTimeout(jQuery.proxy(function () {
- this.failure(context, null, "No XML response in the IFrame document", "Failure");
-
- context.steps.push(context.endStep);
- var executer = new FunctionsExecuter(context.steps);
- executer.start();
- }, this), attrs.rt);
- } else {
- Wicket.Log.info("Submitting a multipart form without a timeout. " +
- "Use AjaxRequestAttributes.setRequestTimeout(duration) if need to handle connection timeouts.");
- }
-
- // install handler to deal with the ajax response
- // ... we add the onload event after form submit because chrome fires it prematurely
- we.add(iframe, "load.handleMultipartComplete", jQuery.proxy(this.handleMultipartComplete, this), context);
-
-
- // handled, restore state and return true
- form.action = originalFormAction;
- form.target = originalFormTarget;
- form.method = originalFormMethod;
- form.enctype = originalFormEnctype;
- form.encoding = originalFormEncoding;
-
- return true;
- },
-
- /**
- * Completes the multipart ajax handling started via handleMultipart()
- * @param {jQuery.Event} event
- */
- handleMultipartComplete: function (event) {
-
- var context = event.data,
- iframe = event.target,
- envelope;
-
- if (!isUndef(context.errorHandle)) {
- clearTimeout(context.errorHandle);
- }
-
- // stop the event
- event.stopPropagation();
-
- // remove the event
- jQuery(iframe).off("load.handleMultipartComplete");
-
- try {
- envelope = iframe.contentWindow.document;
- } catch (e) {
- Wicket.Log.error("Cannot read Ajax response for multipart form submit: " + e);
- }
-
- if (isUndef(envelope)) {
- this.failure(context, null, "No XML response in the IFrame document", "Failure");
- }
- else {
- if (envelope.XMLDocument) {
- envelope = envelope.XMLDocument;
- }
-
- // process the response
- this.loadedCallback(envelope, context);
- }
-
- context.steps.push(context.endStep);
- var executer = new FunctionsExecuter(context.steps);
- executer.start();
- },
-
// Processes the response
loadedCallback: function (envelope, context) {
// To process the response, we go through the xml document and add a function for every action (step).
@@ -1488,9 +1299,16 @@
*/
serializeInput: function (input) {
var result = [];
- if (input && input.type && !(input.type === 'image' || input.type === 'submit')) {
+ if (input && input.type) {
var $input = jQuery(input);
- result = $input.serializeArray();
+
+ if (input.type === 'file') {
+ for (var f = 0; f < input.files.length; f++) {
+ result.push({"name" : input.name, "value" : input.files[f]});
+ }
+ } else if (!(input.type === 'image' || input.type === 'submit')) {
+ result = $input.serializeArray();
+ }
}
return result;
},
http://git-wip-us.apache.org/repos/asf/wicket/blob/f642f4ad/wicket-core/src/test/js/ajax.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/ajax.js b/wicket-core/src/test/js/ajax.js
index 71f9fce..982aa47 100644
--- a/wicket-core/src/test/js/ajax.js
+++ b/wicket-core/src/test/js/ajax.js
@@ -1042,7 +1042,7 @@ jQuery(document).ready(function() {
*/
asyncTest('Submit nested form - success scenario.', function () {
- expect(13);
+ expect(9);
var attrs = {
f: "innerForm", // the id of the form to submit
@@ -1056,18 +1056,6 @@ jQuery(document).ready(function() {
pre: [ function(attrs) {ok(true, "Precondition executed"); return true; } ],
bsh: [ function(attrs) {
ok(true, "BeforeSend handler executed");
-
- var form = Wicket.$(attrs.f);
- if (form.tagName.toLowerCase() !== "form") {
- do {
- form = form.parentNode;
- } while(form.tagName.toLowerCase() !== "form" && form !== document.body);
- }
- var formUrl = form.action;
- ok(formUrl.indexOf('dynamicEPName') > -1, "Dynamic extra parameter name is in the request query string");
- ok(formUrl.indexOf('dynamicEPValue') > -1, "Dynamic extra parameter value is in the request query string");
- ok(formUrl.indexOf('extraParamName') > -1, "Static extra parameter name is in the request query string");
- ok(formUrl.indexOf('extraParamValue') > -1, "Static extra parameter value is in the request query string");
} ],
ah: [ function(attrs) { ok(true, "After handler executed"); } ],
sh: [ function(attrs) { ok(true, "Success handler executed"); } ],
@@ -1101,7 +1089,7 @@ jQuery(document).ready(function() {
*/
asyncTest('Submit nested form - failure scenario.', function () {
- expect(12);
+ expect(8);
var attrs = {
f: "innerForm", // the id of the form to submit
@@ -1115,18 +1103,6 @@ jQuery(document).ready(function() {
pre: [ function(attrs) {ok(true, "Precondition executed"); return true; } ],
bsh: [ function(attrs) {
ok(true, "BeforeSend handler executed");
-
- var form = Wicket.$(attrs.f);
- if (form.tagName.toLowerCase() !== "form") {
- do {
- form = form.parentNode;
- } while(form.tagName.toLowerCase() !== "form" && form !== document.body);
- }
- var formUrl = form.action;
- ok(formUrl.indexOf('dynamicEPName') > -1, "Dynamic extra parameter name is in the request query string");
- ok(formUrl.indexOf('dynamicEPValue') > -1, "Dynamic extra parameter value is in the request query string");
- ok(formUrl.indexOf('extraParamName') > -1, "Static extra parameter name is in the request query string");
- ok(formUrl.indexOf('extraParamValue') > -1, "Static extra parameter value is in the request query string");
} ],
ah: [ function(attrs) { ok(true, "After handler executed"); } ],
sh: [ function(attrs) { ok(false, "Success handler should not be executed"); } ],
[14/14] wicket git commit: Merged with master,
missing serialVersionUID are added, minor compiler warnings are fixed
Posted by so...@apache.org.
Merged with master, missing serialVersionUID are added, minor compiler warnings are fixed
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3e65110d
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3e65110d
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3e65110d
Branch: refs/heads/WICKET-6498_deferred_javascript_2
Commit: 3e65110d3f01ea22e359bd75164a7843181af702
Parents: 17b1b73
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sun Jan 28 12:10:24 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sun Jan 28 12:10:24 2018 +0700
----------------------------------------------------------------------
.../markup/head/filter/FilteredHeaderItem.java | 2 ++
.../filter/JavaScriptDeferHeaderResponse.java | 5 +++-
.../wicket/markup/head/filter/DeferredPage.java | 4 ++-
.../filter/FilteringHeaderResponseTest.java | 30 ++++++++------------
.../examples/ajax/builtin/AjaxApplication.java | 6 ++--
5 files changed, 23 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/3e65110d/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
index 18745a2..e1728ec 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteredHeaderItem.java
@@ -35,6 +35,8 @@ import org.apache.wicket.request.Response;
*/
public class FilteredHeaderItem extends HeaderItem implements IWrappedHeaderItem
{
+ private static final long serialVersionUID = 1L;
+
private HeaderItem wrapped;
private String filterName;
http://git-wip-us.apache.org/repos/asf/wicket/blob/3e65110d/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/JavaScriptDeferHeaderResponse.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/JavaScriptDeferHeaderResponse.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/JavaScriptDeferHeaderResponse.java
index 39c20d1..b3d48a8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/JavaScriptDeferHeaderResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/JavaScriptDeferHeaderResponse.java
@@ -70,6 +70,8 @@ public class JavaScriptDeferHeaderResponse extends DecoratingHeaderResponse
*/
private class NativeOnDomContentLoadedHeaderItem extends OnDomReadyHeaderItem
{
+ private static final long serialVersionUID = 1L;
+
/**
* Construct.
*
@@ -96,6 +98,7 @@ public class JavaScriptDeferHeaderResponse extends DecoratingHeaderResponse
*/
private class NativeOnLoadHeaderItem extends OnLoadHeaderItem
{
+ private static final long serialVersionUID = 1L;
/**
* Construct.
@@ -117,4 +120,4 @@ public class JavaScriptDeferHeaderResponse extends DecoratingHeaderResponse
}
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/3e65110d/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/DeferredPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/DeferredPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/DeferredPage.java
index 355328b..b5e3850 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/DeferredPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/DeferredPage.java
@@ -35,10 +35,12 @@ public class DeferredPage extends WebPage
public DeferredPage()
{
add(new AjaxEventBehavior("click") {
+ private static final long serialVersionUID = 1L;
+
@Override
protected void onEvent(AjaxRequestTarget target)
{
}
});
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/3e65110d/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
index 99665a7..88e9c64 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
@@ -59,21 +59,22 @@ public class FilteringHeaderResponseTest extends WicketTestCase
@Test
public void createBucketOnTheFlyForFilteredHeaderItem() throws Exception
{
- FilteringHeaderResponse headerResponse = new FilteringHeaderResponse(new HeaderResponse()
+ try (FilteringHeaderResponse headerResponse = new FilteringHeaderResponse(new HeaderResponse()
{
@Override
protected Response getRealResponse()
{
return new StringResponse();
}
- }, "headerBucketName", Collections.EMPTY_LIST);
-
- String filterName = "filterName";
- String headerContent = "content";
- FilteredHeaderItem item = new FilteredHeaderItem(StringHeaderItem.forString(headerContent), filterName);
- headerResponse.render(item);
- CharSequence realContent = headerResponse.getContent(filterName);
- assertEquals(headerContent, realContent.toString());
+ }, "headerBucketName", Collections.emptyList()))
+ {
+ String filterName = "filterName";
+ String headerContent = "content";
+ FilteredHeaderItem item = new FilteredHeaderItem(StringHeaderItem.forString(headerContent), filterName);
+ headerResponse.render(item);
+ CharSequence realContent = headerResponse.getContent(filterName);
+ assertEquals(headerContent, realContent.toString());
+ }
}
/**
@@ -83,14 +84,7 @@ public class FilteringHeaderResponseTest extends WicketTestCase
@Test
public void deferred() throws Exception
{
- tester.getApplication().setHeaderResponseDecorator(new IHeaderResponseDecorator()
- {
- @Override
- public IHeaderResponse decorate(IHeaderResponse response)
- {
- return new ResourceAggregator(new JavaScriptDeferHeaderResponse(response));
- }
- });
+ tester.getApplication().setHeaderResponseDecorator(response -> new ResourceAggregator(new JavaScriptDeferHeaderResponse(response)));
executeTest(DeferredPage.class, "DeferredPageExpected.html");
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/3e65110d/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxApplication.java
----------------------------------------------------------------------
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxApplication.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxApplication.java
index c38265a..9f8327e 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxApplication.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxApplication.java
@@ -46,10 +46,8 @@ public class AjaxApplication extends WicketExampleApplication
getDebugSettings().setAjaxDebugModeEnabled(true);
- setHeaderResponseDecorator(response -> {
- // use this header resource decorator to defer all JavaScript resources
- return new ResourceAggregator(new JavaScriptDeferHeaderResponse(response));
- });
+ // use this header resource decorator to defer all JavaScript resources
+ setHeaderResponseDecorator(response -> new ResourceAggregator(new JavaScriptDeferHeaderResponse(response)));
getComponentInitializationListeners().add(new IComponentInitializationListener()
{