OpenDaylight uses Jersey framework to support JAX-RS compliant Northbound API. 94/94/2
authorMadhu Venugopal <vmadhu@cisco.com>
Tue, 2 Apr 2013 11:31:43 +0000 (04:31 -0700)
committerMadhu Venugopal <vmadhu@cisco.com>
Tue, 2 Apr 2013 13:08:16 +0000 (06:08 -0700)
commit3259e8de40a02f91eb62eff73078c662914a673c
treed01b10a564429ba5775d6c355cd3f7cb882b848e
parentf7f47649dc420bd56ac0e54557dcbdfc115ae209
OpenDaylight uses Jersey framework to support JAX-RS compliant Northbound API.
OSGi makes sure the dependent modules are loaded first and before moving a module
into RESOLVED state. But the module implementation can result in one bundle become
ACTIVE before the other. This can be resolved properly by having these sequentialized
by monitoring the service bringup order.
In this case, com.sun.jersey.spi.container expects the jersey-server and core to be
active too soon causing the exceptions as seen in Bug 5.
But, as per OSGi specification, any bundle can be independently shutdown and restored
and the dependent bundles must be robust in handling this. Fortunately, the jersey
and dependent framework bundles handles this scenario properly and hence this exception
is just informational and has no impact on the running system.

OSGi also provides another mechanism called startlevel, which forces some infrastructure
bundles to be loaded sooner than the actual dependency is resolved. This accelerates the
bundle loading and solves problems like these. But, using this mechanism is discouraged,
because a well-made OSGi bundle need not depend on such bundle load parameters for its
operation. We are anyways adding this fix as a temporary measure to check the status
of the issue in various runtime environments. This fix can be removed after the current
work on Apache Valve integration is in place.

Change-Id: I2980cc1f79e1d50d457de96b19f3032d8e808609
Signed-off-by: Madhu Venugopal <vmadhu@cisco.com>
opendaylight/distribution/opendaylight/src/assemble/bin.xml
opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini