package org.jboss.windup.config.furnace; import java.util.Collection; import java.util.HashSet; import org.jboss.forge.furnace.Furnace; import org.jboss.forge.furnace.services.Imported; import org.ocpsoft.common.spi.ServiceEnricher; import org.ocpsoft.logging.Logger; /** * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a> * */ public class FurnaceServiceEnricher implements ServiceEnricher { Logger log = Logger.getLogger(FurnaceServiceEnricher.class); @Override public <T> Collection<T> produce(final Class<T> type) { final Collection<T> result = new HashSet<>(); final 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()) { final Imported<T> services = furnace.getAddonRegistry().getServices(type); for (final T service : services) { result.add(service); } } return result; } @Override public <T> void enrich(final T service) { // no-op. Furnace does not support enriching... directly. } }