]> source.dussan.org Git - vaadin-framework.git/commitdiff
Remove VaadinServletSession (#9638) 13/13/2
authorLeif Åstrand <leif@vaadin.com>
Fri, 28 Sep 2012 12:31:03 +0000 (15:31 +0300)
committerLeif Åstrand <leif@vaadin.com>
Mon, 1 Oct 2012 08:59:36 +0000 (11:59 +0300)
Change-Id: I0e25ba1a6d258b8601c009f6dc062b3f4bd3dbce

server/src/com/vaadin/server/CommunicationManager.java
server/src/com/vaadin/server/GAEVaadinServlet.java
server/src/com/vaadin/server/VaadinService.java
server/src/com/vaadin/server/VaadinServlet.java
server/src/com/vaadin/server/VaadinServletService.java
server/src/com/vaadin/server/VaadinServletSession.java [deleted file]
server/src/com/vaadin/server/WrappedHttpSession.java
server/src/com/vaadin/server/WrappedPortletSession.java
server/src/com/vaadin/server/WrappedSession.java
uitest/src/com/vaadin/tests/applicationcontext/ChangeSessionId.java

index f876e748f84c6c451ae787081ae04f7ba293238f..5f6107926155786bf7050642bffd4fa17363c68a 100644 (file)
@@ -110,8 +110,9 @@ public class CommunicationManager extends AbstractCommunicationManager {
     @Override
     protected InputStream getThemeResourceAsStream(UI uI, String themeName,
             String resource) {
-        VaadinServletSession session = (VaadinServletSession) uI.getSession();
-        ServletContext servletContext = session.getHttpSession()
+        VaadinServletService service = (VaadinServletService) uI.getSession()
+                .getService();
+        ServletContext servletContext = service.getServlet()
                 .getServletContext();
         return servletContext.getResourceAsStream("/"
                 + VaadinServlet.THEME_DIRECTORY_PATH + themeName + "/"
index 6c9c1882ea1bfeba2ee5fbd09d09cec061c5b7d5..c68f25a282108b2e51446565ef87761d5229047f 100644 (file)
@@ -361,11 +361,18 @@ public class GAEVaadinServlet extends VaadinServlet {
      * 
      * @param request
      */
-    private void cleanSession(HttpServletRequest request) {
-        HttpSession session = request.getSession(false);
-        if (session != null) {
-            session.removeAttribute(VaadinServletSession.class.getName());
+    private void cleanSession(VaadinServletRequest request) {
+        // Should really be replaced with a session storage API...
+        WrappedSession wrappedSession = request.getWrappedSession(false);
+        if (wrappedSession == null) {
+            return;
+        }
+        VaadinServiceSession serviceSession = VaadinServiceSession
+                .getForSession(getService(), wrappedSession);
+        if (serviceSession == null) {
+            return;
         }
+        serviceSession.removeFromSession(getService());
     }
 
     /**
index add32bf57b3dacfa69588d81a67c52aedf66ceaa..c56d6caeb5902c595716dcecf17534963866d2a4 100644 (file)
@@ -437,8 +437,10 @@ public abstract class VaadinService implements Serializable {
      * @throws ServletException
      * @throws MalformedURLException
      */
-    protected abstract VaadinServiceSession createVaadinSession(
-            VaadinRequest request) throws ServiceException;
+    protected VaadinServiceSession createVaadinSession(VaadinRequest request)
+            throws ServiceException {
+        return new VaadinServiceSession(this);
+    }
 
     private void onVaadinSessionStarted(VaadinRequest request,
             VaadinServiceSession session) throws ServiceException {
index 7f664be6fb8056aea25c2a72240f791380be9032..e73be682c27471af91071de1ad878fca258a41a3 100644 (file)
@@ -232,7 +232,7 @@ public class VaadinServlet extends HttpServlet implements Constants {
             return;
         }
 
-        VaadinServletSession vaadinSession = null;
+        VaadinServiceSession vaadinSession = null;
 
         try {
             // If a duplicate "close application" URL is received for an
@@ -254,8 +254,7 @@ public class VaadinServlet extends HttpServlet implements Constants {
             }
 
             // Find out the service session this request is related to
-            vaadinSession = (VaadinServletSession) getService()
-                    .findVaadinSession(request);
+            vaadinSession = getService().findVaadinSession(request);
             if (vaadinSession == null) {
                 return;
             }
index ca894b8a4facb61b5068347225d7a61875ba2620..d746ee2303b5d0cdac4b864e6c748ca8013c63b8 100644 (file)
@@ -185,12 +185,6 @@ public class VaadinServletService extends VaadinService {
         return (VaadinServletResponse) VaadinService.getCurrentResponse();
     }
 
-    @Override
-    protected VaadinServiceSession createVaadinSession(VaadinRequest request)
-            throws ServiceException {
-        return new VaadinServletSession(this);
-    }
-
     @Override
     public String getServiceName() {
         return getServlet().getServletName();
diff --git a/server/src/com/vaadin/server/VaadinServletSession.java b/server/src/com/vaadin/server/VaadinServletSession.java
deleted file mode 100644 (file)
index aa31a19..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed 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 com.vaadin.server;
-
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionBindingListener;
-
-/**
- * Web application context for Vaadin applications.
- * 
- * This is automatically added as a {@link HttpSessionBindingListener} when
- * added to a {@link HttpSession}.
- * 
- * @author Vaadin Ltd.
- * @since 3.1
- * 
- * @deprecated might be refactored or removed before 7.0.0
- */
-@Deprecated
-@SuppressWarnings("serial")
-public class VaadinServletSession extends VaadinServiceSession {
-
-    /**
-     * Create a servlet service session for the given servlet service
-     * 
-     * @param service
-     *            the servlet service to which the new session belongs
-     */
-    public VaadinServletSession(VaadinServletService service) {
-        super(service);
-    }
-
-    /**
-     * Gets the http-session application is running in.
-     * 
-     * @return HttpSession this application context resides in.
-     */
-    public HttpSession getHttpSession() {
-        WrappedSession session = getSession();
-        return ((WrappedHttpSession) session).getHttpSession();
-    }
-
-}
index e13a63635b65434e1464eb655ca57235aac2e763..65db010ba93380784b859a72a0d9a0acd11e1e54 100644 (file)
@@ -88,4 +88,9 @@ public class WrappedHttpSession implements WrappedSession {
         session.invalidate();
     }
 
+    @Override
+    public String getId() {
+        return session.getId();
+    }
+
 }
index 03c1d7ba1f1eb17476aadf101755afd1f82571ea..f4a6003ed58426314d9e7e2a23a085d607e789aa 100644 (file)
@@ -74,4 +74,9 @@ public class WrappedPortletSession implements WrappedSession {
     public void invalidate() {
         session.invalidate();
     }
+
+    @Override
+    public String getId() {
+        return session.getId();
+    }
 }
index 34443239c7401e19b78529eb1cdf68b592a5fd9b..cf0b1a2fbd8a43b3c8918ce0ce08936dec98489b 100644 (file)
@@ -86,4 +86,11 @@ public interface WrappedSession {
      * @see PortletSession#invalidate()
      */
     public void invalidate();
+
+    /**
+     * Gets a string with a unique identifier for the session.
+     * 
+     * @return a unique session id string
+     */
+    public String getId();
 }
index 4495b343d05b1eb483256a43c5fa93a518f486ec..fa0f13e1725e5ab8a70020ada3d7c62a47a4d959 100644 (file)
@@ -1,7 +1,6 @@
 package com.vaadin.tests.applicationcontext;
 
 import com.vaadin.server.VaadinService;
-import com.vaadin.server.VaadinServletSession;
 import com.vaadin.tests.components.AbstractTestCase;
 import com.vaadin.tests.util.Log;
 import com.vaadin.ui.Button;
@@ -30,15 +29,13 @@ public class ChangeSessionId extends AbstractTestCase {
                 }));
         setMainWindow(mainWindow);
 
-        loginButton.addListener(new ClickListener() {
+        loginButton.addClickListener(new ClickListener() {
             @Override
             public void buttonClick(ClickEvent event) {
-                VaadinServletSession context = ((VaadinServletSession) getContext());
-
-                String oldSessionId = context.getHttpSession().getId();
-                context.getService().reinitializeSession(
-                        VaadinService.getCurrentRequest());
-                String newSessionId = context.getHttpSession().getId();
+                String oldSessionId = getSessionId();
+                VaadinService.reinitializeSession(VaadinService
+                        .getCurrentRequest());
+                String newSessionId = getSessionId();
                 if (oldSessionId.equals(newSessionId)) {
                     log.log("FAILED! Both old and new session id is "
                             + newSessionId);
@@ -57,7 +54,7 @@ public class ChangeSessionId extends AbstractTestCase {
     }
 
     protected String getSessionId() {
-        return ((VaadinServletSession) getContext()).getHttpSession().getId();
+        return getContext().getSession().getId();
     }
 
     @Override