package org.wildfly.swarm.arquillian.deployment; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import java.util.stream.Collectors; import org.jboss.as.server.deployment.DeploymentUnit; import org.jboss.as.server.deployment.Phase; import org.jboss.as.server.deployment.Services; import org.jboss.msc.service.ServiceActivator; import org.jboss.msc.service.ServiceActivatorContext; import org.jboss.msc.service.ServiceName; import org.jboss.msc.service.ServiceRegistryException; import org.wildfly.swarm.arquillian.daemon.server.Server; /** * @author Bob McWhirter */ public class TestableArchiveServiceActivator implements ServiceActivator { @Override public void activate(ServiceActivatorContext context) throws ServiceRegistryException { try (BufferedReader reader = new BufferedReader(new InputStreamReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/arquillian-testable")))) { List<String> lines = reader.lines() .collect(Collectors.toList()); String archiveName = String.join("", lines).trim(); TestableArchiveService testableArchiveService = new TestableArchiveService(archiveName); context.getServiceTarget() .addService(TestableArchiveService.NAME, testableArchiveService) .addDependency(ServiceName.of("wildfly", "swarm", "arquillian", "daemon"), Server.class, testableArchiveService.serverInjector) .addDependency(Services.deploymentUnitName(archiveName), DeploymentUnit.class, testableArchiveService.deploymentUnitInjector) .addDependency(Services.deploymentUnitName(archiveName, Phase.POST_MODULE)) .install(); } catch (IOException e) { e.printStackTrace(); } } }