geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Heads-up - GBeanInfo via annotations
Date Sun, 30 Mar 2008 16:40:29 GMT
I have a couple of suggestions and questions.....

1. I think we should try harder to separate the identification of a  
constructor parameter as attribute or reference from identifying its  
name.  So, I think we should use the java6 and xbean @ParameterName  
annotations for names and something else for references if necessary.
2. I'm pretty sure identifying something as an attribute isn't  
necessary.
3. I think we should think long and hard if we really need to  
identify references specifically.  Can we get by with deciding how to  
treat them based on what is in the plan?
4. Can the GBean annotation be optional?  I hope so :-) (e.g. default  
j2eeType=GBean, default name = class name)

While you are looking at this..... I think we may want to move  
towards considering the basic unit of geronimo assembly as the module/ 
plugin rather than the gbean.  This may have repercussions on some  
things the admin console can do that add or remove gbeans from a  
module, but I've always looked at those actions rather sceptically.   
Doing both changes at once may be too big a jump but IMO if you see a  
way to progress more quickly by moving towards this additional goal  
I'd support it.

This looks great!
Thanks!
david jencks


On Mar 30, 2008, at 12:55 AM, Gianny Damour wrote:

> Hi,
>
> I am working on the declaration of GBeanInfo via annotations.
>
> This is an example GBean with all the possible annotations (note  
> that some annotation properties have default values so you do not  
> see all of them in the example):
>
> @GBean(j2eeType="type", name="name")
> @GPriority(priority=123)
> public class MockGBean implements Runnable {
>
>     public MockGBean(@GParamAttribute(name = "name") String name,
>         @GParamReference(name = "Name") Runnable runnable) {
>     }
>
>     public void run() {
>     }
>
>     @GAttribute
>     public String getGetterAttribute() {
>         return null;
>     }
>
>     @GAttribute
>     public void setSetterAttribute(String value) {
>     }
>
>     @GReference
>     public void setSetterReference(Runnable value) {
>     }
>
> }
>
> Above annotations are in the package  
> org.apache.geronimo.gbean.annotations.
>
> At the same time, I will add support for pluggable strategies to  
> get the GBeanInfo of a class. We will have two strategies: use  
> getGBeanInfo method, current approach; or introspect annotations,  
> the one I am working on. It will be possible to add additional  
> strategies, e.g. read a service descriptor file a la OpenEJB.
>
>
> I will also replace the GBean instantiation code of GBeanInstance  
> by an ObjectRecipe (xbean-reflect class).
>
>
> Let me know if you have any concerns about the above plan.
>
> Thanks,
> Gianny


Mime
View raw message