svn commit: r1345849 - in /ofbiz/trunk/framework/webapp: config/url.properties src/org/ofbiz/webapp/view/ApacheFopWorker.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1345849 - in /ofbiz/trunk/framework/webapp: config/url.properties src/org/ofbiz/webapp/view/ApacheFopWorker.java

hansbak-2
Author: hansbak
Date: Mon Jun  4 07:33:24 2012
New Revision: 1345849

URL: http://svn.apache.org/viewvc?rev=1345849&view=rev
Log:
allow the fop configuration to be different between tenants

Modified:
    ofbiz/trunk/framework/webapp/config/url.properties
    ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/view/ApacheFopWorker.java

Modified: ofbiz/trunk/framework/webapp/config/url.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/url.properties?rev=1345849&r1=1345848&r2=1345849&view=diff
==============================================================================
--- ofbiz/trunk/framework/webapp/config/url.properties (original)
+++ ofbiz/trunk/framework/webapp/config/url.properties Mon Jun  4 07:33:24 2012
@@ -43,3 +43,9 @@ link.remove_lsessionid.user_agent_list =
 # Should HTTP parameters sent to services require encryption?
 # This is generally advised for more secure webapps as it makes it more difficult to spoof requests (XSRF) that change data.
 service.http.parameters.require.encrypted=Y
+
+# FOP configurable folder
+fop.path=component://webapp/config
+# Font path for FOP
+fop.font.base.path=component://webapp/config/
+

Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/view/ApacheFopWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/view/ApacheFopWorker.java?rev=1345849&r1=1345848&r2=1345849&view=diff
==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/view/ApacheFopWorker.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/view/ApacheFopWorker.java Mon Jun  4 07:33:24 2012
@@ -44,8 +44,13 @@ import org.apache.fop.apps.MimeConstants
 import org.ofbiz.base.location.FlexibleLocation;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.FileUtil;
+import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.string.FlexibleStringExpander;
+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.DelegatorFactory;
+import org.ofbiz.entity.util.EntityUtilProperties;
 
 /**
  * Apache FOP worker class.
@@ -66,6 +71,16 @@ public class ApacheFopWorker {
      * @return FopFactory The FopFactory instance
      */
     public static FopFactory getFactoryInstance() {
+        Delegator delegator = DelegatorFactory.getDelegator("default");
+        return getFactoryInstance(delegator);
+    }
+
+    /** Returns an instance of the FopFactory class. FOP documentation recommends
+     * the reuse of the factory instance because of the startup time.
+     * @param delegator the delegator
+     * @return FopFactory The FopFactory instance
+     */
+    public static FopFactory getFactoryInstance(Delegator delegator) {
         if (fopFactory == null) {
             synchronized (ApacheFopWorker.class) {
                 if (fopFactory != null) {
@@ -78,13 +93,13 @@ public class ApacheFopWorker {
                 fopFactory.setStrictValidation(false);
 
                 try {
-                    String ofbizHome = System.getProperty("ofbiz.home");
-                    String fopPath = UtilProperties.getPropertyValue("fop.properties", "fop.path", ofbizHome + "/framework/webapp/config");
+                    String fopPath = EntityUtilProperties.getPropertyValue("url.properties", "fop.path", delegator);
                     File userConfigFile = FileUtil.getFile(fopPath + "/fop.xconf");
                     fopFactory.setUserConfig(userConfigFile);
-                    String fopFontBaseUrl = UtilProperties.getPropertyValue("fop.properties", "fop.font.base.url", "file:///" + ofbizHome + "/framework/webapp/config/");
-                    fopFactory.getFontManager().setFontBaseURL(fopFontBaseUrl);
-                    Debug.logInfo("FOP-FontBaseURL: " + fopFontBaseUrl, module);
+                    String fopFontBasePath = EntityUtilProperties.getPropertyValue("url.properties", "fop.font.base.path", delegator);
+                    File fopFontBasePathFile = new File(fopFontBasePath);
+                    URL fopFontBaseUrl = FlexibleLocation.resolveLocation(fopFontBasePathFile.toString());
+                    fopFactory.getFontManager().setFontBaseURL(fopFontBaseUrl.toString());
                 } catch (Exception e) {
                     Debug.logWarning("Error reading FOP configuration", module);
                 }