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