[ http://jira.codehaus.org/browse/XFIRE-401?page=all ]

Dan Diephouse reopened XFIRE-401:
---------------------------------

             
Dan,

the said XFire issue is actually still bogus as XFire ignores the
standard Java system property "http.nonProxyHosts" as per
http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html.

Description:
XFire recognises the system properties "http.proxyHost" and
"http.proxyPort" but ignores "http.nonProxyHosts". In certain network
conditions, this has the effect that internal servers cannot be
contacted unless the (computer-)global proxy settings are set to direct
connections. This current behaviour practically either disables external
communications (with enabled internal communication) or internal
communications (with enabled external communication).

XFire version: 1.2.2
Affected class: org.codehaus.xfire.transport.http.CommonsHttpMessageSender
Affected method: private synchronized void createClient()

The attached patch shows the differences between my local copy and the
official source of class
org.codehaus.xfire.transport.http.CommonsHttpMessageSender in version 1.2.2.
[Local restrictions stop me from "diff"ing against the live SVN repository]

Cheers,
Michel

- --
Michel <dot> Drescher <at> uk <dot> fujitsu <dot> com
Fujitsu Laboratories of Europe
+44 20 8606 4834
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFNP79k0lMZTNKw4QRAo1BAJ4pnrU1ERmfcuIrMOYX7waFnzRc+gCfQLlY
t5rmrLmchoNuWJOda6QwL6w=
=LEWX
-----END PGP SIGNATURE-----



7,11d6
< import java.net.Proxy;
< import java.net.ProxySelector;
< import java.net.URI;
< import java.net.URISyntaxException;
< import java.util.List;
68d62
<     public static final String HTTP_NON_PROXY_HOSTS = "http.nonProxyHosts";
201,205d194
<             String uri = context.getOutMessage().getUri();
<             if ( isNonProxyHost(uri, context ) ) {
<               // this host does not need a proxy
<               return;
<             }
227,250d215
< 
<     private boolean isNonProxyHost( String strURI, MessageContext context ) {
<       // convert String based URI into a URI class based URI ...
<       URI uri = null;
<       try {
<               uri = new URI( strURI );
<       }
<       catch (URISyntaxException use) {
<               // this should actually not happen, but just in case.
<               return false;
<       }
<       // ... get a system platform ProxySelector, and ...
<       ProxySelector ps = ProxySelector.getDefault();
<       // ... let this selector return a list of proxies.
<       List<Proxy> proxies = ps.select( uri );
<       // If that lists sole element is of type Proxy.NO_PROXY
<       // then we need a direct connection, otherwise we need to connect
<       // through a proxy.
<       if ( proxies.size() == 1 && 
<                proxies.get(0).equals(Proxy.NO_PROXY ) ) {
<               return true;
<       }
<         return false;
<     }


> Recognize the Java runtime system variable for HTTP proxies
> -----------------------------------------------------------
>
>                 Key: XFIRE-401
>                 URL: http://jira.codehaus.org/browse/XFIRE-401
>             Project: XFire
>          Issue Type: Improvement
>    Affects Versions: 1.1-RC1
>         Environment: N/A
>            Reporter: Stefan Freyr Stefansson
>         Assigned To: Tomasz Sztelak
>             Fix For: 1.2.3
>
>
> Currently it seems that the only way to specify a proxy for an XFire client 
> is by doing it programatically when creating the client:
>       MySoap client = stub.getMySoap();
>       Client http = ((XFireProxy) 
> Proxy.getInvocationHandler(client)).getClient();
>       http.setProperty(CommonsHttpMessageSender.HTTP_PROXY_HOST, "localhost");
>       http.setProperty(CommonsHttpMessageSender.HTTP_PROXY_PORT, "8080");
> This means that if you want to be able to transparently set a proxy you'll 
> have to code some logic to check whether a property is set everywhere you 
> create a client. A much more convenient way would be if the generated code 
> from XFire took into account the standard Java environment properties for 
> setting a proxy (as documented here: 
> http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html). This would 
> provide much convenience and flexibility in how to set whether or not to use 
> an HTTP proxy as explained here: 
> http://www.rgagnon.com/javadetails/java-0085.html.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to