Class ManifestParser


  • public class ManifestParser
    extends java.lang.Object
    • Field Detail

      • BUNDLE_LICENSE_HEADER

        private static final java.lang.String BUNDLE_LICENSE_HEADER
        See Also:
        Constant Field Values
      • m_logger

        private final Logger m_logger
      • m_configMap

        private final java.util.Map m_configMap
      • m_headerMap

        private final java.util.Map m_headerMap
      • m_activationPolicy

        private volatile int m_activationPolicy
      • m_activationIncludeDir

        private volatile java.lang.String m_activationIncludeDir
      • m_activationExcludeDir

        private volatile java.lang.String m_activationExcludeDir
      • m_isExtension

        private volatile boolean m_isExtension
      • m_bundleSymbolicName

        private volatile java.lang.String m_bundleSymbolicName
      • m_bundleVersion

        private volatile Version m_bundleVersion
      • m_capabilities

        private volatile java.util.List<BundleCapability> m_capabilities
      • m_libraryHeadersOptional

        private volatile boolean m_libraryHeadersOptional
      • DIRECTIVE_OR_TYPEDATTRIBUTE

        private static final int DIRECTIVE_OR_TYPEDATTRIBUTE
        See Also:
        Constant Field Values
    • Method Detail

      • buildFilterFromArray

        private static SimpleFilter buildFilterFromArray​(java.lang.String attributeName,
                                                         java.lang.String[] stringArray,
                                                         int operation)
      • addStringArrayToSet

        private static void addStringArrayToSet​(java.lang.String[] array,
                                                java.util.Set<java.lang.String> set)
      • getManifestVersion

        public java.lang.String getManifestVersion()
      • getManifestVersion

        private static java.lang.String getManifestVersion​(java.util.Map headerMap)
      • getActivationPolicy

        public int getActivationPolicy()
      • getActivationIncludeDirective

        public java.lang.String getActivationIncludeDirective()
      • getActivationExcludeDirective

        public java.lang.String getActivationExcludeDirective()
      • isExtension

        public boolean isExtension()
      • getSymbolicName

        public java.lang.String getSymbolicName()
      • getBundleVersion

        public Version getBundleVersion()
      • getLibraries

        public java.util.List<NativeLibrary> getLibraries()

        This method returns the selected native library metadata from the manifest. The information is not the raw metadata from the manifest, but is the native library clause selected according to the OSGi native library clause selection policy. The metadata returned by this method will be attached directly to a module and used for finding its native libraries at run time. To inspect the raw native library metadata refer to getLibraryClauses().

        This method returns one of three values:

        • null - if the are no native libraries for this module; this may also indicate the native libraries are optional and did not match the current platform.
        • Zero-length NativeLibrary array - if no matching native library clause was found; this bundle should not resolve.
        • Nonzero-length NativeLibrary array - the native libraries associated with the matching native library clause.
        Returns:
        null if there are no native libraries, a zero-length array if no libraries matched, or an array of selected libraries.
      • getName

        private java.lang.String getName​(java.lang.String path)
      • firstSortedClause

        private int firstSortedClause​(java.util.List<NativeLibraryClause> clauseList)
      • getBreeVersionClause

        private static java.lang.String getBreeVersionClause​(Version ver)
      • parseExtensionBundleHeader

        public static java.lang.String parseExtensionBundleHeader​(java.lang.String header)
                                                           throws BundleException
        Throws:
        BundleException
      • parseActivationPolicy

        private void parseActivationPolicy​(java.util.Map headerMap)
      • main

        public static void main​(java.lang.String[] headers)
      • charAt

        private static char charAt​(int pos,
                                   java.lang.String headers,
                                   int length)
      • parseStandardHeader

        private static java.util.List<ParsedHeaderClause> parseStandardHeader​(java.lang.String header)
      • parseDelimitedString

        public static java.util.List<java.lang.String> parseDelimitedString​(java.lang.String value,
                                                                            java.lang.String delim)
      • parseDelimitedString

        public static java.util.List<java.lang.String> parseDelimitedString​(java.lang.String value,
                                                                            java.lang.String delim,
                                                                            boolean trim)
        Parses delimited string and returns an array containing the tokens. This parser obeys quotes, so the delimiter character will be ignored if it is inside of a quote. This method assumes that the quote character is not included in the set of delimiter characters.
        Parameters:
        value - the delimited string to parse.
        delim - the characters delimiting the tokens.
        Returns:
        a list of string or an empty list if there are none.
      • parseLibraryStrings

        private static java.util.List<NativeLibraryClause> parseLibraryStrings​(Logger logger,
                                                                               java.util.List<java.lang.String> libStrs)
                                                                        throws java.lang.IllegalArgumentException
        Parses native code manifest headers.
        Parameters:
        libStrs - an array of native library manifest header strings from the bundle manifest.
        Returns:
        an array of LibraryInfo objects for the passed in strings.
        Throws:
        java.lang.IllegalArgumentException