Hi again,

In addition to this, could it be possible to add this method in
org.apache.jmeter.util.NameUpdater.java :

public static Object setProperty(String key, String value)  {
    return nameMap.setProperty(String key, String value);
}

This would allow plugins to add their own translation rules, without having
to modify the properties file.

Thanks and Regards,

Stef

2011/11/9 Stéphane Hoblingre <stephane.hoblin...@gmail.com>

> Thank you Sebb for your quick response!
>
> I know about not_in_menu configuration, but we would like to avoid JMeter
> users to edit propertie file from JMeter to install the plugins. So this is
> why we would like to do it from the plugin code itself. I did the
> modification in MenuFactory.java from trunk (r1199633), please find
> attached the patch / file.
>
> The modification is very light (in bold):
>
> if (name.endsWith("JMeterTreeNode") // $NON-NLS-1$
>         || name.endsWith("TestBeanGUI")) {// $NON-NLS-1$
>     continue;// Don't try to instantiate these
> }
>
> *>//Handle BeanDescriptor hidden property
> >boolean isHiddenBean = false;*
>
> JMeterGUIComponent item;
> try {
>     Class<?> c = Class.forName(name);
>     if (TestBean.class.isAssignableFrom(c)) {
>         item = new TestBeanGUI(c);
> *>        try {
> >           isHiddenBean =
> Introspector.getBeanInfo(c).getBeanDescriptor().isHidden();
> >        } catch (IntrospectionException e) {
> >            log.warn("Cannot get bean info from class " + name + ".");
> >        }*
>
>     } else {
>         item = (JMeterGUIComponent) c.newInstance();
>     }
> } catch (NoClassDefFoundError e) {
>     log.warn("Missing jar? Could not create " + name + ". " + e);
>     continue;
> } catch (Throwable e) {
>     log.warn("Could not instantiate " + name, e);
>     if (e instanceof Error){
>         throw (Error) e;
>     }
>     if (e instanceof RuntimeException){
>         throw (RuntimeException) e;
>     }
>     continue;
> }
> *>* if (elementsToSkip.contains(name) ||
> elementsToSkip.contains(item.getStaticLabel()) *|| isHiddenBean*) {
>     log.info("Skipping " + name);
>     continue;
> }
>
> Could this be added in the next version of JMeter?
>
> Thanks,
>
> Stef
>
>
> On Wed, Nov 9, 2011 at 12:06 AM, sebb <seb...@gmail.com> wrote:
>
>> 2011/11/8 Stéphane Hoblingre <stephane.hoblin...@gmail.com>:
>> > Dear JMeter dev team,
>> >
>> > I have an evolution request for JMeter which will help plugin
>> developers.
>> > In our plugins, we implemented one component using TestBeans. We have
>> now
>> > rewrote this component and use regular test elements, so we need to hide
>> > the previous one from jmeter add menus (backward jmx compatibility). The
>> > only way I found is very dirty, that is setting its name to null. But in
>>
>> You can also edit the JMeter property:
>>
>> not_in_menu
>>
>> see jmeter.properties.
>>
>> You might also be able to make use of upgrade.properties and dispense
>> with the old class altogether.
>>
>> > BeanDescriptor class, there is one attribute:
>> >
>> > isHidden
>> > public boolean isHidden()
>> >    The "hidden" flag is used to identify features that are intended only
>> > for tool use, and which should not be exposed to humans.
>> >
>> > While building the add component menu, could you check the hidden flag
>> and
>> > if true not add it in the menu? That would allow to plugin developers to
>> > hide properly it.
>> >
>> > Is it possible? Do you want me to open a bug for it?
>>
>> If it can be done without affecting the existing API, then I suppose
>> it would be possible to interpret the isHidden() status as meaning
>> that the TestBean is not added to the display.
>>
>> If you provide a patch as a Bugzilla enhancement we will take a look.
>>
>> > Thanks,
>> >
>> > Stef
>> > JMeter Plugins - http://code.google.com/p/jmeter-plugins
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@jakarta.apache.org
>> For additional commands, e-mail: dev-h...@jakarta.apache.org
>>
>>
>

Reply via email to