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