You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/02/23 08:53:08 UTC

svn commit: r1292685 - in /openejb/trunk/maven-plugins: pom.xml spi-helper-maven-plugin/pom.xml spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/spi/SpiMojo.java xbean-xml/

Author: rmannibucau
Date: Thu Feb 23 07:53:08 2012
New Revision: 1292685

URL: http://svn.apache.org/viewvc?rev=1292685&view=rev
Log:
rewriting spi-helper-maven-plugin to avoid jaxb usage and not need any xbean-xml dependency

Removed:
    openejb/trunk/maven-plugins/xbean-xml/
Modified:
    openejb/trunk/maven-plugins/pom.xml
    openejb/trunk/maven-plugins/spi-helper-maven-plugin/pom.xml
    openejb/trunk/maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/spi/SpiMojo.java

Modified: openejb/trunk/maven-plugins/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/pom.xml?rev=1292685&r1=1292684&r2=1292685&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/pom.xml (original)
+++ openejb/trunk/maven-plugins/pom.xml Thu Feb 23 07:53:08 2012
@@ -39,7 +39,6 @@
     <module>openejb-embedded-maven-plugin</module>
     <module>maven-util</module>
     <module>spi-helper-maven-plugin</module>
-    <module>xbean-xml</module>
     <module>spi-helper-jee6-profile</module>
   </modules>
 

Modified: openejb/trunk/maven-plugins/spi-helper-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/spi-helper-maven-plugin/pom.xml?rev=1292685&r1=1292684&r2=1292685&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/spi-helper-maven-plugin/pom.xml (original)
+++ openejb/trunk/maven-plugins/spi-helper-maven-plugin/pom.xml Thu Feb 23 07:53:08 2012
@@ -26,11 +26,6 @@
       <groupId>org.apache.xbean</groupId>
       <artifactId>xbean-finder-shaded</artifactId>
     </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>xbean-xml</artifactId>
-      <version>${project.version}</version>
-    </dependency>
   </dependencies>
 
   <properties>

Modified: openejb/trunk/maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/spi/SpiMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/spi/SpiMojo.java?rev=1292685&r1=1292684&r2=1292685&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/spi/SpiMojo.java (original)
+++ openejb/trunk/maven-plugins/spi-helper-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/spi/SpiMojo.java Thu Feb 23 07:53:08 2012
@@ -14,24 +14,17 @@ import org.apache.maven.plugin.AbstractM
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
-import org.apache.openejb.xbean.xml.Scan;
 import org.apache.xbean.finder.Annotated;
 import org.apache.xbean.finder.AnnotationFinder;
 import org.apache.xbean.finder.archive.Archive;
 import org.apache.xbean.finder.archive.ClasspathArchive;
 import org.apache.xbean.finder.archive.FileArchive;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
 import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
@@ -46,6 +39,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.TreeSet;
 
 /**
  * @goal generate
@@ -179,7 +173,7 @@ public class SpiMojo extends AbstractMoj
         }
 
         // the result
-        final Scan scan = new Scan();
+        final Set<String> classes = new TreeSet<String>();
         try {
             final AnnotationFinder finder = new AnnotationFinder(archive);
             finder.link();
@@ -201,31 +195,31 @@ public class SpiMojo extends AbstractMoj
 
                         if (!useMeta) {
                             for (Class<?> clazz : finder.findAnnotatedClasses(annClazz)) {
-                                scan.getClassname().add(clazz.getName());
+                                classes.add(clazz.getName());
                             }
                         } else {
                             for (Annotated<Class<?>> clazz : finder.findMetaAnnotatedClasses(annClazz)) {
-                                scan.getClassname().add(clazz.get().getName());
+                                classes.add(clazz.get().getName());
                             }
                         }
 
                         if (!useMeta) {
                             for (Field clazz : finder.findAnnotatedFields(annClazz)) {
-                                scan.getClassname().add(clazz.getDeclaringClass().getName());
+                                classes.add(clazz.getDeclaringClass().getName());
                             }
                         } else {
                             for (Annotated<Field> clazz : finder.findMetaAnnotatedFields(annClazz)) {
-                                scan.getClassname().add(clazz.get().getDeclaringClass().getName());
+                                classes.add(clazz.get().getDeclaringClass().getName());
                             }
                         }
 
                         if (!useMeta) {
                             for (Method clazz : finder.findAnnotatedMethods(annClazz)) {
-                                scan.getClassname().add(clazz.getDeclaringClass().getName());
+                                classes.add(clazz.getDeclaringClass().getName());
                             }
                         } else {
                             for (Annotated<Method> clazz : finder.findMetaAnnotatedMethods(annClazz)) {
-                                scan.getClassname().add(clazz.get().getDeclaringClass().getName());
+                                classes.add(clazz.get().getDeclaringClass().getName());
                             }
                         }
                     }
@@ -235,7 +229,7 @@ public class SpiMojo extends AbstractMoj
                     for (String subclass : profile.getSubclasses()) {
                         try {
                             for (Class<?> clazz : finder.findSubclasses(load(loader, subclass))) {
-                                scan.getClassname().add(clazz.getName());
+                                classes.add(clazz.getName());
                             }
                         } catch (MojoFailureException mfe) {
                             getLog().warn("can't find " + subclass);
@@ -247,7 +241,7 @@ public class SpiMojo extends AbstractMoj
                     for (String implementation : profile.getImplementations()) {
                         try {
                             for (Class<?> clazz : finder.findImplementations(load(loader, implementation))) {
-                                scan.getClassname().add(clazz.getName());
+                                classes.add(clazz.getName());
                             }
                         } catch (MojoFailureException mfe) {
                             getLog().warn("can't find " + implementation);
@@ -266,21 +260,39 @@ public class SpiMojo extends AbstractMoj
                 return;
             }
 
-            final FileWriter writer = new FileWriter(output);
+            final XMLStreamWriter out = XMLOutputFactory.newInstance().createXMLStreamWriter(new FileWriter(outputFilename));
             try {
-                final JAXBContext context = JAXBContext.newInstance(Scan.class);
-                final TransformerFactory factory = TransformerFactory.newInstance();
-                final Transformer transformer = factory.newTransformer();
-                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-                transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
+                out.writeStartDocument();
+                out.writeStartElement("scan");
+                out.writeCharacters("\n");
+
+                    out.writeCharacters("  ");
+                    out.writeStartElement("classes");
+                    out.writeCharacters("\n");
+
+                    for (String clazz : classes) {
+                        out.writeCharacters("    ");
+                        out.writeStartElement("class");
+                            out.writeCharacters(clazz);
+                        out.writeEndElement();
+                        out.writeCharacters("\n");
+                    }
 
-                final StringWriter tempWriter = new StringWriter();
-                context.createMarshaller().marshal(scan, tempWriter);
+                    out.writeCharacters("  ");
+                    out.writeEndElement();
+                    out.writeCharacters("\n");
+
+                    out.writeCharacters("  ");
+                    out.writeStartElement("packages");
+                    out.writeCharacters("\n  ");
+                    out.writeEndElement();
+                    out.writeCharacters("\n");
 
-                final StreamResult result = new StreamResult(writer);
-                transformer.transform(new StreamSource(new StringReader(tempWriter.toString())), result);
+                out.writeEndElement();
+                out.writeEndDocument();
             } finally {
-                writer.close();
+                out.flush();
+                out.close();
             }
 
             getLog().info("generated " + output.getPath());