public static Assembler createGenericAssembler(String toolName, ConanExecutorService ces) { AssemblerArgs args = createProcessArgs(toolName); if (args == null) return null; ServiceLoader<Assembler> procLoader = ServiceLoader.load(Assembler.class); for (Assembler assembler : procLoader) { if (assembler.getName().equalsIgnoreCase(toolName.trim())) { assembler.initialise(args.toConanArgs(), ces); return assembler; } } return null; }