[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