[forge-dev] Fwd: In Relation To... Not one, two Weld releases - 1.1.10.Final and 1.2.0.Beta1 !!

Thomas Frühbeck fruehbeck at aon.at
Tue Oct 16 03:14:50 EDT 2012


Hello Paul, Lincoln,

since the discussion started about moving to OSGi I have been reading, 
investigating and experimenting a bit and want to share my experiences 
as a novice - are you smiling already?

I started with the current working Forge set of jars and tried to throw 
it at Felix - hindlooking somewhat naive I admit. Then the adventure 
started :-)

     * the BndTools 2.0.0 alpha command line "wrap" generated the new 
Manifest internally, but didn't write it into the jar in the end
         - after some frustrating experiments and reading of the 
documentation (dating 2006?!?) ~20 times I debugged and fixed the problem
         - comment by Peter Kriens: command line "wrap" is "for quick 
use, for serious use, always make a bnd file that controls the process" 
- which practically means: best write the Manifest yourself, honestly I 
can't see so much difference between calling "jar ufm <jar> 
<manifest.part>" and "bnd <bndfile> -o <jar> <jar>"

     * the structure of Bnd-projects is totally different to maven 
projects - I tried to setup the bnd source whithout Bnd-Tools, this is 
_no_ fun
         - after ~15 years of programming thats now the 15th version of 
project structure - not again please?!

     * the current state of jars in maven repositories out there makes 
integration into OSGi a nightmare!!
         - wrong manifests
         - manifests full of hundreds of Attributes - totally useless
         - manifests importing dependencies without declaring them 
"optional" - please investigate each and every dependency yourself and 
rewite them
         - manifests declaring dependencies with version restriction 
which is not provided by the targeted bundle
             - what a mess :-/
         - IMHO in essence the current state makes the OSGi-landscape an 
island

     * after reading the IMHO excellent book "OSGi in Action" @Manning I 
understand, that the resulting class loading inside the framework is far 
from easy to understand, if you go only one level deeper into the real 
mechanics - it's still no magic going on there

     * it's all about control - yes, sure, I understand that - but in 
the end we have to hide the complexity completely! After so many years 
of struggle I do not expect all Java programmers to gladly jump on the 
OSGi bandwaggon just because of the advent of Forge 2.0

I am completely convinced, that OSGi is the best currently available 
instantiation of a framework we want in a tool like Forge, but the 
current situation makes the move substantial and painful - compared to 
the current easy going programming model.

So I also want to stress the necessity of a "Manifest" for the "Forge 
goes OSGi" project - if there is one:
     - try hard to stick to maven as build environment. Reasons: user 
base, documentation, stability, versatility
     - CDI is IMHO the new common understanding, stick to it please. No 
OSGi on the surface.
     - define precisely the core / plugin bundle interaction
         - e.g. from the view point of the "user" we could
             - present a version of core internally for each major 
version of dependent plugins to enable her to use old and new plugins 
side-by-side
             - present a dialog: "which version of core do you want to 
start" to enable use of new and old plugins
             - tell her that she has lots of plugins, but due to the 
version of core none of them are usable
         - due to the nature of OSGi I am convinced, that a great deal 
of thought should be invested in the _vision_ we have of Forge before 
starting the hacking sessions - especially regarding the current state 
of it: versatile, flexible, open, based on sound tooling,..

Sorry if that was not very productive, after 3 weeks of struggling just 
had to write that down :-)
Are you experts smiling? At least I hope you do!

Thanks for your time, commitment and the incredible Forge!

Forge on,
Thomas




Am 15.10.2012 23:55, schrieb Paul Bakker:
> First of all I don't think it should be a requirement, you can get a 
> very similar programming model doing pure OSGi. The alternative I use 
> most is Felix DM: 
> http://felix.apache.org/site/apache-felix-dependency-manager-getting-started.html.
> You can either use a Java API or annotations (probably we should use 
> annotations). It can do pretty much everything CDI can, but based on 
> OSGi services.
>
> I'm obviously not against CDI at all, I'm a big fan of it, just think 
> we should be careful using a framework that will most probably change 
> significantly in the next few months. But before making that choice, 
> maybe we should include Mathieu and David in this discussion.
>
> Paul
>
>
>
>
>
> On Oct 15, 2012, at 23:47 , "Lincoln Baxter, III" 
> <lincolnbaxter at gmail.com <mailto:lincolnbaxter at gmail.com>> wrote:
>
>> Since CDI annotations is a requirement, isn't this something we will 
>> need? What do you recommend as an alternative? What is it missing 
>> that would be a blocker?
>>
>> Sorry for all the tough questions :) Thanks for your time!!!
>>
>> ~Lincoln
>>
>> On Mon, Oct 15, 2012 at 5:40 PM, Paul Bakker 
>> <paul.bakker.nl at gmail.com <mailto:paul.bakker.nl at gmail.com>> wrote:
>>
>>     It provides several things:
>>     -Publish OSGi services using CDI annotations
>>     -Inject OSGi services in CDI beans using @Inject
>>     -Inject OSGi APIs such as the bundlecontext using @Inject
>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20121016/fb50684a/attachment.html 


More information about the forge-dev mailing list