Author: doogie
Date: Tue May 14 18:09:31 2013
New Revision: 1482508

URL: http://svn.apache.org/r1482508
Log:
FEATURE: When calling services from an incoming http requests, allow for a 
different request and session attribute name to be specified.

Modified:
    ofbiz/trunk/framework/service/dtd/services.xsd
    ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelParam.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java
    
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java

Modified: ofbiz/trunk/framework/service/dtd/services.xsd
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/dtd/services.xsd?rev=1482508&r1=1482507&r2=1482508&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/dtd/services.xsd (original)
+++ ofbiz/trunk/framework/service/dtd/services.xsd Tue May 14 18:09:31 2013
@@ -401,6 +401,8 @@ under the License.
         <xs:attribute name="form-label" type="xs:string"/>
         <xs:attribute name="entity-name" type="xs:string"/>
         <xs:attribute name="field-name" type="xs:string"/>
+        <xs:attribute name="request-attribute-name" type="xs:string"/>
+        <xs:attribute name="session-attribute-name" type="xs:string"/>
         <xs:attribute name="string-map-prefix" type="xs:string"/>
         <xs:attribute name="string-list-suffix" type="xs:string"/>
         <xs:attribute name="form-display" default="true">

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelParam.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelParam.java?rev=1482508&r1=1482507&r2=1482508&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelParam.java 
(original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelParam.java Tue May 
14 18:09:31 2013
@@ -61,6 +61,12 @@ public class ModelParam implements Seria
     /** The entity field name */
     public String fieldName;
 
+    /** Request attribute to look for if not defined as a parameter */
+    public String requestAttributeName;
+
+    /** Session attribute to look for if not defined as a parameter */
+    public String sessionAttributeName;
+
     /** Parameter prefix for creating an attribute Map */
     public String stringMapPrefix;
 
@@ -97,6 +103,8 @@ public class ModelParam implements Seria
         this.formLabel = param.formLabel;
         this.entityName = param.entityName;
         this.fieldName = param.fieldName;
+        this.requestAttributeName = param.requestAttributeName;
+        this.sessionAttributeName = param.sessionAttributeName;
         this.stringMapPrefix = param.stringMapPrefix;
         this.stringListSuffix = param.stringListSuffix;
         this.validators = param.validators;

Modified: 
ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java?rev=1482508&r1=1482507&r2=1482508&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java 
(original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java 
Tue May 14 18:09:31 2013
@@ -504,6 +504,8 @@ public class ModelServiceReader implemen
             param.mode = 
UtilXml.checkEmpty(attribute.getAttribute("mode")).intern();
             param.entityName = 
UtilXml.checkEmpty(attribute.getAttribute("entity-name")).intern();
             param.fieldName = 
UtilXml.checkEmpty(attribute.getAttribute("field-name")).intern();
+            param.requestAttributeName = 
UtilXml.checkEmpty(attribute.getAttribute("request-attribute-name")).intern();
+            param.sessionAttributeName = 
UtilXml.checkEmpty(attribute.getAttribute("session-attribute-name")).intern();
             param.stringMapPrefix = 
UtilXml.checkEmpty(attribute.getAttribute("string-map-prefix")).intern();
             param.stringListSuffix = 
UtilXml.checkEmpty(attribute.getAttribute("string-list-suffix")).intern();
             param.formLabel = 
attribute.hasAttribute("form-label")?attribute.getAttribute("form-label").intern():null;

Modified: 
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java?rev=1482508&r1=1482507&r2=1482508&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java
 (original)
+++ 
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java
 Tue May 14 18:09:31 2013
@@ -257,7 +257,7 @@ public class ServiceEventHandler impleme
 
                 // next check attributes; do this before parameters so that 
attribute which can be changed by code can override parameters which can't
                 if (UtilValidate.isEmpty(value)) {
-                    Object tempVal = request.getAttribute(name);
+                    Object tempVal = 
request.getAttribute(UtilValidate.isEmpty(modelParam.requestAttributeName) ? 
name : modelParam.requestAttributeName);
                     if (tempVal != null) {
                         value = tempVal;
                     }
@@ -283,7 +283,7 @@ public class ServiceEventHandler impleme
 
                 // then session
                 if (UtilValidate.isEmpty(value)) {
-                    Object tempVal = request.getSession().getAttribute(name);
+                    Object tempVal = 
request.getSession().getAttribute(UtilValidate.isEmpty(modelParam.sessionAttributeName)
 ? name : modelParam.sessionAttributeName);
                     if (tempVal != null) {
                         value = tempVal;
                     }


Reply via email to