You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-commits@incubator.apache.org by "Brett Porter (Updated) (JIRA)" <ji...@apache.org> on 2012/01/05 01:28:40 UTC

[jira] [Updated] (NPANDAY-470) maven-mojo-generator-plugin can't create javabinding

     [ 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