Author: rhauch
Date: 2008-07-28 11:00:27 -0400 (Mon, 28 Jul 2008)
New Revision: 374
Modified:
trunk/pom.xml
trunk/sequencers/dna-sequencer-zip/
trunk/sequencers/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/SequencingOutputTestClass.java
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/ZipSequencerTest.java
Log:
Added ZIP sequencer to parent POM, and updated the signature of the ZIP sequencer
implementation to reflect recent changes in the framework.
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-07-28 14:56:25 UTC (rev 373)
+++ trunk/pom.xml 2008-07-28 15:00:27 UTC (rev 374)
@@ -104,6 +104,7 @@
<module>sequencers/dna-sequencer-cnd</module>
<module>sequencers/dna-sequencer-java</module>
<module>sequencers/dna-sequencer-msoffice</module>
+ <module>sequencers/dna-sequencer-zip</module>
<module>connectors/dna-connector-federation</module>
<module>connectors/dna-connector-inmemory</module>
<module>connectors/dna-connector-jbosscache</module>
Property changes on: trunk/sequencers/dna-sequencer-zip
___________________________________________________________________
Name: svn:ignore
+ target
Modified:
trunk/sequencers/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java
===================================================================
---
trunk/sequencers/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java 2008-07-28
14:56:25 UTC (rev 373)
+++
trunk/sequencers/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java 2008-07-28
15:00:27 UTC (rev 374)
@@ -22,19 +22,31 @@
package org.jboss.dna.sequencer.zip;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+import org.jboss.dna.common.monitor.ProgressMonitor;
+import org.jboss.dna.spi.sequencers.SequencerContext;
+import org.jboss.dna.spi.sequencers.SequencerOutput;
import org.jboss.dna.spi.sequencers.StreamSequencer;
-import org.jboss.dna.spi.sequencers.SequencerOutput;
-import org.jboss.dna.common.monitor.ProgressMonitor;
-import java.io.*;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipEntry;
-
/**
* @author Michael Trezzi
*/
public class ZipSequencer implements StreamSequencer {
- public void sequence(InputStream stream, SequencerOutput output, ProgressMonitor
progressMonitor) {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.sequencers.StreamSequencer#sequence(java.io.InputStream,
+ * org.jboss.dna.spi.sequencers.SequencerOutput,
org.jboss.dna.spi.sequencers.SequencerContext,
+ * org.jboss.dna.common.monitor.ProgressMonitor)
+ */
+ public void sequence( InputStream stream,
+ SequencerOutput output,
+ SequencerContext context,
+ ProgressMonitor progressMonitor ) {
try {
ZipInputStream in = new ZipInputStream(stream);
ZipEntry entry = in.getNextEntry();
@@ -42,31 +54,27 @@
// Create top-level node
output.setProperty("zip:content", "jcr:primaryType",
"zip:content");
- while (entry != null)
- {
+ while (entry != null) {
- if(entry.isDirectory()) { // If entry is directory, create nt:folder
node
- output.setProperty("zip:content/"+entry.getName(),
"jcr:primaryType", "nt:folder");
+ if (entry.isDirectory()) { // If entry is directory, create nt:folder
node
+ output.setProperty("zip:content/" + entry.getName(),
"jcr:primaryType", "nt:folder");
} else { // If entry is File, create nt:file
-
output.setProperty("zip:content/"+entry.getName()+"/jcr:content",
"jcr:primaryType", "nt:resource" );
+ output.setProperty("zip:content/" + entry.getName() +
"/jcr:content", "jcr:primaryType", "nt:resource");
int n;
ByteArrayOutputStream baout = new ByteArrayOutputStream();
while ((n = in.read(buf, 0, 1024)) > -1) {
baout.write(buf, 0, n);
}
-
output.setProperty("zip:content/"+entry.getName()+"/jcr:content",
"jcr:data", baout.toByteArray());
+ output.setProperty("zip:content/" + entry.getName() +
"/jcr:content", "jcr:data", baout.toByteArray());
// all other nt:file properties should be generated by other
sequencers (mimetype, encoding,...)
}
in.closeEntry();
entry = in.getNextEntry();
}
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
e.printStackTrace();
}
-
}
}
Modified:
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/SequencingOutputTestClass.java
===================================================================
---
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/SequencingOutputTestClass.java 2008-07-28
14:56:25 UTC (rev 373)
+++
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/SequencingOutputTestClass.java 2008-07-28
15:00:27 UTC (rev 374)
@@ -22,45 +22,49 @@
package org.jboss.dna.sequencer.zip;
+import java.util.ArrayList;
+import java.util.List;
+import org.jboss.dna.spi.graph.Name;
+import org.jboss.dna.spi.graph.NamespaceRegistry;
+import org.jboss.dna.spi.graph.Path;
+import org.jboss.dna.spi.graph.ValueFactories;
import org.jboss.dna.spi.sequencers.SequencerOutput;
-import org.jboss.dna.spi.graph.*;
-import org.junit.Test;
import org.junit.Ignore;
-import java.util.Collection;
-import java.util.List;
-import java.util.ArrayList;
-
/**
* @author Michael Trezzi
*/
@Ignore
public class SequencingOutputTestClass implements SequencerOutput {
- List<PropertyClassTest> properties = new ArrayList();
- List<PropertyClassTest> references = new ArrayList();
+ List<PropertyClassTest> properties = new ArrayList<PropertyClassTest>();
+ List<PropertyClassTest> references = new ArrayList<PropertyClassTest>();
-
-
public ValueFactories getFactories() {
return null;
}
-
+
public NamespaceRegistry getNamespaceRegistry() {
return null;
}
- public void setProperty(String nodePath, String propertyName, Object... values) {
- System.out.println("Setting property on '"+nodePath+"'
"+propertyName+":"+values[0]);
- properties.add(new PropertyClassTest(nodePath,propertyName,values[0]));
+ public void setProperty( String nodePath,
+ String propertyName,
+ Object... values ) {
+ System.out.println("Setting property on '" + nodePath + "'
" + propertyName + ":" + values[0]);
+ properties.add(new PropertyClassTest(nodePath, propertyName, values[0]));
}
- public void setReference(String nodePath, String propertyName, String... paths) {
- System.out.println("Setting reference on "+nodePath+"
"+propertyName+":"+paths[0]);
- references.add(new PropertyClassTest(nodePath,propertyName,paths[0]));
+ public void setReference( String nodePath,
+ String propertyName,
+ String... paths ) {
+ System.out.println("Setting reference on " + nodePath + " " +
propertyName + ":" + paths[0]);
+ references.add(new PropertyClassTest(nodePath, propertyName, paths[0]));
}
- public void setProperty(Path nodePath, Name propertyName, Object... values) {
- System.out.println("Setting property on "+nodePath.getString()+"
"+propertyName.getString()+":"+values[0]);
- properties.add(new
PropertyClassTest(nodePath.getString(),propertyName.getString(),values[0]));
+ public void setProperty( Path nodePath,
+ Name propertyName,
+ Object... values ) {
+ System.out.println("Setting property on " + nodePath.getString() +
" " + propertyName.getString() + ":" + values[0]);
+ properties.add(new PropertyClassTest(nodePath.getString(),
propertyName.getString(), values[0]));
}
}
Modified:
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/ZipSequencerTest.java
===================================================================
---
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/ZipSequencerTest.java 2008-07-28
14:56:25 UTC (rev 373)
+++
trunk/sequencers/dna-sequencer-zip/src/test/java/org/jboss/dna/sequencer/zip/ZipSequencerTest.java 2008-07-28
15:00:27 UTC (rev 374)
@@ -22,12 +22,12 @@
package org.jboss.dna.sequencer.zip;
-import org.junit.Test;
-import org.junit.After;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
-
import java.io.InputStream;
+import org.jboss.dna.spi.sequencers.SequencerContext;
+import org.junit.After;
+import org.junit.Test;
/**
* @author Michael Trezzi
@@ -54,10 +54,11 @@
public void shouldBeAbleToExtractZip() {
InputStream is = getTestZip("testzip.zip");
ZipSequencer zs = new ZipSequencer();
- SequencingOutputTestClass seqtest = new SequencingOutputTestClass();
- zs.sequence(is,seqtest,null);
+ SequencingOutputTestClass seqtest = new SequencingOutputTestClass();
+ SequencerContext context = null;
+ zs.sequence(is, seqtest, context, null);
assertThat(seqtest.properties.get(2).getPath(), is("zip:content/test
subfolder/test2.txt/jcr:content"));
}
-
+
}