[jboss-svn-commits] JBL Code SVN: r31206 - labs/jbossrules/trunk/drools-process/drools-workitems/src/main/java/org/drools/process/workitem/archive.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jan 25 16:51:54 EST 2010


Author: mark.proctor at jboss.com
Date: 2010-01-25 16:51:54 -0500 (Mon, 25 Jan 2010)
New Revision: 31206

Modified:
   labs/jbossrules/trunk/drools-process/drools-workitems/src/main/java/org/drools/process/workitem/archive/ArchiveWorkItemHandler.java
Log:
-updated Archive work item to latest commons-archive

Modified: labs/jbossrules/trunk/drools-process/drools-workitems/src/main/java/org/drools/process/workitem/archive/ArchiveWorkItemHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-workitems/src/main/java/org/drools/process/workitem/archive/ArchiveWorkItemHandler.java	2010-01-25 21:25:18 UTC (rev 31205)
+++ labs/jbossrules/trunk/drools-process/drools-workitems/src/main/java/org/drools/process/workitem/archive/ArchiveWorkItemHandler.java	2010-01-25 21:51:54 UTC (rev 31206)
@@ -1,10 +1,17 @@
 package org.drools.process.workitem.archive;
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
 import java.util.List;
 
-import org.apache.commons.compress.Archive;
-import org.apache.commons.compress.ArchiverFactory;
+import org.apache.commons.compress.archivers.ArchiveOutputStream;
+import org.apache.commons.compress.archivers.ArchiveStreamFactory;
+import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
+import org.apache.commons.compress.compressors.CompressorOutputStream;
+import org.apache.commons.compress.compressors.CompressorStreamFactory;
+import org.apache.commons.compress.utils.IOUtils;
 import org.drools.process.instance.WorkItemHandler;
 import org.drools.runtime.process.WorkItem;
 import org.drools.runtime.process.WorkItemManager;
@@ -14,14 +21,25 @@
 	public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
 		String archive = (String) workItem.getParameter("Archive");
 		List<File> files = (List<File>) workItem.getParameter("Files");
+		
 		try {
-			Archive archiver = ArchiverFactory.getInstance("tar");
+	        OutputStream outputStream = new FileOutputStream( new File( archive) );	        
+	        ArchiveOutputStream os = new ArchiveStreamFactory().createArchiveOutputStream("tar", outputStream);
+	        
 			if (files != null) {
 				for (File file: files) {
-					archiver.add(file);
+			        final TarArchiveEntry entry = new TarArchiveEntry("testdata/test1.xml");
+			        entry.setModTime(0);
+			        entry.setSize(file.length());
+			        entry.setUserId(0);
+			        entry.setGroupId(0);
+			        entry.setMode(0100000);
+			        os.putArchiveEntry(entry);
+			        IOUtils.copy(new FileInputStream(file), os);
 				}
 			}
-			archiver.save(new File(archive));
+	        os.closeArchiveEntry();
+	        os.close();
 			manager.completeWorkItem(workItem.getId(), null);
 		} catch (Throwable t) {
 			t.printStackTrace();



More information about the jboss-svn-commits mailing list