/* * Created on Nov 15, 2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package org.testng.eclipse.util; import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtension; import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.Platform; import org.testng.IReporter; import org.testng.ITestNGListener; import org.testng.TestListenerAdapter; /** * @author jocraig */ public class ListenerContributorUtil { public static List<ITestNGListener> findReporterContributors() { List<ITestNGListener> result = new ArrayList<>(); // Find all of the plug-ins that create extensions for the // profilerContributor extension point. IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint extensionPoint = registry .getExtensionPoint("org.testng.eclipse.reporterListenerContributorSchema"); IExtension extensions[] = extensionPoint.getExtensions(); for (int i = 0; i < extensions.length; i++) { Object obj = null; Class<?> c = null; IConfigurationElement elements[] = extensions[i].getConfigurationElements(); for (int j = 0; j < elements.length; j++) { String className = elements[j].getAttribute("class"); // Find all of the ones that implement IRPCEndpointContributor try { c = Platform.getBundle(extensions[i].getNamespaceIdentifier()).loadClass(className); obj = c.newInstance(); // Save them so later we can iterate through them if (obj instanceof IReporter) { result.add((IReporter) obj); } } catch (Exception e) { e.printStackTrace(); // Ignore } } } return result; } public static List<ITestNGListener> findTestContributors() { List<ITestNGListener> result = new ArrayList<>(); // Find all of the plug-ins that create extensions for the // profilerContributor extension point. IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint extensionPoint = registry .getExtensionPoint("org.testng.eclipse.testListenerContributorSchema"); IExtension extensions[] = extensionPoint.getExtensions(); for (int i = 0; i < extensions.length; i++) { Object obj = null; Class<?> c = null; IConfigurationElement elements[] = extensions[i].getConfigurationElements(); for (int j = 0; j < elements.length; j++) { String className = elements[j].getAttribute("class"); // Find all of the ones that implement IRPCEndpointContributor try { c = Platform.getBundle(extensions[i].getNamespaceIdentifier()).loadClass(className); obj = c.newInstance(); // Save them so later we can iterate through them if (obj instanceof TestListenerAdapter) { result.add((TestListenerAdapter) obj); } } catch (Exception e) { e.printStackTrace(); // Ignore } } } return result; } }