Dotnet Resources Support (code fix included) --------------------------------------------
Key: MNG-2487 URL: http://jira.codehaus.org/browse/MNG-2487 Project: Maven 2 Issue Type: Improvement Components: Sandbox Environment: Windows XP Reporter: James Carpenter Attachments: masterzip.zip The csharp plugins (currently in the sandbox) do not properly support csharp resources. It turns out that solving the problem requires changing several of the standard plugins. To resolve the problem I have made a few small changes to the following code: 1) Created the maven-dotnet-resources-plugin. >This plugin is a clone of the standard resources plugin. The only real change is to change the expression used in computing the output directory >within the @parameter tag of the Mojos. The output directory of the maven-dotnet-resources-plugin points at a temporary directory down in >the target. >@parameter expression="${project.build.directory}/csharp-workarea/dotnet-resources-plugin/resources" >for the DotNetResourcesMojo, similar for the DotNetTestResourcesMojo >This is the same expression used for the filteredResourcesDirectory instance variable in the modified maven-compiler-plugin. >Upon inspection the reader will soon realize the standard and dotnet resources plugins should be somehow refactored so as to avoid >the gross copy/paste reuse. 2) maven-compiler-plugin >Added filteredResourcesDirectory and TestResourcesDirectory to the CompilerMojo and TestCompilerMojo respectively. This is used to add a resourceDir custom compiler configuration whenver the attributes point to actual directories. 3) plexus-compiler-csharp >Added code to leverage the resourceDir compiler argument now being passed down by the maven-compiler-plugin. 4) Modified the maven-csharp-lifecycle plugin >Changed META-INF/plexus/components.xml so as to replace maven-resources-plugin with maven-dotnet-resources-plugin ================================ Description from new maven-dotnet-resources-plugin (explains the overall motivation): The maven dotnet resources plugin is almost identical to the standard resources plugin. The only difference is the result of the resources and testResources goals are copied into special workarea directories under target. Unlike javac which produces a directory of class files which are typically archived in jar format by the jar tool after javac has run, the csc (C# compiler) directly produces an archive (a dll containing the dotnet assembly). Consequently, csc must be passed each resource using the resource option. The csharp compiler plugin and this plugin therefore collaborate. This dotnet resources plugin places the resources in a temporary workarea under target and the csharp compiler plugin produces resource option arguments to csc for every file found there. You will notice all the filter support available in the standard resources plugin is also available in the dotnet resources plugin. ================================= The attached maven-csharp plugins are currently set to SNAPSHOT as I havn't yet created a new inhouse release for them. I'll probably do this as soon as I finish this jira issue. ================================= The attached zip file contains relevant patch files along with complete zips of the code. You will notice the csharp plugins are slightly improved from what is currently in the sandbox. To my knowledge the development of the sandboxed csharp plugins is rather stagnated. There is probably enough code here to bring the csharp plugins to an alpha release. I would much prefer to be using officially released versions rather than having to maintain my own. I am happy to have a half hour phone conversation with maven developer with commit priviledges who can make this happen. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira