in src/main/java/org/apache/sling/installer/core/impl/Util.java [115:150]
public static BundleHeaders readBundleHeaders(final RegisteredResource resource, final Logger logger) {
try {
final Manifest m = Util.getManifest(resource, logger);
if (m != null) {
final String sn = m.getMainAttributes().getValue(Constants.BUNDLE_SYMBOLICNAME);
if (sn != null) {
final String v = m.getMainAttributes().getValue(Constants.BUNDLE_VERSION);
if (v != null) {
final int paramPos = sn.indexOf(';');
final String symbolicName = (paramPos == -1 ? sn : sn.substring(0, paramPos));
final BundleHeaders headers = new BundleHeaders();
headers.symbolicName = symbolicName;
headers.version = v;
// check for activation policy
final String actPolicy = m.getMainAttributes().getValue(Constants.BUNDLE_ACTIVATIONPOLICY);
if ( Constants.ACTIVATION_LAZY.equals(actPolicy) ) {
headers.activationPolicy = actPolicy;
}
return headers;
} else {
logger.debug("Unable to get version from manifest : {}", resource);
}
} else {
logger.debug("Unable to get symbolic name from manifest : {}", resource);
}
} else {
logger.debug("Unable to read manifest from : {}", resource);
}
} catch (final IOException ignore) {
logger.debug("Exception occured during processing of " + resource, ignore);
// ignore
}
return null;
}