Fix checkstyle issues, setup thirdPartyAudit checks and enable forbiddenApisMain
This commit is contained in:
parent
3efbe95ca4
commit
c9c33a7719
|
@ -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',
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -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);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue