Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-jmeter Wiki" 
for change notification.

The following page has been changed by JMeterAdmin:
http://wiki.apache.org/jakarta-jmeter/JMeterMojo

The comment on the change is:
Duplicate of MeterMojo

------------------------------------------------------------------------------
- package org.apache.jmeter;
+ deleted
  
- import java.io.BufferedReader; import java.io.File; import 
java.io.FileReader; import java.io.FileWriter; import java.io.IOException; 
import java.lang.Thread.UncaughtExceptionHandler; import 
java.security.Permission; import java.text.DateFormat; import 
java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; 
import java.util.List; import java.util.regex.Pattern;
- 
- import org.apache.commons.io.IOUtils; import 
org.apache.maven.plugin.AbstractMojo; import 
org.apache.maven.plugin.MojoExecutionException; import 
org.apache.maven.plugin.MojoFailureException; import 
org.apache.tools.ant.DirectoryScanner;
- 
- /**
- 
-     *
- 
-       JMeter Maven plugin.
-     *
- 
-       @author Tim McCune
-     *
- 
-       @goal jmeter
-     *
- 
-       /
- 
- public class JMeterMojo extends AbstractMojo {
- 
-     *
- 
-       private static final Pattern PAT_ERROR = 
Pattern.compile(".*\\s+ERROR\\s+.*");
- 
-       /**
-           o
- 
-             @parameter
-           o
- 
-             /
- 
-       private List<String> includes;
- 
-       /**
-           o
- 
-             @parameter
-           o
- 
-             /
- 
-       private List<String> excludes;
- 
-       /**
-           o
- 
-             @parameter expression="${basedir}/src/test/jmeter"
-           o
- 
-             /
- 
-       private File srcDir;
- 
-       /**
-           o
- 
-             @parameter expression="jmeter-reports"
-           o
- 
-             /
- 
-       private File reportDir;
- 
-       /**
-           o
- 
-             @parameter 
expression="${basedir}/src/test/jmeter/jmeter.properties"
-           o
- 
-             /
- 
-       private File jmeterProps;
- 
-       /**
-           o
- 
-             @parameter
-           o
- 
-             /
- 
-       private boolean remote;
- 
-       private File workDir; private File saveServiceProps; private File 
jmeterLog; private DateFormat fmt = new SimpleDateFormat("yyMMdd");
- 
-       /**
-           o
- 
-             Run all JMeter tests.
-           o
- 
-             /
- 
-       private void executeTest(File test) throws MojoExecutionException {
-           o
- 
-             /... cut out from mail
-                 +
- 
-                   try {
-                       #
- 
-                         // This mess is necessary because the only way to 
know when JMeter // is done is to wait for all of the threads that it spawned 
to exit. new JMeter().start(args.toArray(new String[]{})); BufferedReader in = 
new BufferedReader(new FileReader(jmeterLog)); while (!checkForEndOfTest(in)) {
-                             *
- 
-                               try {
-                                   o
- 
-                                     Thread.sleep(1000);
- 
-                               } catch (InterruptedException e) {
-                                   o
- 
-                                     break;
- 
-                               }
- 
-                         } in.close();
- 
-                   } catch (ExitException e) {
-                       #
- 
-                         if (e.getCode() != 0) {
-                             *
- 
-                               throw new MojoExecutionException("Test failed", 
e);
- 
-                         }
- 
-                   } finally {
-                       #
- 
-                         System.setSecurityManager(oldManager); 
Thread.setDefaultUncaughtExceptionHandler(oldHandler);
- 
-                   }
- 
-             } catch (IOException e) {
-                 +
- 
-                   throw new MojoExecutionException("Can't execute test", e);
- 
-             }
- 
-       }
- 
-       private boolean checkForEndOfTest(BufferedReader in) throws 
MojoExecutionException {
-           o
- 
-             boolean testEnded = false; try {
-                 +
- 
-                   String line; while ( (line = in.readLine()) != null) {
-                       #
- 
-                         if (line.indexOf("Test has ended") != -1) {
-                             *
- 
-                               testEnded = true; break;
- 
-                         }
- 
-                   }
- 
-             } catch (IOException e) {
-                 +
- 
-                   throw new MojoExecutionException("Can't read log file", e);
- 
-             } return testEnded;
- 
-       }
- 
-       private void checkForErrors() throws MojoExecutionException, 
MojoFailureException {
-           o
- 
-             try {
-                 +
- 
-                   BufferedReader in = new BufferedReader(new 
FileReader(jmeterLog)); String line; while ( (line = in.readLine()) != null) {
-                       #
- 
-                         if (PAT_ERROR.matcher(line).find()) {
-                             *
- 
-                               throw new MojoFailureException("There were test 
errors");
- 
-                         }
- 
-                   } in.close();
- 
-             } catch (IOException e) {
-                 +
- 
-                   throw new MojoExecutionException("Can't read log file", e);
- 
-             }
- 
-       }
- 
-       private void initSystemProps() throws MojoExecutionException {
-           o
- 
-             workDir = new File("target" + File.separator + "jmeter"); 
workDir.mkdirs(); createSaveServiceProps(); jmeterLog = new File(workDir, 
"jmeter.log"); try {
-                 +
- 
-                   System.setProperty("log_file", 
jmeterLog.getCanonicalPath());
- 
-             } catch (IOException e) {
-                 +
- 
-                   throw new MojoExecutionException("Can't get canonical path 
for log file", e);
- 
-             }
- 
-       }
- 
-       /**
-           o
- 
-             This mess is necessary because JMeter must load this info from a 
file.
-           o
- 
-             Resources won't work.
-           o
- 
-             /
- 
-       private void createSaveServiceProps() throws MojoExecutionException {
-           o
- 
-             saveServiceProps = new File(workDir, "saveservice.properties"); 
try {
-                 +
- 
-                   FileWriter out = new FileWriter(saveServiceProps); 
IOUtils.copy(Thread.currentThread().getContextClassLoader()
-                       #
- 
-                         .getResourceAsStream("saveservice.properties"), out);
- 
-                   out.flush(); out.close(); 
System.setProperty("saveservice_properties",
-                       #
- 
-                         File.separator + "target" + File.separator + "jmeter" 
+ File.separator + "saveservice.properties");
- 
-             } catch (IOException e) {
-                 +
- 
-                   throw new MojoExecutionException("Could not create 
temporary saveservice.properties", e);
- 
-             }
- 
-       }
- 
-       /**
-           o
- 
-             Executes a single JMeter test by building up a list of command 
line
-           o
- 
-             parameters to pass to JMeter.start().
-           o
- 
-             /
- 
-       private void executeTest(File test) throws MojoExecutionException {
-           o
- 
-             try {
-                 +
- 
-                   getLog().info("Executing test: " + 
test.getCanonicalPath()); String reportFileName = test.getName().substring(0,
-                       #
- 
-                         test.getName().lastIndexOf(".")) + "-" + 
fmt.format(new Date()) + ".xml";
- 
-                   List<String> args = Arrays.asList("-n",
-                       #
- 
-                         "-t", test.getCanonicalPath(), "-l", 
reportDir.toString() + File.separator + reportFileName, "-p", 
jmeterProps.toString(), "-d", System.getProperty("user.dir"));
- 
-                   if (remote) {
-                       #
- 
-                         args.add("-r");
- 
-                   } // This mess is necessary because JMeter likes to use 
System.exit. // We need to trap the exit call. SecurityManager 
oldManager=System.getSecurityManager();
-           o
- 
-             System.setSecurityManager(new SecurityManager() {
-                 +
- 
-                   @Override public void checkExit(int status) { throw new 
ExitException(status);} @Override public void checkPermission(Permission perm, 
Object context) {} @Override public void checkPermission(Permission perm) {}
- 
-             }); UncaughtExceptionHandler oldHandler = 
Thread.getDefaultUncaughtExceptionHandler(); 
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
-                 +
- 
-                   public void uncaughtException(Thread t, Throwable e) {
-                       #
- 
-                         if (e instanceof ExitException && ((ExitException) 
e).getCode() == 0) {
-                             *
- 
-                               return; //Ignore
- 
-                         } getLog().error("Error in thread " + t.getName());
- 
-                   }
- 
-             });
-                 +
- 
-                   try {
-                       #
- 
-                         // This mess is necessary because the only way to 
know when JMeter // is done is to wait for all of the threads that it spawned 
to exit. int startThreadCount = Thread.activeCount(); new 
JMeter().start(args.toArray(new String[]{})); int activeThreadCount; while ( 
(activeThreadCount = Thread.activeCount()) > startThreadCount) {
-                             *
- 
-                               try {
-                                   o
- 
-                                     Thread.sleep(1000);
- 
-                               } catch (InterruptedException e) {
-                                   o
- 
-                                     break;
- 
-                               }
- 
-                         }
- 
-                   } catch (ExitException e) {
-                       #
- 
-                         if (e.getCode() != 0) {
-                             *
- 
-                               throw new MojoExecutionException("Test failed", 
e);
- 
-                         }
- 
-                   } finally {
-                       #
- 
-                         System.setSecurityManager(oldManager); 
Thread.setDefaultUncaughtExceptionHandler(oldHandler);
- 
-                   }
-                 +
- 
-                   } catch (IOException e) {
-                       #
- 
-                         throw new MojoExecutionException("Can't execute 
test", e);
- 
-                   }
- 
-       }
- 
-       private static class ExitException extends SecurityException {
-           o
- 
-             private static final long serialVersionUID = 5544099211927987521L;
- 
-             public int _rc;
- 
-             public ExitException(int rc) {
-                 +
- 
-                   super(Integer.toString(rc)); _rc = rc;
- 
-             }
- 
-             public int getCode() {
-                 +
- 
-                   return _rc;
- 
-             }
- 
-       }
- 
- } 
- 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to