summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebContent/VAADIN/themes/base/common/common.scss8
-rw-r--r--WebContent/WEB-INF/web.xml4
-rw-r--r--WebContent/release-notes.html54
-rw-r--r--client/ivy.xml2
-rw-r--r--client/src/com/vaadin/client/BrowserInfo.java9
-rw-r--r--client/src/com/vaadin/client/ui/PostLayoutListener.java18
-rw-r--r--client/src/com/vaadin/client/ui/dd/VTargetInSubtree.java4
-rw-r--r--ivysettings.xml4
-rw-r--r--server/ivy.xml2
-rw-r--r--server/src/com/vaadin/ui/UI.java7
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java1
-rw-r--r--theme-compiler/ivy.xml2
-rw-r--r--uitest/ivy.xml40
-rw-r--r--uitest/src/com/vaadin/launcher/DevelopmentServerLauncher.java8
-rw-r--r--uitest/src/com/vaadin/tests/dd/DnDOnSubtree.html51
15 files changed, 157 insertions, 57 deletions
diff --git a/WebContent/VAADIN/themes/base/common/common.scss b/WebContent/VAADIN/themes/base/common/common.scss
index cb3645c9d8..07e244a76f 100644
--- a/WebContent/VAADIN/themes/base/common/common.scss
+++ b/WebContent/VAADIN/themes/base/common/common.scss
@@ -227,11 +227,13 @@ input::-ms-clear {
font-size: 0;
line-height: normal;
}
-
-/* Enable kinetic scrolling on iOS 6 */
-.v-ios6.v-webkit & .v-scrollable {
+.v-ios.v-webkit & .v-scrollable {
-webkit-overflow-scrolling: touch;
}
+/* Disable native scrolling on iOS 5 due to #8792 */
+.v-ios5.v-webkit & .v-scrollable {
+ -webkit-overflow-scrolling: none;
+}
&.v-overlay-container {
width: 0;
diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml
index ba948968e2..b93e0670fc 100644
--- a/WebContent/WEB-INF/web.xml
+++ b/WebContent/WEB-INF/web.xml
@@ -24,6 +24,7 @@
<param-name>application</param-name>
<param-value>com.vaadin.tests.components.button.Buttons</param-value>
</init-param>
+ <async-supported>true</async-supported>
</servlet>
<servlet>
<servlet-name>Embed App 2</servlet-name>
@@ -32,6 +33,7 @@
<param-name>UI</param-name>
<param-value>com.vaadin.tests.components.label.MarginsInLabels</param-value>
</init-param>
+ <async-supported>true</async-supported>
</servlet>
<servlet>
<servlet-name>UI provider app</servlet-name>
@@ -44,6 +46,7 @@
<param-name>UI</param-name>
<param-value>com.vaadin.tests.VerifyAssertionsEnabled</param-value>
</init-param>
+ <async-supported>true</async-supported>
</servlet>
<servlet>
@@ -70,6 +73,7 @@
<param-name>testParam</param-name>
<param-value>42</param-value>
</init-param>
+ <async-supported>true</async-supported>
</servlet>
<servlet>
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 387a5121cb..a11e526c3f 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -41,10 +41,10 @@
<ul>
<li><a href="#overview">Overview of Vaadin
@version@ Release</a></li>
+ <li><a href="#changelog">Change log for Vaadin
+ @version@</a></li>
<li><a href="#enhancements">Enhancements in Vaadin
@version-minor@</a></li>
- <li><a href="#changelog">Complete change log for
- Vaadin @version@</a></li>
<li><a href="#limitations">Limitations in
@version-minor@</a></li>
<li><a href="#vaadin">Vaadin Installation</a></li>
@@ -63,11 +63,30 @@
<h2 id="overview">Overview of Vaadin @version@ Release</h2>
<p>
- Vaadin @version@ is a maintenance release that includes a number
- of important bug fixes, as listed in the <a href="#changelog">change
- log</a> below. You can also view the <a
- href="http://dev.vaadin.com/query?status=closed&resolution=fixed&milestone=Vaadin+@version@&order=priority">list
- of the closed issues</a> at the Vaadin developer's site.
+ Vaadin @version@ is a maintenance release that includes a
+ number of important bug fixes, as listed in the <a
+ href="#changelog">change log</a> below.
+ </p>
+
+ <p>
+ For a list of enhancements in the last feature release, see
+ <a href="#enhancements">Enhancements in Vaadin
+ @version-minor@</a> and the <a
+ href="http://vaadin.com/download/release/@version-minor@/@version-minor@.0/release-notes.html">Release
+ Notes for Vaadin @version-minor@.0</a>.
+ </p>
+
+ <h3 id="changelog">Change log for Vaadin @version@</h3>
+
+ <p>This release includes the following closed issues:</p>
+
+ <ul>@release-notes-tickets@
+ </ul>
+
+ <p>
+ You can also view the <a
+ href="http://dev.vaadin.com/query?status=closed&resolution=fixed&milestone=Vaadin+@version@&order=id">list
+ of the closed issues</a> at the Vaadin developer's site. .
</p>
<h2 id="enhancements">Enhancements in Vaadin
@@ -191,21 +210,6 @@
streaming to work.</li>
</ul>
- <h3 id="changelog">ChangeLog</h3>
-
- <p>This release includes the following closed issues:</p>
-
- <ul>@release-notes-tickets@
- </ul>
-
- <p>
- The <a
- href="http://dev.vaadin.com/query?status=closed&resolution=fixed&milestone=Vaadin+7.1.0.beta1&milestone=Vaadin+7.1.0&order=id">full
- list of the closed issues</a> can also be found at
- <tt>dev.vaadin.com</tt>
- .
- </p>
-
<h2 id="vaadin">Vaadin Installation</h2>
<p>
@@ -573,11 +577,11 @@
</p>
<ul>
- <li>Mozilla Firefox 18-23</li>
+ <li>Mozilla Firefox 18-24</li>
<li>Mozilla Firefox 17 ESR</li>
<li>Internet Explorer 8-10</li>
<li>Safari 6</li>
- <li>Opera 12</li>
+ <li>Opera 12,16</li>
<li>Google Chrome 23-29</li>
</ul>
@@ -587,7 +591,7 @@
</p>
<ul>
- <li>iOS 5-6</li>
+ <li>iOS 5-7</li>
<li>Android 2.3-4</li>
</ul>
diff --git a/client/ivy.xml b/client/ivy.xml
index 5d079537b9..ccc304be3d 100644
--- a/client/ivy.xml
+++ b/client/ivy.xml
@@ -32,7 +32,7 @@
<!-- gwt-user dependencies -->
<dependency org="org.w3c.css" name="sac" rev="1.3" />
- <dependency org="junit" name="junit" rev="4.5"
+ <dependency org="junit" name="junit" rev="4.11"
conf="test->default" />
<dependency org="javax.validation" name="validation-api"
diff --git a/client/src/com/vaadin/client/BrowserInfo.java b/client/src/com/vaadin/client/BrowserInfo.java
index 5d588f6f8b..273964c889 100644
--- a/client/src/com/vaadin/client/BrowserInfo.java
+++ b/client/src/com/vaadin/client/BrowserInfo.java
@@ -207,10 +207,7 @@ public class BrowserInfo {
return prefix + OS_ANDROID;
} else if (browserDetails.isIOS()) {
String iosClass = prefix + OS_IOS;
- if (isIOS6()) {
- iosClass += " " + prefix + OS_IOS + "6";
- }
- return iosClass;
+ return iosClass + " " + iosClass + getOperatingSystemMajorVersion();
} else if (browserDetails.isWindows()) {
return prefix + OS_WINDOWS;
} else if (browserDetails.isLinux()) {
@@ -392,9 +389,9 @@ public class BrowserInfo {
if (isAndroid() && isWebkit() && getWebkitVersion() >= 534) {
return false;
}
- // iOS 6 Safari supports native scrolling; iOS 5 suffers from #8792
+ // iOS 6+ Safari supports native scrolling; iOS 5 suffers from #8792
// TODO Should test other iOS browsers
- if (isIOS6() && isWebkit()) {
+ if (isIOS() && isWebkit() && getOperatingSystemMajorVersion() >= 6) {
return false;
}
return true;
diff --git a/client/src/com/vaadin/client/ui/PostLayoutListener.java b/client/src/com/vaadin/client/ui/PostLayoutListener.java
index d60360747c..3da2358b0c 100644
--- a/client/src/com/vaadin/client/ui/PostLayoutListener.java
+++ b/client/src/com/vaadin/client/ui/PostLayoutListener.java
@@ -15,6 +15,24 @@
*/
package com.vaadin.client.ui;
+import com.vaadin.client.ComponentConnector;
+import com.vaadin.client.LayoutManager;
+
+/**
+ * Interface implemented by {@link ComponentConnector} implementations that want
+ * to know whenever a layout phase has ended. At the end of each layout phase,
+ * {@link LayoutManager} invokes the {@link #postLayout()} method for all
+ * registered component connectors implementing this interface.
+ *
+ * @since 7.0
+ * @author Vaadin Ltd
+ */
public interface PostLayoutListener {
+ /**
+ * Method invoked by {@link LayoutManager} to notify the connector that a
+ * layout phase has ended. This method can be used to finalize internal
+ * layouting, but it is not allowed to change the its own external size or
+ * modify the conditions for any children.
+ */
public void postLayout();
}
diff --git a/client/src/com/vaadin/client/ui/dd/VTargetInSubtree.java b/client/src/com/vaadin/client/ui/dd/VTargetInSubtree.java
index e9061114aa..c3f56b410d 100644
--- a/client/src/com/vaadin/client/ui/dd/VTargetInSubtree.java
+++ b/client/src/com/vaadin/client/ui/dd/VTargetInSubtree.java
@@ -32,7 +32,7 @@ final public class VTargetInSubtree extends VAcceptCriterion {
protected boolean accept(VDragEvent drag, UIDL configuration) {
VTree tree = (VTree) VDragAndDropManager.get().getCurrentDropHandler()
- .getConnector();
+ .getConnector().getWidget();
TreeNode treeNode = tree.getNodeByKey((String) drag.getDropDetails()
.get("itemIdOver"));
if (treeNode != null) {
@@ -53,4 +53,4 @@ final public class VTargetInSubtree extends VAcceptCriterion {
return false;
}
-} \ No newline at end of file
+}
diff --git a/ivysettings.xml b/ivysettings.xml
index fa08f3d0bb..e18b2233d1 100644
--- a/ivysettings.xml
+++ b/ivysettings.xml
@@ -11,6 +11,8 @@
<settings defaultResolver="public" />
<resolvers>
<ibiblio name="public" m2compatible="true" />
+ <ibiblio name="vaadin-addons" usepoms="true"
+ m2compatible="true" root="http://maven.vaadin.com/vaadin-addons" />
<filesystem name="local-maven" m2compatible="true">
<artifact
pattern="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" />
@@ -23,6 +25,8 @@
</filesystem>
</resolvers>
<modules>
+ <module organisation="com.vaadin" name="vaadin-testbench"
+ resolver="vaadin-addons" />
<module organisation="com.vaadin" name="vaadin-buildhelpers"
resolver="build-temp" />
<module organisation="com.vaadin" name="vaadin-shared"
diff --git a/server/ivy.xml b/server/ivy.xml
index b78541c52f..ba859b08ee 100644
--- a/server/ivy.xml
+++ b/server/ivy.xml
@@ -58,7 +58,7 @@
<!-- TESTING DEPENDENCIES -->
<!-- Test frameworks & related -->
- <dependency org="junit" name="junit" rev="4.5"
+ <dependency org="junit" name="junit" rev="4.11"
conf="test,ide -> default" />
<dependency org="org.easymock" name="easymock" rev="3.0"
conf="test,ide-> default" transitive="true" />
diff --git a/server/src/com/vaadin/ui/UI.java b/server/src/com/vaadin/ui/UI.java
index 8beebb0f1e..c367d7e9d2 100644
--- a/server/src/com/vaadin/ui/UI.java
+++ b/server/src/com/vaadin/ui/UI.java
@@ -405,9 +405,12 @@ public abstract class UI extends AbstractSingleComponentContainer implements
* @see #getSession()
*/
public void setSession(VaadinSession session) {
- if ((session == null) == (this.session == null)) {
+ if (session == null && this.session == null) {
throw new IllegalStateException(
- "VaadinServiceSession has already been set. Old session: "
+ "Session should never be set to null when UI.session is already null");
+ } else if (session != null && this.session != null) {
+ throw new IllegalStateException(
+ "Session has already been set. Old session: "
+ getSessionDetails(this.session)
+ ". New session: " + getSessionDetails(session)
+ ".");
diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java b/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java
index dd46b11520..85116dd152 100644
--- a/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java
+++ b/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java
@@ -250,6 +250,7 @@ public class AbsFieldValueConversions extends TestCase {
@Test
public void testNullConverter() {
TextField tf = new TextField("foo");
+ tf.setConverter(new StringToIntegerConverter());
tf.setPropertyDataSource(new ObjectProperty<Integer>(12));
tf.setConverter((Converter) null);
try {
diff --git a/theme-compiler/ivy.xml b/theme-compiler/ivy.xml
index 5bcdbb54cb..7b99b2cdaa 100644
--- a/theme-compiler/ivy.xml
+++ b/theme-compiler/ivy.xml
@@ -40,7 +40,7 @@
rev="2.4" conf="build-provided->default" />
<!-- Testing libs -->
- <dependency org="junit" name="junit" rev="4.5"
+ <dependency org="junit" name="junit" rev="4.11"
conf="ide,test -> default" />
<!-- Internally used, for now -->
diff --git a/uitest/ivy.xml b/uitest/ivy.xml
index 7ff83324ae..d75a591f94 100644
--- a/uitest/ivy.xml
+++ b/uitest/ivy.xml
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE ivy-module [
+ <!ENTITY jetty.version "8.1.9.v20130131">
+]>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
@@ -11,7 +14,7 @@
<conf name="build" />
<conf name="build-provided" visibility="private" />
<conf name="ide" visibility="private" />
- <conf name="jetty-run" extends="build" visibility="private" />
+ <conf name="jetty-run" visibility="private" />
</configurations>
<publications>
<artifact type="war" ext="war" />
@@ -23,9 +26,6 @@
<dependency org="javax.validation" name="validation-api"
rev="1.0.0.GA" conf="build,ide -> default,sources" />
- <!-- Servlet API -->
- <dependency org="javax.servlet" name="servlet-api"
- rev="2.4" conf="build-provided,ide -> default" />
<!-- Google App Engine -->
<dependency org="com.google.appengine" name="appengine-api-1.0-sdk"
rev="1.2.1" conf="build-provided,ide -> default" />
@@ -33,7 +33,9 @@
<!-- LIBRARY DEPENDENCIES (compile time) -->
<!-- Project modules -->
<dependency org="com.vaadin" name="vaadin-server"
- rev="${vaadin.version}" conf="build->build"></dependency>
+ rev="${vaadin.version}" conf="build->build">
+ <exclude org="javax.servlet"></exclude>
+ </dependency>
<dependency org="com.vaadin" name="vaadin-client"
rev="${vaadin.version}" conf="build->build"></dependency>
<dependency org="com.vaadin" name="vaadin-client-compiled"
@@ -41,27 +43,35 @@
<dependency org="com.vaadin" name="vaadin-themes"
rev="${vaadin.version}" conf="build->build"></dependency>
<dependency org="com.vaadin" name="vaadin-push" rev="${vaadin.version}"
- conf="build->build"></dependency>
+ conf="build->build">
+ <exclude org="javax.servlet"></exclude>
+ </dependency>
<!-- For compiling TestingWidgetSet -->
<dependency org="com.vaadin" name="vaadin-client-compiler"
rev="${vaadin.version}" conf="build-provided-> build"></dependency>
- <!-- Newest Jetty does not work with Ivy currently (orbit -> jar
- mapping problem) -->
+ <!-- Servlet 3.0 API -->
+ <dependency org="javax.servlet" name="javax.servlet-api"
+ rev="3.0.1" conf="build-provided,ide -> default" />
+
<dependency org="org.eclipse.jetty" name="jetty-server"
- rev="7.5.0.v20110901" conf="ide, build-provided, jetty-run->default" />
+ rev="&jetty.version;" conf="ide, build-provided, jetty-run->default">
+ <exclude org="org.eclipse.jetty.orbit"></exclude>
+ </dependency>
<!-- jetty-servlets needed by ProxyTest, but not by jetty-runner -->
<dependency org="org.eclipse.jetty" name="jetty-servlets"
- rev="7.5.0.v20110901" conf="ide, build-provided, jetty-run->default" />
+ rev="&jetty.version;" conf="ide, build-provided, jetty-run->default" />
<dependency org="org.eclipse.jetty" name="jetty-websocket"
- rev="7.5.0.v20110901" conf="ide, jetty-run->default" />
+ rev="&jetty.version;" conf="ide, jetty-run->default" />
<dependency org="org.eclipse.jetty" name="jetty-webapp"
- rev="7.5.0.v20110901" conf="ide, build-provided, jetty-run->default" />
+ rev="&jetty.version;" conf="ide, build-provided, jetty-run->default" />
<dependency org="org.mortbay.jetty" name="jetty-runner"
- rev="7.5.0.v20110901" conf="jetty-run->default" />
+ rev="&jetty.version;" conf="ide, jetty-run->default">
+ <exclude org="org.eclipse.jetty.orbit"></exclude>
+ </dependency>
- <dependency org="junit" name="junit" rev="4.5"
+ <dependency org="junit" name="junit" rev="4.11"
conf="build,ide -> default" />
<dependency org="commons-codec" name="commons-codec"
@@ -71,6 +81,8 @@
<!-- Mainly for SQLContainer tests -->
<dependency org="org.hsqldb" name="hsqldb" rev="2.2.6"
conf="build,ide -> default" />
+ <dependency org="com.vaadin" name="vaadin-testbench"
+ rev="3.1.1" conf="build-provided,ide -> default" />
</dependencies>
</ivy-module>
diff --git a/uitest/src/com/vaadin/launcher/DevelopmentServerLauncher.java b/uitest/src/com/vaadin/launcher/DevelopmentServerLauncher.java
index 5ab2134cdb..a8d639cbc8 100644
--- a/uitest/src/com/vaadin/launcher/DevelopmentServerLauncher.java
+++ b/uitest/src/com/vaadin/launcher/DevelopmentServerLauncher.java
@@ -24,10 +24,12 @@ import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import javax.servlet.DispatcherType;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
@@ -181,7 +183,8 @@ public class DevelopmentServerLauncher {
String[] paths = serverArgs.get("slowdown").split(",");
for (String p : paths) {
System.out.println("Slowing down: " + p);
- webappcontext.addFilter(SlowFilter.class, p, 1);
+ webappcontext.addFilter(SlowFilter.class, p,
+ EnumSet.of(DispatcherType.REQUEST));
}
}
// --cache=/run/APP/PUBLISHED/*,/other/path/asd.jpg
@@ -190,7 +193,8 @@ public class DevelopmentServerLauncher {
String[] paths = serverArgs.get("cache").split(",");
for (String p : paths) {
System.out.println("Enabling cache for: " + p);
- webappcontext.addFilter(CacheFilter.class, p, 1);
+ webappcontext.addFilter(CacheFilter.class, p,
+ EnumSet.of(DispatcherType.REQUEST));
}
}
diff --git a/uitest/src/com/vaadin/tests/dd/DnDOnSubtree.html b/uitest/src/com/vaadin/tests/dd/DnDOnSubtree.html
new file mode 100644
index 0000000000..844636cb02
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/dd/DnDOnSubtree.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="selenium.base" href="http://localhost:8888/"/>
+ <title>DnDOnSubtree</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+ <thead>
+ <tr>
+ <td rowspan="1" colspan="3">New Test</td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.dd.DDTest8?restartApplication</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestsddDDTest8::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VTree[0]#n[3]</td>
+ <td>11,8</td>
+ </tr>
+ <!-- Drop on Bar5, which is a subtree target -->
+ <tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestsddDDTest8::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VTree[0]#n[6]</td>
+ <td>34,9</td>
+ </tr>
+ <tr>
+ <td>mouseClick</td>
+ <td>
+ vaadin=runcomvaadintestsddDDTest8::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VTree[0]#n[5]/expand
+ </td>
+ <td>10,8</td>
+ </tr>
+ <!-- Assert that the dragged & dropped node is now a child of Bar5 -->
+ <tr>
+ <td>assertElementPresent</td>
+ <td>
+ vaadin=runcomvaadintestsddDDTest8::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VTree[0]#n[5]/n[0]
+ </td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+</body>
+</html>