]> source.dussan.org Git - vaadin-framework.git/commitdiff
Remove getApplication() and add getSession() (#9402)
authorLeif Åstrand <leif@vaadin.com>
Wed, 5 Sep 2012 16:30:41 +0000 (19:30 +0300)
committerLeif Åstrand <leif@vaadin.com>
Wed, 5 Sep 2012 16:30:41 +0000 (19:30 +0300)
33 files changed:
server/src/com/vaadin/LegacyApplication.java
server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java
server/src/com/vaadin/server/AbstractClientConnector.java
server/src/com/vaadin/server/AbstractCommunicationManager.java
server/src/com/vaadin/server/CommunicationManager.java
server/src/com/vaadin/server/ConnectorResourceHandler.java
server/src/com/vaadin/server/JsonPaintTarget.java
server/src/com/vaadin/server/Page.java
server/src/com/vaadin/server/PortletCommunicationManager.java
server/src/com/vaadin/server/ResourceReference.java
server/src/com/vaadin/server/VaadinSession.java
server/src/com/vaadin/ui/AbstractComponent.java
server/src/com/vaadin/ui/AbstractField.java
server/src/com/vaadin/ui/Component.java
server/src/com/vaadin/ui/ConnectorTracker.java
server/src/com/vaadin/ui/Label.java
server/src/com/vaadin/ui/LoginForm.java
server/src/com/vaadin/ui/Table.java
server/src/com/vaadin/ui/UI.java
server/tests/src/com/vaadin/tests/data/converter/ConverterFactory.java
server/tests/src/com/vaadin/tests/server/TestStreamVariableMapping.java
server/tests/src/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java
server/tests/src/com/vaadin/tests/server/component/abstractfield/RemoveListenersOnDetach.java
server/tests/src/com/vaadin/tests/server/component/window/AttachDetachWindow.java
uitest/src/com/vaadin/tests/StressComponentsInTable.java
uitest/src/com/vaadin/tests/TestForUpload.java
uitest/src/com/vaadin/tests/application/ApplicationCloseTest.java
uitest/src/com/vaadin/tests/components/AbstractTestUI.java
uitest/src/com/vaadin/tests/components/table/TableFirstRowFlicker.java
uitest/src/com/vaadin/tests/components/textfield/SelectionAndCursorPosition.java
uitest/src/com/vaadin/tests/layouts/ComplexGLColumnExpansionWithColSpan.java
uitest/src/com/vaadin/tests/minitutorials/v7a1/CustomConverterFactoryUI.java
uitest/src/com/vaadin/tests/minitutorials/v7a1/DynamicImageUI.java

index 9f02a2d5882887ec3d271ed5cc6a64f7548aad65..66b2ca397310ba3eebedc34f73cf838d77ec9591 100644 (file)
@@ -68,9 +68,9 @@ public abstract class LegacyApplication extends AbstractUIProvider implements
         if (this.mainWindow != null) {
             throw new IllegalStateException("mainWindow has already been set");
         }
-        if (mainWindow.getApplication() == null) {
-            mainWindow.setApplication(VaadinSession.getCurrent());
-        } else if (mainWindow.getApplication() != VaadinSession.getCurrent()) {
+        if (mainWindow.getSession() == null) {
+            mainWindow.setSession(VaadinSession.getCurrent());
+        } else if (mainWindow.getSession() != VaadinSession.getCurrent()) {
             throw new IllegalStateException(
                     "mainWindow is attached to another application");
         }
@@ -242,7 +242,7 @@ public abstract class LegacyApplication extends AbstractUIProvider implements
         }
 
         legacyUINames.put(uI.getName(), uI);
-        uI.setApplication(VaadinSession.getCurrent());
+        uI.setSession(VaadinSession.getCurrent());
     }
 
     /**
index 6258aed42315cb7d35d3c78b9ccfb612ceae19b5..dee807c6103ca20fc38b3d552871ac05923e4f28 100644 (file)
@@ -48,7 +48,7 @@ public class SourceIs extends ClientSideCriterion {
         int paintedComponents = 0;
         for (int i = 0; i < components.length; i++) {
             Component c = components[i];
-            if (c.getApplication() != null) {
+            if (c.getUI() != null && c.getUI().getSession() != null) {
                 target.addAttribute("component" + paintedComponents++, c);
             } else {
                 Logger.getLogger(SourceIs.class.getName())
index 82a154d4e5f45536759c2bc6598a29cf146ff173..f8fbbeeb4cba3e8a1caba82d5f149ad7397128a4 100644 (file)
@@ -342,11 +342,11 @@ public abstract class AbstractClientConnector implements ClientConnector {
     @Override
     public String getConnectorId() {
         if (connectorId == null) {
-            if (getApplication() == null) {
+            if (getSession() == null) {
                 throw new RuntimeException(
                         "Component must be attached to an application when getConnectorId() is called for the first time");
             }
-            connectorId = getApplication().createConnectorId(this);
+            connectorId = getSession().createConnectorId(this);
         }
         return connectorId;
     }
@@ -357,12 +357,12 @@ public abstract class AbstractClientConnector implements ClientConnector {
      * 
      * @return The connector's application, or <code>null</code> if not attached
      */
-    protected VaadinSession getApplication() {
+    protected VaadinSession getSession() {
         UI uI = getUI();
         if (uI == null) {
             return null;
         } else {
-            return uI.getApplication();
+            return uI.getSession();
         }
     }
 
@@ -501,7 +501,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
         }
 
         // Send detach event if the component have been connected to a window
-        if (getApplication() != null) {
+        if (getSession() != null) {
             detach();
         }
 
@@ -509,7 +509,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
         this.parent = parent;
 
         // Send attach event if connected to an application
-        if (getApplication() != null) {
+        if (getSession() != null) {
             attach();
         }
     }
@@ -535,7 +535,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
      * {@inheritDoc}
      * 
      * <p>
-     * The {@link #getApplication()} and {@link #getUI()} methods might return
+     * The {@link #getSession()} and {@link #getUI()} methods might return
      * <code>null</code> after this method is called.
      * </p>
      */
index 71f5a07d77c41aec33fbbd54cc47c11eb0571cf0..4f408d6fe97f273c3fbac01d7fea0866fcc7f8b5 100644 (file)
@@ -676,7 +676,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
         }
 
         sb.append("\nComponent hierarchy:\n");
-        VaadinSession application2 = component.getApplication();
+        VaadinSession application2 = component.getUI().getSession();
         sb.append(application2.getClass().getName());
         sb.append(".");
         sb.append(application2.getClass().getSimpleName());
@@ -789,7 +789,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
             final PrintWriter outWriter, UI ui, boolean analyzeLayouts)
             throws PaintException, JSONException {
         ArrayList<ClientConnector> dirtyVisibleConnectors = new ArrayList<ClientConnector>();
-        VaadinSession application = ui.getApplication();
+        VaadinSession application = ui.getSession();
         // Paints components
         ConnectorTracker uiConnectorTracker = ui.getConnectorTracker();
         getLogger().log(Level.FINE, "* Creating response to client");
@@ -1697,7 +1697,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
                         if (connector instanceof Component) {
                             errorComponent = (Component) connector;
                         }
-                        handleChangeVariablesError(uI.getApplication(),
+                        handleChangeVariablesError(uI.getSession(),
                                 errorComponent, realException, null);
                     }
                 } else {
@@ -1729,7 +1729,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
                                 errorComponent = (Component) dropHandlerOwner;
                             }
                         }
-                        handleChangeVariablesError(uI.getApplication(),
+                        handleChangeVariablesError(uI.getSession(),
                                 errorComponent, e, changes);
                     }
                 }
@@ -2154,8 +2154,8 @@ public abstract class AbstractCommunicationManager implements Serializable {
      * Ends the Application.
      * 
      * The browser is redirected to the Application logout URL set with
-     * {@link VaadinSession#setLogoutURL(String)}, or to the application URL if no
-     * logout URL is given.
+     * {@link VaadinSession#setLogoutURL(String)}, or to the application URL if
+     * no logout URL is given.
      * 
      * @param request
      *            the request instance.
@@ -2450,7 +2450,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
         StringWriter sWriter = new StringWriter();
         PrintWriter pWriter = new PrintWriter(sWriter);
         pWriter.print("{");
-        if (isXSRFEnabled(uI.getApplication())) {
+        if (isXSRFEnabled(uI.getSession())) {
             pWriter.print(getSecurityKeyUIDL(request));
         }
         writeUidlResponse(request, true, pWriter, uI, false);
index 3cc88319013a34d4012b37874bbef7ccda0ebed2..32c4d2c21732213f6be362397a7e57bc8895b9b1 100644 (file)
@@ -112,7 +112,7 @@ public class CommunicationManager extends AbstractCommunicationManager {
     protected InputStream getThemeResourceAsStream(UI uI, String themeName,
             String resource) {
         VaadinServletSession context = (VaadinServletSession) uI
-                .getApplication();
+                .getSession();
         ServletContext servletContext = context.getHttpSession()
                 .getServletContext();
         return servletContext.getResourceAsStream("/"
index 80d3a60a1a586d399c86c4e425b0cb463c405f4c..6702fb140f14c0934aa94eef2344f51f7316c580 100644 (file)
@@ -44,7 +44,7 @@ public class ConnectorResourceHandler implements RequestHandler {
             }
 
             UI.setCurrent(ui);
-            VaadinSession.setCurrent(ui.getApplication());
+            VaadinSession.setCurrent(ui.getSession());
 
             ClientConnector connector = ui.getConnectorTracker().getConnector(
                     cid);
index b193c47528561a14be0ec36ab1feb74efc9cda11..d2f90c33b63007126d004e2541101886efac959f 100644 (file)
@@ -345,7 +345,7 @@ public class JsonPaintTarget implements PaintTarget {
             throw new NullPointerException();
         }
         ClientConnector ownerConnector = openPaintables.peek();
-        ownerConnector.getUI().getApplication().getGlobalResourceHandler(true)
+        ownerConnector.getUI().getSession().getGlobalResourceHandler(true)
                 .register(value, ownerConnector);
 
         ResourceReference reference = ResourceReference.create(value,
index a1c181dcb9fc82529113f904579f78594f9ec955..9a0948edc8d13742fba0baa2a5399c32d8c13b02 100644 (file)
@@ -391,7 +391,7 @@ public class Page implements Serializable {
     }
 
     public WebBrowser getWebBrowser() {
-        return uI.getApplication().getBrowser();
+        return uI.getSession().getBrowser();
     }
 
     public void setBrowserWindowSize(int width, int height) {
index 6eccfa60842d50c6e0f5bbb429ada705af158abf..1a2b892a328aae6ef52379c5e5d3abbeb439296a 100644 (file)
@@ -157,7 +157,7 @@ public class PortletCommunicationManager extends AbstractCommunicationManager {
     protected InputStream getThemeResourceAsStream(UI uI, String themeName,
             String resource) {
         VaadinPortletSession context = (VaadinPortletSession) uI
-                .getApplication();
+                .getSession();
         PortletContext portletContext = context.getPortletSession()
                 .getPortletContext();
         return portletContext.getResourceAsStream("/"
index 098fb6c3e4f280245f92be0b72665cf92cadce56..815cbee275e9c1c2fdbea8ce4cb865b8cce3c832 100644 (file)
@@ -71,7 +71,7 @@ public class ResourceReference extends URLReference {
             ConnectorResource connectorResource = (ConnectorResource) resource;
 
             GlobalResourceHandler globalResourceHandler = connector.getUI()
-                    .getApplication().getGlobalResourceHandler(false);
+                    .getSession().getGlobalResourceHandler(false);
             if (globalResourceHandler != null) {
                 String uri = globalResourceHandler.getUri(connector,
                         connectorResource);
index 10532559f09c0f7892d3b5cd1bfbad7c98b0306c..440fc02ee60b3af28f924ba85aa61427792612a0 100644 (file)
@@ -1706,8 +1706,8 @@ public class VaadinSession implements Terminal.ErrorListener,
         UI ui = createUIInstance(request, uiClass);
 
         // Initialize some fields for a newly created UI
-        if (ui.getApplication() == null) {
-            ui.setApplication(this);
+        if (ui.getSession() == null) {
+            ui.setSession(this);
         }
         // Get the next id
         Integer uiId = Integer.valueOf(nextUIId++);
index e6cc80f1cf05b15a2951d6c06f38b93abdb39889..85938c4fe36f1040d37679296c9d8d282670286c 100644 (file)
@@ -259,7 +259,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
         if (parent != null) {
             return parent.getLocale();
         }
-        final VaadinSession app = getApplication();
+        final VaadinSession app = getSession();
         if (app != null) {
             return app.getLocale();
         }
@@ -616,7 +616,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
      */
     protected void focus() {
         if (this instanceof Focusable) {
-            final VaadinSession app = getApplication();
+            final VaadinSession app = getSession();
             if (app != null) {
                 getUI().setFocusedComponent((Focusable) this);
                 delayedFocus = false;
@@ -626,31 +626,6 @@ public abstract class AbstractComponent extends AbstractClientConnector
         }
     }
 
-    /**
-     * Gets the application object to which the component is attached.
-     * 
-     * <p>
-     * The method will return {@code null} if the component is not currently
-     * attached to an application. This is often a problem in constructors of
-     * regular components and in the initializers of custom composite
-     * components. A standard workaround is to move the problematic
-     * initialization to {@link #attach()}, as described in the documentation of
-     * the method.
-     * </p>
-     * <p>
-     * <b>This method is not meant to be overridden. Due to CDI requirements we
-     * cannot declare it as final even though it should be final.</b>
-     * </p>
-     * 
-     * @return the parent application of the component or <code>null</code>.
-     * @see #attach()
-     */
-    @Override
-    public VaadinSession getApplication() {
-        // Just make method inherited from Component interface public
-        return super.getApplication();
-    }
-
     /**
      * Build CSS compatible string representation of height.
      * 
index 548cb06c8fcdbac1a34df3f943d7adcc632fb5e7..f673babc26920ecc387b954bf16caffc26afd4bb 100644 (file)
@@ -697,7 +697,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
      */
     public void setConverter(Class<?> datamodelType) {
         Converter<T, ?> c = (Converter<T, ?>) ConverterUtil.getConverter(
-                getType(), datamodelType, getApplication());
+                getType(), datamodelType, getSession());
         setConverter(c);
     }
 
index 812edbb8d2acc877c8c0370416c8297366dc982c..492e0c25c67f7897ace16378b5e4d79e480ce113 100644 (file)
@@ -26,7 +26,6 @@ import com.vaadin.server.ClientConnector;
 import com.vaadin.server.ErrorMessage;
 import com.vaadin.server.Resource;
 import com.vaadin.server.Sizeable;
-import com.vaadin.server.VaadinSession;
 import com.vaadin.server.VariableOwner;
 
 /**
@@ -521,35 +520,13 @@ public interface Component extends ClientConnector, Sizeable, Serializable {
     @Override
     public UI getUI();
 
-    /**
-     * Gets the application object to which the component is attached.
-     * 
-     * <p>
-     * The method will return {@code null} if the component is not currently
-     * attached to an application.
-     * </p>
-     * 
-     * <p>
-     * Getting a null value is often a problem in constructors of regular
-     * components and in the initializers of custom composite components. A
-     * standard workaround is to use {@link VaadinSession#getCurrent()} to
-     * retrieve the application instance that the current request relates to.
-     * Another way is to move the problematic initialization to
-     * {@link #attach()}, as described in the documentation of the method.
-     * </p>
-     * 
-     * @return the parent application of the component or <code>null</code>.
-     * @see #attach()
-     */
-    public VaadinSession getApplication();
-
     /**
      * {@inheritDoc}
      * 
      * <p>
      * Reimplementing the {@code attach()} method is useful for tasks that need
      * to get a reference to the parent, window, or application object with the
-     * {@link #getParent()}, {@link #getUI()}, and {@link #getApplication()}
+     * {@link #getParent()}, {@link #getUI()}, and {@link #getSession()}
      * methods. A component does not yet know these objects in the constructor,
      * so in such case, the methods will return {@code null}. For example, the
      * following is invalid:
index c84b75ca514e846c188cf5337711c7c70aba9985..d454df98ee4e08b2579c2c37625fd73719fd06b9 100644 (file)
@@ -152,7 +152,7 @@ public class ConnectorTracker implements Serializable {
     }
 
     private void removeFromGlobalResourceHandler(ClientConnector connector) {
-        GlobalResourceHandler globalResourceHandler = uI.getApplication()
+        GlobalResourceHandler globalResourceHandler = uI.getSession()
                 .getGlobalResourceHandler(false);
         // Nothing to do if there is no handler
         if (globalResourceHandler != null) {
index ff4a5dcb0725f5416546632bdd7aea8f3df0caa2..53b618a87f4d872c59d5a23f39d2fa87770d88e7 100644 (file)
@@ -254,7 +254,7 @@ public class Label extends AbstractComponent implements Property<String>,
                 newDataSource.getType())) {
             // Try to find a converter
             Converter<String, ?> c = ConverterUtil.getConverter(String.class,
-                    newDataSource.getType(), getApplication());
+                    newDataSource.getType(), getSession());
             setConverter(c);
         }
         dataSource = newDataSource;
index 1d0c5c41b60a9949115edae1772206230f6f70a6..b57b271778c743c4c4ff97fa43af836071830d7c 100644 (file)
@@ -132,7 +132,7 @@ public class LoginForm extends CustomComponent {
      * @return byte array containing login page html
      */
     protected byte[] getLoginHTML() {
-        String appUri = getApplication().getURL().toString();
+        String appUri = getSession().getURL().toString();
 
         try {
             return ("<!DOCTYPE html PUBLIC \"-//W3C//DTD "
@@ -186,13 +186,13 @@ public class LoginForm extends CustomComponent {
     @Override
     public void attach() {
         super.attach();
-        getApplication().addRequestHandler(requestHandler);
+        getSession().addRequestHandler(requestHandler);
         iframe.setSource(loginPage);
     }
 
     @Override
     public void detach() {
-        getApplication().removeRequestHandler(requestHandler);
+        getSession().removeRequestHandler(requestHandler);
 
         super.detach();
     }
index 65189fed0c9c8d4262d9e85da8798516d2719043..e0469f65227688bf938ef013ea8f527ae4689908 100644 (file)
@@ -3717,7 +3717,7 @@ public class Table extends AbstractSelect implements Action.Container,
             converter = getConverter(colId);
         } else {
             ConverterUtil.getConverter(String.class, property.getType(),
-                    getApplication());
+                    getSession());
         }
         Object value = property.getValue();
         if (converter != null) {
index e2d79454f6ad5c87380a7e4c9885ebd21dc82504..0b376f54c10a97c9855498857219b1181b57146d 100644 (file)
@@ -27,7 +27,6 @@ import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Map;
 
-import com.vaadin.LegacyApplication;
 import com.vaadin.event.Action;
 import com.vaadin.event.Action.Handler;
 import com.vaadin.event.ActionManager;
@@ -174,7 +173,7 @@ public abstract class UI extends AbstractComponentContainer implements
         public void setName(String name) {
             this.name = name;
             // The name can not be changed in application
-            if (getApplication() != null) {
+            if (getSession() != null) {
                 throw new IllegalStateException(
                         "Window name can not be changed while "
                                 + "the window is in application");
@@ -193,7 +192,7 @@ public abstract class UI extends AbstractComponentContainer implements
          *         to an application
          */
         public URL getURL() {
-            VaadinSession application = getApplication();
+            VaadinSession application = getSession();
             if (application == null) {
                 return null;
             }
@@ -424,7 +423,7 @@ public abstract class UI extends AbstractComponentContainer implements
     /**
      * The application to which this UI belongs
      */
-    private VaadinSession application;
+    private VaadinSession session;
 
     /**
      * List of windows in this UI.
@@ -563,9 +562,29 @@ public abstract class UI extends AbstractComponentContainer implements
         throw new UnsupportedOperationException();
     }
 
+    /**
+     * Gets the application object to which the component is attached.
+     * 
+     * <p>
+     * The method will return {@code null} if the component is not currently
+     * attached to an application.
+     * </p>
+     * 
+     * <p>
+     * Getting a null value is often a problem in constructors of regular
+     * components and in the initializers of custom composite components. A
+     * standard workaround is to use {@link VaadinSession#getCurrent()} to
+     * retrieve the application instance that the current request relates to.
+     * Another way is to move the problematic initialization to
+     * {@link #attach()}, as described in the documentation of the method.
+     * </p>
+     * 
+     * @return the parent application of the component or <code>null</code>.
+     * @see #attach()
+     */
     @Override
-    public VaadinSession getApplication() {
-        return application;
+    public VaadinSession getSession() {
+        return session;
     }
 
     @Override
@@ -676,25 +695,25 @@ public abstract class UI extends AbstractComponentContainer implements
      * This method is mainly intended for internal use by the framework.
      * </p>
      * 
-     * @param application
+     * @param session
      *            the application to set
      * 
      * @throws IllegalStateException
      *             if the application has already been set
      * 
-     * @see #getApplication()
+     * @see #getSession()
      */
-    public void setApplication(VaadinSession application) {
-        if ((application == null) == (this.application == null)) {
+    public void setSession(VaadinSession session) {
+        if ((session == null) == (this.session == null)) {
             throw new IllegalStateException("Application has already been set");
         } else {
-            if (application == null) {
+            if (session == null) {
                 detach();
             }
-            this.application = application;
+            this.session = session;
         }
 
-        if (application != null) {
+        if (session != null) {
             attach();
         }
     }
@@ -703,8 +722,8 @@ public abstract class UI extends AbstractComponentContainer implements
      * Gets the id of the UI, used to identify this UI within its application
      * when processing requests. The UI id should be present in every request to
      * the server that originates from this UI.
-     * {@link VaadinSession#getUIForRequest(WrappedRequest)} uses this id to find
-     * the route to which the request belongs.
+     * {@link VaadinSession#getUIForRequest(WrappedRequest)} uses this id to
+     * find the route to which the request belongs.
      * 
      * @return
      */
@@ -732,7 +751,7 @@ public abstract class UI extends AbstractComponentContainer implements
             throw new NullPointerException("Argument must not be null");
         }
 
-        if (window.getApplication() != null) {
+        if (window.getUI() != null && window.getUI().getSession() != null) {
             throw new IllegalArgumentException(
                     "Window is already attached to an application.");
         }
@@ -937,7 +956,7 @@ public abstract class UI extends AbstractComponentContainer implements
             throw new IllegalStateException("UI id has already been defined");
         }
         this.uiId = uiId;
-        theme = getApplication().getUiProvider(request, getClass())
+        theme = getSession().getUiProvider(request, getClass())
                 .getThemeForUI(request, getClass());
 
         getPage().init(request);
index 66160907b2551c55ac559f4c279307bc9b6ed872..b64514ea14687c4c7464a88f2dd9a7b17a10cfd1 100644 (file)
@@ -72,7 +72,7 @@ public class ConverterFactory extends TestCase {
 
         TextField tf = new TextField("", "123") {
             @Override
-            public VaadinSession getApplication() {
+            public VaadinSession getSession() {
                 return appWithCustomIntegerConverter;
             };
         };
@@ -103,7 +103,7 @@ public class ConverterFactory extends TestCase {
 
         TextField tf = new TextField("", "123") {
             @Override
-            public VaadinSession getApplication() {
+            public VaadinSession getSession() {
                 return fieldAppWithCustomIntegerConverter;
             }
         };
index e286e7231edfe17618c89ebb288b6362cb693623..0dd7efa5075b8a5e3c063657c89644f0e97c36e0 100644 (file)
@@ -30,7 +30,7 @@ public class TestStreamVariableMapping extends TestCase {
             }
 
             @Override
-            public VaadinSession getApplication() {
+            public VaadinSession getSession() {
                 return application;
             }
         };
index d372b96339c97ea9fc2e1599d880c9d4fae5271c..b48ad62bccb384fd6cf09a00c65d88f2ae3241a0 100644 (file)
@@ -190,7 +190,7 @@ public class AbstractFieldValueConversions extends TestCase {
         VaadinSession.setCurrent(a);
         TextField tf = new TextField() {
             @Override
-            public VaadinSession getApplication() {
+            public VaadinSession getSession() {
                 return a;
             }
         };
index b498bbe73f990e96967850a53539726f48d4139c..c9f579a88724355d5679a4940bf0ff0475cc42c4 100644 (file)
@@ -29,7 +29,7 @@ public class RemoveListenersOnDetach {
             }
 
             @Override
-            public VaadinSession getApplication() {
+            public VaadinSession getSession() {
                 return application;
             }
 
@@ -59,7 +59,7 @@ public class RemoveListenersOnDetach {
         };
 
         @Override
-        public VaadinSession getApplication() {
+        public VaadinSession getSession() {
             return application;
         };
     };
index bab7ca2c8c0990dff96403c39550a8e02acac0de..ec722fdffbf03ade4a285e386af7a48e33b10c8c 100644 (file)
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
 
+import com.vaadin.server.ClientConnector;
 import com.vaadin.server.VaadinSession;
 import com.vaadin.server.WrappedRequest;
 import com.vaadin.ui.Label;
@@ -23,7 +24,7 @@ public class AttachDetachWindow {
 
         public TestContent getTestContent();
 
-        public VaadinSession getApplication();
+        public VaadinSession getSession();
     }
 
     private class TestWindow extends Window implements TestContainer {
@@ -61,6 +62,11 @@ public class AttachDetachWindow {
         public TestContent getTestContent() {
             return testContent;
         }
+
+        @Override
+        public VaadinSession getSession() {
+            return super.getSession();
+        }
     }
 
     private class TestContent extends VerticalLayout {
@@ -155,7 +161,7 @@ public class AttachDetachWindow {
         assertUnattached(sub);
 
         // attaching main should recurse to sub
-        main.setApplication(testApp);
+        main.setSession(testApp);
         assertAttached(main);
         assertAttached(sub);
     }
@@ -165,7 +171,7 @@ public class AttachDetachWindow {
         assertUnattached(main);
         assertUnattached(sub);
 
-        main.setApplication(testApp);
+        main.setSession(testApp);
         assertAttached(main);
         assertUnattached(sub);
 
@@ -177,7 +183,7 @@ public class AttachDetachWindow {
 
     @Test
     public void removeSubWindowBeforeDetachingMainWindow() {
-        main.setApplication(testApp);
+        main.setSession(testApp);
         main.addWindow(sub);
 
         // sub should be detached when removing from attached main
@@ -186,18 +192,18 @@ public class AttachDetachWindow {
         assertDetached(sub);
 
         // main detach should recurse to sub
-        main.setApplication(null);
+        main.setSession(null);
         assertDetached(main);
         assertDetached(sub);
     }
 
     @Test
     public void removeSubWindowAfterDetachingMainWindow() {
-        main.setApplication(testApp);
+        main.setSession(testApp);
         main.addWindow(sub);
 
         // main detach should recurse to sub
-        main.setApplication(null);
+        main.setSession(null);
         assertDetached(main);
         assertDetached(sub);
 
@@ -219,22 +225,31 @@ public class AttachDetachWindow {
         assertTrue("window child attach not called",
                 testContent.childAttachCalled);
 
-        assertSame("window not attached", win.getApplication(), testApp);
-        assertSame("window content not attached", testContent.getApplication(),
-                testApp);
-        assertSame("window children not attached",
-                testContent.child.getApplication(), testApp);
+        assertSame("window not attached", win.getSession(), testApp);
+        assertSame("window content not attached", testContent.getUI()
+                .getSession(), testApp);
+        assertSame("window children not attached", testContent.child.getUI()
+                .getSession(), testApp);
     }
 
     /**
      * Asserts that win and its children are not attached.
      */
     private void assertUnattached(TestContainer win) {
-        assertSame("window not detached", win.getApplication(), null);
-        assertSame("window content not detached", win.getTestContent()
-                .getApplication(), null);
+        assertSame("window not detached", win.getSession(), null);
+        assertSame("window content not detached",
+                getVaadinSession(win.getTestContent()), null);
         assertSame("window children not detached",
-                win.getTestContent().child.getApplication(), null);
+                getVaadinSession(win.getTestContent().child), null);
+    }
+
+    private VaadinSession getVaadinSession(ClientConnector testContainer) {
+        UI ui = testContainer.getUI();
+        if (ui != null) {
+            return ui.getSession();
+        } else {
+            return null;
+        }
     }
 
     /**
index 7c4cca2b0b595f1a36fca547b98d1114d741e934..fa0b98b1b1b202a5fad40408baec2346f682fa7d 100644 (file)
@@ -54,7 +54,7 @@ public class StressComponentsInTable extends CustomComponent {
                     Button b = event.getButton();
                     System.out.println(b.getCaption() + " click: "
                             + (new Date()).toString());
-                    System.out.println(b.getApplication());
+                    System.out.println(b.getUI().getSession());
 
                 }
             }));
index b0697d337d41fbef4fc8c83c052b3b5b52d7a356..7c2359a4049e30a0547acc23600b4747650f9c15 100644 (file)
@@ -244,7 +244,7 @@ public class TestForUpload extends CustomComponent implements
 
             @Override
             public void buttonClick(ClickEvent event) {
-                getApplication().close();
+                getSession().close();
             }
         });
         main.addComponent(restart);
index 7250ba3cfb142293a391ef8dbbb84a028819192f..8cfed569dc246076e8d711b4e66df0e7ce31abc2 100644 (file)
@@ -26,7 +26,7 @@ public class ApplicationCloseTest extends TestBase {
 
             @Override
             public void buttonClick(ClickEvent event) {
-                event.getButton().getApplication().close();
+                event.getButton().getUI().getSession().close();
             }
         });
 
index 92ac336df76515fa0d78f1d386815ed1a862f033..210cb2535ec41a2ec7dd68be0ffacc5bdadd5678 100644 (file)
@@ -54,7 +54,7 @@ public abstract class AbstractTestUI extends UI {
     protected abstract Integer getTicketNumber();
 
     protected WebBrowser getBrowser() {
-        return getApplication().getBrowser();
+        return getSession().getBrowser();
     }
 
 }
index 30b878b7eb5783d367892278a5f3bed1e15146a4..5d36b8381b1d445d7c3e525111d3dfd6d1eb12ea 100644 (file)
@@ -5,8 +5,8 @@ import com.vaadin.data.Container;
 import com.vaadin.data.util.IndexedContainer;
 import com.vaadin.ui.Label;
 import com.vaadin.ui.ProgressIndicator;
-import com.vaadin.ui.UI.LegacyWindow;
 import com.vaadin.ui.Table;
+import com.vaadin.ui.UI.LegacyWindow;
 import com.vaadin.ui.VerticalLayout;
 
 public class TableFirstRowFlicker extends LegacyApplication {
@@ -43,7 +43,7 @@ public class TableFirstRowFlicker extends LegacyApplication {
             @Override
             public void run() {
                 while (t != null) {
-                    synchronized (t.getApplication()) {
+                    synchronized (t.getUI().getSession()) {
                         int firstId = t.getCurrentPageFirstItemIndex();
                         Object selected = t.getValue();
                         t.setContainerDataSource(buildContainer());
index f6368f0c78509519c3a4302a779c09532d3d4dad..d63d7ddc6654cd7e89e02b3a1e13eb55d8fa61da 100644 (file)
@@ -30,7 +30,8 @@ public class SelectionAndCursorPosition extends TestBase {
         ml.addListener(new Property.ValueChangeListener() {
             @Override
             public void valueChange(ValueChangeEvent event) {
-                if (textField.getApplication() == null) {
+                if (textField.getUI() == null
+                        || textField.getUI().getSession() == null) {
                     replaceComponent(textArea, textField);
                     activeComponent = textField;
                 } else {
index f4050ea0855da32ca03cbfd8c5d20e3b95b11809..b584cdb5cf6eaeba08857f8f40e8c177b9894824 100644 (file)
@@ -73,7 +73,7 @@ public class ComplexGLColumnExpansionWithColSpan extends AbstractTestCase {
         restart.addListener(new Button.ClickListener() {
             @Override
             public void buttonClick(Button.ClickEvent event) {
-                mainLayout.getUI().getApplication().close();
+                mainLayout.getUI().getSession().close();
             }
         });
 
index 2cbff6411743c63749f3ddd0c7be1f458e8514a8..ff2263e2089df33500c96ae772887aa99908ad6f 100644 (file)
@@ -7,7 +7,7 @@ import com.vaadin.ui.TextField;
 public class CustomConverterFactoryUI extends AbstractTestUI {
     @Override
     public void setup(WrappedRequest request) {
-        getApplication().setConverterFactory(new MyConverterFactory());
+        getSession().setConverterFactory(new MyConverterFactory());
 
         TextField tf = new TextField("This is my double field");
         tf.setImmediate(true);
index d78cdd9ad5238b21978fdb282176ad3aa133876f..632eda24911b954b81f7baf319fefee7774cd22a 100644 (file)
@@ -20,12 +20,12 @@ public class DynamicImageUI extends AbstractTestUI {
     @Override
     public void setup(WrappedRequest request) {
         // Add the request handler that handles our dynamic image
-        getApplication().addRequestHandler(new DynamicImageRequestHandler());
+        getSession().addRequestHandler(new DynamicImageRequestHandler());
 
         // Create a URL that we can handle in DynamicImageRequestHandler
         URL imageUrl;
         try {
-            imageUrl = new URL(getApplication().getURL(),
+            imageUrl = new URL(getSession().getURL(),
                     DynamicImageRequestHandler.IMAGE_URL + "?text=Hello!");
         } catch (MalformedURLException e) {
             // This should never happen