Upon further inspection it turns out it's not TxSupport but rather ParticipantsService is at fault. It has a line where it sets the base URL of the participants factory:
ParticipantsManagerFactory.getInstance().setBaseUrl(this.getBaseUrl());
And the base URL comes from AbstractRTSService.getBaseUrl():
protected String getBaseUrl() {
String address = ((SocketBinding)this.injectedSocketBinding.getValue()).getAddress().getHostAddress();
int port = ((SocketBinding)this.injectedSocketBinding.getValue()).getAbsolutePort();
return ((SocketBinding)this.injectedSocketBinding.getValue()).getAddress() instanceof Inet4Address ? "http://" + address + ":" + port : "http://[" + address + "]:" + port;
}
So basically it takes whatever IP address was configured in standalone.xml, although I am not sure where exactly:
<subsystem xmlns="urn:jboss:domain:rts:1.0">
<servlet server="default-server" host="default-host" socket-binding="http"/>
</subsystem>
<subsystem xmlns="urn:jboss:domain:undertow:12.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https" ssl-context="applicationSSC" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<http-invoker http-authentication-factory="application-http-authentication"/>
</host>
</server>
</subsystem>
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
</interfaces>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.port:25}"/>
</outbound-socket-binding>
</socket-binding-group>
Where jboss.bind.address is 0.0.0.0 since we are using Docker containers.
How can I change the returned participant address so that it returns the Docker service names eets_document or eets_user?
Br,
Frigo