Author: solomax
Date: Mon Apr 21 11:06:00 2014
New Revision: 1588869

URL: http://svn.apache.org/r1588869
Log:
[OPENMEETINGS-982] ApplicationContext is not being recreated while reminder 
sending

Modified:
    
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java
    
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
    
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java

Modified: 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java
 Mon Apr 21 11:06:00 2014
@@ -83,9 +83,11 @@ public class Application extends Authent
        private static boolean isInstalled;
        private static Map<Long, Set<String>> ONLINE_USERS = new 
ConcurrentHashMap<Long, Set<String>>();
        private DashboardContext dashboardContext;
+       private static String appName;
        
        @Override
        protected void init() {
+               appName = super.getName();
                getSecuritySettings().setAuthenticationStrategy(new 
OmAuthenticationStrategy());
                IPageSettings pageSettings = getPageSettings();
                pageSettings.addComponentResolver(new MessageResolver());
@@ -272,4 +274,8 @@ public class Application extends Authent
                        tester.destroy();
                }
        }
+       
+       public static String getAppName() {
+               return appName;
+       }
 }

Modified: 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
 Mon Apr 21 11:06:00 2014
@@ -275,7 +275,7 @@ public class WebSession extends Abstract
                        (STRINGS_WITH_APP.contains(id) ? 
s.replaceAll("\\$APP_NAME", getBean(ConfigurationDao.class).getAppName()) : s);
        }
        
-       void setLanguage(long languageId) {
+       public void setLanguage(long languageId) {
                this.languageId = languageId;
        }
        

Modified: 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
 Mon Apr 21 11:06:00 2014
@@ -18,19 +18,23 @@
  */
 package org.apache.openmeetings.web.mail.template;
 
-import static org.apache.openmeetings.web.app.Application.getWicketTester;
-
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ThreadContext;
 import org.apache.wicket.markup.IMarkupResourceStreamProvider;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.mock.MockWebResponse;
 import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.protocol.http.mock.MockHttpServletRequest;
+import org.apache.wicket.protocol.http.mock.MockHttpSession;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.cycle.RequestCycleContext;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
-import org.apache.wicket.util.tester.WicketTester;
 
 public abstract class AbstractTemplatePanel extends Panel {
        private static final long serialVersionUID = 1L;
@@ -75,17 +79,18 @@ public abstract class AbstractTemplatePa
                }
        }
        
-       static WicketTester ensureApplication() {
-               return ensureApplication(-1);
-       }
-       
-       static WicketTester ensureApplication(long langId) {
-               WicketTester tester = null;
-               try {
-                       Application.get();
-               } catch (Exception e) {
-                       tester = getWicketTester(langId);
+       public static void ensureApplication(long langId) {
+               if (!Application.exists()) {
+                       Application a = 
(Application)Application.get(Application.getAppName());
+                       ThreadContext.setApplication(a);
+                       
+                       ServletWebRequest req = new ServletWebRequest(new 
MockHttpServletRequest(a, new MockHttpSession(a.getServletContext()), 
a.getServletContext()), "");
+                       RequestCycleContext rctx = new RequestCycleContext(req, 
new MockWebResponse(), a.getRootRequestMapper(), 
a.getExceptionMapperProvider().get()); 
+                       ThreadContext.setRequestCycle(new RequestCycle(rctx));
+                       
+                       WebSession s = WebSession.get();
+                       s.setLanguage(1);
+                       ThreadContext.setSession(s);
                }
-               return tester;
        }
 }

Modified: 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
 Mon Apr 21 11:06:00 2014
@@ -18,11 +18,9 @@
  */
 package org.apache.openmeetings.web.mail.template;
 
-import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
-import org.apache.wicket.util.tester.WicketTester;
 
 public class InvitationTemplate extends AbstractTemplatePanel {
        private static final long serialVersionUID = 1L;
@@ -50,12 +48,7 @@ public class InvitationTemplate extends 
        }
        
        public static String getEmail(long langId, String user, String message, 
String link, boolean isCanceled) {
-               WicketTester tester = null;
-               try {
-                       tester = ensureApplication(langId);
-                       return renderPanel(new 
InvitationTemplate(TemplatePage.COMP_ID, user, message, link, 
isCanceled)).toString();
-               } finally {
-                       Application.destroy(tester);
-               }
+               ensureApplication(langId);
+               return renderPanel(new InvitationTemplate(TemplatePage.COMP_ID, 
user, message, link, isCanceled)).toString();
        }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 Mon Apr 21 11:06:00 2014
@@ -83,9 +83,11 @@ public class Application extends Authent
        private static boolean isInstalled;
        private static Map<Long, Set<String>> ONLINE_USERS = new 
ConcurrentHashMap<Long, Set<String>>();
        private DashboardContext dashboardContext;
+       private static String appName;
        
        @Override
        protected void init() {
+               appName = super.getName();
                getSecuritySettings().setAuthenticationStrategy(new 
OmAuthenticationStrategy());
                IPageSettings pageSettings = getPageSettings();
                pageSettings.addComponentResolver(new MessageResolver());
@@ -272,4 +274,8 @@ public class Application extends Authent
                        tester.destroy();
                }
        }
+       
+       public static String getAppName() {
+               return appName;
+       }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 Mon Apr 21 11:06:00 2014
@@ -275,7 +275,7 @@ public class WebSession extends Abstract
                        (STRINGS_WITH_APP.contains(id) ? 
s.replaceAll("\\$APP_NAME", getBean(ConfigurationDao.class).getAppName()) : s);
        }
        
-       void setLanguage(long languageId) {
+       public void setLanguage(long languageId) {
                this.languageId = languageId;
        }
        

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
 Mon Apr 21 11:06:00 2014
@@ -18,19 +18,23 @@
  */
 package org.apache.openmeetings.web.mail.template;
 
-import static org.apache.openmeetings.web.app.Application.getWicketTester;
-
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ThreadContext;
 import org.apache.wicket.markup.IMarkupResourceStreamProvider;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.mock.MockWebResponse;
 import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.protocol.http.mock.MockHttpServletRequest;
+import org.apache.wicket.protocol.http.mock.MockHttpSession;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.cycle.RequestCycleContext;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
-import org.apache.wicket.util.tester.WicketTester;
 
 public abstract class AbstractTemplatePanel extends Panel {
        private static final long serialVersionUID = 1L;
@@ -75,17 +79,18 @@ public abstract class AbstractTemplatePa
                }
        }
        
-       static WicketTester ensureApplication() {
-               return ensureApplication(-1);
-       }
-       
-       static WicketTester ensureApplication(long langId) {
-               WicketTester tester = null;
-               try {
-                       Application.get();
-               } catch (Exception e) {
-                       tester = getWicketTester(langId);
+       public static void ensureApplication(long langId) {
+               if (!Application.exists()) {
+                       Application a = 
(Application)Application.get(Application.getAppName());
+                       ThreadContext.setApplication(a);
+                       
+                       ServletWebRequest req = new ServletWebRequest(new 
MockHttpServletRequest(a, new MockHttpSession(a.getServletContext()), 
a.getServletContext()), "");
+                       RequestCycleContext rctx = new RequestCycleContext(req, 
new MockWebResponse(), a.getRootRequestMapper(), 
a.getExceptionMapperProvider().get()); 
+                       ThreadContext.setRequestCycle(new RequestCycle(rctx));
+                       
+                       WebSession s = WebSession.get();
+                       s.setLanguage(1);
+                       ThreadContext.setSession(s);
                }
-               return tester;
        }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java?rev=1588869&r1=1588868&r2=1588869&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
 Mon Apr 21 11:06:00 2014
@@ -18,11 +18,9 @@
  */
 package org.apache.openmeetings.web.mail.template;
 
-import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
-import org.apache.wicket.util.tester.WicketTester;
 
 public class InvitationTemplate extends AbstractTemplatePanel {
        private static final long serialVersionUID = 1L;
@@ -50,12 +48,7 @@ public class InvitationTemplate extends 
        }
        
        public static String getEmail(long langId, String user, String message, 
String link, boolean isCanceled) {
-               WicketTester tester = null;
-               try {
-                       tester = ensureApplication(langId);
-                       return renderPanel(new 
InvitationTemplate(TemplatePage.COMP_ID, user, message, link, 
isCanceled)).toString();
-               } finally {
-                       Application.destroy(tester);
-               }
+               ensureApplication(langId);
+               return renderPanel(new InvitationTemplate(TemplatePage.COMP_ID, 
user, message, link, isCanceled)).toString();
        }
 }


Reply via email to