package org.arquillian.cube.docker.impl.client.enricher; import com.github.dockerjava.api.DockerClient; import java.lang.annotation.Annotation; import org.arquillian.cube.docker.impl.docker.DockerClientExecutor; import org.jboss.arquillian.core.api.Instance; import org.jboss.arquillian.core.api.annotation.Inject; import org.jboss.arquillian.test.api.ArquillianResource; import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider; public class CubeResourceProvider implements ResourceProvider { @Inject private Instance<DockerClientExecutor> dockerClientExecutor; @Override public boolean canProvide(Class<?> type) { return DockerClient.class.isAssignableFrom(type); } @Override public Object lookup(ArquillianResource resource, Annotation... qualifiers) { DockerClientExecutor dockerClientExec = this.dockerClientExecutor.get(); if (dockerClientExec == null) { throw new IllegalStateException("Unable to inject DockerClient into test."); } return dockerClientExec.getDockerClient(); } }