ManifestHeaderProcessor { public static NameValuePair parseBundleSymbolicName(String s){ return genericNameWithNameValuePairProcess(s).get(0); }  static List<String> split(String value, String delimiter); static List<NameValuePair> parseExportString(String s); static List<NameValuePair> parseExportList(List<String> list); static Map<String, Map<String, String>> parseImportString(String s); static List<GenericMetadata> parseCapabilityString(String s); static List<GenericMetadata> parseRequirementString(String s); static NameValuePair parseBundleSymbolicName(String s); static VersionRange parseVersionRange(String s); static VersionRange parseVersionRange(String s, boolean exactVersion); static String generateFilter(Map<String, String> attribs); static String generateFilter(String type, String name,
      Map<String, String> attribs); static Map<String,String> parseFilter(String filter); static final String NESTED_FILTER_ATTRIBUTE; }
@Test public void testParseBundleSymbolicName() { String bundleSymbolicNameEntry = "com.acme.foo;singleton:=true;fragment-attachment:=always"; NameValuePair nvp = ManifestHeaderProcessor.parseBundleSymbolicName(bundleSymbolicNameEntry); assertEquals("The symbolic name is wrong.", nvp.getName(), "com.acme.foo"); assertEquals("The value is wrong.", "true", nvp.getAttributes().get("singleton:") ); assertEquals("The directive is wrong.", "always", nvp.getAttributes().get("fragment-attachment:") ); String bundleSymbolicNameEntry2 = "com.acme.foo"; NameValuePair nvp2 = ManifestHeaderProcessor.parseBundleSymbolicName(bundleSymbolicNameEntry2); assertEquals("The symbolic name is wrong.", nvp2.getName(), "com.acme.foo"); }