public Contribution parseManifest(SAXParserFactory factory, InputSource in, String manifestKind, String manifestName, RegistryObjectManager registryObjects, Contribution currentNamespace, ResourceBundle bundle) throws ParserConfigurationException, SAXException, IOException {
public Contribution parseManifest(SAXParserFactory factory, InputSource in, String manifestName, RegistryObjectManager registryObjects, Contribution currentNamespace, ResourceBundle bundle) throws ParserConfigurationException, SAXException, IOException {
	public Contribution parseManifest(SAXParserFactory factory, InputSource in, String manifestKind, String manifestName, RegistryObjectManager registryObjects, Contribution currentNamespace, ResourceBundle bundle) throws ParserConfigurationException, SAXException, IOException {		long start = 0;		this.resources = bundle;		this.objectManager = registryObjects;		//initialize the parser with this object		this.namespace = currentNamespace;		if (registry.debug())			start = System.currentTimeMillis();		if (factory == null)			throw new SAXException(RegistryMessages.parse_xmlParserNotAvailable);		try {			if (manifestKind == null)				throw new NullPointerException();			if (!(manifestKind.equals(PLUGIN) || manifestKind.equals(FRAGMENT)))				throw new IllegalArgumentException("Invalid manifest type: " + manifestType); //$NON-NLS-1$			this.manifestType = manifestKind;			locationName = in.getSystemId();			if (locationName == null)				locationName = manifestName;			factory.setNamespaceAware(true);			try {				factory.setFeature("http://xml.org/sax/features/string-interning", true); //$NON-NLS-1$			} catch (SAXException se) {				// ignore; we can still operate without string-interning			}			factory.setValidating(false);			factory.newSAXParser().parse(in, this);			return (Contribution) objectStack.pop();		} finally {			if (registry.debug()) {				cumulativeTime = cumulativeTime + (System.currentTimeMillis() - start);				System.out.println("Cumulative parse time so far : " + cumulativeTime); //$NON-NLS-1$			}		}	}