package org.jboss.seam.maven.helper; import java.io.File; import java.io.FileNotFoundException; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; /** * * Goal which appends validator and converter custom tag file into face. * * @goal execute * * @phase generate-sources * * @author Rafael Benevides <https://community.jboss.org/people/rafabene> * @author Marek Novotny <https://community.jboss.org/people/manaRH> * */ public class SeamGeneratorValidatorAndConvertersMojo extends AbstractMojo { /** * The source directories containing the sources to be compiled. * * @parameter expression="${project.build.sourceDirectory}" * @required * @readonly */ protected String sourceDirectory; /** * Output directory for processed resources * * @parameter expression="${project.build.directory}" * @required */ private String targetDirectory; private ConverterGenerator converterGenerator; private ValidatorGenerator validatorGenerator; public void execute() throws MojoExecutionException { converterGenerator = new ConverterGenerator(sourceDirectory, targetDirectory, getLog()); validatorGenerator = new ValidatorGenerator(targetDirectory, getLog()); try { File sourceFolder = new File(sourceDirectory); getLog().info("Source Folder: " + sourceFolder); visitFolder(sourceFolder); converterGenerator.generateConverters(); visitFolder(new File(sourceFolder.getParent(), "config/component")); validatorGenerator.generateValidators(); } catch (Exception e) { throw new MojoExecutionException("Error on Generator", e); } } private void visitFolder(File sourceFolder) throws FileNotFoundException { for (File file : sourceFolder.listFiles()) { if (file.isDirectory()) { visitFolder(file); } else { converterGenerator.addFile(file); validatorGenerator.addFile(file); } } } }