throw new EclipseClasspathException( "FIXME: support parsing Eclipse 3.0 plugin manifest for " + directory);
BufferedInputStream in = null; try { String manifestFileName = directory + File.separator + "META-INF/MANIFEST.MF"; in = new BufferedInputStream(new FileInputStream(manifestFileName));  Manifest manifest = new Manifest(in); Attributes attributes = manifest.getMainAttributes();   pluginId = attributes.getValue("Bundle-SymbolicName"); if (pluginId == null) throw new EclipseClasspathException("Missing Bundle-SymbolicName in " + manifestFileName);  pluginId = stripSemiPart(pluginId);   pluginVersion = attributes.getValue("Bundle-Version"); if (pluginVersion == null) throw new EclipseClasspathException("Missing Bundle-Version in " + manifestFileName);   String required = attributes.getValue("Require-Bundle"); if (required != null) { StringTokenizer tok = new StringTokenizer(required, ","); while (tok.hasMoreTokens()) { String requiredPlugin = tok.nextToken(); requiredPlugin = requiredPlugin.trim(); requiredPlugin = stripSemiPart(requiredPlugin);  requiredPluginIdList.add(requiredPlugin); } }   String exported = attributes.getValue("Bundle-ClassPath"); if (exported != null) { StringTokenizer tok2 = new StringTokenizer(exported, ","); while (tok2.hasMoreTokens()) { String jar = tok2.nextToken(); jar = jar.trim(); jar = stripSemiPart(jar); exportedLibraryList.add(directory + File.separator + jar); } }  } catch (IOException e) { throw new EclipseClasspathException("Could not parse Eclipse 3.0 plugin in " + directory, e); } finally { try { if (in != null) in.close(); } catch (IOException e) {  } }
		private void parseNewPluginDescriptor(String directory, Node plugin, boolean isDependent)			throws DocumentException, EclipseClasspathException {			// In Eclipse 3.x, we need to parse the plugin's MANIFEST.MF			throw new EclipseClasspathException(				"FIXME: support parsing Eclipse 3.0 plugin manifest for " + directory);		}