Author: solomax
Date: Sun Jul  5 06:13:36 2015
New Revision: 1689218

URL: http://svn.apache.org/r1689218
Log:
LabelDao is modified to better work from REST/SOAP services

Modified:
    
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/label/LabelDao.java
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java

Modified: 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/label/LabelDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/label/LabelDao.java?rev=1689218&r1=1689217&r2=1689218&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/label/LabelDao.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/label/LabelDao.java
 Sun Jul  5 06:13:36 2015
@@ -46,7 +46,15 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.XmlExport;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ThreadContext;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
+import org.apache.wicket.mock.MockWebResponse;
+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.cycle.RequestCycle;
+import org.apache.wicket.request.cycle.RequestCycleContext;
 import org.apache.wicket.util.string.Strings;
 import org.dom4j.Document;
 import org.dom4j.Element;
@@ -108,6 +116,23 @@ public class LabelDao implements IDataPr
        }
 
        public String getString(long fieldValuesId, long langId) {
+               Application a = null;
+               if (Application.exists()) {
+                       a = Application.get();
+               } else {
+                       a = 
(Application)Application.get(Application.getAppName());
+                       ThreadContext.setApplication(a);
+               }
+               if (ThreadContext.getRequestCycle() == null) {
+                       ServletWebRequest req = new ServletWebRequest(new 
MockHttpServletRequest((Application)a, new 
MockHttpSession(a.getServletContext()), a.getServletContext()), "");
+                       RequestCycleContext rctx = new RequestCycleContext(req, 
new MockWebResponse(), a.getRootRequestMapper(), 
a.getExceptionMapperProvider().get()); 
+                       ThreadContext.setRequestCycle(new RequestCycle(rctx));
+               }
+               if (ThreadContext.getSession() == null) {
+                       WebSession s = WebSession.get();
+                       s.setLanguage(langId);
+                       ThreadContext.setSession(s);
+               }
                return Application.getString(fieldValuesId, langId);
        }
 

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java?rev=1689218&r1=1689217&r2=1689218&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
 Sun Jul  5 06:13:36 2015
@@ -43,12 +43,21 @@ import javax.xml.parsers.SAXParserFactor
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.Predicate;
 import org.apache.openmeetings.IApplication;
+import org.apache.openmeetings.IWebSession;
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.label.StringLabel;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.XmlExport;
 import org.apache.wicket.Application;
+import org.apache.wicket.ThreadContext;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
+import org.apache.wicket.mock.MockWebResponse;
+import org.apache.wicket.protocol.http.WebSession;
+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.cycle.RequestCycle;
+import org.apache.wicket.request.cycle.RequestCycleContext;
 import org.apache.wicket.util.string.Strings;
 import org.dom4j.Document;
 import org.dom4j.Element;
@@ -110,12 +119,30 @@ public class LabelDao implements IDataPr
                return result;
        }
 
-       public static IApplication getApp() {
-               return (IApplication)Application.get(wicketApplicationName);
+       public static IApplication getApp(long langId) {
+               IApplication a = null;
+               if (Application.exists()) {
+                       a = (IApplication)Application.get();
+               } else {
+                       Application app = 
Application.get(wicketApplicationName);
+                       ThreadContext.setApplication(app);
+                       a = 
(IApplication)Application.get(wicketApplicationName);
+               }
+               if (ThreadContext.getRequestCycle() == null) {
+                       ServletWebRequest req = new ServletWebRequest(new 
MockHttpServletRequest((Application)a, new 
MockHttpSession(a.getServletContext()), a.getServletContext()), "");
+                       RequestCycleContext rctx = new RequestCycleContext(req, 
new MockWebResponse(), a.getRootRequestMapper(), 
a.getExceptionMapperProvider().get()); 
+                       ThreadContext.setRequestCycle(new RequestCycle(rctx));
+               }
+               if (ThreadContext.getSession() == null) {
+                       WebSession s = WebSession.get();
+                       ((IWebSession)s).setLanguage(langId);
+                       ThreadContext.setSession(s);
+               }
+               return a;
        }
        
        public String getString(long fieldValuesId, long langId) {
-               return getApp().getOmString(fieldValuesId, langId);
+               return getApp(langId).getOmString(fieldValuesId, langId);
        }
 
        private static File getLangFile() {


Reply via email to