package org.jboss.windup.util; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; import org.jboss.forge.furnace.util.OperatingSystemUtils; import org.jboss.forge.furnace.util.Weighted; /** * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a> * @author <a href="mailto:zizka@seznam.cz">Ondrej Zizka</a> */ public final class ServiceLogger { private static final String NEWLINE = OperatingSystemUtils.getLineSeparator(); /** * Log the list of service implementations to the given {@link Logger}. */ public static void logLoadedServices(Logger log, Class<?> type, List<?> services) { log.info("Loaded [" + services.size() + "] " + type.getName() + " [" + NEWLINE + joinTypeNames(new ArrayList<>(services)) + "]"); } private static String joinTypeNames(final List<?> list) { StringBuilder result = new StringBuilder(); for (Object service : list) { // Remove the Javassist suffix. result.append("\t").append(service.getClass().getName().replaceAll("_\\$\\$_.*$", "")); if (service instanceof Weighted) { result.append("<" + ((Weighted) service).priority() + ">"); } result.append(NEWLINE); } return result.toString(); } }