[jboss-jira] [JBoss JIRA] Resolved: (EJBTHREE-1419) Handle @RemoteBinding.clientBindUrl defaults when unspecified
Andrew Lee Rubinger (JIRA)
jira-events at lists.jboss.org
Fri Aug 29 02:11:22 EDT 2008
[ https://jira.jboss.org/jira/browse/EJBTHREE-1419?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Lee Rubinger resolved EJBTHREE-1419.
-------------------------------------------
Resolution: Done
Resolved in EJB3 Proxy 0.1.4
> Handle @RemoteBinding.clientBindUrl defaults when unspecified
> -------------------------------------------------------------
>
> Key: EJBTHREE-1419
> URL: https://jira.jboss.org/jira/browse/EJBTHREE-1419
> Project: EJB 3.0
> Issue Type: Task
> Components: proxy
> Reporter: Andrew Lee Rubinger
> Assignee: Andrew Lee Rubinger
> Fix For: AS 5.0.0.CR2
>
>
> Current implementation has logic that must be reworked into the Proxy component to provide intelligent defaults for the clientBindUrl in the case that it's unspecified by the developer (most cases):
> public static String getClientBindUrl(RemoteBinding binding) throws Exception
> {
> String clientBindUrl = binding.clientBindUrl();
> if (clientBindUrl.trim().length() == 0)
> {
> if (binding.invokerName()!=null && binding.invokerName().trim().length() != 0)
> {
> try
> {
> ObjectName connectionON = new ObjectName(binding.invokerName());
> KernelAbstraction kernelAbstraction = KernelAbstractionFactory.getInstance();
> clientBindUrl = (String)kernelAbstraction.getAttribute(connectionON, "InvokerLocator");
> }
> catch (Exception e)
> {
> log.warn("Unable to find InvokerLocator " + binding.invokerName() + ". Using default. " + e);
> clientBindUrl = RemoteProxyFactory.DEFAULT_CLIENT_BINDING;
> }
> }
> else
> {
> try
> {
> ObjectName connectionON = new ObjectName("jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3");
> KernelAbstraction kernelAbstraction = KernelAbstractionFactory.getInstance();
> clientBindUrl = (String)kernelAbstraction.getAttribute(connectionON, "InvokerLocator");
> }
> catch (Exception e)
> {
> log.warn("Unable to find default InvokerLocator. Using default. " + e);
> clientBindUrl = RemoteProxyFactory.DEFAULT_CLIENT_BINDING;
> }
> }
> }
> else if (clientBindUrl.indexOf("0.0.0.0") != -1)
> {
> KernelAbstraction kernelAbstraction = KernelAbstractionFactory.getInstance();
> ObjectName query = new ObjectName("jboss.remoting:type=Connector,handler=ejb3,*");
> Set mbeanSet = kernelAbstraction.getMBeans(query);
>
> URI targetUri = new URI(clientBindUrl);
> Iterator mbeans = mbeanSet.iterator();
> while (mbeans.hasNext())
> {
> ObjectInstance invokerInstance = (ObjectInstance)mbeans.next();
> ObjectName invokerName = invokerInstance.getObjectName();
> String invokerLocator = (String)kernelAbstraction.getAttribute(invokerName, "InvokerLocator");
> URI uri = new URI(invokerLocator);
>
> if (uri.getScheme().equals(targetUri.getScheme()) && uri.getPort() == targetUri.getPort())
> {
> return invokerLocator;
> }
> }
> }
>
> if (clientBindUrl == null)
> clientBindUrl = RemoteProxyFactory.DEFAULT_CLIENT_BINDING;
>
> return clientBindUrl;
> }
--
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