Galder Zamarreno commented on ISPN-134:
Discussion on the annotations and process of plugin generation:
Oct 01 15:04:52 * pilhuhn (n=hrupp@redhat/jboss/pilhuhn) has joined #infinispan
Oct 01 15:05:00 <galderz> i do need a release that contains the updates to the
Oct 01 15:05:27 <galderz> so pilhuhn, we're discussing whether to add these
annotations to ispn, or we should just work on the helper module on rhq?
Oct 01 15:05:47 <galderz> i already need a release of plugin generator with the
changes i'm implementing
Oct 01 15:06:09 <galderz> so, how doable is to get a release of the annotation
module at the same time?
Oct 01 15:06:33 <galderz> if u could set up the module, i could start working on the
annotations as I need them on ispn
Oct 01 15:07:03 <galderz> if not doable, we'd have to add the annotations to
ispn, but if we can start on the rhq module already, it'd be better
Oct 01 15:07:59 <galderz> thoughts pilhuhn ?
Oct 01 15:09:08 <pilhuhn> Howdy
Oct 01 15:09:09 <pilhuhn> I think I have some uncommited code in it - but it is not
in any official release anyway
Oct 01 15:09:43 <galderz> what uncommited code?
Oct 01 15:09:49 <galderz> annotations?
Oct 01 15:10:04 <pilhuhn> I'd love to do it in RHQ, so that it gets re-usable
Oct 01 15:10:15 <galderz> indeed
Oct 01 15:10:17 <galderz> so?
Oct 01 15:10:40 <pilhuhn> And yes, it makes sense to put them in a module within
helpers, but outside the plugin generator, so that the jar file will stay small
Oct 01 15:10:54 <pilhuhn> no, to discovery.ftl
Oct 01 15:10:54 <galderz> +1
Oct 01 15:11:08 <galderz> the plugin generator is needed at build time by the jopr
Oct 01 15:11:18 <galderz> the annotations are needed by core and potentially other
Oct 01 15:12:44 * joseph42 (n=joseph42@redhat/jboss/joseph42) has joined #infinispan
Oct 01 15:12:49 <pilhuhn> yes
Oct 01 15:13:04 <galderz> joseph42, summary:
Oct 01 15:13:19 <galderz> i'd like to have a rhq/jopr release at some point that
Oct 01 15:13:36 <galderz> a tiny module with jopr annotations
Oct 01 15:13:46 <galderz> and an update to rhq plugin generator
Oct 01 15:14:08 <galderz> these jopr annotations annotate metrics...etc in the
Oct 01 15:15:04 <pilhuhn> joseph42: Infinispan exports a lot of stuff via jmx - they
use annotations, but that data is not enough to build the plugin descriptor from it. So
the idea is to have a RHQ module with annotations, that projects can use - with some
helper class to parse etc - to build fragments of the deployment descriptor and probably
also of the component class facets
Oct 01 15:16:24 <pilhuhn> So the idea is to have the annotations @RhqMetric,
@RhqOperation in modules7helpers/annotations to build a very small jar and then have e.g.
the plugin generator parse the classes and use the information contained
Oct 01 15:16:53 <joseph42> so...that'll attempt to automate the process of
building a plugin?
Oct 01 15:17:19 <pilhuhn> help to automate
Oct 01 15:17:26 <galderz> it will automatte the descriptor generation
Oct 01 15:17:39 <pilhuhn> joseph42: e.g. in Infinispan a RHQ-resource is done via a
bunch of Mbeans
Oct 01 15:17:55 <pilhuhn> so the generic jmx-plugin does not apply
Oct 01 15:17:57 <joseph42> but instead of a one-off solution, you want something
formal that comes out of rhq/jopr
Oct 01 15:18:06 <joseph42> as well as a generator youcan run over your codeto gen
Oct 01 15:18:27 <joseph42> did i capture that correctly?
Oct 01 15:18:29 <pilhuhn> joseph42: They would do it in ispn, but I talked them into
having that in RHQ, as others may want that stuff too
Oct 01 15:18:37 <galderz> it's the plugin.xml that we're mostly interested
Oct 01 15:19:02 <joseph42> right, understood
Oct 01 15:19:23 <joseph42> so if that module resides in ispn, you shouldn't have
any deps on rhq/jopr,right?
Oct 01 15:19:37 <joseph42> (assuming the xsd for plugin.xml is relatively static)
Oct 01 15:19:42 <galderz> i do have a dep
Oct 01 15:19:47 <galderz> the plugin generator module
Oct 01 15:20:12 <galderz> i'm improving it to be able to pass in X number of
Oct 01 15:20:24 <pilhuhn> joseph42: in an "ideal world" that module would
live in RHQ for other projects to just use it
Oct 01 15:20:36 <joseph42> hmm...so you want extenions to heiko's plugin
generator to understand annotation-based enhancements in the ispn?
Oct 01 15:21:12 <galderz> i need modifying the plugin generator to generate
Oct 01 15:21:35 <joseph42> galderz: completely understood
Oct 01 15:21:46 <galderz> then, our own jopr plugin calls this, having checked the
annotations, to generate the xml
Oct 01 15:22:07 <galderz> now, the checking of annotations could either be done: by
Oct 01 15:22:24 <galderz> or the plugin generator
Oct 01 15:22:30 <galderz> but it makes sense for us to do
Oct 01 15:22:42 <joseph42> well, it seems that if these annotations exist at all,
the processor needs to be in the plugin generator, and it can be fully self-contained on
the rhq side
Oct 01 15:23:12 <galderz> hmmmm, not so sure
Oct 01 15:23:24 <galderz> hmm, well, it could
Oct 01 15:23:33 <galderz> if I pass u the classpath that u need to inspect
Oct 01 15:23:36 <joseph42> feel free to call out to the plugin generator, but i
think it makes sense to come up with a well-defined annotation set that corresponds to the
schema as a general-purpose solution
Oct 01 15:23:36 <pilhuhn> yes, it cold
Oct 01 15:23:41 <galderz> for these annotations
Oct 01 15:24:16 <galderz> joseph42, i can come up with ideas based on what i need
Oct 01 15:24:18 -christel- [Global Notice] Hi all, unfortunately one of our former
developers has left behind a memory leak in our ircd software which means we'll need
to restart several ircds over the next few days. We're going to stagger it to reduce
disruption, and the first round will be happening very shortly. Affected users for now
will be about 1300. Apologies for the inconvenience!
Oct 01 15:24:23 <galderz> or the annotations that I need
Oct 01 15:24:44 <galderz> but a global solution, that includes all annotations would
be on ur side
Oct 01 15:25:14 * mmarkus_ has quit (orwell.freenode.net irc.freenode.net
Oct 01 15:25:18 * dmlloyd has quit (orwell.freenode.net irc.freenode.net
Oct 01 15:25:22 * jgarzik has quit (orwell.freenode.net irc.freenode.net
Oct 01 15:25:30 * bobmcw has quit (orwell.freenode.net irc.freenode.net
Oct 01 15:25:30 * pilhuhn has quit (orwell.freenode.net irc.freenode.net
Oct 01 15:26:51 * pilhuhn (n=hrupp@redhat/jboss/pilhuhn) has joined #infinispan
Oct 01 15:26:51 * bobmcw (n=bobmcw@redhat/jboss/bobmcw) has joined #infinispan
Oct 01 15:26:51 * mmarkus_ (n=mmarkus(a)22.214.171.124) has joined #infinispan
Oct 01 15:26:51 * jgarzik (n=jgarzik(a)cpe-069-134-158-197.nc.res.rr.com) has joined
Oct 01 15:26:51 * dmlloyd (n=David@redhat/jboss/dmlloyd) has joined #infinispan
Oct 01 15:27:04 <galderz> but joseph42, pilhuhn, how would everything live in the
plugin gen side
Oct 01 15:27:05 <galderz> ?
Oct 01 15:27:39 <galderz> what I mean is:
Oct 01 15:27:56 <galderz> there're 10 metrics, 2 belong to a 1 component, the
other 8 to the other
Oct 01 15:29:16 <galderz> 2 come from a singleton class, but the other 8 belong from
a group of classes
Oct 01 15:30:02 <galderz> cos I had that knowledge, that's why I was thinking of
scanning the annotations myself and then calling in to ur plugin generator
Oct 01 15:30:25 <joseph42> well, yes, mapping will be "fun". maybe all
annotations map back to a resource type, so it knows where to be a child.
Oct 01 15:31:02 <pilhuhn> What joseph42 said sounds good
Oct 01 15:31:22 <galderz> opne sec
Oct 01 15:31:54 <galderz> let me think through
Oct 01 15:32:43 <galderz> pilhuhn, joseph42, so the type, taking specific examples,
Oct 01 15:33:05 <galderz> CacheManager or Cache
Oct 01 15:33:47 <pilhuhn> yep
Oct 01 15:34:29 <galderz> and this would link back to the component name
Oct 01 15:34:47 <galderz> that way, u know to which component that metric or op
belongs to, correct?
Oct 01 15:35:05 <joseph42> galderz: yeah, basically
Oct 01 15:35:22 <galderz> right, so who's gonna do this then?
Oct 01 15:35:33 <galderz> i can certainly help from an infinispan side, testing this
Oct 01 15:35:36 <joseph42> there may be a better way, but that's what strikes me
as a viable solution in the few minutes i've been thinking about this ; )
Oct 01 15:36:01 <galderz> i don't think there's an urgent need in getting it
Oct 01 15:36:01 <joseph42> galderz: i think heiko would welcome patches to the
plugin generator, heh
Oct 01 15:36:31 <galderz> hehe, my involvement here, if anything is getting
annotations and plugin as far as getting what i need for infinispan
Oct 01 15:36:54 <galderz> iow, I only care about getting an exact replica of the
Oct 01 15:37:06 <galderz> so, any patch will be biased towards this
Oct 01 15:38:27 <galderz> the only thing I ask hewre is that if i do it, i get it
reviewed and released as soon as it's ready for my consumption :)
Oct 01 15:39:49 <pilhuhn> I think we should put the annotations in a new module with
in helpers, so that we have them in RHQ. And then "l8er" work on the plugin
generator to add some parsing.
Oct 01 15:46:35 <joseph42> sounds like heiko has a relatively firm grip on how to
proceed so...i'm going to gracefully bow out now. ; )
Oct 01 15:46:35 <joseph42> btw, this is an interesting idea guys. keep me updated
on progress. ciao.
Oct 01 15:47:13 <galderz> pilhuhn, joseph42 ok
Update ManagedAttribute annotations to expose more information for
use by JOPR
Issue Type: Feature Request
Components: JMX, reporting and management
Reporter: Manik Surtani
Assignee: Galder Zamarreno
Fix For: 4.0.0.CR1
Details are in the mail list thread.
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see: http://www.atlassian.com/software/jira