Skip to content

Commit 4eb8f08

Browse files
authored
Add new Elasticsearch client integration.
Original Pull Request #2115
1 parent 4e39fb3 commit 4eb8f08

File tree

291 files changed

+18266
-3607
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

291 files changed

+18266
-3607
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ target
2121
*.iws
2222
.idea
2323
/.env
24+
25+
26+
/zap.env
+84-86
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
/*
23
* Copyright 2007-present the original author or authors.
34
*
@@ -20,98 +21,95 @@
2021

2122
public class MavenWrapperDownloader {
2223

23-
private static final String WRAPPER_VERSION = "0.5.6";
24-
/**
25-
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
26-
*/
27-
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
28-
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
24+
private static final String WRAPPER_VERSION = "0.5.6";
25+
/**
26+
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
27+
*/
28+
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
29+
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
2930

30-
/**
31-
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
32-
* use instead of the default one.
33-
*/
34-
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
35-
".mvn/wrapper/maven-wrapper.properties";
31+
/**
32+
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to use instead of the default
33+
* one.
34+
*/
35+
private static final String MAVEN_WRAPPER_PROPERTIES_PATH = ".mvn/wrapper/maven-wrapper.properties";
3636

37-
/**
38-
* Path where the maven-wrapper.jar will be saved to.
39-
*/
40-
private static final String MAVEN_WRAPPER_JAR_PATH =
41-
".mvn/wrapper/maven-wrapper.jar";
37+
/**
38+
* Path where the maven-wrapper.jar will be saved to.
39+
*/
40+
private static final String MAVEN_WRAPPER_JAR_PATH = ".mvn/wrapper/maven-wrapper.jar";
4241

43-
/**
44-
* Name of the property which should be used to override the default download url for the wrapper.
45-
*/
46-
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
42+
/**
43+
* Name of the property which should be used to override the default download url for the wrapper.
44+
*/
45+
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
4746

48-
public static void main(String args[]) {
49-
System.out.println("- Downloader started");
50-
File baseDirectory = new File(args[0]);
51-
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
47+
public static void main(String args[]) {
48+
System.out.println("- Downloader started");
49+
File baseDirectory = new File(args[0]);
50+
System.out.println("- Using transport directory: " + baseDirectory.getAbsolutePath());
5251

53-
// If the maven-wrapper.properties exists, read it and check if it contains a custom
54-
// wrapperUrl parameter.
55-
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
56-
String url = DEFAULT_DOWNLOAD_URL;
57-
if(mavenWrapperPropertyFile.exists()) {
58-
FileInputStream mavenWrapperPropertyFileInputStream = null;
59-
try {
60-
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
61-
Properties mavenWrapperProperties = new Properties();
62-
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
63-
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
64-
} catch (IOException e) {
65-
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
66-
} finally {
67-
try {
68-
if(mavenWrapperPropertyFileInputStream != null) {
69-
mavenWrapperPropertyFileInputStream.close();
70-
}
71-
} catch (IOException e) {
72-
// Ignore ...
73-
}
74-
}
75-
}
76-
System.out.println("- Downloading from: " + url);
52+
// If the maven-wrapper.properties exists, read it and check if it contains a custom
53+
// wrapperUrl parameter.
54+
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
55+
String url = DEFAULT_DOWNLOAD_URL;
56+
if (mavenWrapperPropertyFile.exists()) {
57+
FileInputStream mavenWrapperPropertyFileInputStream = null;
58+
try {
59+
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
60+
Properties mavenWrapperProperties = new Properties();
61+
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
62+
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
63+
} catch (IOException e) {
64+
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
65+
} finally {
66+
try {
67+
if (mavenWrapperPropertyFileInputStream != null) {
68+
mavenWrapperPropertyFileInputStream.close();
69+
}
70+
} catch (IOException e) {
71+
// Ignore ...
72+
}
73+
}
74+
}
75+
System.out.println("- Downloading from: " + url);
7776

78-
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
79-
if(!outputFile.getParentFile().exists()) {
80-
if(!outputFile.getParentFile().mkdirs()) {
81-
System.out.println(
82-
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
83-
}
84-
}
85-
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
86-
try {
87-
downloadFileFromURL(url, outputFile);
88-
System.out.println("Done");
89-
System.exit(0);
90-
} catch (Throwable e) {
91-
System.out.println("- Error downloading");
92-
e.printStackTrace();
93-
System.exit(1);
94-
}
95-
}
77+
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
78+
if (!outputFile.getParentFile().exists()) {
79+
if (!outputFile.getParentFile().mkdirs()) {
80+
System.out.println("- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
81+
}
82+
}
83+
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
84+
try {
85+
downloadFileFromURL(url, outputFile);
86+
System.out.println("Done");
87+
System.exit(0);
88+
} catch (Throwable e) {
89+
System.out.println("- Error downloading");
90+
e.printStackTrace();
91+
System.exit(1);
92+
}
93+
}
9694

97-
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
98-
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
99-
String username = System.getenv("MVNW_USERNAME");
100-
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
101-
Authenticator.setDefault(new Authenticator() {
102-
@Override
103-
protected PasswordAuthentication getPasswordAuthentication() {
104-
return new PasswordAuthentication(username, password);
105-
}
106-
});
107-
}
108-
URL website = new URL(urlString);
109-
ReadableByteChannel rbc;
110-
rbc = Channels.newChannel(website.openStream());
111-
FileOutputStream fos = new FileOutputStream(destination);
112-
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
113-
fos.close();
114-
rbc.close();
115-
}
95+
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
96+
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
97+
String username = System.getenv("MVNW_USERNAME");
98+
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
99+
Authenticator.setDefault(new Authenticator() {
100+
@Override
101+
protected PasswordAuthentication getPasswordAuthentication() {
102+
return new PasswordAuthentication(username, password);
103+
}
104+
});
105+
}
106+
URL website = new URL(urlString);
107+
ReadableByteChannel rbc;
108+
rbc = Channels.newChannel(website.openStream());
109+
FileOutputStream fos = new FileOutputStream(destination);
110+
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
111+
fos.close();
112+
rbc.close();
113+
}
116114

117115
}

CONTRIBUTING.adoc

+4
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@ You find the contribution guidelines for Spring Data projects https://github.com
55
== Running the test locally
66

77
In order to run the tests locally with `./mvnw test` you need to have docker running because Spring Data Elasticsearch uses https://www.testcontainers.org/[Testcontainers] to start a local running Elasticsearch instance.
8+
9+
== Class names of the test classes
10+
11+
Tset classes that do depend on the client have either `ERHLC` (when using the deprecated Elasticsearch `RestHighLevelClient`) or `ELC` (the new `ElasticsearchClient`) in their name.

mvnw

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ fi
162162
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
163163

164164
# traverses directory structure from process work directory to filesystem root
165-
# first directory with .mvn subdirectory is considered project base directory
165+
# first directory with .mvn subdirectory is considered project transport directory
166166
find_maven_basedir() {
167167

168168
if [ -z "$1" ]

pom.xml

+27-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
<properties>
2121
<elasticsearch>7.17.1</elasticsearch>
22+
<elasticsearch-java>7.17.1</elasticsearch-java>
2223
<log4j>2.17.1</log4j>
2324
<netty>4.1.65.Final</netty>
2425
<springdata.commons>2.7.0-SNAPSHOT</springdata.commons>
@@ -134,7 +135,7 @@
134135
<scope>test</scope>
135136
</dependency>
136137

137-
<!-- Elasticsearch -->
138+
<!-- Elasticsearch RestHighLevelClient, will be removed probably in SDE 5 -->
138139
<dependency>
139140
<groupId>org.elasticsearch.client</groupId>
140141
<artifactId>elasticsearch-rest-high-level-client</artifactId>
@@ -147,6 +148,30 @@
147148
</exclusions>
148149
</dependency>
149150

151+
<!-- new Elasticsearch client, needs the low-level rest client and json api -->
152+
<dependency>
153+
<groupId>co.elastic.clients</groupId>
154+
<artifactId>elasticsearch-java</artifactId>
155+
<version>${elasticsearch-java}</version>
156+
<exclusions>
157+
<exclusion>
158+
<groupId>commons-logging</groupId>
159+
<artifactId>commons-logging</artifactId>
160+
</exclusion>
161+
</exclusions>
162+
</dependency>
163+
<dependency>
164+
<groupId>org.elasticsearch.client</groupId>
165+
<artifactId>elasticsearch-rest-client</artifactId> <!-- is Apache 2-->
166+
<version>${elasticsearch}</version>
167+
<exclusions>
168+
<exclusion>
169+
<groupId>commons-logging</groupId>
170+
<artifactId>commons-logging</artifactId>
171+
</exclusion>
172+
</exclusions>
173+
</dependency>
174+
150175
<!-- Jackson JSON Mapper -->
151176
<dependency>
152177
<groupId>com.fasterxml.jackson.core</groupId>
@@ -480,6 +505,7 @@
480505
<id>local-maven-repo</id>
481506
<url>file:///${project.basedir}/src/test/resources/local-maven-repo</url>
482507
</repository>
508+
483509
</repositories>
484510

485511
<pluginRepositories>

0 commit comments

Comments
 (0)