You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2011/05/20 10:45:36 UTC

svn commit: r1125278 - in /sling/trunk/installer: core/src/main/java/org/apache/sling/installer/core/impl/ providers/jcr/src/main/java/org/apache/sling/installer/provider/jcr/impl/

Author: cziegeler
Date: Fri May 20 08:45:35 2011
New Revision: 1125278

URL: http://svn.apache.org/viewvc?rev=1125278&view=rev
Log:
Several fixes for configuration write back

Modified:
    sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/InternalResource.java
    sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
    sling/trunk/installer/providers/jcr/src/main/java/org/apache/sling/installer/provider/jcr/impl/JcrInstaller.java

Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/InternalResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/InternalResource.java?rev=1125278&r1=1125277&r2=1125278&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/InternalResource.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/InternalResource.java Fri May 20 08:45:35 2011
@@ -64,7 +64,7 @@ public class InternalResource extends In
 
         if ( is != null &&
              (InstallableResource.TYPE_PROPERTIES.equals(type) ||
-              type == null && isConfigExtension(resource.getId()))) {
+              ((type == null || InstallableResource.TYPE_FILE.equals(type)) && isConfigExtension(resource.getId())))) {
             dict = readDictionary(is, getExtension(resource.getId()));
             if ( dict == null ) {
                 throw new IOException("Unable to read dictionary from input stream: " + resource.getId());

Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java?rev=1125278&r1=1125277&r2=1125278&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java Fri May 20 08:45:35 2011
@@ -664,19 +664,15 @@ public class OsgiInstallerImpl
      * @see org.apache.sling.installer.api.ResourceChangeListener#resourceAddedOrUpdated(java.lang.String, java.lang.String, java.io.InputStream, java.util.Dictionary, Map)
      */
     public void resourceAddedOrUpdated(final String resourceType,
-            String entityId,
+            final String entityId,
             final InputStream is,
             final Dictionary<String, Object> dict,
             final Map<String, Object> attributes) {
-        String key = resourceType + ':' + entityId;
+        final String key = resourceType + ':' + entityId;
         try {
             final ResourceData data = ResourceData.create(is, dict);
             synchronized ( this.resourcesLock ) {
                 final EntityResourceList erl = this.persistentList.getEntityResourceList(key);
-                if ( erl != null ) {
-                    entityId = erl.getResourceId();
-                    key = resourceType + ':' + entityId;
-                }
                 logger.debug("Added or updated {} : {}", key, erl);
 
                 // we first check for update

Modified: sling/trunk/installer/providers/jcr/src/main/java/org/apache/sling/installer/provider/jcr/impl/JcrInstaller.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/providers/jcr/src/main/java/org/apache/sling/installer/provider/jcr/impl/JcrInstaller.java?rev=1125278&r1=1125277&r2=1125278&view=diff
==============================================================================
--- sling/trunk/installer/providers/jcr/src/main/java/org/apache/sling/installer/provider/jcr/impl/JcrInstaller.java (original)
+++ sling/trunk/installer/providers/jcr/src/main/java/org/apache/sling/installer/provider/jcr/impl/JcrInstaller.java Fri May 20 08:45:35 2011
@@ -628,8 +628,10 @@ public class JcrInstaller implements Eve
                 final String oldPath = url.substring(pos + 1);
                 final String nodePath = getPathWithHighestPrio(oldPath);
                 // ensure extension 'config'
-                if ( !nodePath.endsWith(".config") && session.itemExists(nodePath) ) {
-                    session.getItem(nodePath).remove();
+                if ( !nodePath.endsWith(".config") ) {
+                    if ( session.itemExists(nodePath) ) {
+                        session.getItem(nodePath).remove();
+                    }
                     path = nodePath + ".config";
                 } else {
                     path = nodePath;
@@ -660,7 +662,9 @@ public class JcrInstaller implements Eve
 
             final UpdateResult result = new UpdateResult(JcrInstaller.URL_SCHEME + ':' + path);
             // priority
-            result.setPriority(this.folderNameFilter.getPriority(path));
+            final int lastSlash = path.lastIndexOf('/');
+            final String parentPath = path.substring(0, lastSlash);
+            result.setPriority(this.folderNameFilter.getPriority(parentPath));
             result.setResourceIsMoved(resourceIsMoved);
             return result;
         } catch (final RepositoryException re) {