You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/03/02 20:59:57 UTC

svn commit: r918164 - in /tiles/sandbox/trunk/tiles-autotag: maven-autotag-plugin/ maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/ tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ tiles-autotag-core/src/test/java/org/...

Author: apetrelli
Date: Tue Mar  2 19:59:56 2010
New Revision: 918164

URL: http://svn.apache.org/viewvc?rev=918164&view=rev
Log:
TILESSB-25
Created CreateDescriptorMojo.
Added to tiles-template to test it.

Added:
    tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java
      - copied, changed from r917180, tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/MyMojo.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java
      - copied, changed from r905568, tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableTemplate.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java
      - copied, changed from r916947, tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java
      - copied, changed from r905568, tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleTemplate.java
Removed:
    tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/MyMojo.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableTemplate.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleTemplate.java
Modified:
    tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/pom.xml
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java

Modified: tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/pom.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/pom.xml?rev=918164&r1=918163&r2=918164&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/pom.xml (original)
+++ tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/pom.xml Tue Mar  2 19:59:56 2010
@@ -12,12 +12,11 @@
   <version>1.0-SNAPSHOT</version>
   <packaging>maven-plugin</packaging>
   <name>maven-autotag-plugin Maven Mojo</name>
-  <url>http://maven.apache.org</url>
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
+      <version>2.2.1</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
@@ -25,5 +24,20 @@
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+    	<groupId>org.codehaus.plexus</groupId>
+    	<artifactId>plexus-compiler-api</artifactId>
+    	<version>1.7</version>
+    </dependency>
+    <dependency>
+    	<groupId>org.apache.tiles</groupId>
+    	<artifactId>tiles-autotag-core</artifactId>
+    	<version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+    	<groupId>com.thoughtworks.xstream</groupId>
+    	<artifactId>xstream</artifactId>
+    	<version>1.3.1</version>
+    </dependency>
   </dependencies>
 </project>

Copied: tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java (from r917180, tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/MyMojo.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java?p2=tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java&p1=tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/MyMojo.java&r1=917180&r2=918164&rev=918164&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/MyMojo.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java Tue Mar  2 19:59:56 2010
@@ -16,66 +16,110 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.Writer;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.tiles.autotag.core.QDoxTemplateSuiteFactory;
+import org.apache.tiles.autotag.model.TemplateSuite;
+import org.apache.tiles.autotag.model.TemplateSuiteFactory;
+import org.codehaus.plexus.compiler.util.scan.InclusionScanException;
+import org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner;
+import org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner;
+import org.codehaus.plexus.compiler.util.scan.mapping.SourceMapping;
+
+import com.thoughtworks.xstream.XStream;
 
 /**
  * Goal which touches a timestamp file.
  *
- * @goal touch
- * 
- * @phase process-sources
+ * @goal create-descriptor
+ *
+ * @phase generate-resources
  */
-public class MyMojo
-    extends AbstractMojo
-{
+public class CreateDescriptorMojo extends AbstractMojo {
     /**
      * Location of the file.
-     * @parameter expression="${project.build.directory}"
+     *
+     * @parameter expression="${project.build.outputDirectory}"
      * @required
      */
     private File outputDirectory;
 
-    public void execute()
-        throws MojoExecutionException
-    {
-        File f = outputDirectory;
-
-        if ( !f.exists() )
-        {
-            f.mkdirs();
-        }
+    /**
+     * Location of the file.
+     *
+     * @parameter expression="${project.build.sourceDirectory}"
+     * @required
+     */
+    private File sourceDirectory;
+
+    /**
+     * @parameter
+     */
+    private Set<String> includes;
 
-        File touch = new File( f, "touch.txt" );
+    /**
+     * @parameter
+     */
+    private Set<String> excludes;
 
-        FileWriter w = null;
-        try
-        {
-            w = new FileWriter( touch );
+    @SuppressWarnings("unchecked")
+    public void execute() throws MojoExecutionException {
+        try {
+            Set<File> filesSet = getSourceInclusionScanner().getIncludedSources(
+                    sourceDirectory, outputDirectory);
+            File[] files = new File[filesSet.size()];
+            TemplateSuiteFactory factory = new QDoxTemplateSuiteFactory(filesSet.toArray(files));
+            TemplateSuite suite = factory.createTemplateSuite();
+            XStream xstream = new XStream();
+            File dir = new File(outputDirectory, "META-INF");
+            dir.mkdirs();
+            File outputFile = new File(dir, "template-suite.xml");
+            outputFile.createNewFile();
+            Writer writer = new FileWriter(outputFile);
+            xstream.toXML(suite, writer);
+            writer.close();
+        } catch (InclusionScanException e) {
+            throw new MojoExecutionException("error", e);
+        } catch (IOException e) {
+            throw new MojoExecutionException("error", e);
+        }
+    }
 
-            w.write( "touch.txt" );
+    protected SourceInclusionScanner getSourceInclusionScanner() {
+        SourceInclusionScanner scanner = null;
+        if (includes == null) {
+            includes = new HashSet<String>();
         }
-        catch ( IOException e )
-        {
-            throw new MojoExecutionException( "Error creating file " + touch, e );
+        if (excludes == null) {
+            excludes = new HashSet<String>();
         }
-        finally
-        {
-            if ( w != null )
-            {
-                try
-                {
-                    w.close();
-                }
-                catch ( IOException e )
-                {
-                    // ignore
-                }
+
+        if (includes.isEmpty() && excludes.isEmpty()) {
+            includes = Collections.singleton("**/*Model.java");
+            scanner = new SimpleSourceInclusionScanner(includes, excludes);
+        } else {
+            if (includes.isEmpty()) {
+                includes = Collections.singleton("**/*Model.java");
             }
+            scanner = new SimpleSourceInclusionScanner(includes, excludes);
         }
+        scanner.addSourceMapping(new SourceMapping() {
+
+            @SuppressWarnings("unchecked")
+            @Override
+            public Set getTargetFiles(File targetDir, String source) {
+                return null;
+            }
+        });
+
+        return scanner;
     }
 }

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java?rev=918164&r1=918163&r2=918164&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java Tue Mar  2 19:59:56 2010
@@ -23,7 +23,7 @@
 
 public class QDoxTemplateSuiteFactory implements TemplateSuiteFactory {
 
-    private static final String TEMPLATE_SUFFIX = "Template";
+    private static final String TEMPLATE_SUFFIX = "Model";
 
     private JavaDocBuilder builder;
 

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java?rev=918164&r1=918163&r2=918164&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java Tue Mar  2 19:59:56 2010
@@ -8,9 +8,9 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.tiles.autotag.core.internal.ExampleExecutableTemplate;
-import org.apache.tiles.autotag.core.internal.ExampleTemplate;
-import org.apache.tiles.autotag.core.internal.NotFeasibleExampleTemplate;
+import org.apache.tiles.autotag.core.internal.ExampleExecutableModel;
+import org.apache.tiles.autotag.core.internal.ExampleModel;
+import org.apache.tiles.autotag.core.internal.NotFeasibleExampleModel;
 import org.apache.tiles.autotag.core.runtime.ModelBody;
 import org.apache.tiles.autotag.model.TemplateClass;
 import org.apache.tiles.autotag.model.TemplateMethod;
@@ -34,9 +34,9 @@
      */
     @Before
     public void setUp() {
-        factory = new QDoxTemplateSuiteFactory(getClass().getResource("/org/apache/tiles/autotag/core/internal/ExampleTemplate.java"),
-                getClass().getResource("/org/apache/tiles/autotag/core/internal/ExampleExecutableTemplate.java"),
-                getClass().getResource("/org/apache/tiles/autotag/core/internal/NotFeasibleExampleTemplate.java"));
+        factory = new QDoxTemplateSuiteFactory(getClass().getResource("/org/apache/tiles/autotag/core/internal/ExampleModel.java"),
+                getClass().getResource("/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java"),
+                getClass().getResource("/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java"));
         factory.setSuiteName("The suite name");
         factory.setSuiteDocumentation("This are the docs");
     }
@@ -51,9 +51,9 @@
         assertEquals("This are the docs", suite.getDocumentation());
         assertEquals(2, suite.getTemplateClasses().size());
 
-        TemplateClass templateClass = suite.getTemplateClassByName(ExampleTemplate.class.getName());
+        TemplateClass templateClass = suite.getTemplateClassByName(ExampleModel.class.getName());
         assertNotNull(templateClass);
-        assertEquals(ExampleTemplate.class.getName(), templateClass.getName());
+        assertEquals(ExampleModel.class.getName(), templateClass.getName());
         assertEquals("Example start/stop template.", templateClass.getDocumentation());
         TemplateMethod templateMethod = templateClass.getExecuteMethod();
         assertNotNull(templateMethod);
@@ -80,9 +80,9 @@
         assertEquals(ModelBody.class.getName(), parameter.getType());
         assertEquals("The model body.", parameter.getDocumentation());
 
-        templateClass = suite.getTemplateClassByName(ExampleExecutableTemplate.class.getName());
+        templateClass = suite.getTemplateClassByName(ExampleExecutableModel.class.getName());
         assertNotNull(templateClass);
-        assertEquals(ExampleExecutableTemplate.class.getName(), templateClass.getName());
+        assertEquals(ExampleExecutableModel.class.getName(), templateClass.getName());
         assertEquals("Example executable template.", templateClass.getDocumentation());
         templateMethod = templateClass.getExecuteMethod();
         assertNotNull(templateMethod);
@@ -103,7 +103,7 @@
         assertEquals(Request.class.getName(), parameter.getType());
         assertEquals("The request.", parameter.getDocumentation());
 
-        assertNull(suite.getTemplateClassByName(NotFeasibleExampleTemplate.class.getName()));
+        assertNull(suite.getTemplateClassByName(NotFeasibleExampleModel.class.getName()));
     }
 
 }

Copied: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java (from r905568, tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableTemplate.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java?p2=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java&p1=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableTemplate.java&r1=905568&r2=918164&rev=918164&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableTemplate.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java Tue Mar  2 19:59:56 2010
@@ -7,7 +7,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class ExampleExecutableTemplate {
+public class ExampleExecutableModel {
 
     /**
      * It executes.

Copied: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java (from r916947, tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java?p2=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java&p1=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java&r1=916947&r2=918164&rev=918164&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java Tue Mar  2 19:59:56 2010
@@ -8,7 +8,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class ExampleTemplate {
+public class ExampleModel {
 
     /**
      * It starts.

Copied: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java (from r905568, tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleTemplate.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java?p2=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java&p1=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleTemplate.java&r1=905568&r2=918164&rev=918164&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleTemplate.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java Tue Mar  2 19:59:56 2010
@@ -5,7 +5,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class NotFeasibleExampleTemplate {
+public class NotFeasibleExampleModel {
 
     /**
      * It starts.