Author: cziegeler
Date: Mon Jul 18 13:13:18 2011
New Revision: 1147848

URL: http://svn.apache.org/viewvc?rev=1147848&view=rev
Log:
SLING-2148 : Untransformed resources are copied on each rendevouz
SLING-2131 : Use modified source path name instead of the fixed string 
"unknown-resource" for initial resource copies

Modified:
    
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java
    
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java

Modified: 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java?rev=1147848&r1=1147847&r2=1147848&view=diff
==============================================================================
--- 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java
 (original)
+++ 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java
 Mon Jul 18 13:13:18 2011
@@ -145,7 +145,9 @@ public class FileDataStore {
                 }
             }
         }
-        final String filename = (hint == null ? "unknown" : hint) + 
"-resource-" + getNextSerialNumber() + ".ser";
+        final int pos = url.lastIndexOf('/');
+        final String name = url.substring(pos + 1);
+        final String filename = (hint == null ? "rsrc" : hint) + '-' + name + 
'-' + getNextSerialNumber() + ".ser";
         final File file = this.getDataFile(filename);
 
         this.copyToLocalStorage(stream, file);

Modified: 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java?rev=1147848&r1=1147847&r2=1147848&view=diff
==============================================================================
--- 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java
 (original)
+++ 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java
 Mon Jul 18 13:13:18 2011
@@ -125,6 +125,15 @@ public class PersistentResourceList {
                 }
             }
         }
+        for(final RegisteredResource rr : this.untransformedResources ) {
+            try {
+                if ( rr.getInputStream() != null ) {
+                    FileDataStore.SHARED.updateDigestCache(rr.getURL(), 
rr.getDigest());
+                }
+            } catch (final IOException ioe) {
+                // we just ignore this
+            }
+        }
     }
 
     /**
@@ -155,7 +164,14 @@ public class PersistentResourceList {
      * @param input The installable resource
      */
     public RegisteredResource addOrUpdate(final InternalResource input) {
-        // first check if there are resources with the same url and digest
+        // first check untransformed resource if there are resources with the 
same url and digest
+        for(final RegisteredResource rr : this.untransformedResources ) {
+            if ( rr.getURL().equals(input.getURL()) && ( 
rr.getDigest().equals(input.getDigest())) ) {
+                // if we found the resource we can immediately return
+                return rr;
+            }
+        }
+        // installed resources are next
         for(final EntityResourceList group : this.data.values()) {
             for(final RegisteredResource rr : group.getResources()) {
                 if ( rr.getURL().equals(input.getURL()) && ( 
rr.getDigest().equals(input.getDigest()))) {


Reply via email to