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