Author: sebb
Date: Mon Mar 13 10:59:40 2006
New Revision: 385618

URL: http://svn.apache.org/viewcvs?rev=385618&view=rev
Log:
Initial stubs for additional BeanShell test elements
Note: they do nothing except fail at present

Added:
    
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractor.java
    
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorBeanInfo.java
    
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorResources.properties
    
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifier.java
    
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierBeanInfo.java
    
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierResources.properties

Added: 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractor.java
URL: 
http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractor.java?rev=385618&view=auto
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractor.java
 (added)
+++ 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractor.java
 Mon Mar 13 10:59:40 2006
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *  
+ */
+
+package org.apache.jmeter.extractor;
+
+import java.io.Serializable;
+
+import org.apache.jmeter.processor.PostProcessor;
+import org.apache.jmeter.testbeans.TestBean;
+import org.apache.jmeter.testelement.AbstractTestElement;
+import org.apache.jmeter.threads.JMeterContext;
+import org.apache.jmeter.threads.JMeterContextService;
+import org.apache.jmeter.threads.JMeterVariables;
+import org.apache.jmeter.util.BeanShellInterpreter;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JMeterException;
+import org.apache.log.Logger;
+
+public class BeanShellExtractor extends AbstractTestElement implements 
PostProcessor, Serializable, TestBean {
+    private static final Logger log = LoggingManager.getLoggerForClass();
+    
+    private static final long serialVersionUID = 2;
+
+    private String script;
+    
+    transient private BeanShellInterpreter bshInterpreter = null;
+
+    // can be specified in jmeter.properties
+    private static final String INIT_FILE = "beanshell.timer.init"; 
//$NON-NLS-1$
+
+    public BeanShellExtractor() throws ClassNotFoundException {
+        super();
+        bshInterpreter = new 
BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE),log);
+    }
+
+    /*
+        * (non-Javadoc)
+        * 
+        * @see org.apache.jmeter.timers.Timer#delay()
+        */
+     long xdelay() {
+        String ret="";
+        try {
+            // Add variables for access to context and variables
+            JMeterContext jmctx = JMeterContextService.getContext();
+            JMeterVariables vars = jmctx.getVariables();
+            bshInterpreter.set("ctx", jmctx);//$NON-NLS-1$
+            bshInterpreter.set("vars", vars);//$NON-NLS-1$
+            ret = bshInterpreter.eval(script).toString();
+        } catch (JMeterException e) {
+            log.warn("Problem in BeanShell script "+e);
+        }
+               return Long.decode(ret).longValue();
+       }
+
+       public Object clone() {
+        BeanShellExtractor o = (BeanShellExtractor) super.clone();
+        o.script = script;
+               return o;
+       }
+    
+    public String getScript(){
+        return script;
+    }
+
+    public void setScript(String s){
+        script=s;
+    }
+
+       public void process() {
+               throw new Error("Not yet implemented");
+       }
+}

Added: 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorBeanInfo.java
URL: 
http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorBeanInfo.java?rev=385618&view=auto
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorBeanInfo.java
 (added)
+++ 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorBeanInfo.java
 Mon Mar 13 10:59:40 2006
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *  
+ */
+
+package org.apache.jmeter.extractor;
+
+import java.beans.PropertyDescriptor;
+
+import org.apache.jmeter.testbeans.BeanInfoSupport;
+
+public class BeanShellExtractorBeanInfo extends BeanInfoSupport {
+
+       /**
+        * @param beanClass
+        */
+       public BeanShellExtractorBeanInfo() {
+               super(BeanShellExtractor.class);
+
+        createPropertyGroup("scripting", new String[] { "script" });
+
+               PropertyDescriptor p = property("script");
+               p.setValue(NOT_UNDEFINED, Boolean.TRUE);
+               p.setValue(DEFAULT, "");
+       }
+
+}

Added: 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorResources.properties
URL: 
http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorResources.properties?rev=385618&view=auto
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorResources.properties
 (added)
+++ 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/extractor/BeanShellExtractorResources.properties
 Mon Mar 13 10:59:40 2006
@@ -0,0 +1,4 @@
+displayName=BeanShell PostProcessor
+scripting.displayName=BeanShell
+script.displayName=Script
+script.shortDescription=Beanshell script
\ No newline at end of file

Added: 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifier.java
URL: 
http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifier.java?rev=385618&view=auto
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifier.java
 (added)
+++ 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifier.java
 Mon Mar 13 10:59:40 2006
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *  
+ */
+
+package org.apache.jmeter.modifiers;
+
+import java.io.Serializable;
+
+import org.apache.jmeter.processor.PreProcessor;
+import org.apache.jmeter.testbeans.TestBean;
+import org.apache.jmeter.testelement.AbstractTestElement;
+import org.apache.jmeter.threads.JMeterContext;
+import org.apache.jmeter.threads.JMeterContextService;
+import org.apache.jmeter.threads.JMeterVariables;
+import org.apache.jmeter.util.BeanShellInterpreter;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JMeterException;
+import org.apache.log.Logger;
+
+public class BeanShellModifier extends AbstractTestElement implements 
PreProcessor, Serializable, TestBean {
+    private static final Logger log = LoggingManager.getLoggerForClass();
+    
+    private static final long serialVersionUID = 2;
+
+    private String script;
+    
+    transient private BeanShellInterpreter bshInterpreter = null;
+
+    // can be specified in jmeter.properties
+    private static final String INIT_FILE = "beanshell.timer.init"; 
//$NON-NLS-1$
+
+    public BeanShellModifier() throws ClassNotFoundException {
+        super();
+        bshInterpreter = new 
BeanShellInterpreter(JMeterUtils.getProperty(INIT_FILE),log);
+    }
+
+    /*
+        * (non-Javadoc)
+        * 
+        * @see org.apache.jmeter.timers.Timer#delay()
+        */
+       long xdelay() {
+        String ret="";
+        try {
+            // Add variables for access to context and variables
+            JMeterContext jmctx = JMeterContextService.getContext();
+            JMeterVariables vars = jmctx.getVariables();
+            bshInterpreter.set("ctx", jmctx);//$NON-NLS-1$
+            bshInterpreter.set("vars", vars);//$NON-NLS-1$
+            ret = bshInterpreter.eval(script).toString();
+        } catch (JMeterException e) {
+            log.warn("Problem in BeanShell script "+e);
+        }
+               return Long.decode(ret).longValue();
+       }
+
+       public Object clone() {
+        BeanShellModifier o = (BeanShellModifier) super.clone();
+        o.script = script;
+               return o;
+       }
+    
+    public String getScript(){
+        return script;
+    }
+
+    public void setScript(String s){
+        script=s;
+    }
+
+       public void process() {
+               // TODO Auto-generated method stub
+               throw new Error("Not yet implemented");         
+       }
+}

Added: 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierBeanInfo.java
URL: 
http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierBeanInfo.java?rev=385618&view=auto
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierBeanInfo.java
 (added)
+++ 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierBeanInfo.java
 Mon Mar 13 10:59:40 2006
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *  
+ */
+
+package org.apache.jmeter.modifiers;
+
+import java.beans.PropertyDescriptor;
+
+import org.apache.jmeter.testbeans.BeanInfoSupport;
+
+public class BeanShellModifierBeanInfo extends BeanInfoSupport {
+
+       /**
+        * @param beanClass
+        */
+       public BeanShellModifierBeanInfo() {
+               super(BeanShellModifier.class);
+
+        createPropertyGroup("scripting", new String[] { "script" });
+
+               PropertyDescriptor p = property("script");
+               p.setValue(NOT_UNDEFINED, Boolean.TRUE);
+               p.setValue(DEFAULT, "");
+       }
+
+}

Added: 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierResources.properties
URL: 
http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierResources.properties?rev=385618&view=auto
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierResources.properties
 (added)
+++ 
jakarta/jmeter/branches/rel-2-1/src/components/org/apache/jmeter/modifiers/BeanShellModifierResources.properties
 Mon Mar 13 10:59:40 2006
@@ -0,0 +1,4 @@
+displayName=BeanShell Pre-Processor
+scripting.displayName=BeanShell
+script.displayName=Script
+script.shortDescription=Beanshell script to generate delay
\ No newline at end of file



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

Reply via email to