15
15
*/
16
16
package org .springframework .data .elasticsearch .junit .jupiter ;
17
17
18
+ import java .io .InputStream ;
19
+ import java .util .Collections ;
20
+ import java .util .LinkedHashMap ;
21
+ import java .util .Map ;
22
+ import java .util .Properties ;
23
+
18
24
import org .junit .jupiter .api .extension .ExtensionContext ;
19
25
import org .slf4j .Logger ;
20
26
import org .slf4j .LoggerFactory ;
@@ -77,10 +83,13 @@ private ClusterConnectionInfo startElasticsearchContainer() {
77
83
try {
78
84
String elasticsearchVersion = VersionInfo .versionProperties ()
79
85
.getProperty (VersionInfo .VERSION_ELASTICSEARCH_CLIENT );
86
+ Map <String , String > elasticsearchProperties = elasticsearchProperties ();
80
87
81
88
String dockerImageName = ELASTICSEARCH_DEFAULT_IMAGE + ':' + elasticsearchVersion ;
82
89
LOGGER .debug ("Docker image: {}" , dockerImageName );
90
+
83
91
ElasticsearchContainer elasticsearchContainer = new ElasticsearchContainer (dockerImageName );
92
+ elasticsearchContainer .withEnv (elasticsearchProperties );
84
93
elasticsearchContainer .start ();
85
94
return ClusterConnectionInfo .builder () //
86
95
.withHostAndPort (elasticsearchContainer .getHost (),
@@ -95,6 +104,24 @@ private ClusterConnectionInfo startElasticsearchContainer() {
95
104
return null ;
96
105
}
97
106
107
+ private Map <String , String > elasticsearchProperties () {
108
+
109
+ String propertiesFile = "testcontainers-elasticsearch.properties" ;
110
+ try (InputStream inputStream = getClass ().getClassLoader ().getResourceAsStream (propertiesFile )) {
111
+ Properties props = new Properties ();
112
+
113
+ if (inputStream != null ) {
114
+ props .load (inputStream );
115
+ }
116
+ Map <String , String > elasticsearchProperties = new LinkedHashMap <>();
117
+ props .forEach ((key , value ) -> elasticsearchProperties .put (key .toString (), value .toString ()));
118
+ return elasticsearchProperties ;
119
+ } catch (Exception e ) {
120
+ LOGGER .error ("Cannot load " + propertiesFile );
121
+ }
122
+ return Collections .emptyMap ();
123
+ }
124
+
98
125
@ Override
99
126
public void close () {
100
127
0 commit comments