All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.arquillian.cube.impl.client.CubeRegistrar Maven / Gradle / Ivy

There is a newer version: 2.0.0.Alpha1
Show newest version
package org.arquillian.cube.impl.client;

import java.util.Map;

import org.arquillian.cube.impl.docker.DockerClientExecutor;
import org.arquillian.cube.impl.model.DockerCube;
import org.arquillian.cube.impl.model.DockerCubeRegistry;
import org.arquillian.cube.spi.CubeRegistry;
import org.jboss.arquillian.core.api.Injector;
import org.jboss.arquillian.core.api.InstanceProducer;
import org.jboss.arquillian.core.api.annotation.ApplicationScoped;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.core.api.annotation.Observes;

public class CubeRegistrar {

    @Inject @ApplicationScoped
    private InstanceProducer registryProducer;

    @SuppressWarnings("unchecked")
    public void register(@Observes DockerClientExecutor executor, CubeConfiguration configuration, Injector injector) {
        DockerCubeRegistry registry = new DockerCubeRegistry();

        //TODO, add key here generation here
        Map containerConfigurations = configuration.getDockerContainersContent();
        for(Map.Entry containerConfiguration : containerConfigurations.entrySet()) {

            registry.addCube(
                    injector.inject(
                        new DockerCube(
                                containerConfiguration.getKey(),
                                (Map)containerConfiguration.getValue(),
                                executor)));
        }
        registryProducer.set(registry);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy