You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by sebb <se...@gmail.com> on 2009/07/24 02:59:11 UTC

Re: getters/setters never called: ConfigTestElement implementing TestBean

Did you set up the properties?

i.e.

server.displayName
server.shortDescription

On 24/07/2009, Donohue, Jack <Ja...@fadv.com> wrote:
> I'm new to JMeter. My apologies if this has already been asked/answered.
>  Seems like a basic question, but I couldn't find the answer in any
>  earlier threads.
>
>  I have a problem with a simple ConfigTestElement subclass that
>  implements TestBean. The TestBeanGUI/GenericTestBeanCustomizer displays
>  the properties fine, but the getters/setters are never called:
>
>  e.g.,
>
>  <code>
>  public class MyConfig extends ConfigTestElement implements TestBean {
>
>         private String server = null;
>
>     public String getServer() {
>         // this is never called
>         return server;
>     }
>
>     public void setServer(String val) {
>         // this is never called
>         server = val;
>     }
>  }
>
>  public class MyConfigBeanInfo extends BeanInfoSupport {
>
>     Logger log = LoggingManager.getLoggerForClass();
>
>     public MyConfigBeanInfo() {
>         super(MyConfig.class);
>
>         PropertyDescriptor p = property("server");
>         p.setValue(NOT_UNDEFINED, Boolean.TRUE);
>         p.setValue(DEFAULT, "localhost");
>
>     }
>  }
>
>  </code>
>
>  The gui displays fine, and a "server" JMeterProperty does get added to
>  the property map with the right value from the gui, but the setter on
>  the actual object is never called.
>
>  Is there anything special need to be done for ConfigElements? The
>  setters do get called for Samplers that implement TestBean.
>
> --
>
>  THIS E-MAIL MESSAGE AND ANY FILES TRANSMITTED HEREWITH, ARE INTENDED SOLELY FOR THE USE OF THE INDIVIDUAL(S) ADDRESSED AND MAY CONTAIN CONFIDENTIAL, PROPRIETARY OR PRIVILEGED INFORMATION.  IF YOU ARE NOT THE ADDRESSEE INDICATED IN THIS MESSAGE (OR RESPONSIBLE FOR DELIVERY OF THIS MESSAGE TO SUCH PERSON) YOU MAY NOT REVIEW, USE, DISCLOSE OR DISTRIBUTE THIS MESSAGE OR ANY FILES TRANSMITTED HEREWITH.  IF YOU RECEIVE THIS MESSAGE IN ERROR, PLEASE CONTACT THE SENDER BY REPLY E-MAIL AND DELETE THIS MESSAGE AND ALL COPIES OF IT FROM YOUR SYSTEM.
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>  For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: getters/setters never called: ConfigTestElement implementing TestBean

Posted by sebb <se...@gmail.com>.
Just a quick note for the archives:

There is a problem with TestBean Config elements.

Until this is fixed, a workround is to implement the TestListener
interface (the methods need not do anything).

On 24/07/2009, Donohue, Jack <Ja...@fadv.com> wrote:
> Yes. And the field labels in the gui appear as they are defined in the properties file, so I'm sure it's being read.
>
>  I did a bit more digging after posting. I can see where the "server" JMeterProperty is being set: It looks like TestBeanGUI.modifyTestElement is transfering the JMeterProperties directly to the element.propMap. But it's never calling the setter method on the element.
>
>  I assume there should be a propertyDescriptor.getWriteMethod().invoke somewhere to call the setter on the element, though I don't know if that's the right place to do it. In any case, I can't see anywhere where the setter method is being invoked for config elements.
>
>
>
>
>
>  -----Original Message-----
>  From: sebb [mailto:sebbaz@gmail.com]
>  Sent: Thu 7/23/2009 5:59 PM
>  To: JMeter Users List
>  Subject: Re: getters/setters never called: ConfigTestElement implementing TestBean
>
>  Did you set up the properties?
>
>  i.e.
>
>  server.displayName
>  server.shortDescription
>
>  On 24/07/2009, Donohue, Jack <Ja...@fadv.com> wrote:
>  > I'm new to JMeter. My apologies if this has already been asked/answered.
>  >  Seems like a basic question, but I couldn't find the answer in any
>  >  earlier threads.
>  >
>  >  I have a problem with a simple ConfigTestElement subclass that
>  >  implements TestBean. The TestBeanGUI/GenericTestBeanCustomizer displays
>  >  the properties fine, but the getters/setters are never called:
>  >
>  >  e.g.,
>  >
>  >  <code>
>  >  public class MyConfig extends ConfigTestElement implements TestBean {
>  >
>  >         private String server = null;
>  >
>  >     public String getServer() {
>  >         // this is never called
>  >         return server;
>  >     }
>  >
>  >     public void setServer(String val) {
>  >         // this is never called
>  >         server = val;
>  >     }
>  >  }
>  >
>  >  public class MyConfigBeanInfo extends BeanInfoSupport {
>  >
>  >     Logger log = LoggingManager.getLoggerForClass();
>  >
>  >     public MyConfigBeanInfo() {
>  >         super(MyConfig.class);
>  >
>  >         PropertyDescriptor p = property("server");
>  >         p.setValue(NOT_UNDEFINED, Boolean.TRUE);
>  >         p.setValue(DEFAULT, "localhost");
>  >
>  >     }
>  >  }
>  >
>  >  </code>
>  >
>  >  The gui displays fine, and a "server" JMeterProperty does get added to
>  >  the property map with the right value from the gui, but the setter on
>  >  the actual object is never called.
>  >
>  >  Is there anything special need to be done for ConfigElements? The
>  >  setters do get called for Samplers that implement TestBean.
>  >
>  --
>
>  THIS E-MAIL MESSAGE AND ANY FILES TRANSMITTED HEREWITH, ARE INTENDED SOLELY FOR THE USE OF THE INDIVIDUAL(S) ADDRESSED AND MAY CONTAIN CONFIDENTIAL, PROPRIETARY OR PRIVILEGED INFORMATION.  IF YOU ARE NOT THE ADDRESSEE INDICATED IN THIS MESSAGE (OR RESPONSIBLE FOR DELIVERY OF THIS MESSAGE TO SUCH PERSON) YOU MAY NOT REVIEW, USE, DISCLOSE OR DISTRIBUTE THIS MESSAGE OR ANY FILES TRANSMITTED HEREWITH.  IF YOU RECEIVE THIS MESSAGE IN ERROR, PLEASE CONTACT THE SENDER BY REPLY E-MAIL AND DELETE THIS MESSAGE AND ALL COPIES OF IT FROM YOUR SYSTEM.
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: getters/setters never called: ConfigTestElement implementing TestBean

Posted by "Donohue, Jack" <Ja...@fadv.com>.
Yes. And the field labels in the gui appear as they are defined in the properties file, so I'm sure it's being read.

I did a bit more digging after posting. I can see where the "server" JMeterProperty is being set: It looks like TestBeanGUI.modifyTestElement is transfering the JMeterProperties directly to the element.propMap. But it's never calling the setter method on the element.

I assume there should be a propertyDescriptor.getWriteMethod().invoke somewhere to call the setter on the element, though I don't know if that's the right place to do it. In any case, I can't see anywhere where the setter method is being invoked for config elements.




-----Original Message-----
From: sebb [mailto:sebbaz@gmail.com]
Sent: Thu 7/23/2009 5:59 PM
To: JMeter Users List
Subject: Re: getters/setters never called: ConfigTestElement implementing TestBean
 
Did you set up the properties?

i.e.

server.displayName
server.shortDescription

On 24/07/2009, Donohue, Jack <Ja...@fadv.com> wrote:
> I'm new to JMeter. My apologies if this has already been asked/answered.
>  Seems like a basic question, but I couldn't find the answer in any
>  earlier threads.
>
>  I have a problem with a simple ConfigTestElement subclass that
>  implements TestBean. The TestBeanGUI/GenericTestBeanCustomizer displays
>  the properties fine, but the getters/setters are never called:
>
>  e.g.,
>
>  <code>
>  public class MyConfig extends ConfigTestElement implements TestBean {
>
>         private String server = null;
>
>     public String getServer() {
>         // this is never called
>         return server;
>     }
>
>     public void setServer(String val) {
>         // this is never called
>         server = val;
>     }
>  }
>
>  public class MyConfigBeanInfo extends BeanInfoSupport {
>
>     Logger log = LoggingManager.getLoggerForClass();
>
>     public MyConfigBeanInfo() {
>         super(MyConfig.class);
>
>         PropertyDescriptor p = property("server");
>         p.setValue(NOT_UNDEFINED, Boolean.TRUE);
>         p.setValue(DEFAULT, "localhost");
>
>     }
>  }
>
>  </code>
>
>  The gui displays fine, and a "server" JMeterProperty does get added to
>  the property map with the right value from the gui, but the setter on
>  the actual object is never called.
>
>  Is there anything special need to be done for ConfigElements? The
>  setters do get called for Samplers that implement TestBean.
>
--

THIS E-MAIL MESSAGE AND ANY FILES TRANSMITTED HEREWITH, ARE INTENDED SOLELY FOR THE USE OF THE INDIVIDUAL(S) ADDRESSED AND MAY CONTAIN CONFIDENTIAL, PROPRIETARY OR PRIVILEGED INFORMATION.  IF YOU ARE NOT THE ADDRESSEE INDICATED IN THIS MESSAGE (OR RESPONSIBLE FOR DELIVERY OF THIS MESSAGE TO SUCH PERSON) YOU MAY NOT REVIEW, USE, DISCLOSE OR DISTRIBUTE THIS MESSAGE OR ANY FILES TRANSMITTED HEREWITH.  IF YOU RECEIVE THIS MESSAGE IN ERROR, PLEASE CONTACT THE SENDER BY REPLY E-MAIL AND DELETE THIS MESSAGE AND ALL COPIES OF IT FROM YOUR SYSTEM.