You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2013/02/16 17:31:32 UTC

svn commit: r1446913 - /ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/view/ApacheFopWorker.java

Author: adrianc
Date: Sat Feb 16 16:31:31 2013
New Revision: 1446913

URL: http://svn.apache.org/r1446913
Log:
Reverting revision 1345849 because it is not thread-safe and it doesn't work.

It appears this was an attempt to create per-tenant FOP factories, but instead each tenant overwrites other tenant's FOP factory instances.

A proper implementation would require a FOP factory cache keyed by delegator name.

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

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=1446913&r1=1446912&r2=1446913&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 Sat Feb 16 16:31:31 2013
@@ -43,10 +43,8 @@ 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.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.entity.Delegator;
-import org.ofbiz.entity.DelegatorFactory;
-import org.ofbiz.entity.util.EntityUtilProperties;
 
 /**
  * Apache FOP worker class.
@@ -67,16 +65,6 @@ 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) {
@@ -89,15 +77,15 @@ public class ApacheFopWorker {
                 fopFactory.setStrictValidation(false);
 
                 try {
-                    String fopPath = EntityUtilProperties.getPropertyValue("url.properties", "fop.path", delegator);
+                    String ofbizHome = System.getProperty("ofbiz.home");
+                    String fopPath = UtilProperties.getPropertyValue("fop.properties", "fop.path", ofbizHome + "/framework/webapp/config");
                     File userConfigFile = FileUtil.getFile(fopPath + "/fop.xconf");
                     fopFactory.setUserConfig(userConfigFile);
-                    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());
+                    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);
                 } catch (Exception e) {
-                    Debug.logWarning("Error reading FOP configuration", module);
+                    Debug.logWarning(e, "Error reading FOP configuration", module);
                 }
             }
         }