You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/04/21 13:06:00 UTC

svn commit: r1588869 - in /openmeetings: branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/ branches/3.0.x/src/web/java/org/apache/openmeetings/web/mail/template/ trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/a...

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();
 	}
 }