diff options
-rw-r--r-- | WebContent/VAADIN/themes/base/common/common.scss | 8 | ||||
-rw-r--r-- | WebContent/WEB-INF/web.xml | 4 | ||||
-rw-r--r-- | WebContent/release-notes.html | 54 | ||||
-rw-r--r-- | client/ivy.xml | 2 | ||||
-rw-r--r-- | client/src/com/vaadin/client/BrowserInfo.java | 9 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/PostLayoutListener.java | 18 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/dd/VTargetInSubtree.java | 4 | ||||
-rw-r--r-- | ivysettings.xml | 4 | ||||
-rw-r--r-- | server/ivy.xml | 2 | ||||
-rw-r--r-- | server/src/com/vaadin/ui/UI.java | 7 | ||||
-rw-r--r-- | server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java | 1 | ||||
-rw-r--r-- | theme-compiler/ivy.xml | 2 | ||||
-rw-r--r-- | uitest/ivy.xml | 40 | ||||
-rw-r--r-- | uitest/src/com/vaadin/launcher/DevelopmentServerLauncher.java | 8 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/dd/DnDOnSubtree.html | 51 |
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> |