Fix checkstyle issues, setup thirdPartyAudit checks and enable forbiddenApisMain

This commit is contained in:
javanna 2016-04-08 15:24:21 +02:00 committed by Luca Cavanna
parent 3efbe95ca4
commit c9c33a7719
4 changed files with 59 additions and 54 deletions

View File

@ -23,60 +23,51 @@ group = 'org.elasticsearch.client'
apply plugin: 'elasticsearch.build' apply plugin: 'elasticsearch.build'
dependencies { dependencies {
// we use the lucene test-framework here but we are not pulling in ES core or the test framework // TODO once we got rid of the client in the test framework we should use a version variable here
compile "org.apache.httpcomponents:httpclient:4.5.2"
compile "org.apache.httpcomponents:httpcore:4.4.4"
//compile "org.apache.httpcomponents:httpcore-nio:4.4.4"
//compile "org.apache.httpcomponents:httpasyncclient:4.1.1"
compile "commons-codec:commons-codec:1.9"
compile "commons-logging:commons-logging:1.2"
// we use lucene-test-framework here without pulling in ES core or its own test-framework
testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}" testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}"
testCompile "junit:junit:${versions.junit}" testCompile "junit:junit:${versions.junit}"
testCompile 'org.hamcrest:hamcrest-all:1.3' testCompile 'org.hamcrest:hamcrest-all:1.3'
testCompile "org.apache.lucene:lucene-test-framework:${versions.lucene}" testCompile "org.apache.lucene:lucene-test-framework:${versions.lucene}"
testCompile "org.apache.lucene:lucene-core:${versions.lucene}" testCompile "org.apache.lucene:lucene-core:${versions.lucene}"
testCompile "org.apache.lucene:lucene-codecs:${versions.lucene}" testCompile "org.apache.lucene:lucene-codecs:${versions.lucene}"
// TODO once we got rid of the client in the test framework we should use a version variable here
// we use httpclient here since the JDK support has several issue
// - httpclient supports basic and digest auth and other schemes
// - URLConnection has issues with SSL and not all system patches are available
// - URLConnection can't stream data but httpclient can
// - URLConnection doesn't expose responsecodes unless it's a 200
// - httpclient supports pipelining which we might wanna expose down the road?
compile "org.apache.httpcomponents:httpclient:4.5.1"
compile "org.apache.httpcomponents:httpcore:4.4.4"
compile "org.apache.httpcomponents:httpcore-nio:4.4.4" // currently unused
compile "commons-logging:commons-logging:1.2"
compile 'org.apache.httpcomponents:httpasyncclient:4.1.1' // currently unused
} }
compileJava.options.compilerArgs << '-Xlint:-cast,-rawtypes,-try,-unchecked' compileJava.options.compilerArgs << '-Xlint:-cast,-rawtypes,-try,-unchecked'
compileTestJava.options.compilerArgs << '-Xlint:-rawtypes' compileTestJava.options.compilerArgs << '-Xlint:-rawtypes'
// the main files are actually test files, so use the appopriate forbidden api sigs
forbiddenApisMain { forbiddenApisMain {
bundledSignatures = ['jdk-unsafe', 'jdk-deprecated'] //client does not depend on core, so only jdk signatures should be checked
signaturesURLs = [PrecommitTasks.getResource('/forbidden/all-signatures.txt'), signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')]
PrecommitTasks.getResource('/forbidden/test-signatures.txt')]
} }
forbiddenApisMain.enabled=true
//TODO remove use of sun http server and enable forbidden-apis for tests
forbiddenApisTest.enabled=false forbiddenApisTest.enabled=false
forbiddenApisMain.enabled=false //TODO add licenses for deps and check out distribution task
//dependency license are currently checked in distribution
dependencyLicenses.enabled=false
//TODO enable jarhell checks
jarHell.enabled=false
//NamingConventionCheck is part of test-framework, which we don't want to pull in as it depends on es core
namingConventions.enabled=false
// dependency license are currently checked in distribution
dependencyLicenses.enabled = false
jarHell.enabled = false
thirdPartyAudit.enabled = false
thirdPartyAudit.excludes = [ thirdPartyAudit.excludes = [
// classes are missing //commons-logging optional dependencies
'javax.servlet.ServletContextEvent', 'org.apache.avalon.framework.logger.Logger',
'javax.servlet.ServletContextListener', 'org.apache.log.Hierarchy',
'org.apache.avalon.framework.logger.Logger', 'org.apache.log.Logger',
'org.apache.log.Hierarchy', 'org.apache.log4j.Level',
'org.apache.log.Logger', 'org.apache.log4j.Logger',
// we intentionally exclude the ant tasks because people were depending on them from their tests!!!!!!! 'org.apache.log4j.Priority',
'org.apache.tools.ant.BuildException', //commons-logging provided dependencies
'org.apache.tools.ant.DirectoryScanner', 'javax.servlet.ServletContextEvent',
'org.apache.tools.ant.Task', 'javax.servlet.ServletContextListener'
'org.apache.tools.ant.types.FileSet',
'org.easymock.EasyMock',
'org.easymock.IArgumentMatcher',
'org.jmock.core.Constraint',
] ]

View File

@ -1,14 +1,30 @@
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch 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.
*/
package org.elasticsearch.client; package org.elasticsearch.client;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
/**
* Created by simon on 2/16/16.
*/
public class IndexClient { public class IndexClient {
private final RestClient client; private final RestClient client;
@ -24,7 +40,7 @@ public class IndexClient {
Objects.requireNonNull(index, "index must not be null"); Objects.requireNonNull(index, "index must not be null");
Objects.requireNonNull(type, "type must not be null"); Objects.requireNonNull(type, "type must not be null");
Objects.requireNonNull(id, "id must not be null"); Objects.requireNonNull(id, "id must not be null");
String deleteEndpoint = String.format("/%s/%s/%s", index, type, id); String deleteEndpoint = String.format(Locale.ROOT, "/%s/%s/%s", index, type, id);
client.httpDelete(deleteEndpoint, params == null ? Collections.emptyMap() : params.options); client.httpDelete(deleteEndpoint, params == null ? Collections.emptyMap() : params.options);
} }
@ -59,7 +75,4 @@ public class IndexClient {
options.put("timeout", timeout); options.put("timeout", timeout);
}; };
} }
} }

View File

@ -60,7 +60,8 @@ public class RestClient implements Closeable{
private final Set<HttpHost> blackList = new CopyOnWriteArraySet<>(); private final Set<HttpHost> blackList = new CopyOnWriteArraySet<>();
public RestClient(HttpHost... hosts) { public RestClient(HttpHost... hosts) {
this("http", HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom().setConnectTimeout(100).build()).build(), hosts); this("http", HttpClientBuilder.create().setDefaultRequestConfig(
RequestConfig.custom().setConnectTimeout(100).build()).build(), hosts);
} }
public RestClient(String scheme, CloseableHttpClient client, HttpHost[] hosts) { public RestClient(String scheme, CloseableHttpClient client, HttpHost[] hosts) {

View File

@ -26,11 +26,10 @@ import org.apache.lucene.util.LuceneTestCase;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.URISyntaxException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutionException;
public class RestClientTests extends LuceneTestCase { public class RestClientTests extends LuceneTestCase {
//TODO this should be refactored into a base test!! //TODO this should be refactored into a base test!!
HttpServer server; HttpServer server;
@ -96,7 +95,8 @@ public class RestClientTests extends LuceneTestCase {
HttpHost httpHost = new HttpHost("127.0.0.1", server.getAddress().getPort(), "http"); HttpHost httpHost = new HttpHost("127.0.0.1", server.getAddress().getPort(), "http");
try(RestClient client = new RestClient(httpHost)) { try(RestClient client = new RestClient(httpHost)) {
assertEquals(3, client.fetchNodes(httpHost, true, true, false).size()); assertEquals(3, client.fetchNodes(httpHost, true, true, false).size());
assertTrue(client.fetchNodes(httpHost, true, true, false).toString(), client.fetchNodes(httpHost, true, true, false).contains(new HttpHost("127.0.0.2", 9200, "http"))); assertTrue(client.fetchNodes(httpHost, true, true, false).toString(), client.fetchNodes(httpHost, true, true, false)
.contains(new HttpHost("127.0.0.2", 9200, "http")));
assertTrue(client.fetchNodes(httpHost, true, true, false).contains(new HttpHost("127.0.0.3", 9200, "http"))); assertTrue(client.fetchNodes(httpHost, true, true, false).contains(new HttpHost("127.0.0.3", 9200, "http")));
assertTrue(client.fetchNodes(httpHost, true, true, false).contains(httpHost)); assertTrue(client.fetchNodes(httpHost, true, true, false).contains(httpHost));
assertEquals(1, client.fetchNodes(httpHost, true, true, true).size()); assertEquals(1, client.fetchNodes(httpHost, true, true, true).size());
@ -115,7 +115,8 @@ public class RestClientTests extends LuceneTestCase {
client.httpGet("/_cat/health", Collections.emptyMap()); client.httpGet("/_cat/health", Collections.emptyMap());
fail(); fail();
} catch (IOException ex) { } catch (IOException ex) {
assertTrue(ex.getMessage(), ex.getMessage().endsWith("failed: connect timed out") || ex.getMessage().endsWith("failed: Connection refused")); assertTrue(ex.getMessage(), ex.getMessage().endsWith("failed: connect timed out") ||
ex.getMessage().endsWith("failed: Connection refused"));
} }
} }
} }
@ -132,7 +133,8 @@ public class RestClientTests extends LuceneTestCase {
client.httpGet("/_cat/health", Collections.emptyMap()); client.httpGet("/_cat/health", Collections.emptyMap());
fail(); fail();
} catch (IOException ex) { } catch (IOException ex) {
assertTrue(ex.getMessage(), ex.getMessage().endsWith("failed: connect timed out") || ex.getMessage().endsWith("failed: Connection refused")); assertTrue(ex.getMessage(), ex.getMessage().endsWith("failed: connect timed out") ||
ex.getMessage().endsWith("failed: Connection refused"));
} }
assertEquals(3, client.getNumHosts()); assertEquals(3, client.getNumHosts());
assertEquals(3, client.getNumBlacklistedHosts()); assertEquals(3, client.getNumBlacklistedHosts());
@ -147,6 +149,4 @@ public class RestClientTests extends LuceneTestCase {
assertEquals(3, num); assertEquals(3, num);
} }
} }
} }