Hi,

> First sorry for this late reply, the mail strangely went out of my radar.
> I cannot give you an exact date for iPOJO 2.0. My goal is to release iPOJO 
> 2.0 in 2011 (June is my first target).
>
> Right now, I'm collecting requirements, and ideas and starting to write that 
> down.  For sure, inheritance will be part of the new release as well as new 
> handlers such as a kind of JPA handler... I also want to reduce the 
> complexity of some mechanisms as the 'component type type' definition.

Well then maybe I should supply some of the things we came up with
when we were starting to get to grips with ipojo. Note that these
should not be considered criticisms as such - just things that didn't
behave as expected :)

* There  is lots of name collisions between annotations which make the
use of them painful at best. For example @Property could either be
associated with jmx handler or it could be a config property. Why not
just have annotations named @ConfigProperty and @JmxProperty instead?
Much easier for end user as don't need to fully qualify everything.
There is also namespace collisions between annotations and classes
(i.e. @Publisher vs Publisher) which means more ugly fully qualified
names (why not rename the annotation to something like @Publishes or
similar.

* Non-java ish names seem to be scattered through the annotations. Why
have data_key rather than the more javaish dataKey. ie.
  - @Subscriber.data_key
  - @Subscriber.data_type
  - @Publisher.data_key
  - @Publisher.data_type
  - @Component.factory_method

* Annotations on parent classes ignored!

* Why can't you set static service properties via annotations that are
not mirrored in fields? (Not sure if you can do this via xml). I could
easily imagine extending the @Provides annotation such as

@Provides{ specifications = {Foo.class},
properties = {...@serviceproperty{name="x",
value="1"},@ServiceProperty{name="y", value="2"}}} )

* Why not inject BundleContext via @Require?

* Why does not validation of annotations occur until runtime? If you
use annotation and refer to a method that does not exist it should
fail at build time! Likewise if you annotate a method that does not
have expected parameter types

* @Update annotated methods should not require a Dictionary parameter
- especially if all expected fields configured by @Property before
hand.

* @Provides have to be parent classes or interfaces not the class
itself ... seems like an arbitrary decision???

Anyhoo - thats all that is on this list. Other than the above iPojo
has worked a charm. We were planning on having a custom set of
annotations that fit more with our expectations and generated the
appropriate xml .

-- 
Cheers,

Peter Donald

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to