blob: ae57da810f8330fc220d3ebe638fbf012e98afae [file]
Index: JMeter.java
===================================================================
RCS file: /home/cvspublic/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v
retrieving revision 1.13
diff -u -r1.13 JMeter.java
--- JMeter.java 8 May 2003 18:29:14 -0000 1.13
+++ JMeter.java 7 Jun 2003 13:49:21 -0000
@@ -58,6 +58,8 @@
import java.io.File;
import java.io.FileInputStream;
import java.net.Authenticator;
+import java.util.List;
+import java.util.Properties;
import org.apache.avalon.excalibur.cli.CLArgsParser;
import org.apache.avalon.excalibur.cli.CLOption;
@@ -92,7 +94,7 @@
import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.gui.ComponentUtil;
-import org.apache.log.Hierarchy;
+import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
/**
@@ -102,8 +104,7 @@
* Window>Preferences>Java>Templates.
*/
public class JMeter implements JMeterPlugin {
- transient private static Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor(
- "jmeter");
+ transient private static Logger log = LoggingManager.getLoggerForClass();
private final static int PROPFILE_OPT = 'p';
private final static int TESTFILE_OPT = 't';
@@ -116,6 +117,9 @@
protected static final int PROXY_PORT = 'P';
protected static final int PROXY_USERNAME = 'u';
protected static final int PROXY_PASSWORD = 'a';
+ private static final int JMETER_PROPERTY = 'J';
+ private static final int SYSTEM_PROPERTY = 'D';
+ private static final int LOGLEVEL = 'L';
/**
* Define the understood options. Each CLOptionDescriptor contains:
@@ -183,6 +187,24 @@
CLOptionDescriptor.ARGUMENT_REQUIRED,
PROXY_PASSWORD,
"Set password for proxy server that JMeter is to use"),
+ new CLOptionDescriptor(
+ "jmeterproperty",
+ CLOptionDescriptor.DUPLICATES_ALLOWED
+ | CLOptionDescriptor.ARGUMENTS_REQUIRED_2,
+ JMETER_PROPERTY,
+ "Define additional JMeter properties"),
+ new CLOptionDescriptor(
+ "systemproperty",
+ CLOptionDescriptor.DUPLICATES_ALLOWED
+ | CLOptionDescriptor.ARGUMENTS_REQUIRED_2,
+ SYSTEM_PROPERTY,
+ "Define additional JMeter properties"),
+ new CLOptionDescriptor(
+ "loglevel",
+ CLOptionDescriptor.DUPLICATES_ALLOWED
+ | CLOptionDescriptor.ARGUMENTS_REQUIRED_2,
+ LOGLEVEL,
+ "Define loglevel: [category=]level e.g. jorphan=INFO or jmeter.util=DEBUG"),
};
public JMeter() {
@@ -214,6 +236,7 @@
try
{
File f = new File(testFile.getArgument());
+ log.info("Loading file: "+f);
FileInputStream reader = new FileInputStream(f);
HashTree tree = SaveService.loadSubTree(reader);
new Load().insertLoadedTree(1,tree);
@@ -238,6 +261,7 @@
try {
initializeProperties(parser);
setProxy(parser);
+ log.info("Version " + JMeterUtils.getJMeterVersion());
if (parser.getArgumentById(VERSION_OPT) != null) {
System.out.println(
"Apache JMeter, Copyright (c) 2002 The Apache Software Foundation");
@@ -314,6 +338,49 @@
File.separator + "bin" + File.separator + "jmeter.properties");
}
JMeterUtils.setJMeterHome(NewDriver.getJMeterDir());
+
+// Process command line property definitions (can occur multiple times)
+
+ Properties jmeterProps = JMeterUtils.getJMeterProperties();
+ List clOptions = parser.getArguments();
+ int size = clOptions.size();
+
+ for (int i = 0; i < size; i++) {
+ CLOption option = (CLOption) clOptions.get(i);
+ String name=option.getArgument(0);
+ String value=option.getArgument(1);
+
+ switch (option.getId()) {
+ case SYSTEM_PROPERTY:
+ if (value.length() > 0){ // Set it
+ log.info("Setting System property: "+name+"="+value);
+ System.getProperties().setProperty(name,value);
+ } else { // Reset it
+ log.warn("Removing System property: "+name);
+ System.getProperties().remove(name);
+ }
+ break;
+ case JMETER_PROPERTY:
+ if (value.length() > 0){ // Set it
+ log.info("Setting JMeter property: "+name+"="+value);
+ jmeterProps.setProperty(name,value);
+ } else { // Reset it
+ log.warn("Removing JMeter property: "+name);
+ jmeterProps.remove(name);
+ }
+ break;
+ case LOGLEVEL:
+ if (value.length() > 0){ // Set category
+ log.info("LogLevel: "+name+"="+value);
+ LoggingManager.setPriority(value,name);
+ } else { // Set root level
+ log.warn("LogLevel: "+name);
+ LoggingManager.setPriority(name);
+ }
+ break;
+ }
+ }
+
}
public void startServer() {
@@ -342,7 +409,7 @@
}
}
- private void run(String testFile, String logFile) {
+ private void run(String testFile, String logFile) {// run test in batch mode
FileInputStream reader = null;
try {
File f = new File(testFile);
@@ -352,6 +419,7 @@
}
reader = new FileInputStream(f);
+ log.info("Loading file: "+f);
HashTree tree = SaveService.loadSubTree(reader);
if(logFile != null)