jakarta-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From St├ęphane Hoblingre <stephane.hoblin...@gmail.com>
Subject Re: [JMeter] evolution request - handle BeanDescriptor.hidden flag in JMeter
Date Wed, 09 Nov 2011 07:27:45 GMT
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 <sebbaz@gmail.com> wrote:

> 2011/11/8 St├ęphane Hoblingre <stephane.hoblingre@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-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: dev-help@jakarta.apache.org
>
>

Mime
View raw message