maven-mojo-generator-plugin can't create javabinding
----------------------------------------------------
Key: NPANDAY-470
URL: https://issues.apache.org/jira/browse/NPANDAY-470
Project: NPanday
Issue Type: Bug
Components: Maven Plugins
Affects Versions: 1.4.1-incubating
Environment: windows 7 64 bit, maven 2.2.1
Reporter: sergio rupena
The plugin does work as documented here
[http://incubator.apache.org/npanday/docs/1.4.0-incubating/plugins/maven-mojo-generator-plugin/usage.html].
I have a simple netplugin pom with a single c# class that inherits from
AbstractMojo (see code below). When I run mvn install on my pom the following
things happen
* npanday successfully builds a .net plugin
* npanday automatically generates a javabinding. The java binding is unexpected
as this time (according to the documentation it first require to invoke an
additional command).
* The generated pom-java.xml does not compile for many reasons. First of all
the syntax of the annotations cannot be parsed and results in a
parse-exception, secondly (when you fix the syntax by hand), the java file will
not compile because it imports from wrong packages and inherits from wrong
types. Third, when you manually fix those issues it will compile, albeit the
plugin will not run.
In the npanday source tree there is an example of the msbuild plugin which
actually works as netplugin. However, If you try to build the pom-java.xml of
the msbuild plugin, it will fail for the same reasons. Only the provided
'javabinding' works as a plugin and it looks like this has been maintained by
hand and not via the mojo-generator plugin.
example pom:
{code:xml}
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<!-- To generate java bindings automatically.
http://incubator.apache.org/npanday/docs/1.4.0-incubating/plugins/maven-mojo-generator-plugin/usage.html
mvn org.apache.npanday.plugins:maven-mojo-generator-plugin:generate-bindings
mvn
org.apache.npanday.plugins:maven-mojo-generator-plugin:1.4.1-incubating:generate-bindings
-->
<modelVersion>4.0.0</modelVersion>
<groupId>Test</groupId>
<artifactId>NPanday.Plugin.MyMojoTest</artifactId>
<packaging>netplugin</packaging>
<name>my test mojo</name>
<version>1.0-SNAPSHOT</version>
<build>
<sourceDirectory>src/main/cs</sourceDirectory>
<testSourceDirectory>src/test/cs</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>maven-compile-plugin</artifactId>
<version>1.4.1-incubating-SNAPSHOT</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.npanday</groupId>
<artifactId>NPanday.Artifact</artifactId>
<version>1.4.1-incubating-SNAPSHOT</version>
<type>dotnet-library</type>
</dependency>
<dependency>
<groupId>org.apache.npanday</groupId>
<artifactId>NPanday.Model.AutomationExtensibility</artifactId>
<version>1.4.1-incubating-SNAPSHOT</version>
<type>dotnet-library</type>
</dependency>
<dependency>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>NPanday.Plugin</artifactId>
<version>1.4.1-incubating-SNAPSHOT</version>
<type>dotnet-library</type>
</dependency>
<dependency>
<groupId>org.apache.npanday</groupId>
<artifactId>NPanday.Model.Pom</artifactId>
<version>1.4.1-incubating-SNAPSHOT</version>
<type>dotnet-library</type>
</dependency>
<!--
<dependency>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>NPanday.Plugin.Runner</artifactId>
<version>1.4.0-incubating</version>
<type>dotnet-executable</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>NPanday.Plugin.MojoGenerator</artifactId>
<version>1.4.0-incubating</version>
<type>dotnet-executable</type>
<scope>runtime</scope>
</dependency>
-->
</dependencies>
</project>
{code}
c# Mojo:
{code}
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Diagnostics;
using Microsoft.Win32;
using NPanday.Plugin;
using NPanday.Model.Pom;
using NPanday.Model;
using NPanday.Artifact;
using System.Reflection;
namespace NPanday.Plugin.MyMojoTest
{
/// <summary>
/// C# Plugin that will generate the required system reference .dlls
/// </summary>
[ClassAttribute(Phase = "validate", Goal = "compile")]
public sealed class MyMojo : AbstractMojo
{
public MyMojo()
{
}
[FieldAttribute("mavenProject", Expression = "${project}", Type
= "org.apache.maven.project.MavenProject")]
public NPanday.Model.Pom.Model mavenProject;
public string myProperty;
public override Type GetMojoImplementationType()
{
return this.GetType();
}
public override void Execute()
{
Console.WriteLine("[INFO] HELLO MY c# PLUGIN
"+myProperty);
}
}
}
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira