Author: rob.stryker(a)jboss.com
Date: 2008-04-03 18:13:32 -0400 (Thu, 03 Apr 2008)
New Revision: 7309
Added:
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/Resources/images2/
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/Resources/images2/prop_ps.gif
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/Resources/images2/single_file.gif
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/outputs/
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java
Log:
JBIDE-943 - flatten support
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
===================================================================
---
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-04-03
18:25:09 UTC (rev 7308)
+++
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-04-03
22:13:32 UTC (rev 7309)
@@ -136,10 +136,10 @@
public static void copyFiles(IArchiveFileSet fileset, final IPath[] paths) {
copyFiles(fileset, paths, true);
}
- public static void copyFiles(IArchiveFileSet fileset, final IPath[] paths, boolean sync)
{
- final File[] destFiles = getFiles(paths, fileset);
- for( int i = 0; i < paths.length; i++ ) {
- TrueZipUtil.copyFile(paths[i].toOSString(), destFiles[i]);
+ public static void copyFiles(IArchiveFileSet fileset, final IPath[] sourcePaths, boolean
sync) {
+ final File[] destFiles = getFiles(sourcePaths, fileset);
+ for( int i = 0; i < sourcePaths.length; i++ ) {
+ TrueZipUtil.copyFile(sourcePaths[i].toOSString(), destFiles[i]);
}
if( sync )
TrueZipUtil.sync();
@@ -194,7 +194,7 @@
/**
- * Gets all properly-created de.sch files for a fileset
+ * Gets all properly-created de.sch destination files for a fileset
* @param inputFiles
* @param fs
* @return
@@ -205,7 +205,10 @@
File[] returnFiles = new File[inputFiles.length];
int fsLength = fs.getGlobalSourcePath().toOSString().length()+1;
for( int i = 0; i < inputFiles.length; i++ ) {
- filesetRelative = inputFiles[i].toOSString().substring(fsLength);
+ if( fs.isFlattened() )
+ filesetRelative = inputFiles[i].lastSegment();
+ else
+ filesetRelative = inputFiles[i].toOSString().substring(fsLength);
returnFiles[i] = new File(fsFile, filesetRelative, ArchiveDetector.DEFAULT);
}
return returnFiles;
Added:
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/Resources/images2/prop_ps.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/Resources/images2/prop_ps.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/Resources/images2/single_file.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/GenericProject/Resources/images2/single_file.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified:
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java
===================================================================
---
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java 2008-04-03
18:25:09 UTC (rev 7308)
+++
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java 2008-04-03
22:13:32 UTC (rev 7309)
@@ -37,6 +37,7 @@
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.util.internal.ModelTruezipBridge;
import org.jboss.ide.eclipse.archives.core.util.internal.TrueZipUtil;
import org.jboss.ide.eclipse.archives.test.ArchivesTest;
@@ -125,6 +126,7 @@
} catch( AssertionFailedError re ) {
System.out.println("gah");
}
+
// zip inside zip
IArchive zipInZip = createArchive("zipInZip.jar", "");
zipInZip.setExploded(false);
@@ -133,6 +135,125 @@
assertEquals(2, countEntries(zipF));
}
+ public void testCreateFileInWorkspace() {
+ IArchive zipped = createArchive("zipped.war", new
Path(proj.getName()).append("outputs").toString());
+ zipped.setInWorkspace(true);
+ zipped.setExploded(false);
+ ModelTruezipBridge.createFile(zipped);
+ File zippedF =
proj.getLocation().append("outputs").append("zipped.war").toFile();
+ assertTrue(zippedF.exists());
+ assertTrue(!zippedF.isDirectory());
+
+ // inner child; zip inside zip
+ IArchive zipInZip = createArchive("zipInZip.jar", "");
+ zipInZip.setExploded(false);
+ zipped.addChild(zipInZip);
+ ModelTruezipBridge.createFile(zipInZip);
+ assertEquals(1, countEntries(zippedF));
+ }
+
+ public void testNoSync() {
+ // zipped
+ IArchive zipped = createArchive("zipped.war", outputs.toString());
+ zipped.setInWorkspace(false);
+ zipped.setExploded(false);
+ ModelTruezipBridge.createFile(zipped);
+ File zipF = outputs.append("zipped.war").toFile();
+ assertTrue(zipF.exists());
+ assertFalse(zipF.isDirectory());
+
+ // zip inside zip
+ IArchive zipInZip = createArchive("zipInZip.jar", "");
+ zipInZip.setExploded(false);
+ zipped.addChild(zipInZip);
+ ModelTruezipBridge.createFile(zipInZip);
+ assertEquals(1, countEntries(zipF));
+
+ // zip inside zip2
+ IArchive zipInZip2 = createArchive("zipInZip2.jar", "");
+ zipInZip.setExploded(false);
+ zipped.addChild(zipInZip2);
+ ModelTruezipBridge.createFile(zipInZip2, false);
+ assertEquals(1, countEntries(zipF));
+ TrueZipUtil.umount();
+ assertEquals(2, countEntries(zipF));
+ }
+
+
+ public void testDeleteArchive() {
+ IArchive zipped = createArchive("zipped.war", new
Path(proj.getName()).append("outputs").toString());
+ zipped.setInWorkspace(true);
+ zipped.setExploded(false);
+ ModelTruezipBridge.createFile(zipped);
+ File zippedF =
proj.getLocation().append("outputs").append("zipped.war").toFile();
+ assertTrue(zippedF.exists());
+ assertTrue(!zippedF.isDirectory());
+
+ // inner child; zip inside zip
+ IArchive zipInZip = createArchive("zipInZip.jar", "");
+ zipInZip.setExploded(false);
+ zipped.addChild(zipInZip);
+ ModelTruezipBridge.createFile(zipInZip);
+ assertEquals(1, countEntries(zippedF));
+
+ // inner child; zip inside zip
+ IArchive zipInZip2 = createArchive("zipInZip2.jar", "");
+ zipInZip2.setExploded(false);
+ zipped.addChild(zipInZip2);
+ ModelTruezipBridge.createFile(zipInZip2);
+ assertEquals(2, countEntries(zippedF));
+
+ ModelTruezipBridge.deleteArchive(zipInZip2);
+ assertEquals(1, countEntries(zippedF));
+
+ ModelTruezipBridge.deleteArchive(zipped);
+ assertFalse(zippedF.exists());
+ }
+
+
+ /*
+ * Fileset-related
+ */
+ public void testFileset() {
+ IArchive zipped = createArchive("zipped.war", new
Path(proj.getName()).append("outputs").toString());
+ zipped.setInWorkspace(true);
+ zipped.setExploded(false);
+ ModelTruezipBridge.createFile(zipped);
+ File zippedF =
proj.getLocation().append("outputs").append("zipped.war").toFile();
+ assertTrue(zippedF.exists());
+ assertTrue(!zippedF.isDirectory());
+
+ IArchiveFileSet fs = createFileSet("**/*.gif", proj.getName());
+ fs.setInWorkspace(true);
+ zipped.addChild(fs);
+ ModelTruezipBridge.fullFilesetBuild(fs);
+ assertEquals(19, countEntries(zippedF));
+ }
+
+ public void testFlattenedFileset() {
+ IArchive zipped = createArchive("zipped.war", new
Path(proj.getName()).append("outputs").toString());
+ zipped.setInWorkspace(true);
+ zipped.setExploded(false);
+ ModelTruezipBridge.createFile(zipped);
+ File zippedF =
proj.getLocation().append("outputs").append("zipped.war").toFile();
+ assertTrue(zippedF.exists());
+ assertTrue(!zippedF.isDirectory());
+
+ IArchiveFileSet fs = createFileSet("**/*.gif", proj.getName());
+ fs.setInWorkspace(true);
+ fs.setFlattened(true);
+ zipped.addChild(fs);
+ ModelTruezipBridge.fullFilesetBuild(fs);
+
+ // should be two less files and 3 less folders created
+ assertEquals(14, countEntries(zippedF));
+ }
+
+
+ /*
+ * Utility
+ */
+
protected int countEntries(File zipF) {
ZipFile zf = null;