details:   https://code.openbravo.com/erp/devel/pi/rev/411e649e4822
changeset: 14049:411e649e4822
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Sat Oct 22 13:17:22 2011 +0200
summary:   Solve warnings in export.database

details:   https://code.openbravo.com/erp/devel/pi/rev/c2285f2bda0f
changeset: 14050:c2285f2bda0f
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Sat Oct 22 13:18:30 2011 +0200
summary:   Fixes issue 18829: Set the request/response object in the 
RequestContext using a filter
Set RequestContext information using a filter so that it also works for 
requests outside of the KernelServlet

diffstat:

 
modules/org.openbravo.client.application/src-db/database/model/tables/OBUIAPP_NOTE.xml
     |  10 +-
 
modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT.xml
         |  14 +
 
modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml
 |  10 +
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
 |   3 -
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelFilter.java
      |  74 ++++++++++
 5 files changed, 106 insertions(+), 5 deletions(-)

diffs (164 lines):

diff -r f445314a308e -r c2285f2bda0f 
modules/org.openbravo.client.application/src-db/database/model/tables/OBUIAPP_NOTE.xml
--- 
a/modules/org.openbravo.client.application/src-db/database/model/tables/OBUIAPP_NOTE.xml
    Fri Oct 21 18:14:29 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src-db/database/model/tables/OBUIAPP_NOTE.xml
    Sat Oct 22 13:18:30 2011 +0200
@@ -45,13 +45,19 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <foreign-key foreignTable="AD_CLIENT" name="OBUIAPP_NOTE_AD_CLIENT">
+        <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
+      </foreign-key>
+      <foreign-key foreignTable="AD_ORG" name="OBUIAPP_NOTE_AD_ORG">
+        <reference local="AD_ORG_ID" foreign="AD_ORG_ID"/>
+      </foreign-key>
       <foreign-key foreignTable="AD_TABLE" name="OBUIAPP_NOTE_AD_TABLE">
         <reference local="AD_TABLE_ID" foreign="AD_TABLE_ID"/>
       </foreign-key>
-      <index name="FKI_OBUISEL_S_AD_TABLE" unique="false">
+      <index name="OBUIAPP_NOTE_AD_TABLE" unique="false">
         <index-column name="AD_TABLE_ID"/>
       </index>
-      <index name="FKI_OBUISEL_S_RECORD" unique="false">
+      <index name="OBUIAPP_NOTE_RECORD" unique="false">
         <index-column name="RECORD_ID"/>
       </index>
     </table>
diff -r f445314a308e -r c2285f2bda0f 
modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT.xml
--- 
a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT.xml
        Fri Oct 21 18:14:29 2011 +0200
+++ 
b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT.xml
        Sat Oct 22 13:18:30 2011 +0200
@@ -27,4 +27,18 @@
 <!--FF8081812DB7706D012DB777A1AD0010-->  
<NAME><![CDATA[org.openbravo.client.kernel.KernelContextListener]]></NAME>
 <!--FF8081812DB7706D012DB777A1AD0010--></AD_MODEL_OBJECT>
 
+<!--FF808181332A531601332A63F89D0007--><AD_MODEL_OBJECT>
+<!--FF808181332A531601332A63F89D0007-->  
<AD_MODEL_OBJECT_ID><![CDATA[FF808181332A531601332A63F89D0007]]></AD_MODEL_OBJECT_ID>
+<!--FF808181332A531601332A63F89D0007-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF808181332A531601332A63F89D0007-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF808181332A531601332A63F89D0007-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF808181332A531601332A63F89D0007-->  <ACTION><![CDATA[M]]></ACTION>
+<!--FF808181332A531601332A63F89D0007-->  
<CLASSNAME><![CDATA[org.openbravo.client.kernel.KernelFilter]]></CLASSNAME>
+<!--FF808181332A531601332A63F89D0007-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--FF808181332A531601332A63F89D0007-->  
<AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
+<!--FF808181332A531601332A63F89D0007-->  
<OBJECT_TYPE><![CDATA[F]]></OBJECT_TYPE>
+<!--FF808181332A531601332A63F89D0007-->  <SEQNO><![CDATA[20]]></SEQNO>
+<!--FF808181332A531601332A63F89D0007-->  <NAME><![CDATA[Kernel Filter]]></NAME>
+<!--FF808181332A531601332A63F89D0007--></AD_MODEL_OBJECT>
+
 </data>
diff -r f445314a308e -r c2285f2bda0f 
modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml
--- 
a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml
        Fri Oct 21 18:14:29 2011 +0200
+++ 
b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml
        Sat Oct 22 13:18:30 2011 +0200
@@ -10,4 +10,14 @@
 <!--3CDE7337975747B5A00189E114DB2948-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
 <!--3CDE7337975747B5A00189E114DB2948--></AD_MODEL_OBJECT_MAPPING>
 
+<!--FF808181332A531601332A640FE9000A--><AD_MODEL_OBJECT_MAPPING>
+<!--FF808181332A531601332A640FE9000A-->  
<AD_MODEL_OBJECT_MAPPING_ID><![CDATA[FF808181332A531601332A640FE9000A]]></AD_MODEL_OBJECT_MAPPING_ID>
+<!--FF808181332A531601332A640FE9000A-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF808181332A531601332A640FE9000A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF808181332A531601332A640FE9000A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF808181332A531601332A640FE9000A-->  
<AD_MODEL_OBJECT_ID><![CDATA[FF808181332A531601332A63F89D0007]]></AD_MODEL_OBJECT_ID>
+<!--FF808181332A531601332A640FE9000A-->  
<MAPPINGNAME><![CDATA[/*]]></MAPPINGNAME>
+<!--FF808181332A531601332A640FE9000A-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--FF808181332A531601332A640FE9000A--></AD_MODEL_OBJECT_MAPPING>
+
 </data>
diff -r f445314a308e -r c2285f2bda0f 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
        Fri Oct 21 18:14:29 2011 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
        Sat Oct 22 13:18:30 2011 +0200
@@ -50,7 +50,6 @@
   public void init(ServletConfig config) {
     super.init(config);
     boolHist = false;
-    RequestContext.setServletContext(config.getServletContext());
   }
 
   public void service(final HttpServletRequest request, HttpServletResponse 
response)
@@ -60,8 +59,6 @@
     final KernelHttpServletResponse localResponse = new 
KernelHttpServletResponse();
     localResponse.setDelegate(response);
 
-    RequestContext.get().setRequest(request);
-    RequestContext.get().setResponse(localResponse);
     callServiceInSuper(request, localResponse);
 
     if (localResponse.isDoLogout()) {
diff -r f445314a308e -r c2285f2bda0f 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelFilter.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelFilter.java
     Sat Oct 22 13:18:30 2011 +0200
@@ -0,0 +1,74 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html 
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License. 
+ * The Original Code is Openbravo ERP. 
+ * The Initial Developer of the Original Code is Openbravo SLU 
+ * All portions are Copyright (C) 2011 Openbravo SLU 
+ * All Rights Reserved. 
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+
+package org.openbravo.client.kernel;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.openbravo.dal.core.DalThreadHandler;
+
+/**
+ * Sets the request/response object in the request context.
+ * 
+ * @author mtaal
+ */
+
+public class KernelFilter implements Filter {
+
+  public void init(FilterConfig fConfig) throws ServletException {
+    RequestContext.setServletContext(fConfig.getServletContext());
+  }
+
+  public void destroy() {
+  }
+
+  public void doFilter(final ServletRequest request, final ServletResponse 
response,
+      final FilterChain chain) throws IOException, ServletException {
+    final DalThreadHandler dth = new DalThreadHandler() {
+
+      @Override
+      public void doBefore() {
+        RequestContext.get().setRequest((HttpServletRequest) request);
+        RequestContext.get().setResponse((HttpServletResponse) response);
+      }
+
+      @Override
+      protected void doAction() throws Exception {
+        chain.doFilter(request, response);
+      }
+
+      @Override
+      public void doFinal(boolean errorOccured) {
+        RequestContext.clear();
+        super.doFinal(errorOccured);
+      }
+    };
+
+    dth.run();
+  }
+}
\ No newline at end of file

------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to