In the absence of any special `jclouds.*proxy*` settings, jclouds should 
respect the normal JVM conventions for proxy detection, such as the 
`java.net.httpProxyHost` property.  For it to default to no proxy, unlike 
everything else in java, is surprising.  Previously jclouds only looked for the 
JVM proxy if `jclouds.use-system-proxies` was set, and then in a cumbersome way:

* `jclouds.use-system-proxies` tried to set `java.net.useSystemProxy` but that 
is read once at startup and subsequently ignored by the JVM so it had little 
effect
* so the effect of `jclouds.use-system-proxies` was effectively to tell jclouds 
to use the default proxy chosen by the JVM looking at the `java.net.*` 
properties, *not* necessarily the OS proxy referred to by 
`java.net.useSystemProxy`
* the *default* value of `jclouds.use-system-proxies` was taken from 
`java.net.useSystemProxy` and so while that succeeds in causing 
`java.net.useSystemProxy` to take effect, it was succeeding in a strange 
accidental way:  the only way for the normal `java.net.httpProxyHost` and 
others to take effect was to set `jclouds.use-system-proxies=true` but make 
sure `java.net.useSystemProxy=false`

This adds explicit control over whether the JVM default proxy is usable (true 
by default), and switches the precedence so that if a user specifies a 
`jclouds.proxy-host` then it is used -- irrespective of whether any other 
system proxies or jvm proxies are specified.

I think this is more what a user would expect if they do need to set special 
proxy settings for jclouds to use.  More importantly in most cases they can now 
just set JVM proxy settings and the right thing will happen.
You can view, comment on, or merge this pull request online at:

  https://github.com/jclouds/jclouds/pull/914

-- Commit Summary --

  * clean up logic and docs for setting proxies
  * ignore .checkstyle files from git and rat

-- File Changes --

    M .gitignore (1)
    M core/src/main/java/org/jclouds/Constants.java (34)
    M core/src/main/java/org/jclouds/proxy/ProxyConfig.java (7)
    M core/src/main/java/org/jclouds/proxy/ProxyForURI.java (26)
    M core/src/main/java/org/jclouds/proxy/internal/GuiceProxyConfig.java (14)
    M core/src/test/java/org/jclouds/proxy/ProxyForURITest.java (48)
    M project/pom.xml (1)

-- Patch Links --

https://github.com/jclouds/jclouds/pull/914.patch
https://github.com/jclouds/jclouds/pull/914.diff

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/914

Reply via email to