Daniel Fagerstrom wrote:
...
But before we start to add bundles to Felix I think we need to discuss what policy we should have for adding bundles. Here are my opinions:

* As it is part of our charter to "implement, document, maintain, and support standard OSGi R4 services", we should in most cases accept code contributions for standard services as initial code base (as long as the legal issues are solved of course). For some services there might be several different approaches for the services, in such cases we need of course more discussion.

Sounds great. There are a number of smaller OBR repos with a lot to offer and I hope we hear from more people like Didier who are willing to raise the visibility of their work.

* Committers can add whatever bundle they want to their sandbox.

This is very cool. Without accountability, the sandbox rapidly becomes a litterbox.

* Now we come to the complicated part: non standard bundles. One of the cool things with our project is that we have the goal to "provide a focal point for the open-source OSGi community to develop next generation enhancements to the core framework and act as a conduit for the open-source community to the OSGi Alliance". Fullfilling that requires IMO some focus, we should not let our project become a dumping ground for various half baked ideas and one man shows.

I'd like to provide some commentary, namely what we were thinking when writing the proposal regarding #3 ("common needs not fully specified") vs. #4 ("next generation enhancements"). Of course, I look forward to Felix taking on a life of its own so this may largely be personal opinion.

As you note, #4 results in non-standard bundles. Really, with #4, "next generation enhancements," we were thinking about how the Service Binder went on to become Declarative Services. In other words, "next generation" meant modularity and classloading ... deeper stuff.

But, I'd like to draw some attention to #3 as I believe that is where some of the most useful bundles will come from. By "interfaces, APIs, and other common needs not fully specified" we had in mind:

1) "store interfaces" - services such as UserAdmin, ConfigAdmin, and PrefsAdmin did not define store interfaces. With store interfaces defined, we could provide bundles for directory (JNDI), JDBC, or object store (db4o, Prevayler) backends. Existing implementations either provide no persistence or a simple file store. I believe the lack of store options is holding back their wider usage.

2) "aspects of the runtime container's packaging" - really this means daemons and installers (GUI, RPM) for Windows and Linux. We should be able to provide these as features for Felix users at Apache and elsewhere to re-use for their projects.

3) "bundle repositories" - OBR and related ideas, such as standardizing repo formats with Maven and maybe even Eclipse update sites.

OK, I hope that helped. Looking back at the proposal I wouldn't be surprised if it wasn't clear. Opps.

IMO a non standard bundle should only be accepted if it is a community effort, i.e. if a couple of community members takes part in discussions, design and implementation. We should also have vote about accepting the bundle.

Makes sense.

The above might sound somewhat harsh but we have some rather bad experience from the Cocoon project on letting people add modules (blocks) whenever they feel like. After a number of years we have the following situation: http://svn.apache.org/repos/asf/cocoon/blocks/. Around 50 blocks of which only a handfull are actively maintained by the community. It is not that easy for a new user to evaluate which of all these blocks that they can rely on. And categorizing and removing blocks leads to community friction.

So IMO we should only add a bundle after that we have made sure it has real long term community support.

What do you think?

/Daniel


Reply via email to