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()))) {