1 package org.simantics.scl.osgi.issues;
3 import java.util.ArrayList;
4 import java.util.Collections;
7 import org.osgi.framework.InvalidSyntaxException;
8 import org.osgi.framework.ServiceReference;
9 import org.simantics.scl.osgi.internal.Activator;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
13 public final class SCLIssueFactoryProvider {
15 private static final Logger LOGGER = LoggerFactory.getLogger(SCLIssueFactoryProvider.class);
17 public static List<SCLIssueProviderFactory> getSCLIssueProviderFactories() {
18 ServiceReference<?>[] serviceReferences = new ServiceReference<?>[0];
20 serviceReferences = Activator.getContext().getAllServiceReferences(SCLIssueProviderFactory.class.getName(), null);
21 } catch (InvalidSyntaxException e) {
22 LOGGER.error("Could not get service references for " + SCLIssueProviderFactory.class.getName(), e);
24 if (serviceReferences == null || serviceReferences.length == 0)
25 return Collections.emptyList();
27 List<SCLIssueProviderFactory> services = new ArrayList<>(serviceReferences.length);
28 for (ServiceReference<?> reference : serviceReferences) {
29 SCLIssueProviderFactory service = (SCLIssueProviderFactory) Activator.getContext().getService(reference);
30 services.add(service);