On 11/29/2010 12:07 PM, Jason T. Greene wrote:
This was talked about briefly on the pull request list, but no
resolution was made.
The issue is that JBAS-8585 and JBAS-8599 both add module dependencies
from some of the core subsystems on to the osgi subsystem (naming and
transactions). In addition we already have a module dependency from
domain to osgi. So for all intents and purposes, we are moving towards
AS7 having osgi as a required base level component. Before progressing
much further in this direction we should evaluate whether this is the
right thing to do, and how this solution compares to alternative
approaches. I can think of three approaches right off the bat.
1. Continue as is, osgi is a core required component
Pros: OSGi subsystem module is simpler, no additional subsystems or
modules needed
Cons: AS7 must always have OSGi binaries no matter the configuration
2. Change the osgi subsystem to use optional dependencies on all of the
subsystems it maps.
Pros: No additional subsystems are needed
AS7 no longer requires OSGi binaries
Cons: osgi subsystem code will need to do a lot of conditional
checking for handling different subsystems being available
3. Create an osgi subsystem per subsystem it wraps (e.g. osgi-naming,
osgi-transactions, etc)
Pros: OSGi subsystem code is simpler
AS7 no longer requires OSGi binaries
Cons: More subsystems are introduced, almost one per functional
subsystem.
Either #2 or #3. #1 is a non-option in my opinion. Once we open this
door we're going to lose any rational boundaries between our subsystems
and end up with a mess.
We've used #2 to decent effect already in the Txn subsystem. An
additional advantage to this approach is that you don't need the
configuration overhead - you just enable OSGi, and if you have Txn
enabled, you get OSGi+Txn as well. This is in line with user
expectations in my opinion.
--
- DML