I had planned to speak at this years North American Symposium about our ongoing work with OSGi. However, sadly due to several different factors that didn't happen.
It's too bad because as it turns out at least two dozen people asked me:
What happened to the OSGi plans?
Was it dead?
When would it come?
Was there a talk on it disguised as something else?
some variation thereof
Likewise, I was asked:
What does OSGi and Liferay together even mean?
What is the relation?
What is the value?
Clearing the air
1. The plan
Liferay's OSGi plans are not dead. My current focus, as far as development is concerned, is almost 100% OSGi. A usable form of OSGi integration will arrive in 6.2. There was no talk on OSGi at NAS, so you didn't miss anything.
2. The reasoning (why OSGi?)
Liferay is a large, complex application which implements it's own proprietary plugin mechanisms. While Liferay has managed well enough dealing with those characteristics over it's history, it's reached a point on several fronts where these are becoming a burden which seem to bleed into every aspect of Liferay: development, support, sales, marketting, etc.
(Disclaimer: I'm not part of support, sales or marketting. However, as a senior architect I see how each of those teams deal with the limitations imposed by those previously mentioned characteristics and how they impact the effectiveness of each team, and at times their level of frustration.)
How can OSGi make such a broad impact? you ask.
The impact doesn't actually come from OSGi at all. The impact comes from the outcomes resulting from designing a system using a modular approach.
"Modularity is the degree to which a system's components may be separated and recombined." - Wikipedia
Further to this general definition, you might consider that regardless of which context is used for obtaining a more specific one, it becomes quickly apparent that "modularity" is a benefit rather than impediment.
However, when we do look at a specific definition in the context of software design we see how it clearly applies and might relate to the aspects above:
"In software design, modularity refers to a logical partitioning of the "software design" that allows complex software to be manageable for the purpose of implementation and maintenance. The logic of partitioning may be based on related functions, implementation considerations, data links, or other criteria.” - Wikipedia
Plainly, a modular system allows that the interal details each module be altered without affecting other modules in the system. Imagine if this were true for Liferay on a wider scale.