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.