Upgrade gradle wrapper to 4.8 (#31525)
* Move to Gradle 4.8 RC1 * Use latest version of plugin The current does not work with Gradle 4.8 RC1 * Switch to Gradle GA * Add and configure build compare plugin * add work-around for https://github.com/gradle/gradle/issues/5692 * work around https://github.com/gradle/gradle/issues/5696 * Make use of Gradle build compare with reference project * Make the manifest more compare friendly * Clear the manifest in compare friendly mode * Remove animalsniffer from buildscript classpath * Fix javadoc errors * Fix doc issues * reference Gradle issues in comments * Conditionally configure build compare * Fix some more doclint issues * fix typo in build script * Add sanity check to make sure the test task was replaced Relates to #31324. It seems like Gradle has an inconsistent behavior and the taks is not always replaced. * Include number of non conforming tasks in the exception. * No longer replace test task, create implicit instead Closes #31324. The issue has full context in comments. With this change the `test` task becomes nothing more than an alias for `utest`. Some of the stand alone tests that had a `test` task now have `integTest`, and a few of them that used to have `integTest` to run multiple tests now only have `check`. This will also help separarate unit/micro tests from integration tests. * Revert "No longer replace test task, create implicit instead" This reverts commit f1ebaf7d93e4a0a19e751109bf620477dc35023c. * Fix replacement of the test task Based on information from gradle/gradle#5730 replace the task taking into account the task providres. Closes #31324. * Only apply build comapare plugin if needed * Make sure test runs before integTest * Fix doclint aftter merge * PR review comments * Switch to Gradle 4.8.1 and remove workaround * PR review comments * Consolidate task ordering
This commit is contained in:
parent
909a18add7
commit
8557bbab28
|
@ -30,7 +30,7 @@ buildscript {
|
|||
|
||||
apply plugin: 'elasticsearch.build'
|
||||
|
||||
// order of this seciont matters, see: https://github.com/johnrengelman/shadow/issues/336
|
||||
// order of this section matters, see: https://github.com/johnrengelman/shadow/issues/336
|
||||
apply plugin: 'application' // have the shadow plugin provide the runShadow task
|
||||
mainClassName = 'org.openjdk.jmh.Main'
|
||||
apply plugin: 'com.github.johnrengelman.shadow' // build an uberjar with all benchmarks
|
||||
|
|
28
build.gradle
28
build.gradle
|
@ -326,6 +326,9 @@ gradle.projectsEvaluated {
|
|||
// :test:framework:test cannot run before and after :server:test
|
||||
return
|
||||
}
|
||||
if (tasks.findByPath('test') != null && tasks.findByPath('integTest') != null) {
|
||||
integTest.mustRunAfter test
|
||||
}
|
||||
configurations.all { Configuration configuration ->
|
||||
/*
|
||||
* The featureAwarePlugin configuration has a dependency on x-pack:plugin:core and x-pack:plugin:core has a dependency on the
|
||||
|
@ -575,3 +578,28 @@ gradle.projectsEvaluated {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (System.properties.get("build.compare") != null) {
|
||||
apply plugin: 'compare-gradle-builds'
|
||||
compareGradleBuilds {
|
||||
ext.referenceProject = System.properties.get("build.compare")
|
||||
doFirst {
|
||||
if (file(referenceProject).exists() == false) {
|
||||
throw new GradleException(
|
||||
"Use git worktree to check out a version to compare against to ../elasticsearch_build_reference"
|
||||
)
|
||||
}
|
||||
}
|
||||
sourceBuild {
|
||||
gradleVersion = "4.7" // does not default to gradle weapper of project dir, but current version
|
||||
projectDir = referenceProject
|
||||
tasks = ["clean", "assemble"]
|
||||
arguments = ["-Dbuild.compare_friendly=true"]
|
||||
}
|
||||
targetBuild {
|
||||
tasks = ["clean", "assemble"]
|
||||
// use -Dorg.gradle.java.home= to alter jdk versions
|
||||
arguments = ["-Dbuild.compare_friendly=true"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,7 +106,6 @@ GradleVersion logVersion = GradleVersion.current() > GradleVersion.version('4.3'
|
|||
|
||||
dependencies {
|
||||
compileOnly "org.gradle:gradle-logging:${logVersion.getVersion()}"
|
||||
compile 'ru.vyarus:gradle-animalsniffer-plugin:1.2.0' // Gradle 2.14 requires a version > 1.0.1
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
|
@ -1,20 +1,44 @@
|
|||
package com.carrotsearch.gradle.junit4
|
||||
|
||||
import com.carrotsearch.ant.tasks.junit4.JUnit4
|
||||
import org.gradle.api.AntBuilder
|
||||
import org.gradle.api.GradleException
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.UnknownTaskException
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.gradle.api.tasks.TaskContainer
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.testing.Test
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
|
||||
class RandomizedTestingPlugin implements Plugin<Project> {
|
||||
|
||||
static private AtomicBoolean sanityCheckConfigured = new AtomicBoolean(false)
|
||||
|
||||
void apply(Project project) {
|
||||
setupSeed(project)
|
||||
replaceTestTask(project.tasks)
|
||||
configureAnt(project.ant)
|
||||
configureSanityCheck(project)
|
||||
}
|
||||
|
||||
private static void configureSanityCheck(Project project) {
|
||||
// Check the task graph to confirm tasks were indeed replaced
|
||||
// https://github.com/elastic/elasticsearch/issues/31324
|
||||
if (sanityCheckConfigured.getAndSet(true) == false) {
|
||||
project.rootProject.getGradle().getTaskGraph().whenReady {
|
||||
List<Task> nonConforming = project.getGradle().getTaskGraph().allTasks
|
||||
.findAll { it.name == "test" }
|
||||
.findAll { (it instanceof RandomizedTestingTask) == false}
|
||||
.collect { "${it.path} -> ${it.class}" }
|
||||
if (nonConforming.isEmpty() == false) {
|
||||
throw new GradleException("Found the ${nonConforming.size()} `test` tasks:" +
|
||||
"\n ${nonConforming.join("\n ")}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -45,29 +69,32 @@ class RandomizedTestingPlugin implements Plugin<Project> {
|
|||
}
|
||||
|
||||
static void replaceTestTask(TaskContainer tasks) {
|
||||
Test oldTestTask = tasks.findByPath('test')
|
||||
if (oldTestTask == null) {
|
||||
// Gradle 4.8 introduced lazy tasks, thus we deal both with the `test` task as well as it's provider
|
||||
// https://github.com/gradle/gradle/issues/5730#issuecomment-398822153
|
||||
// since we can't be sure if the task was ever realized, we remove both the provider and the task
|
||||
TaskProvider<Test> oldTestProvider
|
||||
try {
|
||||
oldTestProvider = tasks.getByNameLater(Test, 'test')
|
||||
} catch (UnknownTaskException unused) {
|
||||
// no test task, ok, user will use testing task on their own
|
||||
return
|
||||
}
|
||||
tasks.remove(oldTestTask)
|
||||
Test oldTestTask = oldTestProvider.get()
|
||||
|
||||
Map properties = [
|
||||
name: 'test',
|
||||
type: RandomizedTestingTask,
|
||||
dependsOn: oldTestTask.dependsOn,
|
||||
group: JavaBasePlugin.VERIFICATION_GROUP,
|
||||
description: 'Runs unit tests with the randomized testing framework'
|
||||
]
|
||||
RandomizedTestingTask newTestTask = tasks.create(properties)
|
||||
newTestTask.classpath = oldTestTask.classpath
|
||||
newTestTask.testClassesDir = oldTestTask.project.sourceSets.test.output.classesDir
|
||||
// since gradle 4.5, tasks immutable dependencies are "hidden" (do not show up in dependsOn)
|
||||
// so we must explicitly add a dependency on generating the test classpath
|
||||
newTestTask.dependsOn('testClasses')
|
||||
// we still have to use replace here despite the remove above because the task container knows about the provider
|
||||
// by the same name
|
||||
RandomizedTestingTask newTestTask = tasks.replace('test', RandomizedTestingTask)
|
||||
newTestTask.configure{
|
||||
group = JavaBasePlugin.VERIFICATION_GROUP
|
||||
description = 'Runs unit tests with the randomized testing framework'
|
||||
dependsOn oldTestTask.dependsOn, 'testClasses'
|
||||
classpath = oldTestTask.classpath
|
||||
testClassesDir = oldTestTask.project.sourceSets.test.output.classesDir
|
||||
}
|
||||
|
||||
// hack so check task depends on custom test
|
||||
Task checkTask = tasks.findByPath('check')
|
||||
Task checkTask = tasks.getByName('check')
|
||||
checkTask.dependsOn.remove(oldTestProvider)
|
||||
checkTask.dependsOn.remove(oldTestTask)
|
||||
checkTask.dependsOn.add(newTestTask)
|
||||
}
|
||||
|
|
|
@ -348,7 +348,9 @@ class BuildPlugin implements Plugin<Project> {
|
|||
// just a self contained test-fixture configuration, likely transitive and hellacious
|
||||
return
|
||||
}
|
||||
configuration.resolutionStrategy.failOnVersionConflict()
|
||||
configuration.resolutionStrategy {
|
||||
failOnVersionConflict()
|
||||
}
|
||||
})
|
||||
|
||||
// force all dependencies added directly to compile/testCompile to be non-transitive, except for ES itself
|
||||
|
@ -475,13 +477,17 @@ class BuildPlugin implements Plugin<Project> {
|
|||
}
|
||||
}
|
||||
|
||||
project.tasks.withType(GenerateMavenPom.class) { GenerateMavenPom t ->
|
||||
// place the pom next to the jar it is for
|
||||
t.destination = new File(project.buildDir, "distributions/${project.archivesBaseName}-${project.version}.pom")
|
||||
// build poms with assemble (if the assemble task exists)
|
||||
Task assemble = project.tasks.findByName('assemble')
|
||||
if (assemble) {
|
||||
assemble.dependsOn(t)
|
||||
// Work around Gradle 4.8 issue until we `enableFeaturePreview('STABLE_PUBLISHING')`
|
||||
// https://github.com/gradle/gradle/issues/5696#issuecomment-396965185
|
||||
project.getGradle().getTaskGraph().whenReady {
|
||||
project.tasks.withType(GenerateMavenPom.class) { GenerateMavenPom t ->
|
||||
// place the pom next to the jar it is for
|
||||
t.destination = new File(project.buildDir, "distributions/${project.archivesBaseName}-${project.version}.pom")
|
||||
// build poms with assemble (if the assemble task exists)
|
||||
Task assemble = project.tasks.findByName('assemble')
|
||||
if (assemble) {
|
||||
assemble.dependsOn(t)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -625,6 +631,10 @@ class BuildPlugin implements Plugin<Project> {
|
|||
jarTask.manifest.attributes('Change': shortHash)
|
||||
}
|
||||
}
|
||||
// Force manifest entries that change by nature to a constant to be able to compare builds more effectively
|
||||
if (System.properties.getProperty("build.compare_friendly", "false") == "true") {
|
||||
jarTask.manifest.getAttributes().clear()
|
||||
}
|
||||
}
|
||||
// add license/notice files
|
||||
project.afterEvaluate {
|
||||
|
|
|
@ -1010,8 +1010,8 @@ public class RestClient implements Closeable {
|
|||
}
|
||||
|
||||
/**
|
||||
* Adapts an <code>Iterator<DeadNodeAndRevival></code> into an
|
||||
* <code>Iterator<Node></code>.
|
||||
* Adapts an <code>Iterator<DeadNodeAndRevival></code> into an
|
||||
* <code>Iterator<Node></code>.
|
||||
*/
|
||||
private static class DeadNodeIteratorAdapter implements Iterator<Node> {
|
||||
private final Iterator<DeadNode> itr;
|
||||
|
|
|
@ -314,7 +314,7 @@ public class RestClientSingleHostTests extends RestClientTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests#testAddHeaders()}.
|
||||
* @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests}.
|
||||
*/
|
||||
@Deprecated
|
||||
public void tesPerformRequestOldStyleNullHeaders() throws IOException {
|
||||
|
|
|
@ -141,7 +141,7 @@ public class RestClientTests extends RestClientTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests#testAddHeader()}.
|
||||
* @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests}.
|
||||
*/
|
||||
@Deprecated
|
||||
public void testPerformOldStyleAsyncWithNullHeaders() throws Exception {
|
||||
|
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
distributionSha256Sum=203f4537da8b8075e38c036a6d14cb71b1149de5bf0a8f6db32ac2833a1d1294
|
||||
zipStorePath=wrapper/dists
|
||||
distributionSha256Sum=ce1645ff129d11aad62dab70d63426fdce6cfd646fa309dc5dc5255dd03c7c11
|
||||
|
|
|
@ -497,8 +497,8 @@ public final class SearchHit implements Streamable, ToXContentObject, Iterable<D
|
|||
* This parser outputs a temporary map of the objects needed to create the
|
||||
* SearchHit instead of directly creating the SearchHit. The reason for this
|
||||
* is that this way we can reuse the parser when parsing xContent from
|
||||
* {@link CompletionSuggestion.Entry.Option} which unfortunately inlines the
|
||||
* output of
|
||||
* {@link org.elasticsearch.search.suggest.completion.CompletionSuggestion.Entry.Option} which unfortunately inlines
|
||||
* the output of
|
||||
* {@link #toInnerXContent(XContentBuilder, org.elasticsearch.common.xcontent.ToXContent.Params)}
|
||||
* of the included search hit. The output of the map is used to create the
|
||||
* actual SearchHit instance via {@link #createFromMap(Map)}
|
||||
|
|
|
@ -200,7 +200,7 @@ final class CompositeAggregator extends BucketsAggregator {
|
|||
|
||||
/**
|
||||
* Replay the documents that might contain a top bucket and pass top buckets to
|
||||
* the {@link this#deferredCollectors}.
|
||||
* the {@link #deferredCollectors}.
|
||||
*/
|
||||
private void runDeferredCollections() throws IOException {
|
||||
final boolean needsScores = needsScores();
|
||||
|
|
|
@ -49,7 +49,7 @@ final class CompositeValuesCollectorQueue implements Releasable {
|
|||
*
|
||||
* @param sources The list of {@link CompositeValuesSourceConfig} to build the composite buckets.
|
||||
* @param size The number of composite buckets to keep.
|
||||
* @param afterKey
|
||||
* @param afterKey composite key
|
||||
*/
|
||||
CompositeValuesCollectorQueue(BigArrays bigArrays, SingleDimensionValuesSource<?>[] sources, int size, CompositeKey afterKey) {
|
||||
this.bigArrays = bigArrays;
|
||||
|
|
|
@ -74,7 +74,7 @@ abstract class SingleDimensionValuesSource<T extends Comparable<T>> implements R
|
|||
* The current value is filled by a {@link LeafBucketCollector} that visits all the
|
||||
* values of each document. This method saves this current value in a slot and should only be used
|
||||
* in the context of a collection.
|
||||
* See {@link this#getLeafCollector}.
|
||||
* See {@link #getLeafCollector}.
|
||||
*/
|
||||
abstract void copyCurrent(int slot);
|
||||
|
||||
|
@ -87,7 +87,7 @@ abstract class SingleDimensionValuesSource<T extends Comparable<T>> implements R
|
|||
* The current value is filled by a {@link LeafBucketCollector} that visits all the
|
||||
* values of each document. This method compares this current value with the value present in
|
||||
* the provided slot and should only be used in the context of a collection.
|
||||
* See {@link this#getLeafCollector}.
|
||||
* See {@link #getLeafCollector}.
|
||||
*/
|
||||
abstract int compareCurrent(int slot);
|
||||
|
||||
|
@ -95,7 +95,7 @@ abstract class SingleDimensionValuesSource<T extends Comparable<T>> implements R
|
|||
* The current value is filled by a {@link LeafBucketCollector} that visits all the
|
||||
* values of each document. This method compares this current value with the after value
|
||||
* set on this source and should only be used in the context of a collection.
|
||||
* See {@link this#getLeafCollector}.
|
||||
* See {@link #getLeafCollector}.
|
||||
*/
|
||||
abstract int compareCurrentWithAfter();
|
||||
|
||||
|
@ -120,7 +120,7 @@ abstract class SingleDimensionValuesSource<T extends Comparable<T>> implements R
|
|||
* Creates a {@link LeafBucketCollector} that extracts all values from a document and invokes
|
||||
* {@link LeafBucketCollector#collect} on the provided <code>next</code> collector for each of them.
|
||||
* The current value of this source is set on each call and can be accessed by <code>next</code> via
|
||||
* the {@link this#copyCurrent(int)} and {@link this#compareCurrent(int)} methods. Note that these methods
|
||||
* the {@link #copyCurrent(int)} and {@link #compareCurrent(int)} methods. Note that these methods
|
||||
* are only valid when invoked from the {@link LeafBucketCollector} created in this source.
|
||||
*/
|
||||
abstract LeafBucketCollector getLeafCollector(LeafReaderContext context, LeafBucketCollector next) throws IOException;
|
||||
|
|
|
@ -863,7 +863,7 @@ public abstract class BaseXContentTestCase extends ESTestCase {
|
|||
|
||||
/**
|
||||
* Test that the same map written multiple times do not trigger the self-reference check in
|
||||
* {@link CollectionUtils#ensureNoSelfReferences(Object)}
|
||||
* {@link CollectionUtils#ensureNoSelfReferences(Object, String)} (Object)}
|
||||
*/
|
||||
public void testRepeatedMapsAndNoSelfReferences() throws Exception {
|
||||
Map<String, Object> mapB = singletonMap("b", "B");
|
||||
|
|
|
@ -19,9 +19,7 @@
|
|||
|
||||
/**
|
||||
* Mappings. Mappings define the way that documents should be translated to
|
||||
* Lucene indices, for instance how the
|
||||
* {@link org.elasticsearch.index.mapper.UidFieldMapper document identifier}
|
||||
* should be indexed, whether a string field should be indexed as a
|
||||
* Lucene indices, for instance whether a string field should be indexed as a
|
||||
* {@link org.elasticsearch.index.mapper.TextFieldMapper text} or
|
||||
* {@link org.elasticsearch.index.mapper.KeywordFieldMapper keyword} field,
|
||||
* etc. This parsing is done by the
|
||||
|
|
|
@ -1345,8 +1345,6 @@ public class DateHistogramIT extends ESIntegTestCase {
|
|||
* https://github.com/elastic/elasticsearch/issues/31392 demonstrates an edge case where a date field mapping with
|
||||
* "format" = "epoch_millis" can lead for the date histogram aggregation to throw an error if a non-UTC time zone
|
||||
* with daylight savings time is used. This test was added to check this is working now
|
||||
* @throws ExecutionException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public void testRewriteTimeZone_EpochMillisFormat() throws InterruptedException, ExecutionException {
|
||||
String index = "test31392";
|
||||
|
|
|
@ -275,7 +275,7 @@ public abstract class IndexShardTestCase extends ESTestCase {
|
|||
* @param indexMetaData indexMetaData for the shard, including any mapping
|
||||
* @param indexSearcherWrapper an optional wrapper to be used during searchers
|
||||
* @param globalCheckpointSyncer callback for syncing global checkpoints
|
||||
* @param indexEventListener
|
||||
* @param indexEventListener index even listener
|
||||
* @param listeners an optional set of listeners to add to the shard
|
||||
*/
|
||||
protected IndexShard newShard(ShardRouting routing, ShardPath shardPath, IndexMetaData indexMetaData,
|
||||
|
|
|
@ -132,7 +132,6 @@ public abstract class AbstractQueryTestCase<QB extends AbstractQueryBuilder<QB>>
|
|||
* To find the right position in the root query, we add a marker as `queryName` which
|
||||
* all query builders support. The added bogus field after that should trigger the exception.
|
||||
* Queries that allow arbitrary field names at this level need to override this test.
|
||||
* @throws IOException
|
||||
*/
|
||||
public void testUnknownField() throws IOException {
|
||||
String marker = "#marker#";
|
||||
|
|
|
@ -134,8 +134,8 @@ abstract class ExpirationCallback {
|
|||
}
|
||||
|
||||
/**
|
||||
* {@link SchedulerEngine.Schedule#nextScheduledTimeAfter(long, long)} with respect to
|
||||
* license expiry date
|
||||
* {@link org.elasticsearch.xpack.core.scheduler.SchedulerEngine.Schedule#nextScheduledTimeAfter(long, long)}
|
||||
* with respect to license expiry date
|
||||
*/
|
||||
public final long nextScheduledTimeForExpiry(long expiryDate, long startTime, long time) {
|
||||
TimeValue delay = delay(expiryDate, time);
|
||||
|
@ -169,4 +169,4 @@ abstract class ExpirationCallback {
|
|||
orientation.name(), TimeValue.timeValueMillis(min), TimeValue.timeValueMillis(max),
|
||||
TimeValue.timeValueMillis(frequency));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,7 +87,8 @@ class DerParser {
|
|||
* Decode the length of the field. Can only support length
|
||||
* encoding up to 4 octets.
|
||||
* <p>
|
||||
* <p/>In BER/DER encoding, length can be encoded in 2 forms,
|
||||
* In BER/DER encoding, length can be encoded in 2 forms:
|
||||
* </p>
|
||||
* <ul>
|
||||
* <li>Short form. One octet. Bit 8 has value "0" and bits 7-1
|
||||
* give the length.
|
||||
|
@ -100,7 +101,6 @@ class DerParser {
|
|||
* </ul>
|
||||
*
|
||||
* @return The length as integer
|
||||
* @throws IOException
|
||||
*/
|
||||
private int getLength() throws IOException {
|
||||
|
||||
|
@ -145,7 +145,8 @@ class DerParser {
|
|||
* Construct a ASN.1 TLV. The TLV could be either a
|
||||
* constructed or primitive entity.
|
||||
* <p>
|
||||
* <p/>The first byte in DER encoding is made of following fields,
|
||||
* The first byte in DER encoding is made of following fields:
|
||||
* </p>
|
||||
* <pre>
|
||||
* -------------------------------------------------
|
||||
* |Bit 8|Bit 7|Bit 6|Bit 5|Bit 4|Bit 3|Bit 2|Bit 1|
|
||||
|
@ -192,7 +193,6 @@ class DerParser {
|
|||
* For constructed field, return a parser for its content.
|
||||
*
|
||||
* @return A parser for the construct.
|
||||
* @throws IOException
|
||||
*/
|
||||
public DerParser getParser() throws IOException {
|
||||
if (!isConstructed())
|
||||
|
@ -205,7 +205,6 @@ class DerParser {
|
|||
* Get the value as integer
|
||||
*
|
||||
* @return BigInteger
|
||||
* @throws IOException
|
||||
*/
|
||||
public BigInteger getInteger() throws IOException {
|
||||
if (type != DerParser.INTEGER)
|
||||
|
|
|
@ -108,7 +108,6 @@ public class PemUtils {
|
|||
* Removes the EC Headers that OpenSSL adds to EC private keys as the information in them
|
||||
* is redundant
|
||||
*
|
||||
* @param bReader
|
||||
* @throws IOException if the EC Parameter footer is missing
|
||||
*/
|
||||
private static BufferedReader removeECHeaders(BufferedReader bReader) throws IOException {
|
||||
|
@ -133,7 +132,6 @@ public class PemUtils {
|
|||
* Removes the DSA Params Headers that OpenSSL adds to DSA private keys as the information in them
|
||||
* is redundant
|
||||
*
|
||||
* @param bReader
|
||||
* @throws IOException if the EC Parameter footer is missing
|
||||
*/
|
||||
private static BufferedReader removeDsaHeaders(BufferedReader bReader) throws IOException {
|
||||
|
|
|
@ -132,7 +132,7 @@ public final class RestrictedTrustManager extends X509ExtendedTrustManager {
|
|||
* Decodes the otherName CN from the certificate
|
||||
*
|
||||
* @param value The DER Encoded Subject Alternative Name
|
||||
* @param certificate
|
||||
* @param certificate The certificate
|
||||
* @return the CN or null if it could not be parsed
|
||||
*/
|
||||
private String decodeDerValue(byte[] value, X509Certificate certificate) {
|
||||
|
|
|
@ -405,7 +405,8 @@ public abstract class RollupIndexer {
|
|||
}
|
||||
|
||||
/**
|
||||
* Creates the range query that limits the search to documents that appear before the maximum allowed time (see {@link this#maxBoundary}
|
||||
* Creates the range query that limits the search to documents that appear before the maximum allowed time
|
||||
* (see {@link #maxBoundary}
|
||||
* and on or after the last processed time.
|
||||
* @param position The current position of the pagination
|
||||
* @return The range query to execute
|
||||
|
|
|
@ -12,7 +12,7 @@ import java.security.PrivilegedExceptionAction;
|
|||
import org.elasticsearch.SpecialPermission;
|
||||
|
||||
/**
|
||||
* A <em>try-with-resource</em> compatible object for configuring a thread {@link Thread#contextClassLoader}.
|
||||
* A <em>try-with-resource</em> compatible object for configuring a thread {@link Thread#getContextClassLoader()}.
|
||||
* On construction this class will set the current (or provided) thread's context class loader.
|
||||
* On {@link #close()}, it restores the previous value of the class loader.
|
||||
*/
|
||||
|
|
|
@ -64,7 +64,6 @@ public abstract class SamlTestCase extends ESTestCase {
|
|||
* Generates signed certificate and associates with generated key pair.
|
||||
* @see #readRandomKeyPair(String)
|
||||
* @return X509Certificate a signed certificate, it's PrivateKey {@link Tuple}
|
||||
* @throws Exception
|
||||
*/
|
||||
protected static Tuple<X509Certificate, PrivateKey> readRandomKeyPair() throws Exception {
|
||||
return readRandomKeyPair("RSA");
|
||||
|
@ -73,9 +72,7 @@ public abstract class SamlTestCase extends ESTestCase {
|
|||
/**
|
||||
* Reads a key pair and associated certificate for given algorithm and key length
|
||||
* For testing, for "EC" algorithm 256 key size is used, others use 2048 as default.
|
||||
* @param algorithm
|
||||
* @return X509Certificate a signed certificate, it's PrivateKey {@link Tuple}
|
||||
* @throws Exception
|
||||
* @return X509Certificate a signed certificate, it's PrivateKey
|
||||
*/
|
||||
protected static Tuple<X509Certificate, PrivateKey> readRandomKeyPair(String algorithm) throws Exception {
|
||||
int keySize;
|
||||
|
|
|
@ -87,7 +87,7 @@ public class Range extends Expression {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check whether the boundaries are invalid ( upper < lower) or not.
|
||||
* Check whether the boundaries are invalid ( upper < lower) or not.
|
||||
* If they do, the value does not have to be evaluate.
|
||||
*/
|
||||
private boolean areBoundariesInvalid() {
|
||||
|
@ -139,4 +139,4 @@ public class Range extends Expression {
|
|||
sb.append(upper);
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,7 +87,6 @@ public class IndexAuditUpgradeIT extends AbstractUpgradeTestCase {
|
|||
|
||||
/**
|
||||
* Has the master been upgraded to the new version?
|
||||
* @throws IOException
|
||||
*/
|
||||
private boolean masterIsNewVersion() throws IOException {
|
||||
Map<?, ?> map = entityAsMap(client().performRequest("GET", "/_nodes/_master"));
|
||||
|
|
Loading…
Reference in New Issue