Author: tveronezi
Date: Wed Jun 13 03:04:17 2012
New Revision: 1349621

URL: http://svn.apache.org/viewvc?rev=1349621&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-224
* lookup the bean and save it as a "saved object".

Added:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/application/
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/application/ApplicationData.java
      - copied, changed from r1349563, 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/ApplicationListener.java
Modified:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/UserSessionListener.java
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java

Copied: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/application/ApplicationData.java
 (from r1349563, 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/application/ApplicationData.java?p2=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/application/ApplicationData.java&p1=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java&r1=1349563&r2=1349621&rev=1349621&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/application/ApplicationData.java
 Wed Jun 13 03:04:17 2012
@@ -15,41 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.tomee.webapp;
+package org.apache.tomee.webapp.application;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
+public class ApplicationData {
 
-public class SessionData {
 
-    private final Map<String, Object> saved = Collections.synchronizedMap(new 
HashMap<String, Object>());
-    private final Context initCtx;
-
-    public SessionData() {
-        final Properties p = new Properties();
-        p.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.core.LocalInitialContextFactory");
-        p.put("openejb.loader", "embed");
-
-        final Context initCtx;
-        try {
-            initCtx = new InitialContext(p);
-        } catch (NamingException e) {
-            throw new TomeeException(e);
-        }
-        this.initCtx = initCtx;
-    }
-
-    public Map<String, Object> getSaved() {
-        return this.saved;
-    }
-
-    public Context getUserContext() {
-        return this.initCtx;
-
-    }
 }

Added: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/ApplicationListener.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/ApplicationListener.java?rev=1349621&view=auto
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/ApplicationListener.java
 (added)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/ApplicationListener.java
 Wed Jun 13 03:04:17 2012
@@ -0,0 +1,42 @@
+/*
+ * 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.tomee.webapp.listener;
+
+import org.apache.tomee.webapp.application.ApplicationData;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.http.HttpSession;
+
+public class ApplicationListener implements ServletContextListener {
+    private static final String CONTEXT_KEY = 
"ApplicationListener_APP_CONTEXT";
+
+    @Override
+    public void contextInitialized(ServletContextEvent servletContextEvent) {
+        servletContextEvent.getServletContext().setAttribute(CONTEXT_KEY, new 
ApplicationData());
+    }
+
+    @Override
+    public void contextDestroyed(ServletContextEvent servletContextEvent) {
+        //nothing
+    }
+
+    public static ApplicationData getServiceContext(HttpSession session) {
+        return (ApplicationData) 
session.getServletContext().getAttribute(CONTEXT_KEY);
+    }
+}

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/UserSessionListener.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/UserSessionListener.java?rev=1349621&r1=1349620&r2=1349621&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/UserSessionListener.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/listener/UserSessionListener.java
 Wed Jun 13 03:04:17 2012
@@ -25,11 +25,11 @@ import javax.servlet.http.HttpSessionLis
 import java.util.HashMap;
 
 public class UserSessionListener implements HttpSessionListener {
-    private static final String USER_CONTEXT = 
"UserSessionListener_USER_CONTEXT";
+    private static final String CONTEXT_KEY = 
"UserSessionListener_USER_CONTEXT";
 
     @Override
     public void sessionCreated(HttpSessionEvent httpSessionEvent) {
-        httpSessionEvent.getSession().setAttribute(USER_CONTEXT, new 
SessionData());
+        httpSessionEvent.getSession().setAttribute(CONTEXT_KEY, new 
SessionData());
 
         //this i used by the old tomee gui
         //TODO: remove me once the new gui is ready
@@ -42,6 +42,6 @@ public class UserSessionListener impleme
     }
 
     public static SessionData getServiceContext(HttpSession session) {
-        return (SessionData) session.getAttribute(USER_CONTEXT);
+        return (SessionData) session.getAttribute(CONTEXT_KEY);
     }
 }

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java?rev=1349621&r1=1349620&r2=1349621&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java
 Wed Jun 13 03:04:17 2012
@@ -37,7 +37,7 @@ public class SessionDataServlet extends 
 
                 final Map<String, Object> savedObjs = 
UserSessionListener.getServiceContext(req.getSession()).getSaved();
                 for (String key : savedObjs.keySet()) {
-                    json.put(key, savedObjs.get(key));
+                    json.put(key, String.valueOf(savedObjs.get(key)));
                 }
             }
         });


Reply via email to