Author: bcarothers
Date: 2010-01-10 19:26:34 -0500 (Sun, 10 Jan 2010)
New Revision: 1589
Modified:
trunk/docs/examples/gettingstarted/sequencers/src/main/resources/sequencing.cnd
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencer.java
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencerLexicon.java
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/DefaultClassFileRecorder.java
trunk/extensions/dna-sequencer-classfile/src/main/resources/org/jboss/dna/sequencer/classfile/sequencer-classfile.cnd
Log:
DNA-62 Sequence Java class files to extract the class structure with annotations
Applied patch that adds a sequencedDate to the class output.
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/resources/sequencing.cnd
===================================================================
---
trunk/docs/examples/gettingstarted/sequencers/src/main/resources/sequencing.cnd 2010-01-10
23:32:54 UTC (rev 1588)
+++
trunk/docs/examples/gettingstarted/sequencers/src/main/resources/sequencing.cnd 2010-01-11
00:26:34 UTC (rev 1589)
@@ -341,6 +341,7 @@
[class:class]
- class:name (string) mandatory
+- class:sequencedDate (date)
- class:superClassName (string)
- class:visibility (string) mandatory < 'public', 'protected',
'package', 'private'
- class:abstract (boolean) mandatory
Modified:
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencer.java
===================================================================
---
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencer.java 2010-01-10
23:32:54 UTC (rev 1588)
+++
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencer.java 2010-01-11
00:26:34 UTC (rev 1589)
@@ -24,14 +24,14 @@
package org.jboss.dna.sequencer.classfile;
import java.io.InputStream;
-import net.jcip.annotations.Immutable;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencer;
import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.sequencer.classfile.metadata.ClassFileMetadataReader;
import org.jboss.dna.sequencer.classfile.metadata.ClassMetadata;
-@Immutable
+@ThreadSafe
public class ClassFileSequencer implements StreamSequencer {
private static final ClassFileRecorder DEFAULT_CLASS_FILE_RECORDER = new
DefaultClassFileRecorder();
Modified:
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencerLexicon.java
===================================================================
---
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencerLexicon.java 2010-01-10
23:32:54 UTC (rev 1588)
+++
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/ClassFileSequencerLexicon.java 2010-01-11
00:26:34 UTC (rev 1589)
@@ -55,6 +55,7 @@
public static final Name NATIVE = new BasicName(Namespace.URI, "native");
public static final Name PARAMETERS = new BasicName(Namespace.URI,
"parameters");
public static final Name RETURN_TYPE_CLASS_NAME = new BasicName(Namespace.URI,
"returnTypeClassName");
+ public static final Name SEQUENCED_DATE = new BasicName(Namespace.URI,
"sequencedDate");
public static final Name STATIC = new BasicName(Namespace.URI, "static");
public static final Name STRICT_FP = new BasicName(Namespace.URI,
"strictFp");
public static final Name SUPER_CLASS_NAME = new BasicName(Namespace.URI,
"superClassName");
Modified:
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/DefaultClassFileRecorder.java
===================================================================
---
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/DefaultClassFileRecorder.java 2010-01-10
23:32:54 UTC (rev 1588)
+++
trunk/extensions/dna-sequencer-classfile/src/main/java/org/jboss/dna/sequencer/classfile/DefaultClassFileRecorder.java 2010-01-11
00:26:34 UTC (rev 1589)
@@ -27,6 +27,7 @@
import java.util.List;
import java.util.Map;
import org.jboss.dna.graph.JcrLexicon;
+import org.jboss.dna.graph.property.DateTimeFactory;
import org.jboss.dna.graph.property.Path;
import org.jboss.dna.graph.property.PathFactory;
import org.jboss.dna.graph.property.Path.Segment;
@@ -45,11 +46,16 @@
ClassMetadata classMetadata ) {
PathFactory pathFactory = pathFactoryFor(context);
+ DateTimeFactory dateFactory = dateFactoryFor(context);
Path classPath = pathFor(pathFactory, classMetadata);
- writeClassNode(output, pathFactory, classPath, classMetadata);
+ writeClassNode(output, pathFactory, dateFactory, classPath, classMetadata);
}
+ private DateTimeFactory dateFactoryFor( StreamSequencerContext context ) {
+ return context.getValueFactories().getDateFactory();
+ }
+
private PathFactory pathFactoryFor( StreamSequencerContext context ) {
return context.getValueFactories().getPathFactory();
}
@@ -67,6 +73,7 @@
private void writeClassNode( SequencerOutput output,
PathFactory pathFactory,
+ DateTimeFactory dateFactory,
Path classPath,
ClassMetadata cmd ) {
@@ -86,6 +93,7 @@
*/
output.setProperty(classPath, ClassFileSequencerLexicon.NAME,
cmd.getClassName());
+ output.setProperty(classPath, ClassFileSequencerLexicon.SEQUENCED_DATE,
dateFactory.create());
output.setProperty(classPath, ClassFileSequencerLexicon.SUPER_CLASS_NAME,
cmd.getSuperclassName());
output.setProperty(classPath, ClassFileSequencerLexicon.VISIBILITY,
cmd.getVisibility().getDescription());
output.setProperty(classPath, ClassFileSequencerLexicon.ABSTRACT,
cmd.isAbstract());
Modified:
trunk/extensions/dna-sequencer-classfile/src/main/resources/org/jboss/dna/sequencer/classfile/sequencer-classfile.cnd
===================================================================
---
trunk/extensions/dna-sequencer-classfile/src/main/resources/org/jboss/dna/sequencer/classfile/sequencer-classfile.cnd 2010-01-10
23:32:54 UTC (rev 1588)
+++
trunk/extensions/dna-sequencer-classfile/src/main/resources/org/jboss/dna/sequencer/classfile/sequencer-classfile.cnd 2010-01-11
00:26:34 UTC (rev 1589)
@@ -74,7 +74,8 @@
+ * (class:method) = class:method
[class:class]
-- class:name (string) mandatory
+- class:name (string) mandatory
+- class:sequencedDate (date)
- class:superClassName (string)
- class:visibility (string) mandatory < 'public', 'protected',
'package', 'private'
- class:abstract (boolean) mandatory