[jbpm-commits] JBoss JBPM SVN: r6738 - in jbpm4/trunk/modules/pvm/src/main: resources and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Oct 4 21:11:29 EDT 2010


Author: rebody
Date: 2010-10-04 21:11:29 -0400 (Mon, 04 Oct 2010)
New Revision: 6738

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmElFactoryImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmFunctionMapper.java
   jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml
Log:
?\230?\148?\175?\230?\140?\129?\228?\184?\186el?\230?\183?\187?\229?\138?\160?\232?\135?\170?\229?\174?\154?\228?\185?\137function

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmElFactoryImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmElFactoryImpl.java	2010-10-04 16:45:09 UTC (rev 6737)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmElFactoryImpl.java	2010-10-05 01:11:29 UTC (rev 6738)
@@ -21,6 +21,8 @@
  */
 package org.jbpm.pvm.internal.el;
 
+import java.util.HashMap;
+import java.util.Map;
 import javax.el.ArrayELResolver;
 import javax.el.BeanELResolver;
 import javax.el.CompositeELResolver;
@@ -41,13 +43,18 @@
 
 /**
  * @author Tom Baeyens
+ * @author Huisheng Xu
  */
 public class JbpmElFactoryImpl extends JbpmElFactory {
 
   private static Log log = Log.getLog(JbpmElFactoryImpl.class.getName());
 
-  Class<?> functionClass = JstlFunction.class;
+  protected Map<String, Class<?>> functionClassMap = new HashMap<String, Class<?>>();
 
+  public Map<String, Class<?>> getFunctionClassMap() {
+    return functionClassMap;
+  }
+
   /** create ElContext used during parsing time */
   public ELContext createElContext() {
     return createCompositeResolver(null);
@@ -129,7 +136,7 @@
   }
 
   protected FunctionMapper createFunctionMapper() {
-    return new JbpmFunctionMapper(functionClass);
+    return new JbpmFunctionMapper(functionClassMap);
   }
 
   protected JbpmElContext createElContext(CompositeELResolver compositeELResolver, FunctionMapper functionMapper) {

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmFunctionMapper.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmFunctionMapper.java	2010-10-04 16:45:09 UTC (rev 6737)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/el/JbpmFunctionMapper.java	2010-10-05 01:11:29 UTC (rev 6738)
@@ -22,22 +22,40 @@
 package org.jbpm.pvm.internal.el;
 
 import java.lang.reflect.Method;
-
+import java.util.Map;
 import javax.el.FunctionMapper;
 
+import org.jbpm.internal.log.Log;
 
+
 /**
  * @author Tom Baeyens
+ * @author Huisheng Xu
  */
 public class JbpmFunctionMapper extends FunctionMapper {
-  
-  Class<?> functionClass;
-  
-  public JbpmFunctionMapper(Class< ? > funtionClass) {
-    this.functionClass = funtionClass;
+
+  private static Log log = Log.getLog(JbpmFunctionMapper.class.getName());
+
+  protected Map<String, Class<?>> functionClassMap;
+
+  public JbpmFunctionMapper(Map<String, Class<?>> functionClassMap) {
+    this.functionClassMap = functionClassMap;
   }
 
   public Method resolveFunction(String prefix, String localName) {
+    if (functionClassMap == null) {
+      if (log.isInfoEnabled()) {
+        log.info("configure function class has not been configured yet.");
+      }
+      return null;
+    }
+    Class<?> functionClass = functionClassMap.get(prefix);
+    if (functionClass == null) {
+      if (log.isInfoEnabled()) {
+        log.info("cannot find functionClass for prefix : " + prefix);
+      }
+      return null;
+    }
     for (Method method: functionClass.getMethods()) {
       if (method.getName().equals(localName)) {
         return method;

Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml	2010-10-04 16:45:09 UTC (rev 6737)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml	2010-10-05 01:11:29 UTC (rev 6738)
@@ -22,7 +22,20 @@
 
     <object class="org.jbpm.pvm.internal.id.DatabaseIdComposer" init="eager" />
 
-    <object class="org.jbpm.pvm.internal.el.JbpmElFactoryImpl" />
+    <object class="org.jbpm.pvm.internal.el.JbpmElFactoryImpl">
+      <field name="functionClassMap">
+        <map>
+          <entry>
+            <key>
+              <string value=""/>
+            </key>
+            <value>
+              <class class-name="org.jbpm.pvm.internal.el.JstlFunction"/>
+            </value>
+          </entry>
+        </map>
+      </field>
+    </object>
 
     <types resource="jbpm.variable.types.xml" />
 



More information about the jbpm-commits mailing list