You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2014/05/20 16:08:11 UTC
svn commit: r1596257 - in
/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl:
BundleDeploymentTest.java ContentDeploymentTest.java
JcrFullCoverageAggregatesDeploymentTest.java helpers/ProjectAdapter.java
Author: rombert
Date: Tue May 20 14:08:11 2014
New Revision: 1596257
URL: http://svn.apache.org/r1596257
Log:
SLING-3570 - Assertion failed when trying to create new Sling Bundle
project
ProjectAdapter.createOrUpdateFile now closes the received input stream,
to simplify the client code.
Modified:
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java
Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java?rev=1596257&r1=1596256&r2=1596257&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/BundleDeploymentTest.java Tue May 20 14:08:11 2014
@@ -92,22 +92,12 @@ public class BundleDeploymentTest {
project.configureAsJavaProject(slingApiDep, servletApiDep);
// create DS component class
- InputStream simpleServlet = null;
- try {
- simpleServlet = getClass().getResourceAsStream("SimpleServlet.java.v1.txt");
- project.createOrUpdateFile(Path.fromPortableString("src/example/SimpleServlet.java"), simpleServlet);
- } finally {
- IOUtils.closeQuietly(simpleServlet);
- }
+ InputStream simpleServlet = getClass().getResourceAsStream("SimpleServlet.java.v1.txt");
+ project.createOrUpdateFile(Path.fromPortableString("src/example/SimpleServlet.java"), simpleServlet);
// create DS component descriptor
- InputStream servletDescriptor = null;
- try {
- servletDescriptor = getClass().getResourceAsStream("SimpleServlet.xml");
- project.createOrUpdateFile(Path.fromPortableString("src/OSGI-INF/SimpleServlet.xml"), servletDescriptor);
- } finally {
- IOUtils.closeQuietly(servletDescriptor);
- }
+ InputStream servletDescriptor = getClass().getResourceAsStream("SimpleServlet.xml");
+ project.createOrUpdateFile(Path.fromPortableString("src/OSGI-INF/SimpleServlet.xml"), servletDescriptor);
// create manifest
OsgiBundleManifest manifest = OsgiBundleManifest.symbolicName("test.bundle001").version("1.0.0.SNAPSHOT")
@@ -132,13 +122,8 @@ public class BundleDeploymentTest {
}, nullValue(Void.class));
// update DS component class
- InputStream simpleServlet2 = null;
- try {
- simpleServlet2 = getClass().getResourceAsStream("SimpleServlet.java.v2.txt");
- project.createOrUpdateFile(Path.fromPortableString("src/example/SimpleServlet.java"), simpleServlet2);
- } finally {
- IOUtils.closeQuietly(simpleServlet2);
- }
+ InputStream simpleServlet2 = getClass().getResourceAsStream("SimpleServlet.java.v2.txt");
+ project.createOrUpdateFile(Path.fromPortableString("src/example/SimpleServlet.java"), simpleServlet2);
poller.pollUntil(new Callable<Void>() {
@Override
Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java?rev=1596257&r1=1596256&r2=1596257&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/ContentDeploymentTest.java Tue May 20 14:08:11 2014
@@ -158,11 +158,7 @@ public class ContentDeploymentTest {
// change node type to sling:Folder
InputStream contentXml = getClass().getResourceAsStream("sling-folder-nodetype.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/test/.content.xml"), contentXml);
- } finally {
- IOUtils.closeQuietly(contentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/test/.content.xml"), contentXml);
// verifications (2)
assertThatNode(repo, poller, "/test",
@@ -195,11 +191,7 @@ public class ContentDeploymentTest {
assertThatNode(repo, poller, "/test/hello.esp", hasPrimaryType("nt:file"));
InputStream contentXml = getClass().getResourceAsStream("file-custom-mimetype.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/test/hello.esp.dir/.content.xml"), contentXml);
- } finally {
- IOUtils.closeQuietly(contentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/test/hello.esp.dir/.content.xml"), contentXml);
assertThatNode(repo, poller, "/test/hello.esp/jcr:content", hasPropertyValue("jcr:mimeType", "text/javascript"));
}
Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java?rev=1596257&r1=1596256&r2=1596257&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrFullCoverageAggregatesDeploymentTest.java Tue May 20 14:08:11 2014
@@ -82,12 +82,7 @@ public class JcrFullCoverageAggregatesDe
// create .content.xml structure
InputStream contentXml = getClass().getResourceAsStream("content-nested-structure.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"),
- contentXml);
- } finally {
- IOUtils.closeQuietly(contentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), contentXml);
// install content facet
project.installFacet("sling.content", "1.0");
@@ -122,11 +117,7 @@ public class JcrFullCoverageAggregatesDe
// create .content.xml structure
InputStream contentXml = getClass().getResourceAsStream("content-nested-structure.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), contentXml);
- } finally {
- IOUtils.closeQuietly(contentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), contentXml);
// install content facet
project.installFacet("sling.content", "1.0");
@@ -149,11 +140,7 @@ public class JcrFullCoverageAggregatesDe
// update .content.xml structure
InputStream updatedContentXml = getClass().getResourceAsStream("content-nested-structure-deleted-node.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), updatedContentXml);
- } finally {
- IOUtils.closeQuietly(updatedContentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), updatedContentXml);
// poll until we only have 2 child nodes left
postConditions = allOf(hasPath("/content/test-root/en"), hasPrimaryType("sling:Folder"),
@@ -180,11 +167,7 @@ public class JcrFullCoverageAggregatesDe
// create .content.xml structure
InputStream contentXml = getClass().getResourceAsStream("content-nested-structure.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), contentXml);
- } finally {
- IOUtils.closeQuietly(contentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), contentXml);
// install content facet
project.installFacet("sling.content", "1.0");
@@ -207,11 +190,7 @@ public class JcrFullCoverageAggregatesDe
// update .content.xml structure
InputStream updatedContentXml = getClass().getResourceAsStream("content-nested-structure-reordered-nodes.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), updatedContentXml);
- } finally {
- IOUtils.closeQuietly(updatedContentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), updatedContentXml);
// poll until we have the child nodes reordered
postConditions = allOf(hasPath("/content/test-root/en"), hasPrimaryType("sling:OrderedFolder"),
@@ -240,19 +219,11 @@ public class JcrFullCoverageAggregatesDe
// create filter.xml
InputStream filterXml = getClass().getResourceAsStream("filter-only-content-test-root-en.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("META-INF/vault/filter.xml"), filterXml);
- } finally {
- IOUtils.closeQuietly(filterXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("META-INF/vault/filter.xml"), filterXml);
// create .content.xml structure
InputStream contentXml = getClass().getResourceAsStream("content-nested-structure.xml");
- try {
- project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), contentXml);
- } finally {
- IOUtils.closeQuietly(contentXml);
- }
+ project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/test-root/en.xml"), contentXml);
// install content facet
project.installFacet("sling.content", "1.0");
Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java?rev=1596257&r1=1596256&r2=1596257&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/ProjectAdapter.java Tue May 20 14:08:11 2014
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Set;
import java.util.jar.Manifest;
+import org.apache.commons.io.IOUtils;
import org.apache.maven.artifact.Artifact;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -110,40 +111,51 @@ public class ProjectAdapter {
}
- public void createOrUpdateFile(IPath fromPortableString, InputStream resourceAsStream) throws CoreException {
+ /**
+ * Creates or updates an existing file
+ *
+ * @param fileLocation the path where the resource will be created or updated
+ * @param contents the contents to write to the file. This stream will be closed after being used
+ * @throws CoreException
+ */
+ public void createOrUpdateFile(IPath fileLocation, InputStream contents) throws CoreException {
- if (resourceAsStream == null) {
+ if (contents == null) {
throw new IllegalArgumentException("resourceAsStream may not be null");
}
IContainer current = project;
- for (int i = 0; i < fromPortableString.segmentCount() - 1; i++) {
+ try {
+ for (int i = 0; i < fileLocation.segmentCount() - 1; i++) {
- String currentSegment = fromPortableString.segment(i);
- IResource container = current.findMember(currentSegment);
+ String currentSegment = fileLocation.segment(i);
+ IResource container = current.findMember(currentSegment);
- if (container != null) {
- if (container.getType() != IContainer.FOLDER) {
- throw new IllegalArgumentException("Resource " + container
- + " exists and is not a folder; unable to create file at path " + fromPortableString);
+ if (container != null) {
+ if (container.getType() != IContainer.FOLDER) {
+ throw new IllegalArgumentException("Resource " + container
+ + " exists and is not a folder; unable to create file at path " + fileLocation);
+ }
+
+ current = (IContainer) container;
+ } else {
+
+ IFolder newFolder = ((IContainer) current).getFolder(Path.fromPortableString(currentSegment));
+ newFolder.create(true, true, new NullProgressMonitor());
+ current = newFolder;
}
+ }
- current = (IContainer) container;
+ IFile file = current.getFile(Path.fromPortableString(fileLocation.segments()[fileLocation
+ .segmentCount() - 1]));
+ if (file.exists()) {
+ file.setContents(contents, true, true, new NullProgressMonitor());
} else {
-
- IFolder newFolder = ((IContainer) current).getFolder(Path.fromPortableString(currentSegment));
- newFolder.create(true, true, new NullProgressMonitor());
- current = newFolder;
+ file.create(contents, true, new NullProgressMonitor());
}
- }
-
- IFile file = current.getFile(Path.fromPortableString(fromPortableString.segments()[fromPortableString
- .segmentCount() - 1]));
- if (file.exists()) {
- file.setContents(resourceAsStream, true, true, new NullProgressMonitor());
- } else {
- file.create(resourceAsStream, true, new NullProgressMonitor());
+ } finally {
+ IOUtils.closeQuietly(contents);
}
}