[jboss-jira] [JBoss JIRA] Commented: (JBREM-1164) Remoting shouldn't require IPv6 addresses to be surrounded by brackets
Ron Sigal (JIRA)
jira-events at lists.jboss.org
Sat Oct 17 23:19:06 EDT 2009
[ https://jira.jboss.org/jira/browse/JBREM-1164?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12490250#action_12490250 ]
Ron Sigal commented on JBREM-1164:
----------------------------------
There are two ways InvokerLocators are created in the Application Server environment:
1. An InvokerLocator can be constructed from the pieces specified in an XML file.
(a) For JBossMessaging, the InvokerLocator is created from an MBean configuration in remoting-bisocket-service.xml:
<invoker transport="bisocket">
...
<attribute name="serverBindAddress">${jboss.bind.address}</attribute>
<attribute name="serverBindPort">${jboss.messaging.connector.bisocket.port:4457}</attribute>
...
(b) For EJB2s, the InvokerLocator is created from a ServerConfiguration POJO in remoting-jboss-beans.xml:
<property name="invokerLocatorParameters">
<map keyClass="java.lang.String" valueClass="java.lang.String">
<entry>
<key>serverBindAddress</key>
<value>
<value-factory bean="ServiceBindingManager" method="getStringBinding">
<parameter>UnifiedInvokerConnector</parameter>
<parameter>${host}</parameter>
</value-factory>
</value>
</entry>
<entry>
<key>serverBindPort</key>
<value>
<value-factory bean="ServiceBindingManager" method="getStringBinding">
<parameter>UnifiedInvokerConnector</parameter>
<parameter>${port}</parameter>
</value-factory>
</value>
</entry>
In each of these cases, the InvokerLocator is assembled by the org.jboss.remoting.transport.Connector being configured, and it would be easy to test for an IPv6 address and add brackets as appropriate.
2. An InvokerLocator can be specified explicitly and injected into the Connector. EJB3 does that in ejb3-connectors-jboss-beans.xml:
<value-factory bean="ServiceBindingManager"
method="getStringBinding">
<parameter>
jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3
</parameter>
<parameter>
<null />
</parameter>
<parameter>socket://${jboss.bind.address}:${port}</parameter>
<parameter>
<null />
</parameter>
<parameter>3873</parameter>
</value-factory>
If the value of ${jboss.bind.address} is an IPv6 address, then the resulting InvokerLocator will be ill-formed; e.g., socket://::127.0.0.1:3873.
In this case, Connector could check for the presence of more than one ":" in the "host/port" part, and, if there are more than one ":", then it could treat the last ":" delimited field as the port, the rest as the host, and add brackets accordingly.
Richard, what do you think?
> Remoting shouldn't require IPv6 addresses to be surrounded by brackets
> ----------------------------------------------------------------------
>
> Key: JBREM-1164
> URL: https://jira.jboss.org/jira/browse/JBREM-1164
> Project: JBoss Remoting
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 2.5.2 (Flounder)
> Reporter: Ron Sigal
> Assignee: Ron Sigal
> Fix For: 2.5.2.SP1 (Flounder)
>
>
> Although IPv6 addresses are surrounded by brackets in URLs, the addresses themselves don't have brackets. Thus, it should be possible to start the Application Server with
> run.sh -b ::1
> instead of requiring
> run.sh -b [::1]
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list