You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Mohamed Talhaoui <mo...@gmail.com> on 2005/09/22 16:54:27 UTC

[m2] Mojo's parameters configuration

I wrote a simple plugin that generate java code from xml using castor.

I have 2 class:

the Mojo:
package com.mycompany.maven.plugins.castor;

import java.io.File;
import java.util.List;
import java.util.logging.Logger;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.exolab.castor.builder.SourceGenerator;

/**
 * A Maven2 plugin which generates java sources from xsd files.
 *
 * @phase=generate-sources
 * @goal castor2java
 * @version $Id$
 */
public class Castor2JavaPlugin extends AbstractMojo {

 Logger logger = Logger.getLogger("Castor2JavaPlugin");

 /**
 * @parameter
 * @required
 */
 private List castorParams;

 /**
 * @parameter default-value="${project.build.directory}/generated-sources"
 * @required
 */
 private String outputDirectory;


 public void execute() throws MojoExecutionException {
 try {
 for (int i = 0; i < castorParams.size(); i++) {
 CastorParam param= (CastorParam)castorParams.get(i);
 logger.info("Processing castor file " + param.getSchema() + "...");
 File schemaFile = new File(param.getSchema());
 String args[] = new String[4];
 args[0]="-i" + param.getSchema();
 args[1]="-f";
 args[2]="-package" + param.getPackaging();
 args[3]="-dest" + outputDirectory;
 SourceGenerator sourceGenerator = new SourceGenerator();
 sourceGenerator.main(args);

 }
 } catch (Throwable ex) {
 ex.printStackTrace();
 throw new MojoExecutionException("exception occured, message is : " +
ex.getMessage());
 }
 logger.info("End castor processing.");
 }

}

and the CastorParam that holds parameters to pass to castor:
package com.mycompany.maven.plugins.castor;

public class CastorParam {

 private String schema;
 private String packaging;

 public String getPackaging() {
 return packaging;
 }
 public void setPackaging(String packaging) {
 this.packaging = packaging;
 }
 public String getSchema() {
 return schema;
 }
 public void setSchema(String schema) {
 this.schema = schema;
 }
}

 I have the following lugin node in my project pom:
 <plugins>
<plugin>
<groupId>com.mycompany.maven.plugins</groupId>
<artifactId>maven-castor-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<goals>
<goal>castor2java</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<castorParams>
<castorParam implementation="com.mycompany.maven.plugins.castor.CastorParam
">
<schema>schemas/eRisk/risk_request.xsd</schema>
<packaging>com.netfinca.risk.castorxml.request</packaging>
</castorParam>
<castorParam implementation="com.mycompany.maven.plugins.castor.CastorParam
">
<schema>schemas/eRisk/risk_response_cpronline.xsd</schema>
<packaging>com.netfinca.risk.cpronline.castorxml</packaging>
</castorParam>
</castorParams>
</configuration>
</execution>
</executions>
</plugin>
</plugins>

When I run the m2 install on my project I have the following:
[ERROR] BUILD ERROR
[INFO]
----------------------------------------------------------------------------
[INFO] Diagnosis: Error configuring plugin for execution of
'castor:castor2java'.
[INFO]
----------------------------------------------------------------------------
[ERROR] Cause:
org.apache.maven.plugin.MojoExecutionException: Error configuring plugin for
execution of 'castor:castor2java'.
 at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
DefaultPluginManager.java:378)
 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:169)
 at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
(DefaultLifecycleExecutor.java:14
3)
 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
DefaultLifecycleExecutor.java:129)
 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
DefaultLifecycleExecutor.java:103)
 at org.apache.maven.DefaultMaven.processProject(DefaultMaven.java:261)
 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:180)
 at org.apache.maven.cli.MavenCli.main(MavenCli.java:269)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:303)
 at org.codehaus.classworlds.Launcher.launch(Launcher.java:243)
 at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:416)
 at org.codehaus.classworlds.Launcher.main(Launcher.java:363)
Caused by: org.apache.maven.plugin.PluginParameterException: Invalid or
missing parameters: [Mojo parameter [name: 'cast
orParams'; alias: 'null']] for mojo:
com.mycompany.maven.plugins:maven-castor-plugin:1.0-alpha-1:castor2java
 at org.apache.maven.plugin.DefaultPluginManager.checkRequiredParameters(
DefaultPluginManager.java:764)
 at org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(
DefaultPluginManager.java:527)
 at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
DefaultPluginManager.java:373)
 ... 15 more

I should have missed something, but what ??

Thx for your help.

PS: I'm using maven 2 alpha 3.

Re: [m2] Mojo's parameters configuration

Posted by Brett Porter <br...@gmail.com>.
It's a bug - already in JIRA. If there is no expression on a parameter
it doesn't get configured.

BTW, there is already a castor plugin, as Jason has pointed out:
http://blogs.codehaus.org/projects/maven/archives/001176_where_to_find_maven_2x_plugins.html

Cheers,
Brett


On 9/23/05, Mohamed Talhaoui <mo...@gmail.com> wrote:
> I wrote a simple plugin that generate java code from xml using castor.
>
> I have 2 class:
>
> the Mojo:
> package com.mycompany.maven.plugins.castor;
>
> import java.io.File;
> import java.util.List;
> import java.util.logging.Logger;
>
> import org.apache.maven.plugin.AbstractMojo;
> import org.apache.maven.plugin.MojoExecutionException;
> import org.exolab.castor.builder.SourceGenerator;
>
> /**
>  * A Maven2 plugin which generates java sources from xsd files.
>  *
>  * @phase=generate-sources
>  * @goal castor2java
>  * @version $Id$
>  */
> public class Castor2JavaPlugin extends AbstractMojo {
>
>  Logger logger = Logger.getLogger("Castor2JavaPlugin");
>
>  /**
>  * @parameter
>  * @required
>  */
>  private List castorParams;
>
>  /**
>  * @parameter default-value="${project.build.directory}/generated-sources"
>  * @required
>  */
>  private String outputDirectory;
>
>
>  public void execute() throws MojoExecutionException {
>  try {
>  for (int i = 0; i < castorParams.size(); i++) {
>  CastorParam param= (CastorParam)castorParams.get(i);
>  logger.info("Processing castor file " + param.getSchema() + "...");
>  File schemaFile = new File(param.getSchema());
>  String args[] = new String[4];
>  args[0]="-i" + param.getSchema();
>  args[1]="-f";
>  args[2]="-package" + param.getPackaging();
>  args[3]="-dest" + outputDirectory;
>  SourceGenerator sourceGenerator = new SourceGenerator();
>  sourceGenerator.main(args);
>
>  }
>  } catch (Throwable ex) {
>  ex.printStackTrace();
>  throw new MojoExecutionException("exception occured, message is : " +
> ex.getMessage());
>  }
>  logger.info("End castor processing.");
>  }
>
> }
>
> and the CastorParam that holds parameters to pass to castor:
> package com.mycompany.maven.plugins.castor;
>
> public class CastorParam {
>
>  private String schema;
>  private String packaging;
>
>  public String getPackaging() {
>  return packaging;
>  }
>  public void setPackaging(String packaging) {
>  this.packaging = packaging;
>  }
>  public String getSchema() {
>  return schema;
>  }
>  public void setSchema(String schema) {
>  this.schema = schema;
>  }
> }
>
>  I have the following lugin node in my project pom:
>  <plugins>
> <plugin>
> <groupId>com.mycompany.maven.plugins</groupId>
> <artifactId>maven-castor-plugin</artifactId>
> <version>1.0-alpha-1</version>
> <executions>
> <execution>
> <goals>
> <goal>castor2java</goal>
> </goals>
> <phase>generate-sources</phase>
> <configuration>
> <castorParams>
> <castorParam implementation="com.mycompany.maven.plugins.castor.CastorParam
> ">
> <schema>schemas/eRisk/risk_request.xsd</schema>
> <packaging>com.netfinca.risk.castorxml.request</packaging>
> </castorParam>
> <castorParam implementation="com.mycompany.maven.plugins.castor.CastorParam
> ">
> <schema>schemas/eRisk/risk_response_cpronline.xsd</schema>
> <packaging>com.netfinca.risk.cpronline.castorxml</packaging>
> </castorParam>
> </castorParams>
> </configuration>
> </execution>
> </executions>
> </plugin>
> </plugins>
>
> When I run the m2 install on my project I have the following:
> [ERROR] BUILD ERROR
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Diagnosis: Error configuring plugin for execution of
> 'castor:castor2java'.
> [INFO]
> ----------------------------------------------------------------------------
> [ERROR] Cause:
> org.apache.maven.plugin.MojoExecutionException: Error configuring plugin for
> execution of 'castor:castor2java'.
>  at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
> DefaultPluginManager.java:378)
>  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
> DefaultLifecycleExecutor.java:169)
>  at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
> (DefaultLifecycleExecutor.java:14
> 3)
>  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
> DefaultLifecycleExecutor.java:129)
>  at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
> DefaultLifecycleExecutor.java:103)
>  at org.apache.maven.DefaultMaven.processProject(DefaultMaven.java:261)
>  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:180)
>  at org.apache.maven.cli.MavenCli.main(MavenCli.java:269)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:39)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
>  at java.lang.reflect.Method.invoke(Method.java:324)
>  at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:303)
>  at org.codehaus.classworlds.Launcher.launch(Launcher.java:243)
>  at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:416)
>  at org.codehaus.classworlds.Launcher.main(Launcher.java:363)
> Caused by: org.apache.maven.plugin.PluginParameterException: Invalid or
> missing parameters: [Mojo parameter [name: 'cast
> orParams'; alias: 'null']] for mojo:
> com.mycompany.maven.plugins:maven-castor-plugin:1.0-alpha-1:castor2java
>  at org.apache.maven.plugin.DefaultPluginManager.checkRequiredParameters(
> DefaultPluginManager.java:764)
>  at org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(
> DefaultPluginManager.java:527)
>  at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
> DefaultPluginManager.java:373)
>  ... 15 more
>
> I should have missed something, but what ??
>
> Thx for your help.
>
> PS: I'm using maven 2 alpha 3.
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org