[ 
https://issues.apache.org/jira/browse/NPANDAY-470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brett Porter updated NPANDAY-470:
---------------------------------

    Fix Version/s: Backlog
    
> 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
>             Fix For: Backlog
>
>
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to