*/
protected OsgiPlatform createPlatform() {
boolean trace = logger.isTraceEnabled();
String platformClassName = getPlatformName();
OsgiPlatform platform = null;
ClassLoader currentCL = getClass().getClassLoader();
if (StringUtils.hasText(platformClassName)) {
if (ClassUtils.isPresent(platformClassName, currentCL)) {
Class platformClass = ClassUtils.resolveClassName(platformClassName, currentCL);
if (OsgiPlatform.class.isAssignableFrom(platformClass)) {
if (trace)
logger.trace("Instantiating platform wrapper...");
try {
platform = (OsgiPlatform) platformClass.newInstance();
}
catch (Exception ex) {
logger.warn("cannot instantiate class [" + platformClass + "]; using default");
}
}
else
logger.warn("Class [" + platformClass + "] does not implement " + OsgiPlatform.class.getName()
+ " interface; falling back to defaults");
}
else {
logger.warn("OSGi platform starter [" + platformClassName + "] not found; using default");
}
}
else
logger.trace("No platform specified; using default");
// fall back
if (platform == null)
platform = new EquinoxPlatform();
Properties config = platform.getConfigurationProperties();
// add boot delegation
config.setProperty(Constants.FRAMEWORK_BOOTDELEGATION,
getBootDelegationPackageString());
return platform;