com.atlassian.plugin.osgi.util
Class OsgiHeaderUtil

java.lang.Object
  extended by com.atlassian.plugin.osgi.util.OsgiHeaderUtil

public class OsgiHeaderUtil
extends Object

Utilities to help create OSGi headers


Constructor Summary
OsgiHeaderUtil()
           
 
Method Summary
static String buildHeader(Map<String,Map<String,String>> values)
          Builds the header string from a map
static String buildHeader(String key, Map<String,String> attrs)
          Builds the header string from a map
static Set<String> findReferredPackageNames(List<HostComponentRegistration> registrations)
          Finds all referred packages for host component registrations by scanning their declared interfaces' bytecode.
static String findReferredPackages(List<HostComponentRegistration> registrations)
          Deprecated. Since 2.7.0, use findReferredPackageNames(java.util.List) instead.
static String findReferredPackages(List<HostComponentRegistration> registrations, Map<String,String> packageVersions)
          Deprecated. Since 2.7.0, use findReferredPackageVersions(java.util.List, java.util.Map) instead.
static Map<String,String> findReferredPackageVersions(List<HostComponentRegistration> registrations, Map<String,String> packageVersions)
          Finds all referred packages for host component registrations by scanning their declared interfaces' bytecode.
static String generatePackageVersionString(Map<String,String> packages)
          Generate package version string such as "com.abc;version=1.2,com.atlassian".
static String getPluginKey(org.osgi.framework.Bundle bundle)
          Gets the plugin key from the bundle WARNING: shamelessly copied at PluginBundleUtils, which can't use this class due to creating a cyclic build dependency.
static String getPluginKey(Manifest mf)
          Gets the plugin key from the jar manifest
static Map<String,Map<String,String>> parseHeader(String header)
          Parses an OSGi header line into a map structure
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OsgiHeaderUtil

public OsgiHeaderUtil()
Method Detail

findReferredPackageNames

public static Set<String> findReferredPackageNames(List<HostComponentRegistration> registrations)
                                            throws IOException
Finds all referred packages for host component registrations by scanning their declared interfaces' bytecode. Packages starting with "java." are ignored.

Parameters:
registrations - A list of host component registrations
Returns:
The set of referred packages.
Throws:
IOException - If there are any problems scanning bytecode
Since:
2.7.0

findReferredPackageVersions

public static Map<String,String> findReferredPackageVersions(List<HostComponentRegistration> registrations,
                                                             Map<String,String> packageVersions)
                                                      throws IOException
Finds all referred packages for host component registrations by scanning their declared interfaces' bytecode.

Parameters:
registrations - A list of host component registrations
Returns:
The referred package map ( package-> version ).
Throws:
IOException - If there are any problems scanning bytecode
Since:
2.7.0

findReferredPackages

@Deprecated
public static String findReferredPackages(List<HostComponentRegistration> registrations)
                                   throws IOException
Deprecated. Since 2.7.0, use findReferredPackageNames(java.util.List) instead.

Finds all referred packages for host component registrations by scanning their declared interfaces' bytecode.

Parameters:
registrations - A list of host component registrations
Returns:
The referred packages in a format compatible with an OSGi header
Throws:
IOException - If there are any problems scanning bytecode
Since:
2.4.0

findReferredPackages

@Deprecated
public static String findReferredPackages(List<HostComponentRegistration> registrations,
                                                     Map<String,String> packageVersions)
                                   throws IOException
Deprecated. Since 2.7.0, use findReferredPackageVersions(java.util.List, java.util.Map) instead.

Finds all referred packages for host component registrations by scanning their declared interfaces' bytecode.

Parameters:
registrations - A list of host component registrations
Returns:
The referred packages in a format compatible with an OSGi header
Throws:
IOException - If there are any problems scanning bytecode

parseHeader

public static Map<String,Map<String,String>> parseHeader(String header)
Parses an OSGi header line into a map structure

Parameters:
header - The header line
Returns:
A map with the key the entry value and the value a map of attributes
Since:
2.2.0

buildHeader

public static String buildHeader(Map<String,Map<String,String>> values)
Builds the header string from a map

Parameters:
values - The header values
Returns:
A string, suitable for inclusion into an OSGI header string
Since:
2.6

buildHeader

public static String buildHeader(String key,
                                 Map<String,String> attrs)
Builds the header string from a map

Parameters:
key - The header value
attrs - The map of attributes
Returns:
A string, suitable for inclusion into an OSGI header string
Since:
2.2.0

getPluginKey

public static String getPluginKey(org.osgi.framework.Bundle bundle)
Gets the plugin key from the bundle WARNING: shamelessly copied at PluginBundleUtils, which can't use this class due to creating a cyclic build dependency. Ensure these two implementations are in sync. This method shouldn't be used directly. Instead consider consuming the PluginRetrievalService.

Parameters:
bundle - The plugin bundle
Returns:
The plugin key, cannot be null
Since:
2.2.0

getPluginKey

public static String getPluginKey(Manifest mf)
Gets the plugin key from the jar manifest

Parameters:
mf - The plugin jar manifest
Returns:
The plugin key, cannot be null
Since:
2.2.0

generatePackageVersionString

public static String generatePackageVersionString(Map<String,String> packages)
Generate package version string such as "com.abc;version=1.2,com.atlassian". The output can be used for import or export.

Parameters:
packages - map of packagename->version.


Copyright © 2011 Atlassian. All Rights Reserved.