package org.arquillian.cube.docker.impl.client; import java.util.Map; import org.arquillian.cube.impl.util.ReflectionUtil; import org.arquillian.cube.spi.AutoStartParser; import org.arquillian.cube.spi.Node; import org.jboss.arquillian.core.api.Injector; public class CustomAutoStartParser implements AutoStartParser { public static final String CUSTOM_PREFIX = "custom:"; private Injector injector; private String clazz; public CustomAutoStartParser(Injector injector, String clazz) { this.injector = injector; this.clazz = clazz; } @Override public Map<String, Node> parse() { if (ReflectionUtil.isClassPresent(clazz)) { AutoStartParser customAutoStartParser = ReflectionUtil.newInstance(clazz, new Class[0], new Object[0], AutoStartParser.class); customAutoStartParser = injector.inject(customAutoStartParser); return customAutoStartParser.parse(); } else { throw new IllegalArgumentException( String.format("Custom AutoStartParser Class %s is not found in classpath", clazz)); } } }