Author: simoneg
Date: Wed Jul  8 16:45:32 2009
New Revision: 792224

URL: http://svn.apache.org/viewvc?rev=792224&view=rev
Log:
LABS-377 : fix for build under windows and with spaces

Added:
    labs/magma/trunk/maven-magma-plugin/src/main/java/net/
    labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/
    labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/cobertura/
    
labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/cobertura/instrument/
    
labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/cobertura/instrument/CoberturaClassTransformer.java
    
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaForkConfiguration.java
Modified:
    labs/magma/trunk/maven-magma-plugin/pom.xml
    
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/classloading/AspectJClassTransformer.java
    
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaAjcCompleteCompileMojo.java
    
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRun.java
    
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRunWar.java
    
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaTestMojo.java

Modified: labs/magma/trunk/maven-magma-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/pom.xml?rev=792224&r1=792223&r2=792224&view=diff
==============================================================================
--- labs/magma/trunk/maven-magma-plugin/pom.xml (original)
+++ labs/magma/trunk/maven-magma-plugin/pom.xml Wed Jul  8 16:45:32 2009
@@ -24,7 +24,7 @@
        <groupId>org.apache.magma.tools</groupId>
        <artifactId>maven-magma-plugin</artifactId>
        <name>Magma Extension Mojo</name>
-       <version>0.0.3-rev13</version>
+       <version>0.0.3-rev14</version>
        <description>
                Provides mojos to compile and test a magma package.
        </description>
@@ -65,6 +65,11 @@
                        <artifactId>jetty</artifactId>
                        <version>6.1.14</version>
                </dependency>
+               <dependency>
+                       <groupId>net.sourceforge.cobertura</groupId>
+                       <artifactId>cobertura</artifactId>
+                       <version>1.9</version>
+               </dependency>
        </dependencies>
        <build>
                <plugins>

Added: 
labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/cobertura/instrument/CoberturaClassTransformer.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/cobertura/instrument/CoberturaClassTransformer.java?rev=792224&view=auto
==============================================================================
--- 
labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/cobertura/instrument/CoberturaClassTransformer.java
 (added)
+++ 
labs/magma/trunk/maven-magma-plugin/src/main/java/net/sourceforge/cobertura/instrument/CoberturaClassTransformer.java
 Wed Jul  8 16:45:32 2009
@@ -0,0 +1,86 @@
+package net.sourceforge.cobertura.instrument;
+
+import java.io.File;
+import java.security.ProtectionDomain;
+import java.util.Collection;
+import java.util.Vector;
+
+import net.sourceforge.cobertura.coveragedata.CoverageDataFileHandler;
+import net.sourceforge.cobertura.coveragedata.ProjectData;
+
+import org.apache.magma.tools.classloading.ClassTransformationReceiver;
+import org.apache.magma.tools.classloading.ClassTransformer;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassWriter;
+
+public class CoberturaClassTransformer implements ClassTransformer {
+
+       protected ClassTransformationReceiver receiver = null;
+       protected boolean reentring = false;
+
+       private Collection ignoreRegexes = new Vector();
+       private Collection ignoreBranchesRegexes = new Vector();
+       private ClassPattern classPattern = new ClassPattern();
+       private ProjectData projectData = null;
+       private File datafile;
+
+
+       public CoberturaClassTransformer(String file) {
+               datafile = new File(file);
+               if (datafile.exists()) {
+                       projectData = 
CoverageDataFileHandler.loadCoverageData(datafile);
+               }
+               if (projectData == null) {
+                       projectData = new ProjectData();
+               }
+               Runtime.getRuntime().addShutdownHook(new Thread() {
+                       public void run() {
+                               
CoverageDataFileHandler.saveCoverageData(projectData, datafile);                
                
+                       }
+               });
+       }
+       
+       public void addClassInclude(String pattern) {
+               classPattern.addIncludeClassesRegex(pattern);
+       }
+       
+       public void addClassExclude(String pattern) {
+               classPattern.addExcludeClassesRegex(pattern);
+       }
+       
+       
+       
+       public void setReceiver(ClassTransformationReceiver receiver) {
+               this.receiver = receiver;
+       }
+
+       public byte[] transform(String classname, byte[] classbytecode, 
ProtectionDomain domain) {
+               if (reentring) return null;
+               if (!classPattern.matches(classname)) return null;              
+               try {
+                       reentring = true;
+                       
+                       System.out.println("Cobertura instrumenting " + 
classname);
+                       ClassWriter cw;
+                       ClassInstrumenter cv;
+                       try {
+                               ClassReader cr = new ClassReader(classbytecode);
+                               cw = new ClassWriter(true);
+                               cv = new ClassInstrumenter(projectData, cw, 
ignoreRegexes, ignoreBranchesRegexes);
+                               cr.accept(cv, false);
+                       } catch (Throwable t) {
+                               return null;
+                       }
+
+                       if (cv.isInstrumented()) {
+                               return cw.toByteArray();
+                       }
+                       return null;
+               } catch (Exception e) {
+                       throw new RuntimeException("Error Cobertura 
transforming " + classname, e);
+               } finally {
+                       reentring = false;
+               }
+       }
+
+}

Modified: 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/classloading/AspectJClassTransformer.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/classloading/AspectJClassTransformer.java?rev=792224&r1=792223&r2=792224&view=diff
==============================================================================
--- 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/classloading/AspectJClassTransformer.java
 (original)
+++ 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/classloading/AspectJClassTransformer.java
 Wed Jul  8 16:45:32 2009
@@ -27,7 +27,10 @@
                        byte[] nbuff = adaptor.weaveClass(classname, 
classbytecode); 
                        return nbuff.length == classbytecode.length ? null : 
nbuff;
                } catch (AbortException ae) {
-                       if (ignoreAborts) return null;
+                       if (ignoreAborts) {
+                               ae.printStackTrace();
+                               return null;
+                       }
                        throw new RuntimeException("Error weaving " + 
classname, ae);
                } catch (IOException e) {
                        throw new RuntimeException("Error weaving " + 
classname, e);

Modified: 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaAjcCompleteCompileMojo.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaAjcCompleteCompileMojo.java?rev=792224&r1=792223&r2=792224&view=diff
==============================================================================
--- 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaAjcCompleteCompileMojo.java
 (original)
+++ 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaAjcCompleteCompileMojo.java
 Wed Jul  8 16:45:32 2009
@@ -147,7 +147,6 @@
                                        
archiver.getArchiver().addDirectory(outdir);
                                        MavenArchiveConfiguration conf = new 
MavenArchiveConfiguration();
                                        archiver.createArchive(project, conf);
-                                       FileUtils.deleteDirectory(outdir);
                                } catch (Exception e) {
                                        throw new RuntimeException("Error 
creating zip file " + destjar.getAbsolutePath(), e);
                                }

Added: 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaForkConfiguration.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaForkConfiguration.java?rev=792224&view=auto
==============================================================================
--- 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaForkConfiguration.java
 (added)
+++ 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaForkConfiguration.java
 Wed Jul  8 16:45:32 2009
@@ -0,0 +1,31 @@
+package org.apache.magma.tools.maven;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.surefire.booter.ForkConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+import 
org.apache.maven.surefire.booter.shade.org.codehaus.plexus.util.cli.Commandline;
+
+public class MagmaForkConfiguration extends ForkConfiguration {
+
+       private List agents = new ArrayList();
+       
+       @Override
+       public Commandline createCommandLine(List classPath, boolean useJar) 
throws SurefireBooterForkException {
+               Commandline line = super.createCommandLine(classPath, useJar);
+               for (Iterator iterator = agents.iterator(); 
iterator.hasNext();) {
+                       String agent = (String) iterator.next();
+                       line.createArg(true).setValue("-javaagent:" + agent);
+               }
+               return line;
+       }
+       
+       public void addAgent(String file) {
+               agents.add(file);
+       }
+
+       
+       
+}

Modified: 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRun.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRun.java?rev=792224&r1=792223&r2=792224&view=diff
==============================================================================
--- 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRun.java
 (original)
+++ 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRun.java
 Wed Jul  8 16:45:32 2009
@@ -22,6 +22,7 @@
 import java.io.IOException;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -31,6 +32,8 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
+import net.sourceforge.cobertura.instrument.CoberturaClassTransformer;
+
 import org.apache.magma.tools.classloading.AspectJClassTransformer;
 import org.apache.magma.tools.classloading.ClassLoaderBytecodeProvider;
 import org.apache.magma.tools.classloading.JPAClassTransformer;
@@ -107,6 +110,36 @@
         */
        private File classesDirectory;
        
+       /**
+        * Whether to setup cobertura instrumentation.
+        * 
+        * @parameter expression="false"
+        * @required
+        */     
+       private boolean coverage = false;
+       
+       /**
+        * The serialization file for cobertura data.
+        * 
+        * @parameter expression="${project.build.directory}/cobertura.ser"
+        * @required
+        */             
+       private String coverageDataFile = null;
+       
+       /**
+        * Class patterns to include in coverage data
+        * 
+        * @parameter
+        */
+       private String[] coverageIncludes = null;
+
+       /**
+        * Class patterns to exclude in coverage data
+        * 
+        * @parameter
+        */
+       private String[] coverageExcludes = null;
+       
        public String PORT_SYSPROPERTY = "jetty.port";    
     
     public static int DEFAULT_PORT = 8080;
@@ -192,7 +225,7 @@
                        throw new MojoExecutionException("Error setting up 
classloader url list", e);
                }
                
-               URL[] urlarray = (URL[]) urls.toArray(new URL[urls.size()]);
+               URL[] urlarray = (URL[]) urls.toArray(new URL[urls.size()]);    
                        
                List<URL> aspects = new ArrayList<URL>();
                for (URL url : urlarray) {
                        try {
@@ -205,12 +238,15 @@
                                        if (entry != null) aspects.add(url);
                                }
                        } catch (Exception e) {
+                               e.printStackTrace();
                        }
                }
                
                StringBuilder jettypath = new StringBuilder();
                for (URL acurl : urlarray) {
-                       jettypath.append(acurl.toString());
+                       // TODO remove this, workaround for bug 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=282379
+                       //jettypath.append(acurl.toString());
+                       jettypath.append(URLDecoder.decode(acurl.toString()));
                        jettypath.append(',');
                }
                webapp.setExtraClasspath(jettypath.toString());
@@ -220,6 +256,7 @@
                sysclasseslist.add("javax.net.");
                webapp.setSystemClasses(sysclasseslist.toArray(new String[0]));
 
+               
                try {
                        WebAppClassLoader rootrepo = new 
WebAppClassLoader(webapp);
                        URLClassLoader limitedrepo = new 
URLClassLoader(urlarray, null);
@@ -227,29 +264,66 @@
                        root.setRawResources(rootrepo);
                        ClassLoaderBytecodeProvider rootprovider = new 
ClassLoaderBytecodeProvider(limitedrepo);
                        
+                       // TODO remove this, workaround for bug 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=282379
+                       for (int i = 0; i < aspects.size(); i++) {
+                               try {
+                                       aspects.set(i, new 
URL(URLDecoder.decode(aspects.get(i).toExternalForm(), "UTF-8")));
+                               } catch (Exception e) {
+                                       throw new RuntimeException("Error 
sanitizing the aspect URL", e);
+                               }
+                       }
+                       // end workaround
+                       
+                       
                        AspectJClassTransformer ajctransformer = new 
AspectJClassTransformer(rootrepo, aspects.toArray(new URL[] {}));
                        TransformingProvider ajcprovider = new 
TransformingProvider("ajc", ajctransformer);
                        root.setChainProvider(ajcprovider);
                        ajcprovider.setChainProvider(rootprovider);
                        
                        Class support = null;
+                       TransformingProvider jpaprovider = null;
                        try {
                                support = 
root.loadClass("org.apache.magma.database.openjpa.SupportTransformer");
                        } catch (ClassNotFoundException e) {}
                        if (support != null) {
                                StringBuilder paths = new StringBuilder(); 
                                for (URL acurl : urlarray) {
-                                       paths.append(acurl.toString());
+                                       // TODO remove this, workaround for bug 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=282379
+                                       //paths.append(acurl.toString());
+                                       
paths.append(URLDecoder.decode(acurl.toString()));
                                        paths.append(';');
                                }
                                Class jpact = 
root.loadClass(JPAClassTransformer.class.getName());
                                JPAClassTransformer jpatransformer = 
(JPAClassTransformer) jpact.
                                        getConstructor(ClassLoader.class, 
String.class, String.class)
                                        .newInstance(root, 
"org.apache.magma.database.openjpa.SupportTransformer", paths.toString());
-                               TransformingProvider jpaprovider = new 
TransformingProvider("jpa", jpatransformer);
+                               jpaprovider = new TransformingProvider("jpa", 
jpatransformer);
                                jpaprovider.setChainProvider(ajcprovider);
                                root.setChainProvider(jpaprovider);
                        } 
+                       if (coverage) {
+                               
System.setProperty("net.sourceforge.cobertura.datafile", coverageDataFile);     
                        
+                               
+                               CoberturaClassTransformer coberturatransformer 
= new CoberturaClassTransformer(coverageDataFile);
+                               if (coverageExcludes != null) {
+                                       for (String patt : coverageExcludes) {
+                                               
coberturatransformer.addClassExclude(patt);
+                                       }
+                               }
+                               if (coverageIncludes != null) {
+                                       for (String patt : coverageIncludes) {
+                                               
coberturatransformer.addClassInclude(patt);
+                                       }
+                               }
+                               TransformingProvider coberturaprovider = new 
TransformingProvider("cobertura", coberturatransformer);
+                               if (jpaprovider != null) {
+                                       
coberturaprovider.setChainProvider(jpaprovider);
+                               } else {
+                                       
coberturaprovider.setChainProvider(ajcprovider);
+                               }
+                               root.setChainProvider(coberturaprovider);
+                       }
+                       
                webapp.setClassLoader(root);
                } catch (Exception e) {
                        throw new MojoExecutionException("Error setting up 
classloaders ", e);
@@ -275,7 +349,9 @@
         
         try {
                        server.start();
-                       if (!background) server.join();
+                       if (!background) {
+                               server.join();
+                       }
                } catch (Exception e) {
                        throw new MojoExecutionException("Error starting 
server", e);
                }

Modified: 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRunWar.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRunWar.java?rev=792224&r1=792223&r2=792224&view=diff
==============================================================================
--- 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRunWar.java
 (original)
+++ 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaJettyRunWar.java
 Wed Jul  8 16:45:32 2009
@@ -3,9 +3,17 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Set;
 
+import net.sourceforge.cobertura.instrument.CoberturaClassTransformer;
+import net.sourceforge.cobertura.instrument.Main;
+
+import org.apache.magma.tools.classloading.ClassLoaderBytecodeProvider;
+import org.apache.magma.tools.classloading.JettyTransformingClassLoader;
+import org.apache.magma.tools.classloading.TransformingProvider;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -61,6 +69,37 @@
         * @parameter
         */
        private String dependency = null;
+               
+       /**
+        * Whether to setup cobertura instrumentation.
+        * 
+        * @parameter expression="false"
+        * @required
+        */     
+       private boolean coverage = false;
+       
+       /**
+        * The serialization file for cobertura data.
+        * 
+        * @parameter expression="${project.build.directory}/cobertura.ser"
+        * @required
+        */             
+       private String coverageDataFile = null;
+       
+       /**
+        * Class patterns to include in coverage data
+        * 
+        * @parameter
+        */
+       private String[] coverageIncludes = null;
+
+       /**
+        * Class patterns to exclude in coverage data
+        * 
+        * @parameter
+        */
+       private String[] coverageExcludes = null;
+       
        
        public String PORT_SYSPROPERTY = "jetty.port";    
     
@@ -93,7 +132,37 @@
                                        if (art.getType().equals("war")) {
                                                getLog().info("Running war for 
" + art.getArtifactId());
                                                getLog().info("War found " + 
art.getFile().getAbsolutePath());
-                                               
webapp.setWar(art.getFile().getAbsolutePath());
+                                               if (coverage) {
+                                                       
System.setProperty("net.sourceforge.cobertura.datafile", coverageDataFile);
+                                                       List<String> args = new 
ArrayList<String>();
+                                                       args.add("--datafile");
+                                                       
args.add(coverageDataFile);
+                                                       
args.add("--destination");
+                                                       File outdir = new 
File(project.getBuild().getDirectory() + "/cobertura-work/");
+                                                       outdir.mkdirs();
+                                                       
args.add(outdir.getAbsolutePath());
+
+                                                       if (coverageExcludes != 
null) {
+                                                               for (String 
patt : coverageExcludes) {
+                                                                       
args.add("--excludeClasses");
+                                                                       
args.add(patt);
+                                                               }
+                                                       }
+                                                       if (coverageIncludes != 
null) {
+                                                               for (String 
patt : coverageIncludes) {
+                                                                       
args.add("--includeClasses");
+                                                                       
args.add(patt);
+                                                               }
+                                                       }
+                                                       args.add("--basedir");
+                                                       
args.add(art.getFile().getParentFile().getAbsolutePath());
+                                                       
args.add(art.getFile().getName());
+                                                       
+                                                       
Main.main(args.toArray(new String[args.size()]));
+                                                       
webapp.setWar(project.getBuild().getDirectory() + "/cobertura-work/" + 
art.getFile().getName());
+                                               } else {
+                                                       
webapp.setWar(art.getFile().getAbsolutePath());
+                                               }
                                        } else {
                                                throw new 
MojoExecutionException("The artifact " + art.getArtifactId() + " is not of type 
WAR");
                                        }
@@ -111,7 +180,48 @@
                try {
                        cl = new WebAppClassLoader(webapp);
                        cl.addJars(Resource.newResource(new 
File(super.webappDirectory, "WEB-INF/libs/").toURI().toURL()));
-               webapp.setClassLoader(cl);
+                       /*
+                       if (coverage) {
+                       Resource web_inf=webapp.getWebInf();
+
+                       // Add WEB-INF classes and lib classpaths
+                       if (web_inf != null && web_inf.isDirectory()) {
+                           // Look for classes directory
+                           Resource classes= web_inf.addPath("classes/");
+                           if (classes.exists())
+                               cl.addClassPath(classes.toString());
+
+                           // Look for jars
+                           Resource lib= web_inf.addPath("lib/");
+                           if (lib.exists() || lib.isDirectory())
+                               cl.addJars(lib);
+                       }
+                       
+                               
+                               
+                               JettyTransformingClassLoader root = new 
JettyTransformingClassLoader(Thread.currentThread().getContextClassLoader(), 
webapp);
+                               root.setRawResources(cl);
+                               ClassLoaderBytecodeProvider rootprovider = new 
ClassLoaderBytecodeProvider(cl);
+                               
+                               CoberturaClassTransformer coberturatransformer 
= new CoberturaClassTransformer(coverageDataFile);
+                               if (coverageExcludes != null) {
+                                       for (String patt : coverageExcludes) {
+                                               
coberturatransformer.addClassExclude(patt);
+                                       }
+                               }
+                               if (coverageIncludes != null) {
+                                       for (String patt : coverageIncludes) {
+                                               
coberturatransformer.addClassInclude(patt);
+                                       }
+                               }
+                               TransformingProvider coberturaprovider = new 
TransformingProvider("cobertura", coberturatransformer);
+                               
coberturaprovider.setChainProvider(rootprovider);
+                               root.setChainProvider(coberturaprovider);
+                       webapp.setClassLoader(root);
+                       } else {
+                       */
+                               webapp.setClassLoader(cl);
+                       //}
                } catch (Exception e1) {
                        throw new MojoExecutionException("Error setting up 
classloader", e1);
                }
@@ -136,7 +246,9 @@
         
         try {
                        server.start();
-                       if (!background) server.join();
+                       if (!background) {
+                               server.join();
+                       }
                } catch (Exception e) {
                        throw new MojoExecutionException("Error starting 
server", e);
                }               

Modified: 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaTestMojo.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaTestMojo.java?rev=792224&r1=792223&r2=792224&view=diff
==============================================================================
--- 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaTestMojo.java
 (original)
+++ 
labs/magma/trunk/maven-magma-plugin/src/main/java/org/apache/magma/tools/maven/MagmaTestMojo.java
 Wed Jul  8 16:45:32 2009
@@ -807,7 +807,7 @@
         // Forking
         // 
----------------------------------------------------------------------
 
-        ForkConfiguration fork = new ForkConfiguration();
+        MagmaForkConfiguration fork = new MagmaForkConfiguration();
 
         fork.setForkMode( forkMode );
 
@@ -867,7 +867,7 @@
                                        }
                                        */
                        //art = (Artifact) 
project.getPluginArtifactMap().get(ArtifactUtils.versionlessKey( 
"org.apache.magma.tools", "maven-magma-plugin"));
-                       art = 
artifactFactory.createPluginArtifact("org.apache.magma.tools", 
"maven-magma-plugin", VersionRange.createFromVersion("0.0.3-rev13"));
+                       art = 
artifactFactory.createPluginArtifact("org.apache.magma.tools", 
"maven-magma-plugin", VersionRange.createFromVersion("0.0.3-rev14"));
                        artifactResolver.resolve(art, 
project.getPluginArtifactRepositories(), localRepository);
                        if (art.getFile() == null) throw new 
ArtifactResolutionException("Cannot find file", art);
                                } catch (ArtifactResolutionException e) {
@@ -875,10 +875,8 @@
                                } catch (ArtifactNotFoundException e) {
                                        e.printStackTrace();
                                }
-               argLine = "-javaagent:" + art.getFile().getAbsolutePath() + " " 
+ (argLine != null ? argLine : "");
-               
-               argLine += " -Dmagma.env=test";
-               
+               fork.addAgent(art.getFile().getAbsolutePath());
+                               
                File writecp = new File(testClassesDirectory, 
"magma-test-classpath.txt");
                try {
                                        writecp.createNewFile();
@@ -897,13 +895,17 @@
                                        e.printStackTrace();
                                }
             }
-            
+
             // SG: add the load time weaver to the test runner jvm
             key = ArtifactUtils.versionlessKey( "org.aspectj", 
"aspectjweaver");
             art = (Artifact) pluginArtifactMap.get(key);
-            argLine = "-javaagent:" + art.getFile().getAbsolutePath() + " " + 
(argLine != null ? argLine : "");
+            
+            fork.addAgent(art.getFile().getAbsolutePath());
+               argLine = "-Dmagma.env=test " + (argLine != null ? argLine : 
"");
+               // /SG
             
             fork.setArgLine(argLine);
+            
 
             fork.setEnvironmentVariables( environmentVariables );
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to