sebb 2003/10/29 05:57:41 Modified: src/core/org/apache/jmeter JMeter.java Added: src/core/org/apache/jmeter/util BeanShellServer.java Log: Fixing build dependency problem Revision Changes Path 1.1 jakarta-jmeter/src/core/org/apache/jmeter/util/BeanShellServer.java Index: BeanShellServer.java =================================================================== /* * ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2001,2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" and * "Apache JMeter" must not be used to endorse or promote products * derived from this software without prior written permission. For * written permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", * "Apache JMeter", nor may "Apache" appear in their name, without * prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.jmeter.util; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; /** * Implements a BeanShell server to allow access to JMeter variables and methods. * * To enable, define the JMeter property: * beanshell.server.port (see JMeter.java) * beanshell.server.file (optional, startup file) * * @author sebb AT apache DOT org * @version $Revision: 1.1 $ Last updated: $Date: 2003/10/29 13:57:41 $ */ public class BeanShellServer implements Runnable { transient private static Logger log = LoggingManager.getLoggerForClass(); private final int serverport; private final String serverfile; /** * */ public BeanShellServer(int port,String file) { super(); serverfile=file;// can be the empty string serverport=port; } private BeanShellServer(){// do not use! super(); serverport=0; serverfile=""; } private static String getprop(String s){ return JMeterUtils.getPropDefault(s,s); } private static void setprop(String s, String v){ JMeterUtils.getJMeterProperties().setProperty(s, v); } public void run(){ ClassLoader loader = Thread.currentThread().getContextClassLoader(); try { Class Interpreter = loader.loadClass("bsh.Interpreter"); Object instance = Interpreter.newInstance(); Class string = String.class; Class object = Object.class; Method eval = Interpreter.getMethod( "eval", new Class[] {string}); Method setObj = Interpreter.getMethod( "set", new Class[] {string,object}); Method setInt = Interpreter.getMethod( "set", new Class[] {string,int.class}); setObj.invoke(instance, new Object[] { "t",this }); setInt.invoke(instance, new Object[] { "portnum",new Integer(serverport) }); eval.invoke(instance, new Object[]{"setAccessibility(true)"}); if (serverfile.length() > 0 ){ setObj.invoke(instance, new Object[] { "serverfile",serverfile }); try { eval.invoke(instance, new Object[]{"source(serverfile)"}); } catch (InvocationTargetException e1) { log.warn("Could not evaluate "+serverfile); } } eval.invoke(instance, new Object[]{"server(portnum)"}); } catch(ClassNotFoundException e ){ log.error("Beanshell Interpreter not found"); } catch (Exception e) { log.error("Problem starting BeanShell server ",e); } } } 1.21 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java Index: JMeter.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- JMeter.java 28 Oct 2003 18:58:42 -0000 1.20 +++ JMeter.java 29 Oct 2003 13:57:41 -0000 1.21 @@ -88,7 +88,6 @@ import org.apache.jmeter.plugin.PluginManager; import org.apache.jmeter.processor.gui.AbstractPostProcessorGui; import org.apache.jmeter.processor.gui.AbstractPreProcessorGui; -import org.apache.jmeter.protocol.java.BeanShellServer; import org.apache.jmeter.reporters.ResultCollector; import org.apache.jmeter.samplers.Remoteable; import org.apache.jmeter.samplers.gui.AbstractSamplerGui; @@ -96,6 +95,7 @@ import org.apache.jmeter.testelement.TestListener; import org.apache.jmeter.threads.gui.ThreadGroupGui; import org.apache.jmeter.timers.gui.AbstractTimerGui; +import org.apache.jmeter.util.BeanShellServer; import org.apache.jmeter.util.JMeterUtils; import org.apache.jmeter.visualizers.gui.AbstractVisualizer; import org.apache.jorphan.collections.HashTree;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
