Very nice! I'm impressed.

-Adrian

[EMAIL PROTECTED] wrote:
Author: doogie
Date: Mon Nov 17 22:09:58 2008
New Revision: 718491

URL: http://svn.apache.org/viewvc?rev=718491&view=rev
Log:
Implement multiple resource loading from the classpath; this means
that framework doesn't have to reference transforms that exist in
later components.

Added:
    ofbiz/trunk/applications/content/config/freemarkerTransforms.properties
      - copied unchanged from r681276, 
ofbiz/trunk/framework/webapp/config/applicationTransforms.properties
    ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties
      - copied, changed from r566645, 
ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties
    ofbiz/trunk/framework/widget/config/freemarkerTransforms.properties
      - copied, changed from r566645, 
ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties
Removed:
    ofbiz/trunk/framework/webapp/config/applicationTransforms.properties
Modified:
    
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java

Modified: 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java?rev=718491&r1=718490&r2=718491&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java
 (original)
+++ 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java
 Mon Nov 17 22:09:58 2008
@@ -28,6 +28,7 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
@@ -89,29 +90,31 @@
         } catch (TemplateException e) {
             Debug.logError("Unable to set date/time and number formats in 
FreeMarker: " + e, module);
         }
-        // Load framework transforms first.
         // Transforms properties file set up as key=transform name, 
property=transform class name
-        Properties props = UtilProperties.getProperties(FRAMEWORK_TRANSFORMS);
-        if (props == null || props.isEmpty()) {
-            Debug.logError("Unable to locate properties file " + 
FRAMEWORK_TRANSFORMS, module);
-        } else {
-            loadTransforms(props);
-        }
-
-        // Load application transforms next.
-        props = UtilProperties.getProperties(APPLICATION_TRANSFORMS);
-        if (props == null || props.isEmpty()) {
-            Debug.logWarning("Unable to locate properties file " + 
APPLICATION_TRANSFORMS + ". If you are using only the OFBiz framework, then this warning can 
be ignored.", module);
-        } else {
-            loadTransforms(props);
+        ClassLoader loader = Thread.currentThread().getContextClassLoader();
+        Enumeration<URL> resources;
+        try {
+            resources = loader.getResources("freemarkerTransforms.properties");
+        } catch (IOException e) {
+            Debug.logError(e, "Could not load list of 
freemarkerTransforms.properties", module);
+            throw (InternalError) new 
InternalError(e.getMessage()).initCause(e);
+        }
+        while (resources.hasMoreElements()) {
+            URL propertyURL = resources.nextElement();
+            Debug.logInfo("loading properties: " + propertyURL, module);
+            Properties props = UtilProperties.getProperties(propertyURL);
+            if (props == null || props.isEmpty()) {
+                Debug.logError("Unable to locate properties file " + 
propertyURL, module);
+            } else {
+                loadTransforms(loader, props);
+            }
         }
     }
/**
      * Protected helper method.
      */
-    protected static void loadTransforms(Properties props) {
-        ClassLoader loader = Thread.currentThread().getContextClassLoader();
+    protected static void loadTransforms(ClassLoader loader, Properties props) 
{
         for (Iterator<Object> i = props.keySet().iterator(); i.hasNext();) {
             String key = (String)i.next();
             String className = props.getProperty(key);

Copied: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties 
(from r566645, 
ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties)
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?p2=ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties&p1=ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties&r1=566645&r2=718491&rev=718491&view=diff
==============================================================================
--- ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties 
(original)
+++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon Nov 
17 22:09:58 2008
@@ -27,4 +27,3 @@
 ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform
 setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod
 renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform
-menuWrap=org.ofbiz.widget.menu.MenuWrapTransform

Copied: ofbiz/trunk/framework/widget/config/freemarkerTransforms.properties 
(from r566645, 
ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties)
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/config/freemarkerTransforms.properties?p2=ofbiz/trunk/framework/widget/config/freemarkerTransforms.properties&p1=ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties&r1=566645&r2=718491&rev=718491&view=diff
==============================================================================
--- ofbiz/trunk/framework/webapp/config/frameworkTransforms.properties 
(original)
+++ ofbiz/trunk/framework/widget/config/freemarkerTransforms.properties Mon Nov 
17 22:09:58 2008
@@ -21,10 +21,4 @@
# entries are in the form: key=transform name, property=transform class name -ofbizUrl=org.ofbiz.webapp.ftl.OfbizUrlTransform
-ofbizContentUrl=org.ofbiz.webapp.ftl.OfbizContentTransform
-ofbizCurrency=org.ofbiz.webapp.ftl.OfbizCurrencyTransform
-ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform
-setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod
-renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform
 menuWrap=org.ofbiz.widget.menu.MenuWrapTransform



Reply via email to