Author: matzew Date: Tue Jan 10 15:07:59 2012 New Revision: 1229583 URL: http://svn.apache.org/viewvc?rev=1229583&view=rev Log: Committing first round of work for NPANDAY-529
Modified: incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/AssemblyInfo.java incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/impl/DefaultAssemblyInfoMarshaller.java incubator/npanday/branches/NPANDAY-529/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AssemblyInfoGeneratorMojo.java Modified: incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/AssemblyInfo.java URL: http://svn.apache.org/viewvc/incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/AssemblyInfo.java?rev=1229583&r1=1229582&r2=1229583&view=diff ============================================================================== --- incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/AssemblyInfo.java (original) +++ incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/AssemblyInfo.java Tue Jan 10 15:07:59 2012 @@ -89,7 +89,12 @@ public class AssemblyInfo private Map<String, String> customStringAttributes; - private static final Map<String, String> EMPTY_CUSTOM_STRING_ATTRIBUTES = Collections.emptyMap();; + private static final Map<String, String> EMPTY_CUSTOM_STRING_ATTRIBUTES = Collections.emptyMap(); + + private Map<String, String> assemblyAttributes; + + private static final Map<String, String> EMPTY_ASSEMBLY_ATTRIBUTES = Collections.emptyMap(); + /** * Default constructor @@ -260,6 +265,16 @@ public class AssemblyInfo { this.customStringAttributes = attributes; } + + public Map<String, String> getAssemblyAttributes() + { + return (assemblyAttributes != null) ? assemblyAttributes : EMPTY_ASSEMBLY_ATTRIBUTES; + } + + public void setAssemblyAttributes(Map<String, String> assemblyAttributes) + { + this.assemblyAttributes = assemblyAttributes; + } public boolean equals( Object o ) { Modified: incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/impl/DefaultAssemblyInfoMarshaller.java URL: http://svn.apache.org/viewvc/incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/impl/DefaultAssemblyInfoMarshaller.java?rev=1229583&r1=1229582&r2=1229583&view=diff ============================================================================== --- incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/impl/DefaultAssemblyInfoMarshaller.java (original) +++ incubator/npanday/branches/NPANDAY-529/components/dotnet-assembler/src/main/java/npanday/assembler/impl/DefaultAssemblyInfoMarshaller.java Tue Jan 10 15:07:59 2012 @@ -32,6 +32,7 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.io.BufferedReader; import java.io.InputStreamReader; +import java.util.StringTokenizer; import java.util.Map.Entry; import org.apache.maven.project.MavenProject; @@ -95,6 +96,27 @@ final class DefaultAssemblyInfoMarshalle sb.append( ")]" ).append("\r\n" ); } + for(Entry<String, String> e: assemblyInfo.getAssemblyAttributes().entrySet()) { + if(StringUtils.isEmpty(e.getValue())) + continue; + + // get all values per key (e.g. "A;B;C") + String valuesPerElement = e.getValue(); + + StringTokenizer st = new StringTokenizer(valuesPerElement, ";"); + + while (st.hasMoreTokens()) { + // each value will be assigned to the enclosing key/element + sb.append( "[assembly: ") + .append(e.getKey()) + .append("(\"") + .append(st.nextToken()) + .append("\")]") + .append("\r\n" ); + } + } + + boolean wroteCustomStringAttribute = false; for(Entry<String, String> e: assemblyInfo.getCustomStringAttributes().entrySet()) { if(StringUtils.isEmpty(e.getValue())) Modified: incubator/npanday/branches/NPANDAY-529/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AssemblyInfoGeneratorMojo.java URL: http://svn.apache.org/viewvc/incubator/npanday/branches/NPANDAY-529/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AssemblyInfoGeneratorMojo.java?rev=1229583&r1=1229582&r2=1229583&view=diff ============================================================================== --- incubator/npanday/branches/NPANDAY-529/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AssemblyInfoGeneratorMojo.java (original) +++ incubator/npanday/branches/NPANDAY-529/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AssemblyInfoGeneratorMojo.java Tue Jan 10 15:07:59 2012 @@ -19,26 +19,26 @@ package npanday.plugin.compile; * under the License. */ -import npanday.ArtifactTypeHelper; -import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.project.MavenProject; -import org.codehaus.plexus.util.FileUtils; - -import java.io.IOException; import java.io.File; -import java.io.FileOutputStream; +import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; -import npanday.InitializationException; -import npanday.PlatformUnsupportedException; -import npanday.vendor.*; +import npanday.ArtifactTypeHelper; import npanday.assembler.AssemblerContext; -import npanday.assembler.AssemblyInfoMarshaller; -import npanday.assembler.AssemblyInfoException; import npanday.assembler.AssemblyInfo; +import npanday.assembler.AssemblyInfoException; +import npanday.assembler.AssemblyInfoMarshaller; +import npanday.vendor.Vendor; +import npanday.vendor.VendorFactory; +import npanday.vendor.VendorInfo; +import npanday.vendor.VendorUnsupportedException; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.util.FileUtils; /** * Generates an AssemblyInfo.* class based on information within the pom file. @@ -128,6 +128,11 @@ public class AssemblyInfoGeneratorMojo protected Map assemblyInfo = new HashMap(); /** + * @parameter + */ + protected Map assemblyAttributes = new HashMap(); + + /** * If an AssemblyInfo file exists in the source directory, then this method will not generate an AssemblyInfo. * * @throws MojoExecutionException @@ -183,6 +188,9 @@ public class AssemblyInfoGeneratorMojo AssemblyInfo assemblyInfo = assemblerContext.getAssemblyInfo(); assemblyInfo.setCustomStringAttributes(this.assemblyInfo); + // apply the custom attributes : + assemblyInfo.setAssemblyAttributes(this.assemblyAttributes); + try { stateMachineProcessor.process( vendorInfo );