public static BundleHeaders readBundleHeaders()

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;
    }