Author: radu
Date: Tue Mar 24 12:59:09 2015
New Revision: 1668869

URL: http://svn.apache.org/r1668869
Log:
SLING-4538 - Content loaders cannot be ignored any more

* made sure to take into account individual path configurations for ignoring 
content loaders
* downgraded to commons-lang 2.4 (code does not seem to be using specific 2.6 
features)

Modified:
    sling/trunk/bundles/jcr/contentloader/pom.xml
    
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java
    
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java
    
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java

Modified: sling/trunk/bundles/jcr/contentloader/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/pom.xml?rev=1668869&r1=1668868&r2=1668869&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/pom.xml (original)
+++ sling/trunk/bundles/jcr/contentloader/pom.xml Tue Mar 24 12:59:09 2015
@@ -177,7 +177,7 @@
     <dependency>
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
-      <version>2.6</version>
+      <version>2.4</version>
       <scope>provided</scope>
     </dependency>
     <!-- testing -->

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java?rev=1668869&r1=1668868&r2=1668869&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BaseImportLoader.java
 Tue Mar 24 12:59:09 2015
@@ -26,6 +26,7 @@ import java.util.Map.Entry;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.sling.jcr.contentloader.ContentReader;
+import org.apache.sling.jcr.contentloader.ImportOptions;
 
 /**
  * Base class that takes care of the details that are common to bundle content
@@ -91,17 +92,25 @@ public abstract class BaseImportLoader e
      * @param name The file name.
      * @return The reader or <code>null</code>
      */
-    public ContentReader getContentReader(String name) {
-        final Map<String, ContentReader> contentReaders = getContentReaders(); 
+    public ContentReader getContentReader(String name, PathEntry 
configuration) {
+        final Map<String, ContentReader> contentReaders = getContentReaders();
+        for (Map.Entry<String, ContentReader> readerEntry : 
contentReaders.entrySet()) {
+            String extension = readerEntry.getKey();
+            if (name.endsWith(extension) && 
!configuration.isIgnoredImportProvider(extension)) {
+                return readerEntry.getValue();
+            }
+        }
+        return null;
+    }
 
-        ContentReader reader = null;
-        final Iterator<String> ipIter = contentReaders.keySet().iterator();
-        while (reader == null && ipIter.hasNext()) {
-            final String ext = ipIter.next();
-            if (name.endsWith(ext)) {
-                reader = contentReaders.get(ext);
+    public ContentReader getContentReader(String name, ImportOptions 
importOptions) {
+        final Map<String, ContentReader> contentReaders = getContentReaders();
+        for (Map.Entry<String, ContentReader> readerEntry : 
contentReaders.entrySet()) {
+            String extension = readerEntry.getKey();
+            if (name.endsWith(extension) && 
!importOptions.isIgnoredImportProvider(extension)) {
+                return readerEntry.getValue();
             }
         }
-        return reader;
+        return null;
     }
 }

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java?rev=1668869&r1=1668868&r2=1668869&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java
 Tue Mar 24 12:59:09 2015
@@ -356,7 +356,7 @@ public class BundleContentLoader extends
                 if (nodeDescriptor != null) {
                     node = processedEntries.get(nodeDescriptor.toString());
                     if (node == null) {
-                        node = createNode(parent, name, nodeDescriptor, 
contentCreator);
+                        node = createNode(parent, name, nodeDescriptor, 
contentCreator, configuration);
                         processedEntries.put(nodeDescriptor.toString(), node);
                     }
                 } else {
@@ -390,10 +390,6 @@ public class BundleContentLoader extends
 
         final URL file = bundle.getEntry(entry);
         final String name = getName(entry);
-        final String entryExt = getContentReaderExtension(entry);
-        if (entryExt != null && 
configuration.isIgnoredImportProvider(entryExt)) {
-            return;
-        }
         try {
             if (processedEntries.containsKey(file.toString())) {
                 // this is a consumed node descriptor
@@ -410,11 +406,11 @@ public class BundleContentLoader extends
             }
 
             // install if it is a descriptor
-            boolean foundReader = getContentReader(entry) != null;
+            boolean foundReader = getContentReader(entry, configuration) != 
null;
 
             Node node = null;
             if (foundReader) {
-                node = createNode(parent, name, file, contentCreator);
+                node = createNode(parent, name, file, contentCreator, 
configuration);
                 if (node != null) {
                     log.debug("Created node as {} {}", node.getPath(), name);
                     processedEntries.put(file.toString(), node);
@@ -439,7 +435,7 @@ public class BundleContentLoader extends
             if (nodeDescriptor != null && 
processedEntries.containsKey(nodeDescriptor.toString())) {
                 try {
                     contentCreator.setIgnoreOverwriteFlag(true);
-                    node = createNode(parent, name, nodeDescriptor, 
contentCreator);
+                    node = createNode(parent, name, nodeDescriptor, 
contentCreator, configuration);
                     processedEntries.put(nodeDescriptor.toString(), node);
                 } finally {
                     contentCreator.setIgnoreOverwriteFlag(false);
@@ -457,11 +453,13 @@ public class BundleContentLoader extends
      * @param parent         The parent node
      * @param name           The name of the new content node
      * @param resourceUrl    The resource url.
-     * @param contentCreator
+     * @param contentCreator the content creator
+     * @param configuration  the configuration for the node that needs to be 
created
      * @return
      * @throws RepositoryException
      */
-    private Node createNode(Node parent, String name, URL resourceUrl, final 
DefaultContentCreator contentCreator) throws RepositoryException {
+    private Node createNode(Node parent, String name, URL resourceUrl, final 
DefaultContentCreator contentCreator, PathEntry configuration)
+            throws RepositoryException {
 
         final String resourcePath = resourceUrl.getPath().toLowerCase();
         InputStream contentStream = null;
@@ -473,7 +471,7 @@ public class BundleContentLoader extends
             }
 
             // get the node reader for this resource
-            final ContentReader nodeReader = getContentReader(resourcePath);
+            final ContentReader nodeReader = getContentReader(resourcePath, 
configuration);
 
             // cannot find out the type
             if (nodeReader == null) {

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java?rev=1668869&r1=1668868&r2=1668869&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
 Tue Mar 24 12:59:09 2015
@@ -89,7 +89,7 @@ public class DefaultContentImporter exte
         final String readerExtension = getContentReaderExtension(filename);
         final String name = toPlainName(filename, readerExtension);
 
-        final ContentReader contentReader = getContentReader(filename);
+        final ContentReader contentReader = getContentReader(filename, 
importOptions);
 
         importContent(contentCreator, contentReader, parent, name, 
contentStream, importOptions, importListener);
     }
@@ -105,7 +105,7 @@ public class DefaultContentImporter exte
         final DefaultContentCreator contentCreator = new 
DefaultContentCreator(this);
 
         final String extension = 
ContentTypeUtil.getDefaultExtension(contentType);
-        final ContentReader contentReader =  getContentReader(extension);
+        final ContentReader contentReader =  getContentReader(extension, 
importOptions);
 
         importContent(contentCreator, contentReader, parent, name, 
contentStream, importOptions, importListener);
     }


Reply via email to