[
https://issues.apache.org/jira/browse/NPANDAY-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13099286#comment-13099286
]
Lars Corneliussen commented on NPANDAY-470:
-------------------------------------------
Thanks for reporting this issue. Your observation regarding the msbuild plugin
is correct! The java binding is maintained manually. We even plan to
reimplement it in java.
Netplugins were a great idea, but never really worked as expected. If you find
out what's happening, we are happy to apply a contribution.
We are happy to guide you through the code.
> 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