You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Oleg Kalnichevski <ol...@apache.org> on 2012/11/20 12:09:58 UTC
Re: svn commit: r1411518
On Tue, 2012-11-20 at 02:42 +0000, ggregory@apache.org wrote:
> Author: ggregory
> Date: Tue Nov 20 02:42:15 2012
> New Revision: 1411518
>
> URL: http://svn.apache.org/viewvc?rev=1411518&view=rev
> Log:
> Added the method org.apache.http.util.VersionInfo.setUserAgent(HttpParams, String, String, Class<?>)
> TODO This needs adjusting to account for the deprecated types {@link HttpParams} and {@link HttpProtocolParams}.
>
> Modified:
> httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
>
> Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
> URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java?rev=1411518&r1=1411517&r2=1411518&view=diff
> ==============================================================================
> --- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java (original)
> +++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java Tue Nov 20 02:42:15 2012
> @@ -34,6 +34,9 @@ import java.util.List;
> import java.util.Map;
> import java.util.Properties;
>
> +import org.apache.http.params.HttpParams;
> +import org.apache.http.params.HttpProtocolParams;
> +
>
> /**
> * Provides access to version information for HTTP components.
> @@ -292,4 +295,29 @@ public class VersionInfo {
> return new VersionInfo(pckg, module, release, timestamp, clsldrstr);
> }
>
> + /**
> + * Sets the user agent to {@code "<name>/<release> (Java 1.5 minimum; Java/<java.version>)"}.
> + * <p/>
> + * For example:
> + * <pre>"Apache-HttpClient/4.3 (Java 1.5 minimum; Java/1.6.0_35)"</pre>
> + *
> + * TODO This needs adjusting to account for the deprecated types {@link HttpParams} and {@link HttpProtocolParams}.
> + *
> + * @param params
> + * the HTTP parameters where the user agent will be set
> + * @name the component name, like "Apache-HttpClient".
> + * @param pkg
> + * the package for which to load version information, for example "org.apache.http". The package name
> + * should NOT end with a dot.
> + * @param cls
> + * the class' class loader to load from, or <code>null</code> for the thread context class loader
> + */
> + public static void setUserAgent(HttpParams params, String name, String pkg, Class<?> cls) {
> + // determine the release version from packaged version info
> + final VersionInfo vi = VersionInfo.loadVersionInfo(pkg, cls.getClassLoader());
> + final String release = (vi != null) ? vi.getRelease() : VersionInfo.UNAVAILABLE;
> + final String javaVersion = System.getProperty("java.version");
> + HttpProtocolParams.setUserAgent(params, name + "/" + release + " (Java 1.5 minimum; Java/" + javaVersion + ")");
> + }
> +
> } // class VersionInfo
>
>
Gary,
I think there is no need for this method to depend on HttpParams or any
other configuration API. In my opinion it should simply return string.
Please note that System#getProperty method can be very treacherous.
Depending on the application security context it can throw unchecked
SecurityException. #setUserAgent should either catch the exception and
gracefully recover or explicitly declare SecurityException as thrown by
the method.
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org
Re: svn commit: r1411518
Posted by Gary Gregory <ga...@gmail.com>.
On Tue, Nov 20, 2012 at 7:48 AM, Gary Gregory <ga...@gmail.com>wrote:
> On Nov 20, 2012, at 6:11, Oleg Kalnichevski <ol...@apache.org> wrote:
>
> > On Tue, 2012-11-20 at 02:42 +0000, ggregory@apache.org wrote:
> >> Author: ggregory
> >> Date: Tue Nov 20 02:42:15 2012
> >> New Revision: 1411518
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1411518&view=rev
> >> Log:
> >> Added the method
> org.apache.http.util.VersionInfo.setUserAgent(HttpParams, String, String,
> Class<?>)
> >> TODO This needs adjusting to account for the deprecated types {@link
> HttpParams} and {@link HttpProtocolParams}.
> >>
> >> Modified:
> >>
> httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
> >>
> >> Modified:
> httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
> >> URL:
> http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java?rev=1411518&r1=1411517&r2=1411518&view=diff
> >>
> ==============================================================================
> >> ---
> httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
> (original)
> >> +++
> httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
> Tue Nov 20 02:42:15 2012
> >> @@ -34,6 +34,9 @@ import java.util.List;
> >> import java.util.Map;
> >> import java.util.Properties;
> >>
> >> +import org.apache.http.params.HttpParams;
> >> +import org.apache.http.params.HttpProtocolParams;
> >> +
> >>
> >> /**
> >> * Provides access to version information for HTTP components.
> >> @@ -292,4 +295,29 @@ public class VersionInfo {
> >> return new VersionInfo(pckg, module, release, timestamp,
> clsldrstr);
> >> }
> >>
> >> + /**
> >> + * Sets the user agent to {@code "<name>/<release> (Java 1.5
> minimum; Java/<java.version>)"}.
> >> + * <p/>
> >> + * For example:
> >> + * <pre>"Apache-HttpClient/4.3 (Java 1.5 minimum;
> Java/1.6.0_35)"</pre>
> >> + *
> >> + * TODO This needs adjusting to account for the deprecated types
> {@link HttpParams} and {@link HttpProtocolParams}.
> >> + *
> >> + * @param params
> >> + * the HTTP parameters where the user agent will be set
> >> + * @name the component name, like "Apache-HttpClient".
> >> + * @param pkg
> >> + * the package for which to load version information,
> for example "org.apache.http". The package name
> >> + * should NOT end with a dot.
> >> + * @param cls
> >> + * the class' class loader to load from, or
> <code>null</code> for the thread context class loader
> >> + */
> >> + public static void setUserAgent(HttpParams params, String name,
> String pkg, Class<?> cls) {
> >> + // determine the release version from packaged version info
> >> + final VersionInfo vi = VersionInfo.loadVersionInfo(pkg,
> cls.getClassLoader());
> >> + final String release = (vi != null) ? vi.getRelease() :
> VersionInfo.UNAVAILABLE;
> >> + final String javaVersion = System.getProperty("java.version");
> >> + HttpProtocolParams.setUserAgent(params, name + "/" + release +
> " (Java 1.5 minimum; Java/" + javaVersion + ")");
> >> + }
> >> +
> >> } // class VersionInfo
> >>
> >>
> >
> > Gary,
> >
> > I think there is no need for this method to depend on HttpParams or any
> > other configuration API. In my opinion it should simply return string.
> >
> > Please note that System#getProperty method can be very treacherous.
> > Depending on the application security context it can throw unchecked
> > SecurityException. #setUserAgent should either catch the exception and
> > gracefully recover or explicitly declare SecurityException as thrown by
> > the method.
>
> Ok, I'll change all that.
>
But SVN commit access is broken for me ATM. I am told this is being
experienced by others and is being addressed...
Gary
>
> Gary
>
> >
> > Oleg
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> > For additional commands, e-mail: dev-help@hc.apache.org
> >
>
--
E-Mail: garydgregory@gmail.com | ggregory@apache.org
JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0
Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory
Re: svn commit: r1411518
Posted by Gary Gregory <ga...@gmail.com>.
On Nov 20, 2012, at 6:11, Oleg Kalnichevski <ol...@apache.org> wrote:
> On Tue, 2012-11-20 at 02:42 +0000, ggregory@apache.org wrote:
>> Author: ggregory
>> Date: Tue Nov 20 02:42:15 2012
>> New Revision: 1411518
>>
>> URL: http://svn.apache.org/viewvc?rev=1411518&view=rev
>> Log:
>> Added the method org.apache.http.util.VersionInfo.setUserAgent(HttpParams, String, String, Class<?>)
>> TODO This needs adjusting to account for the deprecated types {@link HttpParams} and {@link HttpProtocolParams}.
>>
>> Modified:
>> httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
>>
>> Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java
>> URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java?rev=1411518&r1=1411517&r2=1411518&view=diff
>> ==============================================================================
>> --- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java (original)
>> +++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/VersionInfo.java Tue Nov 20 02:42:15 2012
>> @@ -34,6 +34,9 @@ import java.util.List;
>> import java.util.Map;
>> import java.util.Properties;
>>
>> +import org.apache.http.params.HttpParams;
>> +import org.apache.http.params.HttpProtocolParams;
>> +
>>
>> /**
>> * Provides access to version information for HTTP components.
>> @@ -292,4 +295,29 @@ public class VersionInfo {
>> return new VersionInfo(pckg, module, release, timestamp, clsldrstr);
>> }
>>
>> + /**
>> + * Sets the user agent to {@code "<name>/<release> (Java 1.5 minimum; Java/<java.version>)"}.
>> + * <p/>
>> + * For example:
>> + * <pre>"Apache-HttpClient/4.3 (Java 1.5 minimum; Java/1.6.0_35)"</pre>
>> + *
>> + * TODO This needs adjusting to account for the deprecated types {@link HttpParams} and {@link HttpProtocolParams}.
>> + *
>> + * @param params
>> + * the HTTP parameters where the user agent will be set
>> + * @name the component name, like "Apache-HttpClient".
>> + * @param pkg
>> + * the package for which to load version information, for example "org.apache.http". The package name
>> + * should NOT end with a dot.
>> + * @param cls
>> + * the class' class loader to load from, or <code>null</code> for the thread context class loader
>> + */
>> + public static void setUserAgent(HttpParams params, String name, String pkg, Class<?> cls) {
>> + // determine the release version from packaged version info
>> + final VersionInfo vi = VersionInfo.loadVersionInfo(pkg, cls.getClassLoader());
>> + final String release = (vi != null) ? vi.getRelease() : VersionInfo.UNAVAILABLE;
>> + final String javaVersion = System.getProperty("java.version");
>> + HttpProtocolParams.setUserAgent(params, name + "/" + release + " (Java 1.5 minimum; Java/" + javaVersion + ")");
>> + }
>> +
>> } // class VersionInfo
>>
>>
>
> Gary,
>
> I think there is no need for this method to depend on HttpParams or any
> other configuration API. In my opinion it should simply return string.
>
> Please note that System#getProperty method can be very treacherous.
> Depending on the application security context it can throw unchecked
> SecurityException. #setUserAgent should either catch the exception and
> gracefully recover or explicitly declare SecurityException as thrown by
> the method.
Ok, I'll change all that.
Gary
>
> Oleg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org