Repository: olingo-odata4 Updated Branches: refs/heads/master 9f96234e6 -> 6019385e6
[OLINGO-242] Implementation provided Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/6019385e Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/6019385e Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/6019385e Branch: refs/heads/master Commit: 6019385e61c359cb5193245b2f4d066928b6d553 Parents: 9f96234 Author: Francesco Chicchiriccò <[email protected]> Authored: Wed Apr 9 17:34:26 2014 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Wed Apr 9 17:34:26 2014 +0200 ---------------------------------------------------------------------- lib/client-core/pom.xml | 6 ++++ .../core/http/BasicAuthHttpClientFactory.java | 5 ++- .../core/http/DefaultHttpClientFactory.java | 34 ++++++++++++++++++-- .../core/http/NTLMAuthHttpClientFactory.java | 5 ++- .../src/main/resources/client.properties | 17 ++++++++++ 5 files changed, 58 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6019385e/lib/client-core/pom.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/pom.xml b/lib/client-core/pom.xml index 81aaf9f..0d09e75 100644 --- a/lib/client-core/pom.xml +++ b/lib/client-core/pom.xml @@ -99,6 +99,12 @@ </plugin> </plugins> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + </resources> <testResources> <testResource> <directory>src/test/resources</directory> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6019385e/lib/client-core/src/main/java/org/apache/olingo/client/core/http/BasicAuthHttpClientFactory.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/BasicAuthHttpClientFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/BasicAuthHttpClientFactory.java index b978621..0f60a31 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/BasicAuthHttpClientFactory.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/BasicAuthHttpClientFactory.java @@ -22,7 +22,6 @@ import java.net.URI; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.olingo.client.api.http.HttpMethod; @@ -43,8 +42,8 @@ public class BasicAuthHttpClientFactory extends DefaultHttpClientFactory { } @Override - public HttpClient createHttpClient(final HttpMethod method, final URI uri) { - final DefaultHttpClient httpclient = (DefaultHttpClient) super.createHttpClient(method, uri); + public DefaultHttpClient createHttpClient(final HttpMethod method, final URI uri) { + final DefaultHttpClient httpclient = super.createHttpClient(method, uri); httpclient.getCredentialsProvider().setCredentials( new AuthScope(uri.getHost(), uri.getPort()), http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6019385e/lib/client-core/src/main/java/org/apache/olingo/client/core/http/DefaultHttpClientFactory.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/DefaultHttpClientFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/DefaultHttpClientFactory.java index 30336bb..6c5cd49 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/DefaultHttpClientFactory.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/DefaultHttpClientFactory.java @@ -18,13 +18,18 @@ */ package org.apache.olingo.client.core.http; +import java.io.InputStream; import java.io.Serializable; import java.net.URI; +import java.util.Properties; +import org.apache.commons.io.IOUtils; -import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.params.CoreProtocolPNames; import org.apache.olingo.client.api.http.HttpClientFactory; import org.apache.olingo.client.api.http.HttpMethod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Default implementation returning HttpClients with default parameters. @@ -33,8 +38,31 @@ public class DefaultHttpClientFactory implements HttpClientFactory, Serializable private static final long serialVersionUID = -2461355444507227332L; + private static final Logger LOG = LoggerFactory.getLogger(DefaultHttpClientFactory.class); + + private static final String USER_AGENT; + + static { + final StringBuilder userAgent = new StringBuilder("Apache-Olingo"); + + final InputStream input = DefaultHttpClientFactory.class.getResourceAsStream("/client.properties"); + try { + final Properties prop = new Properties(); + prop.load(input); + userAgent.append('/').append(prop.getProperty("version")); + } catch (Exception e) { + LOG.warn("Could not get Apache Olingo version", e); + } finally { + IOUtils.closeQuietly(input); + } + + USER_AGENT = userAgent.toString(); + } + @Override - public HttpClient createHttpClient(final HttpMethod method, final URI uri) { - return new DefaultHttpClient(); + public DefaultHttpClient createHttpClient(final HttpMethod method, final URI uri) { + final DefaultHttpClient client = new DefaultHttpClient(); + client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, USER_AGENT); + return client; } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6019385e/lib/client-core/src/main/java/org/apache/olingo/client/core/http/NTLMAuthHttpClientFactory.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/NTLMAuthHttpClientFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/NTLMAuthHttpClientFactory.java index 202fc9a..5f2578b 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/NTLMAuthHttpClientFactory.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/NTLMAuthHttpClientFactory.java @@ -23,7 +23,6 @@ import java.net.URI; import org.apache.http.auth.AuthScope; import org.apache.http.auth.NTCredentials; import org.apache.http.client.CredentialsProvider; -import org.apache.http.client.HttpClient; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.olingo.client.api.http.HttpMethod; @@ -59,8 +58,8 @@ public class NTLMAuthHttpClientFactory extends DefaultHttpClientFactory { } @Override - public HttpClient createHttpClient(final HttpMethod method, final URI uri) { - final DefaultHttpClient httpclient = (DefaultHttpClient) super.createHttpClient(method, uri); + public DefaultHttpClient createHttpClient(final HttpMethod method, final URI uri) { + final DefaultHttpClient httpclient = super.createHttpClient(method, uri); final CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(AuthScope.ANY, http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6019385e/lib/client-core/src/main/resources/client.properties ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/resources/client.properties b/lib/client-core/src/main/resources/client.properties new file mode 100644 index 0000000..85b81f4 --- /dev/null +++ b/lib/client-core/src/main/resources/client.properties @@ -0,0 +1,17 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +version=${project.version}
