jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: svn commit: r1406876 - in /jmeter/trunk: src/core/org/apache/jmeter/util/BSFTestElement.java src/core/org/apache/jmeter/util/JSR223TestElement.java src/core/org/apache/jmeter/util/ScriptingTestElement.java xdocs/changes.xml
Date Thu, 08 Nov 2012 11:22:43 GMT
Ok, thanks.

On Thu, Nov 8, 2012 at 12:21 PM, sebb <sebbaz@gmail.com> wrote:

> On 8 November 2012 11:05, Philippe Mouawad <philippe.mouawad@gmail.com>
> wrote:
> > Ok, thanks for answer.
> > But what is strange is why remove clone method ?
>
> Sorry, should have added that to the commit message.
>
> > Javadocs says:
> > "By convention, classes that implement this interface should override
> > Object.clone (which is protected) with a public method. See
> > Object.clone()<
> http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Object.java#Object.clone%28%29
> >for
> > details on overriding this method."
> >
> >
> > With this commit implements Cloneable is still there but not clone
> method.
> >
> > Is this OK ?
>
> Yes, because it will use the parent class implementation.
> The same applies to all TestElement implementations.
>
> I've dropped the "implements Cloneable" from the elements that don't
> actually implement clone() themselves.
>
> The clone() method is extensively used when running a test plan, so it
> should be immediately obvious if the change had broken anything.
>
> > Thank you
> >
> > On Thu, Nov 8, 2012 at 11:58 AM, sebb <sebbaz@gmail.com> wrote:
> >
> >> On 8 November 2012 08:35, Philippe Mouawad <philippe.mouawad@gmail.com>
> >> wrote:
> >> > Hello sebb,
> >> > I see you removed in the process:
> >> >
> >> >    - clone
> >> >    - readResolve
> >> >
> >> > Are you sure it's OK ?
> >>
> >> I also changed the variables so that they are initialised to the empty
> >> string.
> >>
> >> I also added a test for BSF and JSR223 sampler to the batch test
> >> script and that runs OK, so I am pretty confident that those methods
> >> are no longer needed.
> >>
> >> >
> >> > Thank you
> >> >
> >> > Regards
> >> >
> >> > Philippe
> >> >
> >> > On Thu, Nov 8, 2012 at 1:35 AM, <sebb@apache.org> wrote:
> >> >
> >> >> Author: sebb
> >> >> Date: Thu Nov  8 00:35:23 2012
> >> >> New Revision: 1406876
> >> >>
> >> >> URL: http://svn.apache.org/viewvc?rev=1406876&view=rev
> >> >> Log:
> >> >> BSFTestElement and JSR223TestElement should use shared super-class
> for
> >> >> common fields
> >> >> Bugzilla Id: 54110
> >> >>
> >> >> Added:
> >> >>
> >> jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingTestElement.java
> >> >>   (with props)
> >> >> Modified:
> >> >>     jmeter/trunk/src/core/org/apache/jmeter/util/BSFTestElement.java
> >> >>
> jmeter/trunk/src/core/org/apache/jmeter/util/JSR223TestElement.java
> >> >>     jmeter/trunk/xdocs/changes.xml
> >> >>
> >> >> Modified:
> >> jmeter/trunk/src/core/org/apache/jmeter/util/BSFTestElement.java
> >> >> URL:
> >> >>
> >>
> http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/BSFTestElement.java?rev=1406876&r1=1406875&r2=1406876&view=diff
> >> >>
> >> >>
> >>
> ==============================================================================
> >> >> --- jmeter/trunk/src/core/org/apache/jmeter/util/BSFTestElement.java
> >> >> (original)
> >> >> +++ jmeter/trunk/src/core/org/apache/jmeter/util/BSFTestElement.java
> Thu
> >> >> Nov  8 00:35:23 2012
> >> >> @@ -30,7 +30,6 @@ import org.apache.bsf.BSFManager;
> >> >>  import org.apache.commons.io.FileUtils;
> >> >>  import org.apache.jmeter.samplers.SampleResult;
> >> >>  import org.apache.jmeter.samplers.Sampler;
> >> >> -import org.apache.jmeter.testelement.AbstractTestElement;
> >> >>  import org.apache.jmeter.threads.JMeterContext;
> >> >>  import org.apache.jmeter.threads.JMeterContextService;
> >> >>  import org.apache.jmeter.threads.JMeterVariables;
> >> >> @@ -38,7 +37,7 @@ import org.apache.jorphan.logging.Loggin
> >> >>  import org.apache.jorphan.util.JOrphanUtils;
> >> >>  import org.apache.log.Logger;
> >> >>
> >> >> -public abstract class BSFTestElement extends AbstractTestElement
> >> >> +public abstract class BSFTestElement extends ScriptingTestElement
> >> >>      implements Serializable, Cloneable
> >> >>  {
> >> >>      private static final long serialVersionUID = 233L;
> >> >> @@ -55,38 +54,8 @@ public abstract class BSFTestElement ext
> >> >>                  new String[]{"js"}); //$NON-NLS-1$
> >> >>      }
> >> >>
> >> >> -    //++ For TestBean implementations only
> >> >> -    private String parameters; // passed to file or script
> >> >> -
> >> >> -    private String filename; // file to source (overrides script)
> >> >> -
> >> >> -    private String script; // script (if file not provided)
> >> >> -
> >> >> -    private String scriptLanguage; // BSF language to use
> >> >> -    //-- For TestBean implementations only
> >> >> -
> >> >>      public BSFTestElement() {
> >> >>          super();
> >> >> -        init();
> >> >> -    }
> >> >> -
> >> >> -    private void init() {
> >> >> -        parameters=""; // ensure variables are not null
> >> >> -        filename="";
> >> >> -        script="";
> >> >> -        scriptLanguage="";
> >> >> -    }
> >> >> -
> >> >> -    protected Object readResolve() {
> >> >> -        init();
> >> >> -        return this;
> >> >> -    }
> >> >> -
> >> >> -    @Override
> >> >> -    public Object clone() {
> >> >> -        BSFTestElement o = (BSFTestElement) super.clone();
> >> >> -        o.init();
> >> >> -       return o;
> >> >>      }
> >> >>
> >> >>      protected BSFManager getManager() throws BSFException {
> >> >> @@ -157,50 +126,4 @@ public abstract class BSFTestElement ext
> >> >>          }
> >> >>      }
> >> >>
> >> >> -    /**
> >> >> -     * Return the script (TestBean version).
> >> >> -     * Must be overridden for subclasses that don't implement
> TestBean
> >> >> -     * otherwise the clone() method won't work.
> >> >> -     *
> >> >> -     * @return the script to execute
> >> >> -     */
> >> >> -    public String getScript(){
> >> >> -        return script;
> >> >> -    }
> >> >> -
> >> >> -    /**
> >> >> -     * Set the script (TestBean version).
> >> >> -     * Must be overridden for subclasses that don't implement
> TestBean
> >> >> -     * otherwise the clone() method won't work.
> >> >> -     *
> >> >> -     * @param s the script to execute (may be blank)
> >> >> -     */
> >> >> -    public void setScript(String s){
> >> >> -        script=s;
> >> >> -    }
> >> >> -
> >> >> -    public String getParameters() {
> >> >> -        return parameters;
> >> >> -    }
> >> >> -
> >> >> -    public void setParameters(String s) {
> >> >> -        parameters = s;
> >> >> -    }
> >> >> -
> >> >> -    public String getFilename() {
> >> >> -        return filename;
> >> >> -    }
> >> >> -
> >> >> -    public void setFilename(String s) {
> >> >> -        filename = s;
> >> >> -    }
> >> >> -
> >> >> -    public String getScriptLanguage() {
> >> >> -        return scriptLanguage;
> >> >> -    }
> >> >> -
> >> >> -    public void setScriptLanguage(String s) {
> >> >> -        scriptLanguage = s;
> >> >> -    }
> >> >> -
> >> >>  }
> >> >>
> >> >> Modified:
> >> >> jmeter/trunk/src/core/org/apache/jmeter/util/JSR223TestElement.java
> >> >> URL:
> >> >>
> >>
> http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/JSR223TestElement.java?rev=1406876&r1=1406875&r2=1406876&view=diff
> >> >>
> >> >>
> >>
> ==============================================================================
> >> >> ---
> jmeter/trunk/src/core/org/apache/jmeter/util/JSR223TestElement.java
> >> >> (original)
> >> >> +++
> jmeter/trunk/src/core/org/apache/jmeter/util/JSR223TestElement.java
> >> >> Thu Nov  8 00:35:23 2012
> >> >> @@ -39,7 +39,6 @@ import org.apache.commons.io.IOUtils;
> >> >>  import org.apache.commons.lang3.StringUtils;
> >> >>  import org.apache.jmeter.samplers.SampleResult;
> >> >>  import org.apache.jmeter.samplers.Sampler;
> >> >> -import org.apache.jmeter.testelement.AbstractTestElement;
> >> >>  import org.apache.jmeter.testelement.TestStateListener;
> >> >>  import org.apache.jmeter.threads.JMeterContext;
> >> >>  import org.apache.jmeter.threads.JMeterContextService;
> >> >> @@ -48,7 +47,7 @@ import org.apache.jorphan.logging.Loggin
> >> >>  import org.apache.jorphan.util.JOrphanUtils;
> >> >>  import org.apache.log.Logger;
> >> >>
> >> >> -public abstract class JSR223TestElement extends AbstractTestElement
> >> >> +public abstract class JSR223TestElement extends ScriptingTestElement
> >> >>      implements Serializable, Cloneable, TestStateListener
> >> >>  {
> >> >>      /**
> >> >> @@ -67,16 +66,8 @@ public abstract class JSR223TestElement
> >> >>
> >> >>      private static final long serialVersionUID = 233L;
> >> >>
> >> >> -    //++ For TestBean implementations only
> >> >> -    private String parameters; // passed to file or script
> >> >> -
> >> >> -    private String filename; // file to source (overrides script)
> >> >> -
> >> >> -    private String script; // script (if file not provided)
> >> >> -
> >> >> -    private String scriptLanguage; // JSR223 language to use
> >> >> -
> >> >>      private String cacheKey = ""; // If not empty then script in
> >> >> ScriptText will be compiled and cached
> >> >> +
> >> >>      /**
> >> >>       * Cache of compiled scripts
> >> >>       */
> >> >> @@ -84,31 +75,9 @@ public abstract class JSR223TestElement
> >> >>      private static final Map<String, CompiledScript>
> >> compiledScriptsCache
> >> >> =
> >> >>              Collections.synchronizedMap(
> >> >>                      new
> >> >>
> LRUMap(JMeterUtils.getPropDefault("jsr223.compiled_scripts_cache_size",
> >> >> 100)));
> >> >> -    //-- For TestBean implementations only
> >> >>
> >> >>      public JSR223TestElement() {
> >> >>          super();
> >> >> -        init();
> >> >> -    }
> >> >> -
> >> >> -    private void init() {
> >> >> -        parameters=""; // ensure variables are not null
> >> >> -        filename="";
> >> >> -        script="";
> >> >> -        scriptLanguage="";
> >> >> -        cacheKey = "";
> >> >> -    }
> >> >> -
> >> >> -    protected Object readResolve() {
> >> >> -        init();
> >> >> -        return this;
> >> >> -    }
> >> >> -
> >> >> -    @Override
> >> >> -    public Object clone() {
> >> >> -        JSR223TestElement o = (JSR223TestElement) super.clone();
> >> >> -        o.init();
> >> >> -       return o;
> >> >>      }
> >> >>
> >> >>      protected ScriptEngine getScriptEngine() throws ScriptException
> {
> >> >> @@ -239,52 +208,6 @@ public abstract class JSR223TestElement
> >> >>
> >> >>
> >> >>      /**
> >> >> -     * Return the script (TestBean version).
> >> >> -     * Must be overridden for subclasses that don't implement
> TestBean
> >> >> -     * otherwise the clone() method won't work.
> >> >> -     *
> >> >> -     * @return the script to execute
> >> >> -     */
> >> >> -    public String getScript(){
> >> >> -        return script;
> >> >> -    }
> >> >> -
> >> >> -    /**
> >> >> -     * Set the script (TestBean version).
> >> >> -     * Must be overridden for subclasses that don't implement
> TestBean
> >> >> -     * otherwise the clone() method won't work.
> >> >> -     *
> >> >> -     * @param s the script to execute (may be blank)
> >> >> -     */
> >> >> -    public void setScript(String s){
> >> >> -        script=s;
> >> >> -    }
> >> >> -
> >> >> -    public String getParameters() {
> >> >> -        return parameters;
> >> >> -    }
> >> >> -
> >> >> -    public void setParameters(String s) {
> >> >> -        parameters = s;
> >> >> -    }
> >> >> -
> >> >> -    public String getFilename() {
> >> >> -        return filename;
> >> >> -    }
> >> >> -
> >> >> -    public void setFilename(String s) {
> >> >> -        filename = s;
> >> >> -    }
> >> >> -
> >> >> -    public String getScriptLanguage() {
> >> >> -        return scriptLanguage;
> >> >> -    }
> >> >> -
> >> >> -    public void setScriptLanguage(String s) {
> >> >> -        scriptLanguage = s;
> >> >> -    }
> >> >> -
> >> >> -    /**
> >> >>       * @return the cacheKey
> >> >>       */
> >> >>      public String getCacheKey() {
> >> >>
> >> >> Added:
> >> >>
> jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingTestElement.java
> >> >> URL:
> >> >>
> >>
> http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingTestElement.java?rev=1406876&view=auto
> >> >>
> >> >>
> >>
> ==============================================================================
> >> >> ---
> >> jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingTestElement.java
> >> >> (added)
> >> >> +++
> >> jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingTestElement.java
> >> >> Thu Nov  8 00:35:23 2012
> >> >> @@ -0,0 +1,91 @@
> >> >> +/*
> >> >> + * Licensed to the Apache Software Foundation (ASF) under one or
> more
> >> >> + * contributor license agreements.  See the NOTICE file distributed
> >> with
> >> >> + * this work for additional information regarding copyright
> ownership.
> >> >> + * The ASF licenses this file to You 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.util;
> >> >> +
> >> >> +import org.apache.jmeter.testelement.AbstractTestElement;
> >> >> +
> >> >> +/**
> >> >> + * Common parent class for the {@link BSFTestElement} and {@link
> >> >> JSR223TestElement} scripting test elements.
> >> >> + * These also share the {@link ScriptingBeanInfoSupport} class for
> >> >> configuration.
> >> >> + */
> >> >> +public abstract class ScriptingTestElement extends
> AbstractTestElement
> >> {
> >> >> +
> >> >> +    private static final long serialVersionUID = 281L;
> >> >> +
> >> >> +    //++ For TestBean implementations only
> >> >> +    private String parameters = ""; // passed to file or script
> >> >> +
> >> >> +    private String filename = ""; // file to source (overrides
> script)
> >> >> +
> >> >> +    private String script = ""; // script (if file not provided)
> >> >> +
> >> >> +    private String scriptLanguage = ""; // BSF/JSR223 language to
> use
> >> >> +    //-- For TestBean implementations only
> >> >> +
> >> >> +    public ScriptingTestElement() {
> >> >> +        super();
> >> >> +    }
> >> >> +
> >> >> +    /**
> >> >> +     * Return the script (TestBean version).
> >> >> +     * Must be overridden for subclasses that don't implement
> TestBean
> >> >> +     * otherwise the clone() method won't work.
> >> >> +     *
> >> >> +     * @return the script to execute
> >> >> +     */
> >> >> +    public String getScript(){
> >> >> +        return script;
> >> >> +    }
> >> >> +
> >> >> +    /**
> >> >> +     * Set the script (TestBean version).
> >> >> +     * Must be overridden for subclasses that don't implement
> TestBean
> >> >> +     * otherwise the clone() method won't work.
> >> >> +     *
> >> >> +     * @param s the script to execute (may be blank)
> >> >> +     */
> >> >> +    public void setScript(String s){
> >> >> +        script=s;
> >> >> +    }
> >> >> +
> >> >> +    public String getParameters() {
> >> >> +        return parameters;
> >> >> +    }
> >> >> +
> >> >> +    public void setParameters(String s) {
> >> >> +        parameters = s;
> >> >> +    }
> >> >> +
> >> >> +    public String getFilename() {
> >> >> +        return filename;
> >> >> +    }
> >> >> +
> >> >> +    public void setFilename(String s) {
> >> >> +        filename = s;
> >> >> +    }
> >> >> +
> >> >> +    public String getScriptLanguage() {
> >> >> +        return scriptLanguage;
> >> >> +    }
> >> >> +
> >> >> +    public void setScriptLanguage(String s) {
> >> >> +        scriptLanguage = s;
> >> >> +    }
> >> >> +
> >> >> +}
> >> >>
> >> >> Propchange:
> >> >>
> jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingTestElement.java
> >> >>
> >> >>
> >>
> ------------------------------------------------------------------------------
> >> >>     svn:eol-style = native
> >> >>
> >> >> Propchange:
> >> >>
> jmeter/trunk/src/core/org/apache/jmeter/util/ScriptingTestElement.java
> >> >>
> >> >>
> >>
> ------------------------------------------------------------------------------
> >> >>     svn:keywords = Author Date Id Revision
> >> >>
> >> >> Modified: jmeter/trunk/xdocs/changes.xml
> >> >> URL:
> >> >>
> >>
> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1406876&r1=1406875&r2=1406876&view=diff
> >> >>
> >> >>
> >>
> ==============================================================================
> >> >> --- jmeter/trunk/xdocs/changes.xml (original)
> >> >> +++ jmeter/trunk/xdocs/changes.xml Thu Nov  8 00:35:23 2012
> >> >> @@ -182,6 +182,7 @@ and right angle bracket (&gt;) in search
> >> >>  <ul>
> >> >>  <li><bugzilla>53956</bugzilla> - Add ability to
paste (a list of
> >> values)
> >> >> from clipboard for Header Manager</li>
> >> >>  <li>Updated to HttpComponents Client 4.2.2 (from 4.2.1)</li>
> >> >> +<li><bugzilla>54110</bugzilla> - BSFTestElement
and
> JSR223TestElement
> >> >> should use shared super-class for common fields</li>
> >> >>  </ul>
> >> >>
> >> >>  </section>
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> > --
> >> > Cordialement.
> >> > Philippe Mouawad.
> >>
> >
> >
> >
> > --
> > Cordialement.
> > Philippe Mouawad.
>



-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message