Skip to content

Commit

Permalink
Using mapped servlet port, waiting for management port
Browse files Browse the repository at this point in the history
  • Loading branch information
kifj committed Mar 18, 2024
1 parent 598e055 commit 83abf46
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
15 changes: 8 additions & 7 deletions src/test/java/x1/arquillian/Containers.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
import java.util.Arrays;
import java.util.List;

import org.jboss.arquillian.config.descriptor.api.ContainerDef;
import org.jboss.arquillian.container.spi.Container;
import org.jboss.arquillian.container.spi.ContainerRegistry;
import org.jboss.arquillian.container.spi.client.protocol.ProtocolDescription;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.Network;
import org.testcontainers.containers.wait.strategy.Wait;
Expand All @@ -30,7 +29,7 @@ public final class Containers implements ArquillianTestContainers {
.withNetwork(network).withEnv("DB_SERVER", "db").withEnv("DB_PORT", "5432").withEnv("DB_USER", "stocks")
.withEnv("DB_PASSWORD", "stocks").withEnv("ETCD_SERVER", "etcd").withEnv("ETCD_PORT", "2379")
.withEnv("X1_SERVICE_REGISTRY_STAGE", "docker").withExposedPorts(8080, 9990)
.waitingFor(Wait.forHttp("/health/ready").forStatusCode(Status.OK.getStatusCode()));
.waitingFor(Wait.forHttp("/health/ready").forPort(9990).forStatusCode(Status.OK.getStatusCode()));

private final List<GenericContainer<?>> instances = Arrays.asList(etcd, database, wildfly);

Expand All @@ -41,13 +40,15 @@ public List<GenericContainer<?>> instances() {

@Override
public void configureAfterStart(ContainerRegistry registry) {
Container arquillianContainer = registry.getContainers().iterator().next();
ContainerDef containerConfiguration = arquillianContainer.getContainerConfiguration();
var arquillianContainer = registry.getContainers().iterator().next();
var containerConfiguration = arquillianContainer.getContainerConfiguration();
containerConfiguration.property("managementPort", Integer.toString(wildfly.getMappedPort(9990)));

// if we would run the test as client, we would need to access the servlet from the host
// ProtocolDef protocolConfiguration = arquillianContainer.getProtocolConfiguration(new ProtocolDescription(ServletProtocolDefinition.NAME));
// protocolConfiguration.property("port", Integer.toString(wildfly.getMappedPort(8080)));
// same in Windows we can not access the container network directly
var protocolConfiguration = arquillianContainer.getProtocolConfiguration(new ProtocolDescription("Servlet 5.0"));
protocolConfiguration.property("port", Integer.toString(wildfly.getMappedPort(8080)));
protocolConfiguration.property("host", System.getProperty("DOCKER_HOST", wildfly.getHost()));
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion src/test/resources/arquillian.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
http://jboss.org/schema/arquillian
http://www.jboss.org/schema/arquillian/arquillian_1_0.xsd">
<container qualifier="remote" default="false">
<protocol type="Servlet 3.0" />
<protocol type="Servlet 5.0" />
<configuration>
<property name="managementAddress">${jboss.managementAddress:localhost}</property>
<property name="managementPort">${jboss.managementPort:9990}</property>
Expand Down

0 comments on commit 83abf46

Please sign in to comment.