Author: lcorneliussen
Date: Fri May 24 20:19:25 2013
New Revision: 1486207

URL: http://svn.apache.org/r1486207
Log:
[NPANDAY-402]: Add support to automatically attach PDB-symbols and 
Code-Documentation (comment.xml)

o applied partial/modified patch NPANDAY-576  from Victor Stefoglo and  
Valerijus Drozdovas

Modified:
    
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java
    incubator/npanday/trunk/pom.xml

Modified: 
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java?rev=1486207&r1=1486206&r2=1486207&view=diff
==============================================================================
--- 
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java
 (original)
+++ 
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java
 Fri May 24 20:19:25 2013
@@ -778,6 +778,13 @@ public abstract class AbstractCompilerMo
     private RepositoryRegistry repositoryRegistry;
 
     /**
+     * Attach PDB file as artifact, if <code>isDebug</code> enabled.
+     *
+     * @parameter expression = "${attachPdb}" default-value="false"
+     */
+    protected boolean attachPdb;
+
+    /**
      * Compiles the class files.
      *
      * @throws MojoExecutionException thrown if MOJO is unable to compile the 
class files or if the environment is not
@@ -1171,7 +1178,7 @@ public abstract class AbstractCompilerMo
             );
 
             if (!compilerExecutable.shouldCompile()) {
-                getLog().debug("NPANDAY-900-010: Compiler vetoed compile, see 
preceding log entries for details");
+                getLog().debug("NPANDAY-900-011: Compiler vetoed compile, see 
preceding log entries for details");
                 return;
             }
 
@@ -1206,11 +1213,8 @@ public abstract class AbstractCompilerMo
                 }
             }
 
-
-//            FileUtils.mkdir("target");
             FileUtils.mkdir(project.getBuild().getDirectory());
 
-
             long startTimeCompile = System.currentTimeMillis();
             compilerExecutable.execute();
             long endTimeCompile = System.currentTimeMillis();
@@ -1236,22 +1240,42 @@ public abstract class AbstractCompilerMo
                     project.getBuild().getSourceDirectory(), e);
         }
         long endTime = System.currentTimeMillis();
-        getLog().info("Mojo Execution Time = " + (endTime - startTime));
+        getLog().info("NPANDAY-900-013: Mojo Execution Time = " + (endTime - 
startTime));
     }
 
     private void attachArtifact(File artifact, String classifier) {
+        if ( isDebug && attachPdb )
+        {
+            attachPdbArtifact(artifact, classifier);
+        }
         if ( classifier != null )
         {
-            getLog().debug("Attaching artifact " + artifact.getPath() + " with 
classifier: " + classifier);
+            getLog().debug("NPANDAY-900-014: Attaching artifact " + 
artifact.getPath() + " with classifier: " + classifier);
             projectHelper.attachArtifact(project, artifact, classifier);
         }
         else
         {
-            getLog().debug("Attaching default project artifact " + 
artifact.getPath());
+            getLog().debug("NPANDAY-900-015: Attaching default project 
artifact " + artifact.getPath());
             project.getArtifact().setFile(artifact);
         }
     }
 
+    private void attachPdbArtifact(File artifact, String classifier)
+    {
+       File artifactDirectory = artifact.getParentFile();
+       String pdbName = null;
+       if ( pdb != null )
+       {
+          pdbName = pdb;
+       }
+       else
+       {
+          pdbName = 
artifact.getName().substring(0,artifact.getName().lastIndexOf("."));
+       }
+       File pdbFile = new File(artifactDirectory, pdbName + "." + 
ArtifactType.DOTNET_SYMBOLS.getExtension());
+       getLog().debug("NPANDAY-900-016: Attaching pdb project artifact " + 
pdbFile.getPath());
+       projectHelper.attachArtifact(project, 
ArtifactType.DOTNET_SYMBOLS.getPackagingType(), classifier, pdbFile);
+    }
 
     protected abstract void initializeDefaults() throws MojoExecutionException;
 

Modified: incubator/npanday/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/pom.xml?rev=1486207&r1=1486206&r2=1486207&view=diff
==============================================================================
--- incubator/npanday/trunk/pom.xml (original)
+++ incubator/npanday/trunk/pom.xml Fri May 24 20:19:25 2013
@@ -290,6 +290,12 @@ under the License.
     <contributor>
       <name>Adrián Boimvaser</name>
     </contributor>
+    <contributor>
+      <name>Valerijus Drozdovas</name>
+    </contributor>
+    <contributor>
+      <name>Victor Stefoglo</name>
+    </contributor>
   </contributors>
   <modules>
     <module>components</module>


Reply via email to