[jboss-cvs] JBossAS SVN: r107436 - in projects/jboss-jca/trunk: validator and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 5 09:47:30 EDT 2010


Author: jeff.zhang
Date: 2010-08-05 09:47:29 -0400 (Thu, 05 Aug 2010)
New Revision: 107436

Added:
   projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/
   projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/ValidatorMojo.java
   projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/package.html
   projects/jboss-jca/trunk/validator/src/main/resources/plugin.xml
   projects/jboss-jca/trunk/validator/src/main/resources/pom.xml
Modified:
   projects/jboss-jca/trunk/build.xml
   projects/jboss-jca/trunk/ivy.xml
   projects/jboss-jca/trunk/validator/.classpath
   projects/jboss-jca/trunk/validator/build.xml
Log:
[JBJCA-298] Maven plugin for validate tool

Modified: projects/jboss-jca/trunk/build.xml
===================================================================
--- projects/jboss-jca/trunk/build.xml	2010-08-05 10:11:50 UTC (rev 107435)
+++ projects/jboss-jca/trunk/build.xml	2010-08-05 13:47:29 UTC (rev 107436)
@@ -127,6 +127,7 @@
   <property name="version.jetty.glassfish" value="2.1.v20100127"/>
   <property name="version.jasper" value="glassfish_2.1.0.v201004190952"/>
   <property name="version.junit" value="4.8.1"/>
+  <property name="version.maven" value="2.2.1"/>
   <property name="version.slf4j" value="1.5.6"/>
   <property name="version.stax" value="1.0.1"/>
   <property name="version.transaction.api" value="1.0.1.GA"/>

Modified: projects/jboss-jca/trunk/ivy.xml
===================================================================
--- projects/jboss-jca/trunk/ivy.xml	2010-08-05 10:11:50 UTC (rev 107435)
+++ projects/jboss-jca/trunk/ivy.xml	2010-08-05 13:47:29 UTC (rev 107436)
@@ -30,7 +30,7 @@
     <repository name="jboss" url="http://repository.jboss.org"/>
   </info>
 
-  <configurations defaultconfmapping="common->default;sjc->default;embedded->default;arquillian->default;jetty->default;test->default;ironjacamar-codegenerator->default;ironjacamar-common-api->default;ironjacamar-common-impl->default;ironjacamar-core-api->default;ironjacamar-core-impl->default;ironjacamar-core-spi->default;ironjacamar-deployers-fungal->default;ironjacamar-embedded->default;ironjacamar-embedded-arquillian->default;ironjacamar-spec-api->default;ironjacamar-validator->default;ironjacamar-validator-ant->default;ironjacamar-validator-cli->default">
+  <configurations defaultconfmapping="common->default;sjc->default;embedded->default;arquillian->default;jetty->default;test->default;ironjacamar-codegenerator->default;ironjacamar-common-api->default;ironjacamar-common-impl->default;ironjacamar-core-api->default;ironjacamar-core-impl->default;ironjacamar-core-spi->default;ironjacamar-deployers-fungal->default;ironjacamar-embedded->default;ironjacamar-embedded-arquillian->default;ironjacamar-spec-api->default;ironjacamar-validator->default;ironjacamar-validator-ant->default;ironjacamar-validator-cli->default;ironjacamar-validator-maven->default">
     <conf name="common" transitive="false"/>
     <conf name="sjc" transitive="false"/>
     <conf name="embedded" transitive="false"/>
@@ -51,6 +51,7 @@
     <conf name="ironjacamar-validator" transitive="false"/>
     <conf name="ironjacamar-validator-ant" transitive="false"/>
     <conf name="ironjacamar-validator-cli" transitive="false"/>
+    <conf name="ironjacamar-validator-maven" transitive="false"/>
   </configurations>
 
   <publications>
@@ -67,6 +68,7 @@
     <artifact name="ironjacamar-validator" type="jar" url="http://repository.jboss.org"/>
     <artifact name="ironjacamar-validator-cli" type="jar" url="http://repository.jboss.org"/>
     <artifact name="ironjacamar-validator-ant" type="jar" url="http://repository.jboss.org"/>
+    <artifact name="ironjacamar-validator-maven" type="jar" url="http://repository.jboss.org"/>
   </publications>
 
   <dependencies>
@@ -84,6 +86,7 @@
     <dependency org="log4j" name="log4j" rev="${version.apache-log4j}" conf="common"/>
     <dependency org="org.apache" name="jasper" rev="${version.jasper}" conf="jetty"/>
     <dependency org="org.apache.ant" name="ant" rev="${version.ant}" conf="common,ironjacamar-validator-ant"/>
+    <dependency org="org.apache.maven" name="maven-plugin-api" rev="${version.maven}" conf="common,ironjacamar-validator-maven"/>
     <dependency org="org.eclipse.jdt.core.compiler" name="ecj" rev="${version.eclipse.ecj}" conf="jetty"/>
     <dependency org="org.eclipse.jetty" name="jetty-continuation" rev="${version.jetty}" conf="jetty"/>
     <dependency org="org.eclipse.jetty" name="jetty-http" rev="${version.jetty}" conf="jetty"/>

Modified: projects/jboss-jca/trunk/validator/.classpath
===================================================================
--- projects/jboss-jca/trunk/validator/.classpath	2010-08-05 10:11:50 UTC (rev 107435)
+++ projects/jboss-jca/trunk/validator/.classpath	2010-08-05 13:47:29 UTC (rev 107436)
@@ -8,8 +8,8 @@
 	<classpathentry combineaccessrules="false" kind="src" path="/jboss-jca-api"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/jboss-jca-common"/>
 	<classpathentry kind="var" path="JBJCA_LIB/sjc/fungal.jar"/>
-	<classpathentry kind="var" path="JBJCA_LIB/common/jboss-metadata-rar.jar"/>
 	<classpathentry kind="var" path="JBJCA_LIB/common/ant.jar"/>
+	<classpathentry kind="var" path="JBJCA_LIB/common/maven-plugin-api.jar"/>
 	<classpathentry kind="var" path="JBJCA_LIB/common/jboss-logging-spi.jar"/>
 	<classpathentry kind="var" path="JBJCA_LIB/test/junit.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/jboss-jca-embedded"/>

Modified: projects/jboss-jca/trunk/validator/build.xml
===================================================================
--- projects/jboss-jca/trunk/validator/build.xml	2010-08-05 10:11:50 UTC (rev 107435)
+++ projects/jboss-jca/trunk/validator/build.xml	2010-08-05 13:47:29 UTC (rev 107436)
@@ -64,13 +64,19 @@
                includes="**/*.properties"/>
     </copy>
 
+    <mkdir dir="${build.validator.dir}/jars/validator/META-INF/maven" />
+    <copy todir="${build.validator.dir}/jars/validator/META-INF/maven">
+      <fileset dir="src/main/resources/"
+               includes="plugin.xml"/>
+    </copy>
+
     <jar destfile="${target.dir}/${name}-validator.jar"
          basedir="${build.validator.dir}/jars/validator"
          index="true"
          indexMetaInf="true"
          update="true"
          level="9"
-         excludes="**/cli/**, **/ant/**">
+         excludes="**/cli/**, **/ant/**, **/maven/**, META-INF/**">
       <manifest>
         <attribute name="Implementation-Title" value="IronJacamar Validator"/>
         <attribute name="Implementation-Version" value="${major}.${minor}.${patch}.${type}"/>
@@ -103,7 +109,7 @@
          indexMetaInf="true"
          update="true"
          level="9"
-   	 includes="**/ant/**">
+   	     includes="**/ant/**">
       <manifest>
         <attribute name="Implementation-Title" value="IronJacamar Validator Ant support"/>
         <attribute name="Implementation-Version" value="${major}.${minor}.${patch}.${type}"/>
@@ -112,6 +118,22 @@
         <attribute name="Class-Path" value="${name}-validator.jar"/>
       </manifest>
     </jar>
+  	
+    <jar destfile="${target.dir}/${name}-validator-maven.jar"
+         basedir="${build.validator.dir}/jars/validator"
+         index="true"
+         indexMetaInf="true"
+         update="true"
+         level="9"
+   	     includes="**/maven/**, META-INF/**">
+      <manifest>
+        <attribute name="Implementation-Title" value="IronJacamar Validator Maven support"/>
+        <attribute name="Implementation-Version" value="${major}.${minor}.${patch}.${type}"/>
+        <attribute name="Implementation-Vendor" value="The IronJacamar project (http://www.jboss.org/ironjacamar)"/>
+        <attribute name="Implementation-Vendor-Id" value="org.jboss"/>
+        <attribute name="Class-Path" value="${name}-validator.jar"/>
+      </manifest>
+    </jar>
   </target>
 
   <!-- ================================= 
@@ -278,13 +300,28 @@
       </manifest>
     </jar>
 
+    <jar destfile="${target.dir}/${name}-validator-maven-sources.jar"
+         basedir="src/main/java"
+         index="true"
+         indexMetaInf="true"
+         update="true"
+         level="9"
+         includes="**/validator/maven/**">
+      <manifest>
+        <attribute name="Implementation-Title" value="IronJacamar Validator Maven - Sources"/>
+        <attribute name="Implementation-Version" value="${major}.${minor}.${patch}.${type}"/>
+        <attribute name="Implementation-Vendor" value="The IronJacamar project (http://www.jboss.org/ironjacamar)"/>
+        <attribute name="Implementation-Vendor-Id" value="org.jboss"/>
+      </manifest>
+    </jar>  	
+  	
     <jar destfile="${target.dir}/${name}-validator-sources.jar"
          basedir="src/main/java"
          index="true"
          indexMetaInf="true"
          update="true"
          level="9"
-         excludes="**/validator/ant/**,**/validator/cli/**">
+         excludes="**/validator/ant/**,**/validator/cli/**,**/validator/maven/**">
       <manifest>
         <attribute name="Implementation-Title" value="IronJacamar Validator - Sources"/>
         <attribute name="Implementation-Version" value="${major}.${minor}.${patch}.${type}"/>
@@ -347,6 +384,45 @@
       </manifest>
     </jar>
 
+    <mkdir dir="${build.validator.dir}/docs/maven"/>
+    <javadoc destdir="${build.validator.dir}/docs/maven"
+             doclet="org.jboss.apiviz.APIviz"
+             docletpathref="sjc.lib.path.id"
+             author="true"
+             version="true"
+             windowtitle="IronJacamar Validator - Maven"
+             doctitle="IronJacamar Validator - Maven"
+             use="true"
+             additionalparam="-author -version"
+             classpath="${build.validator.dir}"
+             classpathref="sjc.lib.path.id"
+             bottom="Copyright &#169; 2008 Red Hat Middleware LLC (http://www.jboss.com/)">
+
+      <packageset dir="src/main/java" defaultexcludes="yes">
+        <include name="**/validator/maven/**"/>
+      </packageset>
+
+      <link offline="true" href="http://java.sun.com/j2se/5/docs/api/" packagelistLoc="${java.home}/../docs/api"/>
+    </javadoc>
+    <copy todir="${build.validator.dir}/docs/maven" overwrite="true">
+      <fileset dir="${tools.dir}/api"/>
+    </copy>
+
+    <jar destfile="${target.dir}/${name}-validator-maven-javadoc.jar"
+         basedir="${build.validator.dir}/docs/maven"
+         index="true"
+         indexMetaInf="true"
+         update="true"
+         level="9">
+      <manifest>
+        <attribute name="Implementation-Title" value="IronJacamar Validator Maven - JavaDoc"/>
+        <attribute name="Implementation-Version" value="${major}.${minor}.${patch}.${type}"/>
+        <attribute name="Implementation-Vendor" value="The IronJacamar project (http://www.jboss.org/ironjacamar)"/>
+        <attribute name="Implementation-Vendor-Id" value="org.jboss"/>
+      </manifest>
+    </jar>  	
+  	
+  	
     <mkdir dir="${build.validator.dir}/docs/impl"/>
     <javadoc destdir="${build.validator.dir}/docs/impl"
              doclet="org.jboss.apiviz.APIviz"

Added: projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/ValidatorMojo.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/ValidatorMojo.java	                        (rev 0)
+++ projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/ValidatorMojo.java	2010-08-05 13:47:29 UTC (rev 107436)
@@ -0,0 +1,144 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jca.validator.maven;
+
+import org.jboss.jca.validator.Validation;
+
+import java.io.File;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+
+/**
+ * A ValidatorMojo.
+ * 
+ * @author Jeff Zhang
+ * @version $Revision: $
+ */
+public class ValidatorMojo extends AbstractMojo
+{
+   /** output directory */
+   private String outputDir;
+   
+   /** file need to be validated */
+   private File rarFile;
+   
+   /** classpath */
+   private String[] classpath;
+
+   
+   /**
+    * Constructor
+    */
+   public ValidatorMojo()
+   {
+      outputDir = ".";
+   }
+   
+   /**
+    * Execute
+    * 
+    * @exception MojoExecutionException Thrown if the plugin cant be executed
+    * @exception MojoFailureException Thrown if there is an error
+    */
+   @Override
+   public void execute()  throws MojoExecutionException, MojoFailureException
+   {
+      ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
+      try 
+      {
+         Thread.currentThread().setContextClassLoader(ValidatorMojo.class.getClassLoader());
+
+         Validation.validate(getRarFile().toURI().toURL(), 
+            getOutputDir(), getClasspath());
+      }
+      catch (Throwable t) 
+      {
+         t.printStackTrace();
+      }
+      finally
+      {
+         Thread.currentThread().setContextClassLoader(oldCL);
+      }
+   }
+   
+   /**
+    * Get the output directory.
+    * 
+    * @return the outputDir.
+    */
+   public String getOutputDir()
+   {
+      return outputDir;
+   }
+
+   /**
+    * Set the output directory.
+    * 
+    * @param outputDir The outputDir to set.
+    */
+   public void setOutputDir(String outputDir)
+   {
+      this.outputDir = outputDir;
+   }
+
+   /**
+    * Get the rarFile.
+    * 
+    * @return the rarFile.
+    */
+   public File getRarFile()
+   {
+      return rarFile;
+   }
+
+   /**
+    * Set the rarFile.
+    * 
+    * @param rarFile The rarFile to set.
+    */
+   public void setRarFile(File rarFile)
+   {
+      this.rarFile = rarFile;
+   }
+
+   /**
+    * Set the classpath.
+    * 
+    * @param classpath The classpath to set.
+    */
+   public void setClasspath(String[] classpath)
+   {
+      this.classpath = classpath;
+   }
+
+   /**
+    * Get the classpath.
+    * 
+    * @return the classpath.
+    */
+   public String[] getClasspath()
+   {
+      return classpath;
+   }
+}

Added: projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/package.html
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/package.html	                        (rev 0)
+++ projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/maven/package.html	2010-08-05 13:47:29 UTC (rev 107436)
@@ -0,0 +1,3 @@
+<body>
+This package contains the specification validator maven mojo
+</body>

Added: projects/jboss-jca/trunk/validator/src/main/resources/plugin.xml
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/resources/plugin.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/validator/src/main/resources/plugin.xml	2010-08-05 13:47:29 UTC (rev 107436)
@@ -0,0 +1,54 @@
+<plugin>
+  <description></description>
+  <groupId>org.jboss.ironjacamar</groupId>
+  <artifactId>ironjacamar-validator-maven</artifactId>
+  <version>1.0.0.Beta2</version>
+  <goalPrefix>ironjacamar</goalPrefix>
+  <isolatedRealm>false</isolatedRealm>
+  <inheritedByDefault>true</inheritedByDefault>
+  <mojos>
+    <mojo>
+      <goal>validate</goal>
+      <description>Validate rar package file.</description>
+      <requiresDirectInvocation>false</requiresDirectInvocation>
+      <requiresProject>false</requiresProject>
+      <requiresReports>false</requiresReports>
+      <aggregator>false</aggregator>
+      <requiresOnline>false</requiresOnline>
+      <inheritedByDefault>true</inheritedByDefault>
+      <phase>package</phase>
+      <implementation>org.jboss.jca.validator.maven.ValidatorMojo</implementation>
+      <language>java</language>
+      <instantiationStrategy>per-lookup</instantiationStrategy>
+      <executionStrategy>once-per-session</executionStrategy>
+      <parameters>
+        <parameter>
+          <name>outputDir</name>
+          <type>java.lang.String</type>
+          <required>true</required>
+          <editable>true</editable>
+          <description>The output directory.</description>
+        </parameter>
+        <parameter>
+          <name>rarFile</name>
+          <type>java.io.File</type>
+          <required>true</required>
+          <editable>true</editable>
+          <description>The rar filename to be validated.</description>
+        </parameter>
+        <parameter>
+          <name>classpath</name>
+          <type>java.lang.String[]</type>
+          <required>false</required>
+          <editable>true</editable>
+          <description>The classpath.</description>
+        </parameter>
+      </parameters>
+    </mojo>
+  </mojos>
+  <dependencies>
+    <groupId>org.jboss.ironjacamar</groupId>
+    <artifactId>ironjacamar-validator</artifactId>
+    <version>1.0.0.Beta1</version>
+  </dependencies>
+</plugin>
\ No newline at end of file

Added: projects/jboss-jca/trunk/validator/src/main/resources/pom.xml
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/resources/pom.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/validator/src/main/resources/pom.xml	2010-08-05 13:47:29 UTC (rev 107436)
@@ -0,0 +1,31 @@
+<build>
+	<plugins>
+		<plugin>
+			<groupId>org.jboss.ironjacamar</groupId>
+			<artifactId>ironjacamar-validator-maven</artifactId>
+			<!-- The version of the plugin you want to use -->
+			<version>1.0.0.Beta2</version>
+			<executions>
+				<execution>
+					<goals>
+						<goal>validate</goal>
+					</goals>
+				</execution>
+			</executions>
+			<configuration>
+				<!-- output directory-->
+				<outputDir>.</outputDir>
+				
+				<!-- rar filename -->
+				<rarFile>ra16.rar</rarFile>
+				
+				<!--  optional classpath 
+				<classpath>
+                    <param>classpath1</param>
+                    <param>classpath2</param>
+                </classpath>
+                -->
+			</configuration>
+		</plugin>
+	</plugins>
+</build>



More information about the jboss-cvs-commits mailing list