@Override public <T> Collection<Class<T>> locate(final Class<T> type) { List<Class<T>> result = new ArrayList<>(); Furnace furnace = FurnaceHolder.getFurnace(); // Furnace may be not available if the ServiceLoader is called before FurnaceHolder // has received the Furnace PostConstruct event, so check for null and if it isStarted if (furnace != null && furnace.getStatus().isStarted()) { Set<Class<T>> types = furnace.getAddonRegistry().getExportedTypes(type); result.addAll(types); } return result; } }
@Override public <T> Collection<Class<T>> locate(final Class<T> type) { List<Class<T>> result = new ArrayList<>(); Furnace furnace = FurnaceHolder.getFurnace(); // Furnace may be not available if the ServiceLoader is called before FurnaceHolder // has received the Furnace PostConstruct event, so check for null and if it isStarted if (furnace != null && furnace.getStatus().isStarted()) { Set<Class<T>> types = furnace.getAddonRegistry().getExportedTypes(type); result.addAll(types); } return result; } }
private void registerAvailableFacets(Project result) { FacetFactory facetFactory = getFacetFactory(); for (Class<ProjectFacet> type : getAddonRegistry().getExportedTypes(ProjectFacet.class)) { Iterable<ProjectFacet> facets = facetFactory.createFacets(result, type); for (ProjectFacet facet : facets) { if (facet != null && facetFactory.register(result, facet)) { if (log.isLoggable(Level.FINE)) { log.fine("Registered Facet [" + facet + "] into Project [" + result + "]"); } } } } }