You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2010/06/19 03:32:16 UTC
svn commit: r956170 - in /sling/trunk:
bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/
launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/
launchpad/test-services/src/main/re...
Author: justin
Date: Sat Jun 19 01:32:15 2010
New Revision: 956170
URL: http://svn.apache.org/viewvc?rev=956170&view=rev
Log:
SLING-1561 - changing destination of ROOT descriptor if path is specified in manifest entry
Added:
sling/trunk/launchpad/test-services/src/main/resources/SLING-INF/content/ROOT.json
Modified:
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java?rev=956170&r1=956169&r2=956170&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java Sat Jun 19 01:32:15 2010
@@ -73,11 +73,11 @@ public class DefaultContentCreator imple
private final Map<String, List<String>> delayedReferences = new HashMap<String, List<String>>();
private final Map<String, String[]> delayedMultipleReferences = new HashMap<String, String[]>();
- private String defaultRootName;
+ private String defaultName;
- private Node rootNode;
+ private Node createdRootNode;
- private boolean isRootNodeImport;
+ private boolean isParentNodeImport;
private boolean ignoreOverwriteFlag = false;
@@ -135,17 +135,17 @@ public class DefaultContentCreator imple
/**
*
- * If the defaultRootName is null, we are in ROOT_NODE import mode.
+ * If the defaultName is null, we are in PARENT_NODE import mode.
* @param parentNode
- * @param defaultRootName
+ * @param defaultName
*/
public void prepareParsing(final Node parentNode,
- final String defaultRootName) {
+ final String defaultName) {
this.parentNodeStack.clear();
this.parentNodeStack.push(parentNode);
- this.defaultRootName = defaultRootName;
- this.rootNode = null;
- isRootNodeImport = defaultRootName == null;
+ this.defaultName = defaultName;
+ isParentNodeImport = defaultName == null;
+ this.createdRootNode = null;
}
/**
@@ -173,8 +173,8 @@ public class DefaultContentCreator imple
/**
* Get the created root node.
*/
- public Node getRootNode() {
- return this.rootNode;
+ public Node getCreatedRootNode() {
+ return this.createdRootNode;
}
/**
@@ -231,11 +231,11 @@ public class DefaultContentCreator imple
if ( this.parentNodeStack.size() > 1 ) {
throw new RepositoryException("Node needs to have a name.");
}
- name = this.defaultRootName;
+ name = this.defaultName;
}
- // if we are in root node import mode, we don't create the root top level node!
- if ( !isRootNodeImport || this.parentNodeStack.size() > 1 ) {
+ // if we are in parent node import mode, we don't create the root top level node!
+ if ( !isParentNodeImport || this.parentNodeStack.size() > 1 ) {
// if node already exists but should be overwritten, delete it
if (!this.ignoreOverwriteFlag && this.configuration.isOverwrite() && parentNode.hasNode(name)) {
parentNode.getNode(name).remove();
@@ -281,8 +281,8 @@ public class DefaultContentCreator imple
}
this.parentNodeStack.push(node);
- if ( this.rootNode == null ) {
- this.rootNode = node;
+ if ( this.createdRootNode == null ) {
+ this.createdRootNode = node;
}
}
}
Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java?rev=956170&r1=956169&r2=956170&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java Sat Jun 19 01:32:15 2010
@@ -392,11 +392,10 @@ public class Loader {
return;
}
- // potential root node import/extension
- URL rootNodeDescriptor = importRootNode(parent.getSession(), bundle, path);
- if (rootNodeDescriptor != null) {
- processedEntries.put(rootNodeDescriptor,
- parent.getSession().getRootNode());
+ // potential parent node import/extension
+ URL parentNodeDescriptor = importParentNode(parent.getSession(), bundle, path, parent);
+ if (parentNodeDescriptor != null) {
+ processedEntries.put(parentNodeDescriptor, parent);
}
while (entries.hasMoreElements()) {
@@ -549,7 +548,7 @@ public class Loader {
this.contentCreator.prepareParsing(parent, toPlainName(name));
nodeReader.parse(resourceUrl, this.contentCreator);
- return this.contentCreator.getRootNode();
+ return this.contentCreator.getCreatedRootNode();
} catch (RepositoryException re) {
throw re;
} catch (Throwable t) {
@@ -807,9 +806,9 @@ public class Loader {
/**
* Imports mixin nodes and properties (and optionally child nodes) of the
- * root node.
+ * parent node.
*/
- private URL importRootNode(Session session, Bundle bundle, String path)
+ private URL importParentNode(Session session, Bundle bundle, String path, Node parent)
throws RepositoryException {
final Descriptor descriptor = getRootNodeDescriptor(bundle, path);
// no root descriptor found
@@ -818,7 +817,7 @@ public class Loader {
}
try {
- this.contentCreator.prepareParsing(session.getRootNode(), null);
+ this.contentCreator.prepareParsing(parent, null);
descriptor.nodeReader.parse(descriptor.rootNodeDescriptor, this.contentCreator);
return descriptor.rootNodeDescriptor;
Modified: sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java?rev=956170&r1=956169&r2=956170&view=diff
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java (original)
+++ sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java Sat Jun 19 01:32:15 2010
@@ -26,24 +26,31 @@ public class InitialContentTest extends
final String content = getContent(HTTP_BASE_URL + "/index.html", CONTENT_TYPE_HTML);
assertTrue("Content contains expected marker (" + content + ")",content.contains(expected));
}
-
+
public void testRootRedirectProperty() throws IOException {
final String expected = "\"sling:resourceType\":\"sling:redirect\"";
final String content = getContent(HTTP_BASE_URL + "/.json", CONTENT_TYPE_JSON);
assertTrue("Content contains " + expected + " (" + content + ")", content.contains(expected));
}
-
+
public void testInitialContentA() throws IOException {
final String expected = "42";
final String content = getContent(
HTTP_BASE_URL + "/sling-test/sling/initial-content-test/marker.txt", CONTENT_TYPE_PLAIN);
assertTrue("Content contains " + expected + " (" + content + ")", content.contains(expected));
}
-
+
public void testInitialContentB() throws IOException {
final String expected = "46";
final String content = getContent(
HTTP_BASE_URL + "/sling-test/initial-content-folder/folder-content-test/marker.txt", CONTENT_TYPE_PLAIN);
assertTrue("Content contains " + expected + " (" + content + ")", content.contains(expected));
}
+
+ public void testInitialContentInSubNodeRoot() throws IOException {
+ final String expected = "\"testProperty\":\"value\"";
+ final String content = getContent(
+ HTTP_BASE_URL + "/sling-test.json", CONTENT_TYPE_JSON);
+ assertTrue("Content contains " + expected + " (" + content + ")", content.contains(expected));
+ }
}
Added: sling/trunk/launchpad/test-services/src/main/resources/SLING-INF/content/ROOT.json
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/test-services/src/main/resources/SLING-INF/content/ROOT.json?rev=956170&view=auto
==============================================================================
--- sling/trunk/launchpad/test-services/src/main/resources/SLING-INF/content/ROOT.json (added)
+++ sling/trunk/launchpad/test-services/src/main/resources/SLING-INF/content/ROOT.json Sat Jun 19 01:32:15 2010
@@ -0,0 +1,3 @@
+{
+ "testProperty" : "value"
+}
\ No newline at end of file