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:05:12 GMT
Ok, thanks for answer.
But what is strange is why remove clone method ?
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 ?

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.

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