You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2018/08/06 15:01:35 UTC

[sling-org-apache-sling-file-optimization] branch master updated: Fixing issue where the Optimize File operation was not updating the file

This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-file-optimization.git


The following commit(s) were added to refs/heads/master by this push:
     new 29ef19c  Fixing issue where the Optimize File operation was not updating the file
29ef19c is described below

commit 29ef19c95a0e09e420ffac82b00af599f5d60938
Author: Dan Klco <da...@perficient.com>
AuthorDate: Mon Aug 6 11:00:37 2018 -0400

    Fixing issue where the Optimize File operation was not updating the file
---
 .../apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java  | 10 +++++-----
 .../org/apache/sling/fileoptim/impl/OptimizeFileOperation.java |  5 +++++
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java b/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java
index 5e5b9eb..0314c79 100644
--- a/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java
+++ b/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java
@@ -16,7 +16,9 @@
  */
 package org.apache.sling.fileoptim.impl;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -219,11 +221,10 @@ public class FileOptimizerServiceImpl implements FileOptimizerService, ServiceLi
 
 		mvm.put(OptimizedFile.PN_ALGORITHM, result.getAlgorithm());
 		mvm.put(OptimizedFile.PN_HASH, calculateHash(result.getOptimizedContents()));
-		mvm.put(OptimizedFile.PN_ORIGINAL, result.getOptimizedContents());
+		mvm.put(OptimizedFile.PN_ORIGINAL, mvm.get(JcrConstants.JCR_DATA, InputStream.class));
 		mvm.put(OptimizedFile.PN_SAVINGS, result.getSavings());
 
-		OptimizedFile optim = fileResource.adaptTo(OptimizedFile.class);
-		mvm.put(JcrConstants.JCR_DATA, IOUtils.toByteArray(optim.getContent()));
+		mvm.put(JcrConstants.JCR_DATA, new ByteArrayInputStream(result.getOptimizedContents()));
 
 		if (autoCommit) {
 			log.debug("Persisting changes...");
@@ -265,8 +266,7 @@ public class FileOptimizerServiceImpl implements FileOptimizerService, ServiceLi
 	}
 
 	/**
-	 * @param fileOptimizers
-	 *            the fileOptimizers to set
+	 * @param fileOptimizers the fileOptimizers to set
 	 */
 	public void setFileOptimizers(Map<String, List<ServiceReference<FileOptimizer>>> fileOptimizers) {
 		this.fileOptimizers = fileOptimizers;
diff --git a/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java b/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java
index 89539a4..da42e91 100644
--- a/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java
+++ b/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.jackrabbit.JcrConstants;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.fileoptim.FileOptimizerService;
@@ -51,7 +52,11 @@ public class OptimizeFileOperation implements PostOperation {
 	protected void doRun(SlingHttpServletRequest request, PostResponse response, List<Modification> changes)
 			throws IOException {
 		Resource resource = request.getResource();
+
 		if (fileOptimizer.canOptimize(resource)) {
+			if (resource.getChild(JcrConstants.JCR_CONTENT) != null) {
+				resource = resource.getChild(JcrConstants.JCR_CONTENT);
+			}
 			fileOptimizer.optimizeFile(resource, true);
 			changes.add(Modification.onModified(resource.getPath()));
 		}