Hi guys,

There's not been much update lately, as I've been able to (finally) have some vacation. Now I'm back in business, and have continued working on the Qi4j 2.0 updates.

The internal engine has been significantly simplified, ripping out all assembly algorithms into the assembly. As a consequence of this, lots of classes went away, as all the polymorphism on how to handle different types of composites now resides in the assembly code instead of in the model.

I've also changed so that composites that you develop do not have to extend *Composite interfaces. Whereas before you had to do:
interface MyComposite
  extends TransientComposite
{
  ... methods
}
you can now register this:
interface MyComposite
{
  ... methods
}
The Qi4j engine will notice this, and add TransientComposite to the final proxy class anyway, so "obj instanceof TransientComposite" will still be true. The majority of methods in *Composite have been removed and put into descriptors accessible through the Qi4j API, so there are no "special methods" in those *Composite interface that needs to be implemented.

As a consequence of this, all the algorithms for determining where to find mixin implementations, concerns/sideeffects, etc. have been simplified, and I think some bugs have been squashed as well, as it is more consistent now in how these lookups work.

If you want to check it out, do a pull on "v2.0" branch.

/Rickard

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to