Author: jleroux
Date: Sun Dec 20 21:07:27 2015
New Revision: 1721066

URL: http://svn.apache.org/viewvc?rev=1721066&view=rev
Log:
A slightly modified patch from Supachai Chaima-ngua for <<Upload product image 
does not work.>> https://issues.apache.org/jira/browse/OFBIZ-6769

Upload product image dose not working because "updateDataResource" require out 
parameter name 'dataResourceId' but the service doesn't return by using 
entity-auto engine and upload image function need delegator but do not sent to 
upload image function.

jleroux: this was due to recent r1716271 so no needs to backport. The changes 
in ImageManagementServices were not operationally needed (it worked as is) but 
indeed better for a method like scaleImageMangementInAllSize to rely on 
DispatchContext rather than service context when called from a service. Since 
it's not a service I changed the scaleImageMangementInAllSize method to 
private. I also removed the useless "ImageManagementServices." prefix.

Modified:
    ofbiz/trunk/applications/content/servicedef/services_data.xml
    
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java

Modified: ofbiz/trunk/applications/content/servicedef/services_data.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/servicedef/services_data.xml?rev=1721066&r1=1721065&r2=1721066&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/servicedef/services_data.xml (original)
+++ ofbiz/trunk/applications/content/servicedef/services_data.xml Sun Dec 20 
21:07:27 2015
@@ -52,7 +52,7 @@
         <description>Update a DataResource</description>
         <permission-service service-name="genericDataResourcePermission" 
main-action="UPDATE"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
-        <attribute name="dataResourceId" type="String" mode="INOUT" 
optional="false"/>
+        <attribute name="dataResourceId" type="String" mode="IN" 
optional="false"/>
         <override name="objectInfo" allow-html="any"/>
         <override name="dataResourceName" allow-html="any"/>
     </service>

Modified: 
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java?rev=1721066&r1=1721065&r2=1721066&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java
 (original)
+++ 
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java
 Sun Dec 20 21:07:27 2015
@@ -202,7 +202,7 @@ public class ImageManagementServices {
                 
                 Map<String, Object> resultResize = new HashMap<String, 
Object>();
                 try {
-                    
resultResize.putAll(ImageManagementServices.scaleImageMangementInAllSize(context,
 imageName, sizeType, productId));
+                    resultResize.putAll(scaleImageMangementInAllSize(dctx, 
context, imageName, sizeType, productId));
                 } catch (IOException e) {
                     String errMsg = "Scale additional image in all different 
sizes is impossible : " + e.toString();
                     Debug.logError(e, errMsg, module);
@@ -296,7 +296,7 @@ public class ImageManagementServices {
         return ServiceUtil.returnSuccess();
     }
     
-    public static Map<String, Object> scaleImageMangementInAllSize(Map<String, 
? extends Object> context, String filenameToUse, String resizeType, String 
productId)
+    private static Map<String, Object> 
scaleImageMangementInAllSize(DispatchContext dctx, Map<String, ? extends 
Object> context, String filenameToUse, String resizeType, String productId)
         throws IllegalArgumentException, ImagingOpException, IOException, 
JDOMException {
         
         /* VARIABLES */
@@ -577,7 +577,7 @@ public class ImageManagementServices {
         
         Map<String, Object> resultResizeThumb = new HashMap<String, Object>();
         try {
-            
resultResizeThumb.putAll(ImageManagementServices.scaleImageMangementInAllSize(context,
 filenameToUseThumb, "thumbnail", productId));
+            resultResizeThumb.putAll(scaleImageMangementInAllSize(dctx, 
context, filenameToUseThumb, "thumbnail", productId));
         } catch (IOException e) {
             String errMsg = "Scale additional image in all different sizes is 
impossible : " + e.toString();
             Debug.logError(e, errMsg, module);
@@ -721,7 +721,7 @@ public class ImageManagementServices {
             
             if (dataResourceName.length() > 3) {
                 String mimeType = 
dataResourceName.substring(dataResourceName.length() - 3, 
dataResourceName.length());
-                Map<String, Object> resultResize = 
ImageManagementServices.resizeImage(bufImg, imgHeight, imgWidth, resizeHeight, 
resizeWidth);
+                Map<String, Object> resultResize = resizeImage(bufImg, 
imgHeight, imgWidth, resizeHeight, resizeWidth);
                 ImageIO.write((RenderedImage) 
resultResize.get("bufferedImage"), mimeType, new File(imageServerPath + "/" + 
productId + "/" + filenameToUse));
                 
                 Map<String, Object> contentThumb = new HashMap<String, 
Object>();
@@ -737,7 +737,7 @@ public class ImageManagementServices {
                 
                 String contentIdThumb = (String) 
contentThumbResult.get("contentId");
                 String imageUrlThumb = imageServerUrl + "/" + productId + "/" 
+ filenameToUse;
-                ImageManagementServices.createContentAndDataResource(dctx, 
userLogin, filenameToUse, imageUrlThumb, contentIdThumb, "image/jpeg");
+                createContentAndDataResource(dctx, userLogin, filenameToUse, 
imageUrlThumb, contentIdThumb, "image/jpeg");
                 
                 Map<String, Object> createContentAssocMap = new 
HashMap<String, Object>();
                 createContentAssocMap.put("contentAssocTypeId", 
"IMAGE_THUMBNAIL");
@@ -761,7 +761,7 @@ public class ImageManagementServices {
     }
     
     public static Map<String, Object> resizeImageOfProduct(DispatchContext 
dctx, Map<String, ? extends Object> context) {
-       Delegator delegator = dctx.getDelegator();
+        Delegator delegator = dctx.getDelegator();
         String imageServerPath = 
FlexibleStringExpander.expandString(EntityUtilProperties.getPropertyValue("catalog",
 "image.management.path", delegator), context);
         String productId = (String) context.get("productId");
         String dataResourceName = (String) context.get("dataResourceName");
@@ -775,7 +775,7 @@ public class ImageManagementServices {
             double imgWidth = bufImg.getWidth();
             String filenameToUse = dataResourceName;
             String mimeType = 
dataResourceName.substring(dataResourceName.length() - 3, 
dataResourceName.length());
-            Map<String, Object> resultResize = 
ImageManagementServices.resizeImage(bufImg, imgHeight, imgWidth, resizeHeight, 
resizeWidth);
+            Map<String, Object> resultResize = resizeImage(bufImg, imgHeight, 
imgWidth, resizeHeight, resizeWidth);
             ImageIO.write((RenderedImage) resultResize.get("bufferedImage"), 
mimeType, new File(imageServerPath + "/" + productId + "/" + filenameToUse));
         } catch (Exception e) {
             Debug.logError(e, module);


Reply via email to