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);
}