Re: svn commit: r1081272 - in /ofbiz/trunk/applications/product/src/org/ofbiz/product: image/ScaleImage.java product/ProductServices.java

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

Re: svn commit: r1081272 - in /ofbiz/trunk/applications/product/src/org/ofbiz/product: image/ScaleImage.java product/ProductServices.java

risalitim@gmail.com
Hi Hans,

if it's possible it could be better to do not introduce new compile warning into OFBiz now that we have completed to remove it.

Thanks
Marco

Il giorno 14/mar/2011, alle ore 08.16, [hidden email] ha scritto:

> Author: hansbak
> Date: Mon Mar 14 07:16:36 2011
> New Revision: 1081272
>
> URL: http://svn.apache.org/viewvc?rev=1081272&view=rev
> Log:
> patch to scale main image product content and additional image product content: a contribution by Eric de Maulde: https://issues.apache.org/jira/browse/OFBIZ-4212
>
> Modified:
>    ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
>    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
>
> Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> ==============================================================================
> --- ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java (original)
> +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java Mon Mar 14 07:16:36 2011
> @@ -107,35 +107,41 @@ public class ScaleImage {
>         String imgName = filenameToUse.substring(0, index - 1);
>         String imgExtension = filenameToUse.substring(index + 1);
>         // paths
> -        String mainFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
>         String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog", "image.server.path"), context);
>         String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
> -
> -        String id = null;
> +        
> +        FlexibleStringExpander filenameExpander;
> +        String fileLocation = null;
>         String type = null;
> +        String id = null;
>         if (viewType.toLowerCase().contains("main")) {
> -            type = "original";
> +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
>             id = (String) context.get("productId");
> +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", "original"));
> +            Debug.logWarning("fileLocation for view type = MAIN : " + fileLocation,module);
>         } else if (viewType.toLowerCase().contains("additional") && viewNumber != null && !viewNumber.equals("0")) {
> -            type = "additional";
> -            id = imgName + "_View_" + viewNumber;
> +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
> +            id = (String) context.get("productId");
> +            if (filenameFormat.endsWith("${id}")) {
> +                id = id + "_View_" + viewNumber;
> +            } else {
> +                viewType = "additional" + viewNumber;
> +            }    
> +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", "original"));
>         } else {
> -            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
> -                    "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
> +            return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
>         }
> -        FlexibleStringExpander mainFilenameExpander = FlexibleStringExpander.getInstance(mainFilenameFormat);
> -        String fileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", context.get("productId"), "type", type));
> +
>         String filePathPrefix = "";
>         if (fileLocation.lastIndexOf("/") != -1) {
>             filePathPrefix = fileLocation.substring(0, fileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing slash
>         }
>
> -        if (context.get("contentId") != null){
> -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + context.get("productId") + "/" + context.get("clientFileName"), locale));
> -        } else {
> -            /* get original BUFFERED IMAGE */
> -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + filePathPrefix + filenameToUse, locale));
> -        }
> +        /* get original BUFFERED IMAGE */
> +            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + fileLocation + "." + imgExtension, locale));
> +
>         if (resultBufImgMap.containsKey("responseMessage") && resultBufImgMap.get("responseMessage").equals("success")) {
>             bufImg = (BufferedImage) resultBufImgMap.get("bufferedImage");
>
> @@ -149,13 +155,6 @@ public class ScaleImage {
>                 return result;
>             }
>
> -            // new Filename Format
> -            FlexibleStringExpander addFilenameExpander = mainFilenameExpander;
> -            if (viewType.toLowerCase().contains("additional")) {
> -                String addFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> -                addFilenameExpander = FlexibleStringExpander.getInstance(addFilenameFormat);
> -            }
> -
>             /* scale Image for each Size Type */
>             Iterator<String> sizeIter = sizeTypeList.iterator();
>             while (sizeIter.hasNext()) {
> @@ -169,10 +168,11 @@ public class ScaleImage {
>                     String newFileLocation = null;
>                     filenameToUse = sizeType + filenameToUse.substring(filenameToUse.lastIndexOf("."));
>                     if (viewType.toLowerCase().contains("main")) {
> -                        newFileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", sizeType));
> +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", sizeType));
>                     } else if (viewType.toLowerCase().contains("additional")) {
> -                        newFileLocation = addFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", sizeType));
> +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", sizeType));
>                     }
> +
>                     String newFilePathPrefix = "";
>                     if (newFileLocation.lastIndexOf("/") != -1) {
>                         newFilePathPrefix = newFileLocation.substring(0, newFileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing slash
> @@ -191,7 +191,7 @@ public class ScaleImage {
>
>                     // write new image
>                     try {
> -                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFilePathPrefix + filenameToUse));
> +                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFileLocation + "." + imgExtension));
>                     } catch (IllegalArgumentException e) {
>                         String errMsg = UtilProperties.getMessage(resource, "ScaleImage.one_parameter_is_null", locale) + e.toString();
>                         Debug.logError(errMsg, module);
> @@ -205,7 +205,7 @@ public class ScaleImage {
>                     }
>
>                     /* write Return Result */
> -                    String imageUrl = imageUrlPrefix + "/" + newFilePathPrefix + filenameToUse;
> +                    String imageUrl = imageUrlPrefix + "/" + newFileLocation + "." + imgExtension;
>                     imgUrlMap.put(sizeType, imageUrl);
>
>                 } // scaleImgMap
>
> Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> ==============================================================================
> --- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java (original)
> +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java Mon Mar 14 07:16:36 2011
> @@ -980,13 +980,19 @@ public class ProductServices {
>         Locale locale = (Locale) context.get("locale");
>
>         if (UtilValidate.isNotEmpty(context.get("_uploadedFile_fileName"))) {
> -            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> +            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
>             String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog", "image.server.path"), context);
>             String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
>
>             FlexibleStringExpander filenameExpander = FlexibleStringExpander.getInstance(imageFilenameFormat);
> -            String id = productId + "_View_" + productContentTypeId.charAt(productContentTypeId.length() - 1);
> -            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "type", "additional", "id", id));
> +            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
> +            String viewType = "additional" + viewNumber;
> +            String id = productId;
> +            if (imageFilenameFormat.endsWith("${id}")) {
> +                id = productId + "_View_" + viewNumber;  
> +                viewType = "additional";
> +            }
> +            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", "original"));
>             String filePathPrefix = "";
>             String filenameToUse = fileLocation;
>             if (fileLocation.lastIndexOf("/") != -1) {
> @@ -1007,8 +1013,18 @@ public class ProductServices {
>                 filenameToUse += "." + extension.getString("fileExtensionId");
>             }
>
> -            File file = new File(imageServerPath + "/" + filePathPrefix + filenameToUse);
> -
> +            /* Write the new image file */
> +            String targetDirectory = imageServerPath + "/" + filePathPrefix;
> +            File targetDir = new File(targetDirectory);
> +            if (!targetDir.exists()) {
> +                boolean created = targetDir.mkdirs();
> +                if (!created) {
> +                    String errMsg = UtilProperties.getMessage(resource, "ScaleImage.unable_to_create_target_directory", locale) + " - " + targetDirectory;
> +                    Debug.logFatal(errMsg, module);
> +                    return ServiceUtil.returnError(errMsg);
> +                }
> +            }
> +            File file = new File(imageServerPath + "/" + fileLocation + "." +  extension.getString("fileExtensionId"));
>             try {
>                 RandomAccessFile out = new RandomAccessFile(file, "rw");
>                 out.write(imageData.array());
> @@ -1024,7 +1040,6 @@ public class ProductServices {
>             }
>
>             /* scale Image in different sizes */
> -            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
>             Map<String, Object> resultResize = FastMap.newInstance();
>             try {
>                 resultResize.putAll(ScaleImage.scaleImageInAllSize(context, filenameToUse, "additional", viewNumber));
> @@ -1038,7 +1053,7 @@ public class ProductServices {
>                         "ProductImageViewParsingError", UtilMisc.toMap("errorString", e.toString()), locale));
>             }
>
> -            String imageUrl = imageUrlPrefix + "/" + filePathPrefix + filenameToUse;
> +            String imageUrl = imageUrlPrefix + "/" + fileLocation + "." +  extension.getString("fileExtensionId");
>             /* store the imageUrl version of the image, for backwards compatibility with code that does not use scaled versions */
>             Map<String, Object> result = addImageResource(dispatcher, delegator, context, imageUrl, productContentTypeId);
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r1081272 - in /ofbiz/trunk/applications/product/src/org/ofbiz/product: image/ScaleImage.java product/ProductServices.java

hans_bakker
Sure marco, you are right, i should watch this more.

Your resulting code however i do not understand, within the if statement
is a statement which does not do anything, or do i miss something?

rev: 1081531
statements after the change:
if("PRODUCT_URL".equals(productContentAndInfo.getString("productContentTypeId")))
   electronicText.getString("textData");
}

Wasn't it better to these 3 lines alltogether?


rev: 1081526
statements after the change:
if (fileLocation.lastIndexOf("/") != -1) {
   fileLocation.substring(0, fileLocation.lastIndexOf("/") + 1);
}

should these statements be completely removed?

Regards,
Hans


On Mon, 2011-03-14 at 20:33 +0100, [hidden email] wrote:

> Hi Hans,
>
> if it's possible it could be better to do not introduce new compile warning into OFBiz now that we have completed to remove it.
>
> Thanks
> Marco
>
> Il giorno 14/mar/2011, alle ore 08.16, [hidden email] ha scritto:
>
> > Author: hansbak
> > Date: Mon Mar 14 07:16:36 2011
> > New Revision: 1081272
> >
> > URL: http://svn.apache.org/viewvc?rev=1081272&view=rev
> > Log:
> > patch to scale main image product content and additional image product content: a contribution by Eric de Maulde: https://issues.apache.org/jira/browse/OFBIZ-4212
> >
> > Modified:
> >    ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
> >    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
> >
> > Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
> > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> > ==============================================================================
> > --- ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java (original)
> > +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java Mon Mar 14 07:16:36 2011
> > @@ -107,35 +107,41 @@ public class ScaleImage {
> >         String imgName = filenameToUse.substring(0, index - 1);
> >         String imgExtension = filenameToUse.substring(index + 1);
> >         // paths
> > -        String mainFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> >         String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog", "image.server.path"), context);
> >         String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
> > -
> > -        String id = null;
> > +        
> > +        FlexibleStringExpander filenameExpander;
> > +        String fileLocation = null;
> >         String type = null;
> > +        String id = null;
> >         if (viewType.toLowerCase().contains("main")) {
> > -            type = "original";
> > +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> > +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
> >             id = (String) context.get("productId");
> > +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", "original"));
> > +            Debug.logWarning("fileLocation for view type = MAIN : " + fileLocation,module);
> >         } else if (viewType.toLowerCase().contains("additional") && viewNumber != null && !viewNumber.equals("0")) {
> > -            type = "additional";
> > -            id = imgName + "_View_" + viewNumber;
> > +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> > +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
> > +            id = (String) context.get("productId");
> > +            if (filenameFormat.endsWith("${id}")) {
> > +                id = id + "_View_" + viewNumber;
> > +            } else {
> > +                viewType = "additional" + viewNumber;
> > +            }    
> > +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", "original"));
> >         } else {
> > -            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
> > -                    "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
> > +            return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
> >         }
> > -        FlexibleStringExpander mainFilenameExpander = FlexibleStringExpander.getInstance(mainFilenameFormat);
> > -        String fileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", context.get("productId"), "type", type));
> > +
> >         String filePathPrefix = "";
> >         if (fileLocation.lastIndexOf("/") != -1) {
> >             filePathPrefix = fileLocation.substring(0, fileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing slash
> >         }
> >
> > -        if (context.get("contentId") != null){
> > -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + context.get("productId") + "/" + context.get("clientFileName"), locale));
> > -        } else {
> > -            /* get original BUFFERED IMAGE */
> > -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + filePathPrefix + filenameToUse, locale));
> > -        }
> > +        /* get original BUFFERED IMAGE */
> > +            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + fileLocation + "." + imgExtension, locale));
> > +
> >         if (resultBufImgMap.containsKey("responseMessage") && resultBufImgMap.get("responseMessage").equals("success")) {
> >             bufImg = (BufferedImage) resultBufImgMap.get("bufferedImage");
> >
> > @@ -149,13 +155,6 @@ public class ScaleImage {
> >                 return result;
> >             }
> >
> > -            // new Filename Format
> > -            FlexibleStringExpander addFilenameExpander = mainFilenameExpander;
> > -            if (viewType.toLowerCase().contains("additional")) {
> > -                String addFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> > -                addFilenameExpander = FlexibleStringExpander.getInstance(addFilenameFormat);
> > -            }
> > -
> >             /* scale Image for each Size Type */
> >             Iterator<String> sizeIter = sizeTypeList.iterator();
> >             while (sizeIter.hasNext()) {
> > @@ -169,10 +168,11 @@ public class ScaleImage {
> >                     String newFileLocation = null;
> >                     filenameToUse = sizeType + filenameToUse.substring(filenameToUse.lastIndexOf("."));
> >                     if (viewType.toLowerCase().contains("main")) {
> > -                        newFileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", sizeType));
> > +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", sizeType));
> >                     } else if (viewType.toLowerCase().contains("additional")) {
> > -                        newFileLocation = addFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", sizeType));
> > +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", sizeType));
> >                     }
> > +
> >                     String newFilePathPrefix = "";
> >                     if (newFileLocation.lastIndexOf("/") != -1) {
> >                         newFilePathPrefix = newFileLocation.substring(0, newFileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing slash
> > @@ -191,7 +191,7 @@ public class ScaleImage {
> >
> >                     // write new image
> >                     try {
> > -                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFilePathPrefix + filenameToUse));
> > +                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFileLocation + "." + imgExtension));
> >                     } catch (IllegalArgumentException e) {
> >                         String errMsg = UtilProperties.getMessage(resource, "ScaleImage.one_parameter_is_null", locale) + e.toString();
> >                         Debug.logError(errMsg, module);
> > @@ -205,7 +205,7 @@ public class ScaleImage {
> >                     }
> >
> >                     /* write Return Result */
> > -                    String imageUrl = imageUrlPrefix + "/" + newFilePathPrefix + filenameToUse;
> > +                    String imageUrl = imageUrlPrefix + "/" + newFileLocation + "." + imgExtension;
> >                     imgUrlMap.put(sizeType, imageUrl);
> >
> >                 } // scaleImgMap
> >
> > Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
> > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> > ==============================================================================
> > --- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java (original)
> > +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java Mon Mar 14 07:16:36 2011
> > @@ -980,13 +980,19 @@ public class ProductServices {
> >         Locale locale = (Locale) context.get("locale");
> >
> >         if (UtilValidate.isNotEmpty(context.get("_uploadedFile_fileName"))) {
> > -            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> > +            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> >             String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog", "image.server.path"), context);
> >             String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
> >
> >             FlexibleStringExpander filenameExpander = FlexibleStringExpander.getInstance(imageFilenameFormat);
> > -            String id = productId + "_View_" + productContentTypeId.charAt(productContentTypeId.length() - 1);
> > -            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "type", "additional", "id", id));
> > +            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
> > +            String viewType = "additional" + viewNumber;
> > +            String id = productId;
> > +            if (imageFilenameFormat.endsWith("${id}")) {
> > +                id = productId + "_View_" + viewNumber;  
> > +                viewType = "additional";
> > +            }
> > +            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", "original"));
> >             String filePathPrefix = "";
> >             String filenameToUse = fileLocation;
> >             if (fileLocation.lastIndexOf("/") != -1) {
> > @@ -1007,8 +1013,18 @@ public class ProductServices {
> >                 filenameToUse += "." + extension.getString("fileExtensionId");
> >             }
> >
> > -            File file = new File(imageServerPath + "/" + filePathPrefix + filenameToUse);
> > -
> > +            /* Write the new image file */
> > +            String targetDirectory = imageServerPath + "/" + filePathPrefix;
> > +            File targetDir = new File(targetDirectory);
> > +            if (!targetDir.exists()) {
> > +                boolean created = targetDir.mkdirs();
> > +                if (!created) {
> > +                    String errMsg = UtilProperties.getMessage(resource, "ScaleImage.unable_to_create_target_directory", locale) + " - " + targetDirectory;
> > +                    Debug.logFatal(errMsg, module);
> > +                    return ServiceUtil.returnError(errMsg);
> > +                }
> > +            }
> > +            File file = new File(imageServerPath + "/" + fileLocation + "." +  extension.getString("fileExtensionId"));
> >             try {
> >                 RandomAccessFile out = new RandomAccessFile(file, "rw");
> >                 out.write(imageData.array());
> > @@ -1024,7 +1040,6 @@ public class ProductServices {
> >             }
> >
> >             /* scale Image in different sizes */
> > -            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
> >             Map<String, Object> resultResize = FastMap.newInstance();
> >             try {
> >                 resultResize.putAll(ScaleImage.scaleImageInAllSize(context, filenameToUse, "additional", viewNumber));
> > @@ -1038,7 +1053,7 @@ public class ProductServices {
> >                         "ProductImageViewParsingError", UtilMisc.toMap("errorString", e.toString()), locale));
> >             }
> >
> > -            String imageUrl = imageUrlPrefix + "/" + filePathPrefix + filenameToUse;
> > +            String imageUrl = imageUrlPrefix + "/" + fileLocation + "." +  extension.getString("fileExtensionId");
> >             /* store the imageUrl version of the image, for backwards compatibility with code that does not use scaled versions */
> >             Map<String, Object> result = addImageResource(dispatcher, delegator, context, imageUrl, productContentTypeId);
> >
> >
> >
>

--
Ofbiz on twitter: http://twitter.com/apache_ofbiz
Myself on twitter: http://twitter.com/hansbak
Antwebsystems.com: Quality services for competitive rates.

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r1081272 - in /ofbiz/trunk/applications/product/src/org/ofbiz/product: image/ScaleImage.java product/ProductServices.java

Eric DE MAULDE
Where can I see compilation warnings ?

My OS is Debian and my command "./ant build"

Thanks

Eric

On Tue, 2011-03-15 at 10:08 +0700, Hans Bakker wrote:

> Sure marco, you are right, i should watch this more.
>
> Your resulting code however i do not understand, within the if statement
> is a statement which does not do anything, or do i miss something?
>
> rev: 1081531
> statements after the change:
> if("PRODUCT_URL".equals(productContentAndInfo.getString("productContentTypeId")))
>    electronicText.getString("textData");
> }
>
> Wasn't it better to these 3 lines alltogether?
>
>
> rev: 1081526
> statements after the change:
> if (fileLocation.lastIndexOf("/") != -1) {
>    fileLocation.substring(0, fileLocation.lastIndexOf("/") + 1);
> }
>
> should these statements be completely removed?
>
> Regards,
> Hans
>
>
> On Mon, 2011-03-14 at 20:33 +0100, [hidden email] wrote:
> > Hi Hans,
> >
> > if it's possible it could be better to do not introduce new compile warning into OFBiz now that we have completed to remove it.
> >
> > Thanks
> > Marco
> >
> > Il giorno 14/mar/2011, alle ore 08.16, [hidden email] ha scritto:
> >
> > > Author: hansbak
> > > Date: Mon Mar 14 07:16:36 2011
> > > New Revision: 1081272
> > >
> > > URL: http://svn.apache.org/viewvc?rev=1081272&view=rev
> > > Log:
> > > patch to scale main image product content and additional image product content: a contribution by Eric de Maulde: https://issues.apache.org/jira/browse/OFBIZ-4212
> > >
> > > Modified:
> > >    ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
> > >    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
> > >
> > > Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
> > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> > > ==============================================================================
> > > --- ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java (original)
> > > +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java Mon Mar 14 07:16:36 2011
> > > @@ -107,35 +107,41 @@ public class ScaleImage {
> > >         String imgName = filenameToUse.substring(0, index - 1);
> > >         String imgExtension = filenameToUse.substring(index + 1);
> > >         // paths
> > > -        String mainFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> > >         String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog", "image.server.path"), context);
> > >         String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
> > > -
> > > -        String id = null;
> > > +        
> > > +        FlexibleStringExpander filenameExpander;
> > > +        String fileLocation = null;
> > >         String type = null;
> > > +        String id = null;
> > >         if (viewType.toLowerCase().contains("main")) {
> > > -            type = "original";
> > > +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> > > +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
> > >             id = (String) context.get("productId");
> > > +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", "original"));
> > > +            Debug.logWarning("fileLocation for view type = MAIN : " + fileLocation,module);
> > >         } else if (viewType.toLowerCase().contains("additional") && viewNumber != null && !viewNumber.equals("0")) {
> > > -            type = "additional";
> > > -            id = imgName + "_View_" + viewNumber;
> > > +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> > > +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
> > > +            id = (String) context.get("productId");
> > > +            if (filenameFormat.endsWith("${id}")) {
> > > +                id = id + "_View_" + viewNumber;
> > > +            } else {
> > > +                viewType = "additional" + viewNumber;
> > > +            }    
> > > +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", "original"));
> > >         } else {
> > > -            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
> > > -                    "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
> > > +            return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
> > >         }
> > > -        FlexibleStringExpander mainFilenameExpander = FlexibleStringExpander.getInstance(mainFilenameFormat);
> > > -        String fileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", context.get("productId"), "type", type));
> > > +
> > >         String filePathPrefix = "";
> > >         if (fileLocation.lastIndexOf("/") != -1) {
> > >             filePathPrefix = fileLocation.substring(0, fileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing slash
> > >         }
> > >
> > > -        if (context.get("contentId") != null){
> > > -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + context.get("productId") + "/" + context.get("clientFileName"), locale));
> > > -        } else {
> > > -            /* get original BUFFERED IMAGE */
> > > -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + filePathPrefix + filenameToUse, locale));
> > > -        }
> > > +        /* get original BUFFERED IMAGE */
> > > +            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + fileLocation + "." + imgExtension, locale));
> > > +
> > >         if (resultBufImgMap.containsKey("responseMessage") && resultBufImgMap.get("responseMessage").equals("success")) {
> > >             bufImg = (BufferedImage) resultBufImgMap.get("bufferedImage");
> > >
> > > @@ -149,13 +155,6 @@ public class ScaleImage {
> > >                 return result;
> > >             }
> > >
> > > -            // new Filename Format
> > > -            FlexibleStringExpander addFilenameExpander = mainFilenameExpander;
> > > -            if (viewType.toLowerCase().contains("additional")) {
> > > -                String addFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> > > -                addFilenameExpander = FlexibleStringExpander.getInstance(addFilenameFormat);
> > > -            }
> > > -
> > >             /* scale Image for each Size Type */
> > >             Iterator<String> sizeIter = sizeTypeList.iterator();
> > >             while (sizeIter.hasNext()) {
> > > @@ -169,10 +168,11 @@ public class ScaleImage {
> > >                     String newFileLocation = null;
> > >                     filenameToUse = sizeType + filenameToUse.substring(filenameToUse.lastIndexOf("."));
> > >                     if (viewType.toLowerCase().contains("main")) {
> > > -                        newFileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", sizeType));
> > > +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type", sizeType));
> > >                     } else if (viewType.toLowerCase().contains("additional")) {
> > > -                        newFileLocation = addFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", sizeType));
> > > +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", sizeType));
> > >                     }
> > > +
> > >                     String newFilePathPrefix = "";
> > >                     if (newFileLocation.lastIndexOf("/") != -1) {
> > >                         newFilePathPrefix = newFileLocation.substring(0, newFileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing slash
> > > @@ -191,7 +191,7 @@ public class ScaleImage {
> > >
> > >                     // write new image
> > >                     try {
> > > -                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFilePathPrefix + filenameToUse));
> > > +                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFileLocation + "." + imgExtension));
> > >                     } catch (IllegalArgumentException e) {
> > >                         String errMsg = UtilProperties.getMessage(resource, "ScaleImage.one_parameter_is_null", locale) + e.toString();
> > >                         Debug.logError(errMsg, module);
> > > @@ -205,7 +205,7 @@ public class ScaleImage {
> > >                     }
> > >
> > >                     /* write Return Result */
> > > -                    String imageUrl = imageUrlPrefix + "/" + newFilePathPrefix + filenameToUse;
> > > +                    String imageUrl = imageUrlPrefix + "/" + newFileLocation + "." + imgExtension;
> > >                     imgUrlMap.put(sizeType, imageUrl);
> > >
> > >                 } // scaleImgMap
> > >
> > > Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
> > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> > > ==============================================================================
> > > --- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java (original)
> > > +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java Mon Mar 14 07:16:36 2011
> > > @@ -980,13 +980,19 @@ public class ProductServices {
> > >         Locale locale = (Locale) context.get("locale");
> > >
> > >         if (UtilValidate.isNotEmpty(context.get("_uploadedFile_fileName"))) {
> > > -            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
> > > +            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
> > >             String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog", "image.server.path"), context);
> > >             String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
> > >
> > >             FlexibleStringExpander filenameExpander = FlexibleStringExpander.getInstance(imageFilenameFormat);
> > > -            String id = productId + "_View_" + productContentTypeId.charAt(productContentTypeId.length() - 1);
> > > -            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "type", "additional", "id", id));
> > > +            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
> > > +            String viewType = "additional" + viewNumber;
> > > +            String id = productId;
> > > +            if (imageFilenameFormat.endsWith("${id}")) {
> > > +                id = productId + "_View_" + viewNumber;  
> > > +                viewType = "additional";
> > > +            }
> > > +            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype", viewType, "sizetype", "original"));
> > >             String filePathPrefix = "";
> > >             String filenameToUse = fileLocation;
> > >             if (fileLocation.lastIndexOf("/") != -1) {
> > > @@ -1007,8 +1013,18 @@ public class ProductServices {
> > >                 filenameToUse += "." + extension.getString("fileExtensionId");
> > >             }
> > >
> > > -            File file = new File(imageServerPath + "/" + filePathPrefix + filenameToUse);
> > > -
> > > +            /* Write the new image file */
> > > +            String targetDirectory = imageServerPath + "/" + filePathPrefix;
> > > +            File targetDir = new File(targetDirectory);
> > > +            if (!targetDir.exists()) {
> > > +                boolean created = targetDir.mkdirs();
> > > +                if (!created) {
> > > +                    String errMsg = UtilProperties.getMessage(resource, "ScaleImage.unable_to_create_target_directory", locale) + " - " + targetDirectory;
> > > +                    Debug.logFatal(errMsg, module);
> > > +                    return ServiceUtil.returnError(errMsg);
> > > +                }
> > > +            }
> > > +            File file = new File(imageServerPath + "/" + fileLocation + "." +  extension.getString("fileExtensionId"));
> > >             try {
> > >                 RandomAccessFile out = new RandomAccessFile(file, "rw");
> > >                 out.write(imageData.array());
> > > @@ -1024,7 +1040,6 @@ public class ProductServices {
> > >             }
> > >
> > >             /* scale Image in different sizes */
> > > -            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
> > >             Map<String, Object> resultResize = FastMap.newInstance();
> > >             try {
> > >                 resultResize.putAll(ScaleImage.scaleImageInAllSize(context, filenameToUse, "additional", viewNumber));
> > > @@ -1038,7 +1053,7 @@ public class ProductServices {
> > >                         "ProductImageViewParsingError", UtilMisc.toMap("errorString", e.toString()), locale));
> > >             }
> > >
> > > -            String imageUrl = imageUrlPrefix + "/" + filePathPrefix + filenameToUse;
> > > +            String imageUrl = imageUrlPrefix + "/" + fileLocation + "." +  extension.getString("fileExtensionId");
> > >             /* store the imageUrl version of the image, for backwards compatibility with code that does not use scaled versions */
> > >             Map<String, Object> result = addImageResource(dispatcher, delegator, context, imageUrl, productContentTypeId);
> > >
> > >
> > >
> >
>


Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r1081272 - in /ofbiz/trunk/applications/product/src/org/ofbiz/product: image/ScaleImage.java product/ProductServices.java

Jacques Le Roux
Administrator
./ant is enough and warning should show in terminal

Jacques

From: "Eric de Maulde" <[hidden email]>

> Where can I see compilation warnings ?
>
> My OS is Debian and my command "./ant build"
>
> Thanks
>
> Eric
>
> On Tue, 2011-03-15 at 10:08 +0700, Hans Bakker wrote:
>
>> Sure marco, you are right, i should watch this more.
>>
>> Your resulting code however i do not understand, within the if statement
>> is a statement which does not do anything, or do i miss something?
>>
>> rev: 1081531
>> statements after the change:
>> if("PRODUCT_URL".equals(productContentAndInfo.getString("productContentTypeId")))
>>    electronicText.getString("textData");
>> }
>>
>> Wasn't it better to these 3 lines alltogether?
>>
>>
>> rev: 1081526
>> statements after the change:
>> if (fileLocation.lastIndexOf("/") != -1) {
>>    fileLocation.substring(0, fileLocation.lastIndexOf("/") + 1);
>> }
>>
>> should these statements be completely removed?
>>
>> Regards,
>> Hans
>>
>>
>> On Mon, 2011-03-14 at 20:33 +0100, [hidden email] wrote:
>> > Hi Hans,
>> >
>> > if it's possible it could be better to do not introduce new compile warning into OFBiz now that we have completed to remove it.
>> >
>> > Thanks
>> > Marco
>> >
>> > Il giorno 14/mar/2011, alle ore 08.16, [hidden email] ha scritto:
>> >
>> > > Author: hansbak
>> > > Date: Mon Mar 14 07:16:36 2011
>> > > New Revision: 1081272
>> > >
>> > > URL: http://svn.apache.org/viewvc?rev=1081272&view=rev
>> > > Log:
>> > > patch to scale main image product content and additional image product content: a contribution by Eric de Maulde:
>> > > https://issues.apache.org/jira/browse/OFBIZ-4212
>> > >
>> > > Modified:
>> > >    ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
>> > >    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
>> > >
>> > > Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
>> > > URL:
>> > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java?rev=1081272&r1=1081271&r2=1081272&view=diff
>> > > ==============================================================================
>> > > --- ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java (original)
>> > > +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java Mon Mar 14 07:16:36 2011
>> > > @@ -107,35 +107,41 @@ public class ScaleImage {
>> > >         String imgName = filenameToUse.substring(0, index - 1);
>> > >         String imgExtension = filenameToUse.substring(index + 1);
>> > >         // paths
>> > > -        String mainFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
>> > >         String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog",
>> > > "image.server.path"), context);
>> > >         String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
>> > > -
>> > > -        String id = null;
>> > > +
>> > > +        FlexibleStringExpander filenameExpander;
>> > > +        String fileLocation = null;
>> > >         String type = null;
>> > > +        String id = null;
>> > >         if (viewType.toLowerCase().contains("main")) {
>> > > -            type = "original";
>> > > +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
>> > > +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
>> > >             id = (String) context.get("productId");
>> > > +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "type",
>> > > "original"));
>> > > +            Debug.logWarning("fileLocation for view type = MAIN : " + fileLocation,module);
>> > >         } else if (viewType.toLowerCase().contains("additional") && viewNumber != null && !viewNumber.equals("0")) {
>> > > -            type = "additional";
>> > > -            id = imgName + "_View_" + viewNumber;
>> > > +            String filenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.additionalviewsize.format");
>> > > +            filenameExpander = FlexibleStringExpander.getInstance(filenameFormat);
>> > > +            id = (String) context.get("productId");
>> > > +            if (filenameFormat.endsWith("${id}")) {
>> > > +                id = id + "_View_" + viewNumber;
>> > > +            } else {
>> > > +                viewType = "additional" + viewNumber;
>> > > +            }
>> > > +            fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype",
>> > > viewType, "sizetype", "original"));
>> > >         } else {
>> > > -            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
>> > > -                    "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
>> > > +            return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ProductImageViewType",
>> > > UtilMisc.toMap("viewType", type), locale));
>> > >         }
>> > > -        FlexibleStringExpander mainFilenameExpander = FlexibleStringExpander.getInstance(mainFilenameFormat);
>> > > -        String fileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id",
>> > > context.get("productId"), "type", type));
>> > > +
>> > >         String filePathPrefix = "";
>> > >         if (fileLocation.lastIndexOf("/") != -1) {
>> > >             filePathPrefix = fileLocation.substring(0, fileLocation.lastIndexOf("/") + 1); // adding 1 to include the
>> > > trailing slash
>> > >         }
>> > >
>> > > -        if (context.get("contentId") != null){
>> > > -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + context.get("productId") + "/" +
>> > > context.get("clientFileName"), locale));
>> > > -        } else {
>> > > -            /* get original BUFFERED IMAGE */
>> > > -            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + filePathPrefix + filenameToUse,
>> > > locale));
>> > > -        }
>> > > +        /* get original BUFFERED IMAGE */
>> > > +            resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" + fileLocation + "." +
>> > > imgExtension, locale));
>> > > +
>> > >         if (resultBufImgMap.containsKey("responseMessage") && resultBufImgMap.get("responseMessage").equals("success")) {
>> > >             bufImg = (BufferedImage) resultBufImgMap.get("bufferedImage");
>> > >
>> > > @@ -149,13 +155,6 @@ public class ScaleImage {
>> > >                 return result;
>> > >             }
>> > >
>> > > -            // new Filename Format
>> > > -            FlexibleStringExpander addFilenameExpander = mainFilenameExpander;
>> > > -            if (viewType.toLowerCase().contains("additional")) {
>> > > -                String addFilenameFormat = UtilProperties.getPropertyValue("catalog",
>> > > "image.filename.additionalviewsize.format");
>> > > -                addFilenameExpander = FlexibleStringExpander.getInstance(addFilenameFormat);
>> > > -            }
>> > > -
>> > >             /* scale Image for each Size Type */
>> > >             Iterator<String> sizeIter = sizeTypeList.iterator();
>> > >             while (sizeIter.hasNext()) {
>> > > @@ -169,10 +168,11 @@ public class ScaleImage {
>> > >                     String newFileLocation = null;
>> > >                     filenameToUse = sizeType + filenameToUse.substring(filenameToUse.lastIndexOf("."));
>> > >                     if (viewType.toLowerCase().contains("main")) {
>> > > -                        newFileLocation = mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id,
>> > > "type", sizeType));
>> > > +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id,
>> > > "type", sizeType));
>> > >                     } else if (viewType.toLowerCase().contains("additional")) {
>> > > -                        newFileLocation = addFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id,
>> > > "viewtype", viewType, "sizetype", sizeType));
>> > > +                        newFileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id,
>> > > "viewtype", viewType, "sizetype", sizeType));
>> > >                     }
>> > > +
>> > >                     String newFilePathPrefix = "";
>> > >                     if (newFileLocation.lastIndexOf("/") != -1) {
>> > >                         newFilePathPrefix = newFileLocation.substring(0, newFileLocation.lastIndexOf("/") + 1); // adding 1
>> > > to include the trailing slash
>> > > @@ -191,7 +191,7 @@ public class ScaleImage {
>> > >
>> > >                     // write new image
>> > >                     try {
>> > > -                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFilePathPrefix +
>> > > filenameToUse));
>> > > +                        ImageIO.write(bufNewImg, imgExtension, new File(imageServerPath + "/" + newFileLocation + "." +
>> > > imgExtension));
>> > >                     } catch (IllegalArgumentException e) {
>> > >                         String errMsg = UtilProperties.getMessage(resource, "ScaleImage.one_parameter_is_null", locale) +
>> > > e.toString();
>> > >                         Debug.logError(errMsg, module);
>> > > @@ -205,7 +205,7 @@ public class ScaleImage {
>> > >                     }
>> > >
>> > >                     /* write Return Result */
>> > > -                    String imageUrl = imageUrlPrefix + "/" + newFilePathPrefix + filenameToUse;
>> > > +                    String imageUrl = imageUrlPrefix + "/" + newFileLocation + "." + imgExtension;
>> > >                     imgUrlMap.put(sizeType, imageUrl);
>> > >
>> > >                 } // scaleImgMap
>> > >
>> > > Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
>> > > URL:
>> > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java?rev=1081272&r1=1081271&r2=1081272&view=diff
>> > > ==============================================================================
>> > > --- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java (original)
>> > > +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java Mon Mar 14 07:16:36 2011
>> > > @@ -980,13 +980,19 @@ public class ProductServices {
>> > >         Locale locale = (Locale) context.get("locale");
>> > >
>> > >         if (UtilValidate.isNotEmpty(context.get("_uploadedFile_fileName"))) {
>> > > -            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", "image.filename.format");
>> > > +            String imageFilenameFormat = UtilProperties.getPropertyValue("catalog",
>> > > "image.filename.additionalviewsize.format");
>> > >             String imageServerPath = FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog",
>> > > "image.server.path"), context);
>> > >             String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", "image.url.prefix");
>> > >
>> > >             FlexibleStringExpander filenameExpander = FlexibleStringExpander.getInstance(imageFilenameFormat);
>> > > -            String id = productId + "_View_" + productContentTypeId.charAt(productContentTypeId.length() - 1);
>> > > -            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "type", "additional",
>> > > "id", id));
>> > > +            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
>> > > +            String viewType = "additional" + viewNumber;
>> > > +            String id = productId;
>> > > +            if (imageFilenameFormat.endsWith("${id}")) {
>> > > +                id = productId + "_View_" + viewNumber;
>> > > +                viewType = "additional";
>> > > +            }
>> > > +            String fileLocation = filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", id, "viewtype",
>> > > viewType, "sizetype", "original"));
>> > >             String filePathPrefix = "";
>> > >             String filenameToUse = fileLocation;
>> > >             if (fileLocation.lastIndexOf("/") != -1) {
>> > > @@ -1007,8 +1013,18 @@ public class ProductServices {
>> > >                 filenameToUse += "." + extension.getString("fileExtensionId");
>> > >             }
>> > >
>> > > -            File file = new File(imageServerPath + "/" + filePathPrefix + filenameToUse);
>> > > -
>> > > +            /* Write the new image file */
>> > > +            String targetDirectory = imageServerPath + "/" + filePathPrefix;
>> > > +            File targetDir = new File(targetDirectory);
>> > > +            if (!targetDir.exists()) {
>> > > +                boolean created = targetDir.mkdirs();
>> > > +                if (!created) {
>> > > +                    String errMsg = UtilProperties.getMessage(resource, "ScaleImage.unable_to_create_target_directory",
>> > > locale) + " - " + targetDirectory;
>> > > +                    Debug.logFatal(errMsg, module);
>> > > +                    return ServiceUtil.returnError(errMsg);
>> > > +                }
>> > > +            }
>> > > +            File file = new File(imageServerPath + "/" + fileLocation + "." +  extension.getString("fileExtensionId"));
>> > >             try {
>> > >                 RandomAccessFile out = new RandomAccessFile(file, "rw");
>> > >                 out.write(imageData.array());
>> > > @@ -1024,7 +1040,6 @@ public class ProductServices {
>> > >             }
>> > >
>> > >             /* scale Image in different sizes */
>> > > -            String viewNumber = String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 1));
>> > >             Map<String, Object> resultResize = FastMap.newInstance();
>> > >             try {
>> > >                 resultResize.putAll(ScaleImage.scaleImageInAllSize(context, filenameToUse, "additional", viewNumber));
>> > > @@ -1038,7 +1053,7 @@ public class ProductServices {
>> > >                         "ProductImageViewParsingError", UtilMisc.toMap("errorString", e.toString()), locale));
>> > >             }
>> > >
>> > > -            String imageUrl = imageUrlPrefix + "/" + filePathPrefix + filenameToUse;
>> > > +            String imageUrl = imageUrlPrefix + "/" + fileLocation + "." +  extension.getString("fileExtensionId");
>> > >             /* store the imageUrl version of the image, for backwards compatibility with code that does not use scaled
>> > > versions */
>> > >             Map<String, Object> result = addImageResource(dispatcher, delegator, context, imageUrl, productContentTypeId);
>> > >
>> > >
>> > >
>> >
>>
>
>
>