diff --git a/pom.xml b/pom.xml
index 954647445..5a24f2b17 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,8 +19,8 @@
3.2.1
2.6
- 5.5.0
- 2.8.2
+ 6.1.0
+ 2.9.1
2.1.0.BUILD-SNAPSHOT
spring.data.elasticsearch
diff --git a/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java b/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java
index 717e2895a..7371c45e8 100644
--- a/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java
+++ b/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java
@@ -38,6 +38,7 @@ import static java.util.Arrays.*;
*
* @author Rizwan Idrees
* @author Mohsin Husen
+ * @author Ilkang Na
*/
public class NodeClientFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
@@ -85,13 +86,11 @@ public class NodeClientFactoryBean implements FactoryBean, InitializingB
nodeClient = (NodeClient) new TestNode(
Settings.builder().put(loadConfig())
.put("transport.type", "netty4")
- .put("transport.type", "local")
.put("http.type", "netty4")
.put("path.home", this.pathHome)
.put("path.data", this.pathData)
.put("cluster.name", this.clusterName)
.put("node.max_local_storage_nodes", 100)
- .put("script.inline", "true")
.build(), asList(Netty4Plugin.class)).start().client();
}
@@ -99,7 +98,7 @@ public class NodeClientFactoryBean implements FactoryBean, InitializingB
if (StringUtils.isNotBlank(pathConfiguration)) {
InputStream stream = getClass().getClassLoader().getResourceAsStream(pathConfiguration);
if (stream != null) {
- return Settings.builder().loadFromStream(pathConfiguration, getClass().getClassLoader().getResourceAsStream(pathConfiguration)).build();
+ return Settings.builder().loadFromStream(pathConfiguration, getClass().getClassLoader().getResourceAsStream(pathConfiguration), false).build();
}
logger.error(String.format("Unable to read node configuration from file [%s]", pathConfiguration));
}
diff --git a/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java b/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java
index 2d4ee0f91..a3bc1ab00 100644
--- a/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java
+++ b/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java
@@ -1,156 +1,163 @@
-/*
- * Copyright 2013 the original author or authors.
- *
- * Licensed 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.springframework.data.elasticsearch.client;
-
-import static org.apache.commons.lang.StringUtils.*;
-
-import java.net.InetAddress;
-import java.util.Properties;
-
-import org.elasticsearch.client.transport.TransportClient;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.transport.InetSocketTransportAddress;
-import org.elasticsearch.transport.client.PreBuiltTransportClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.beans.factory.FactoryBean;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.util.Assert;
-
-/**
- * TransportClientFactoryBean
- *
- * @author Rizwan Idrees
- * @author Mohsin Husen
- * @author Jakub Vavrik
- * @author Piotr Betkier
- */
-
-public class TransportClientFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
-
- private static final Logger logger = LoggerFactory.getLogger(TransportClientFactoryBean.class);
- private String clusterNodes = "127.0.0.1:9300";
- private String clusterName = "elasticsearch";
- private Boolean clientTransportSniff = true;
- private Boolean clientIgnoreClusterName = Boolean.FALSE;
- private String clientPingTimeout = "5s";
- private String clientNodesSamplerInterval = "5s";
- private TransportClient client;
- private Properties properties;
- static final String COLON = ":";
- static final String COMMA = ",";
-
- @Override
- public void destroy() throws Exception {
- try {
- logger.info("Closing elasticSearch client");
- if (client != null) {
- client.close();
- }
- } catch (final Exception e) {
- logger.error("Error closing ElasticSearch client: ", e);
- }
- }
-
- @Override
- public TransportClient getObject() throws Exception {
- return client;
- }
-
- @Override
- public Class getObjectType() {
- return TransportClient.class;
- }
-
- @Override
- public boolean isSingleton() {
- return false;
- }
-
- @Override
- public void afterPropertiesSet() throws Exception {
- buildClient();
- }
-
- protected void buildClient() throws Exception {
-
- client = new PreBuiltTransportClient(settings());
- Assert.hasText(clusterNodes, "[Assertion failed] clusterNodes settings missing.");
- for (String clusterNode : split(clusterNodes, COMMA)) {
- String hostName = substringBeforeLast(clusterNode, COLON);
- String port = substringAfterLast(clusterNode, COLON);
- Assert.hasText(hostName, "[Assertion failed] missing host name in 'clusterNodes'");
- Assert.hasText(port, "[Assertion failed] missing port in 'clusterNodes'");
- logger.info("adding transport node : " + clusterNode);
- client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(hostName), Integer.valueOf(port)));
- }
- client.connectedNodes();
- }
-
- private Settings settings() {
- if (properties != null) {
- return Settings.builder().put(properties).build();
- }
- return Settings.builder()
- .put("cluster.name", clusterName)
- .put("client.transport.sniff", clientTransportSniff)
- .put("client.transport.ignore_cluster_name", clientIgnoreClusterName)
- .put("client.transport.ping_timeout", clientPingTimeout)
- .put("client.transport.nodes_sampler_interval", clientNodesSamplerInterval)
- .build();
- }
-
- public void setClusterNodes(String clusterNodes) {
- this.clusterNodes = clusterNodes;
- }
-
- public void setClusterName(String clusterName) {
- this.clusterName = clusterName;
- }
-
- public void setClientTransportSniff(Boolean clientTransportSniff) {
- this.clientTransportSniff = clientTransportSniff;
- }
-
- public String getClientNodesSamplerInterval() {
- return clientNodesSamplerInterval;
- }
-
- public void setClientNodesSamplerInterval(String clientNodesSamplerInterval) {
- this.clientNodesSamplerInterval = clientNodesSamplerInterval;
- }
-
- public String getClientPingTimeout() {
- return clientPingTimeout;
- }
-
- public void setClientPingTimeout(String clientPingTimeout) {
- this.clientPingTimeout = clientPingTimeout;
- }
-
- public Boolean getClientIgnoreClusterName() {
- return clientIgnoreClusterName;
- }
-
- public void setClientIgnoreClusterName(Boolean clientIgnoreClusterName) {
- this.clientIgnoreClusterName = clientIgnoreClusterName;
- }
-
- public void setProperties(Properties properties) {
- this.properties = properties;
- }
-}
+/*
+ * Copyright 2013 the original author or authors.
+ *
+ * Licensed 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.springframework.data.elasticsearch.client;
+
+import static org.apache.commons.lang.StringUtils.*;
+
+import java.net.InetAddress;
+import java.util.Properties;
+
+import org.elasticsearch.client.transport.TransportClient;
+import org.elasticsearch.common.settings.Settings;
+import org.elasticsearch.common.transport.TransportAddress;
+import org.elasticsearch.transport.client.PreBuiltTransportClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.FactoryBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.util.Assert;
+
+/**
+ * TransportClientFactoryBean
+ *
+ * @author Rizwan Idrees
+ * @author Mohsin Husen
+ * @author Jakub Vavrik
+ * @author Piotr Betkier
+ * @author Ilkang Na
+ */
+
+public class TransportClientFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
+
+ private static final Logger logger = LoggerFactory.getLogger(TransportClientFactoryBean.class);
+ private String clusterNodes = "127.0.0.1:9300";
+ private String clusterName = "elasticsearch";
+ private Boolean clientTransportSniff = true;
+ private Boolean clientIgnoreClusterName = Boolean.FALSE;
+ private String clientPingTimeout = "5s";
+ private String clientNodesSamplerInterval = "5s";
+ private TransportClient client;
+ private Properties properties;
+ static final String COLON = ":";
+ static final String COMMA = ",";
+
+ @Override
+ public void destroy() throws Exception {
+ try {
+ logger.info("Closing elasticSearch client");
+ if (client != null) {
+ client.close();
+ }
+ } catch (final Exception e) {
+ logger.error("Error closing ElasticSearch client: ", e);
+ }
+ }
+
+ @Override
+ public TransportClient getObject() throws Exception {
+ return client;
+ }
+
+ @Override
+ public Class getObjectType() {
+ return TransportClient.class;
+ }
+
+ @Override
+ public boolean isSingleton() {
+ return false;
+ }
+
+ @Override
+ public void afterPropertiesSet() throws Exception {
+ buildClient();
+ }
+
+ protected void buildClient() throws Exception {
+
+ client = new PreBuiltTransportClient(settings());
+ Assert.hasText(clusterNodes, "[Assertion failed] clusterNodes settings missing.");
+ for (String clusterNode : split(clusterNodes, COMMA)) {
+ String hostName = substringBeforeLast(clusterNode, COLON);
+ String port = substringAfterLast(clusterNode, COLON);
+ Assert.hasText(hostName, "[Assertion failed] missing host name in 'clusterNodes'");
+ Assert.hasText(port, "[Assertion failed] missing port in 'clusterNodes'");
+ logger.info("adding transport node : " + clusterNode);
+ client.addTransportAddress(new TransportAddress(InetAddress.getByName(hostName), Integer.valueOf(port)));
+ }
+ client.connectedNodes();
+ }
+
+ private Settings settings() {
+ if (properties != null) {
+ Settings.Builder builder = Settings.builder();
+
+ properties.forEach((key, value) -> {
+ builder.put(key.toString(), value.toString());
+ });
+
+ return builder.build();
+ }
+ return Settings.builder()
+ .put("cluster.name", clusterName)
+ .put("client.transport.sniff", clientTransportSniff)
+ .put("client.transport.ignore_cluster_name", clientIgnoreClusterName)
+ .put("client.transport.ping_timeout", clientPingTimeout)
+ .put("client.transport.nodes_sampler_interval", clientNodesSamplerInterval)
+ .build();
+ }
+
+ public void setClusterNodes(String clusterNodes) {
+ this.clusterNodes = clusterNodes;
+ }
+
+ public void setClusterName(String clusterName) {
+ this.clusterName = clusterName;
+ }
+
+ public void setClientTransportSniff(Boolean clientTransportSniff) {
+ this.clientTransportSniff = clientTransportSniff;
+ }
+
+ public String getClientNodesSamplerInterval() {
+ return clientNodesSamplerInterval;
+ }
+
+ public void setClientNodesSamplerInterval(String clientNodesSamplerInterval) {
+ this.clientNodesSamplerInterval = clientNodesSamplerInterval;
+ }
+
+ public String getClientPingTimeout() {
+ return clientPingTimeout;
+ }
+
+ public void setClientPingTimeout(String clientPingTimeout) {
+ this.clientPingTimeout = clientPingTimeout;
+ }
+
+ public Boolean getClientIgnoreClusterName() {
+ return clientIgnoreClusterName;
+ }
+
+ public void setClientIgnoreClusterName(Boolean clientIgnoreClusterName) {
+ this.clientIgnoreClusterName = clientIgnoreClusterName;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
+}
diff --git a/src/main/java/org/springframework/data/elasticsearch/core/DefaultResultMapper.java b/src/main/java/org/springframework/data/elasticsearch/core/DefaultResultMapper.java
index 3e21c5e79..d75e4535c 100644
--- a/src/main/java/org/springframework/data/elasticsearch/core/DefaultResultMapper.java
+++ b/src/main/java/org/springframework/data/elasticsearch/core/DefaultResultMapper.java
@@ -28,8 +28,8 @@ import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.get.MultiGetItemResponse;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.action.search.SearchResponse;
+import org.elasticsearch.common.document.DocumentField;
import org.elasticsearch.search.SearchHit;
-import org.elasticsearch.search.SearchHitField;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.ElasticsearchException;
import org.springframework.data.elasticsearch.annotations.Document;
@@ -50,6 +50,7 @@ import com.fasterxml.jackson.core.JsonGenerator;
* @author Young Gu
* @author Oliver Gierke
* @author Mark Paluch
+ * @author Ilkang Na
*/
public class DefaultResultMapper extends AbstractResultMapper {
@@ -77,13 +78,13 @@ public class DefaultResultMapper extends AbstractResultMapper {
@Override
public AggregatedPage mapResults(SearchResponse response, Class clazz, Pageable pageable) {
- long totalHits = response.getHits().totalHits();
+ long totalHits = response.getHits().getTotalHits();
List results = new ArrayList<>();
for (SearchHit hit : response.getHits()) {
if (hit != null) {
T result = null;
- if (StringUtils.isNotBlank(hit.sourceAsString())) {
- result = mapEntity(hit.sourceAsString(), clazz);
+ if (StringUtils.isNotBlank(hit.getSourceAsString())) {
+ result = mapEntity(hit.getSourceAsString(), clazz);
} else {
result = mapEntity(hit.getFields().values(), clazz);
}
@@ -102,7 +103,7 @@ public class DefaultResultMapper extends AbstractResultMapper {
ScriptedField scriptedField = field.getAnnotation(ScriptedField.class);
if (scriptedField != null) {
String name = scriptedField.name().isEmpty() ? field.getName() : scriptedField.name();
- SearchHitField searchHitField = hit.getFields().get(name);
+ DocumentField searchHitField = hit.getFields().get(name);
if (searchHitField != null) {
field.setAccessible(true);
try {
@@ -119,17 +120,17 @@ public class DefaultResultMapper extends AbstractResultMapper {
}
}
- private T mapEntity(Collection values, Class clazz) {
+ private T mapEntity(Collection values, Class clazz) {
return mapEntity(buildJSONFromFields(values), clazz);
}
- private String buildJSONFromFields(Collection values) {
+ private String buildJSONFromFields(Collection values) {
JsonFactory nodeFactory = new JsonFactory();
try {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
JsonGenerator generator = nodeFactory.createGenerator(stream, JsonEncoding.UTF8);
generator.writeStartObject();
- for (SearchHitField value : values) {
+ for (DocumentField value : values) {
if (value.getValues().size() > 1) {
generator.writeArrayFieldStart(value.getName());
for (Object val : value.getValues()) {
diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java
index 74702a998..1a6d78b7d 100755
--- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java
+++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java
@@ -15,18 +15,22 @@
*/
package org.springframework.data.elasticsearch.core;
+import static org.apache.commons.lang.StringUtils.isBlank;
+import static org.apache.commons.lang.StringUtils.isNotBlank;
+import static org.elasticsearch.client.Requests.indicesExistsRequest;
+import static org.elasticsearch.client.Requests.refreshRequest;
+import static org.elasticsearch.index.VersionType.EXTERNAL;
+import static org.elasticsearch.index.query.QueryBuilders.moreLikeThisQuery;
+import static org.elasticsearch.index.query.QueryBuilders.wrapperQuery;
+import static org.springframework.data.elasticsearch.core.MappingBuilder.buildMapping;
+import static org.springframework.util.CollectionUtils.isEmpty;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import org.elasticsearch.action.ListenableActionFuture;
+import java.util.*;
+
+import org.elasticsearch.action.ActionFuture;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
@@ -51,8 +55,10 @@ import org.elasticsearch.client.Requests;
import org.elasticsearch.cluster.metadata.AliasMetaData;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.collect.MapBuilder;
+import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentBuilder;
+import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.MoreLikeThisQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
@@ -87,12 +93,6 @@ import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMa
import org.springframework.data.elasticsearch.core.query.*;
import org.springframework.data.util.CloseableIterator;
import org.springframework.util.Assert;
-import static org.apache.commons.lang.StringUtils.*;
-import static org.elasticsearch.client.Requests.*;
-import static org.elasticsearch.index.VersionType.*;
-import static org.elasticsearch.index.query.QueryBuilders.*;
-import static org.springframework.data.elasticsearch.core.MappingBuilder.*;
-import static org.springframework.util.CollectionUtils.isEmpty;
/**
* ElasticsearchTemplate
@@ -106,6 +106,7 @@ import static org.springframework.util.CollectionUtils.isEmpty;
* @author Oliver Gierke
* @author Mark Janssen
* @author Mark Paluch
+ * @author Ilkang Na
*/
public class ElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware {
@@ -208,7 +209,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
Assert.notNull(type, "No type defined for putMapping()");
PutMappingRequestBuilder requestBuilder = client.admin().indices().preparePutMapping(indexName).setType(type);
if (mapping instanceof String) {
- requestBuilder.setSource(String.valueOf(mapping));
+ requestBuilder.setSource(String.valueOf(mapping), XContentType.JSON);
} else if (mapping instanceof Map) {
requestBuilder.setSource((Map) mapping);
} else if (mapping instanceof XContentBuilder) {
@@ -867,8 +868,8 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
}
if (!searchQuery.getScriptFields().isEmpty()) {
- //_source should be return all the time
- //searchRequest.addStoredField("_source");
+ // _source should be return all the time
+ // searchRequest.addStoredField("_source");
for (ScriptField scriptedField : searchQuery.getScriptFields()) {
searchRequest.addScriptField(scriptedField.fieldName(), scriptedField.script());
}
@@ -900,7 +901,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
return getSearchResponse(searchRequest.setQuery(searchQuery.getQuery()).execute());
}
- private SearchResponse getSearchResponse(ListenableActionFuture response) {
+ private SearchResponse getSearchResponse(ActionFuture response) {
return searchTimeout == null ? response.actionGet() : response.actionGet(searchTimeout);
}
@@ -927,7 +928,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
public boolean createIndex(String indexName, Object settings) {
CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate(indexName);
if (settings instanceof String) {
- createIndexRequestBuilder.setSettings(String.valueOf(settings));
+ createIndexRequestBuilder.setSettings(String.valueOf(settings), Requests.INDEX_CONTENT_TYPE);
} else if (settings instanceof Map) {
createIndexRequestBuilder.setSettings((Map) settings);
} else if (settings instanceof XContentBuilder) {
@@ -960,8 +961,16 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
@Override
public Map getSetting(String indexName) {
Assert.notNull(indexName, "No index defined for getSettings");
- return client.admin().indices().getSettings(new GetSettingsRequest()).actionGet().getIndexToSettings()
- .get(indexName).getAsMap();
+ Settings settings = client.admin().indices().getSettings(new GetSettingsRequest()).actionGet().getIndexToSettings()
+ .get(indexName);
+
+ SortedMap settingsMap = new TreeMap<>();
+
+ settings.keySet().forEach((key) -> {
+ settingsMap.put(key, String.valueOf(settings.get(key)));
+ });
+
+ return Collections.unmodifiableSortedMap(settingsMap);
}
private SearchRequestBuilder prepareSearch(Query query, Class clazz) {
@@ -989,7 +998,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
searchRequestBuilder.setFrom(startRecord);
if (!query.getFields().isEmpty()) {
- searchRequestBuilder.setFetchSource(toArray(query.getFields()),null);
+ searchRequestBuilder.setFetchSource(toArray(query.getFields()), null);
}
if (query.getSort() != null) {
@@ -1008,7 +1017,8 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
private IndexRequestBuilder prepareIndex(IndexQuery query) {
try {
String indexName = isBlank(query.getIndexName())
- ? retrieveIndexNameFromPersistentEntity(query.getObject().getClass())[0] : query.getIndexName();
+ ? retrieveIndexNameFromPersistentEntity(query.getObject().getClass())[0]
+ : query.getIndexName();
String type = isBlank(query.getType()) ? retrieveTypeFromPersistentEntity(query.getObject().getClass())[0]
: query.getType();
@@ -1022,9 +1032,11 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
} else {
indexRequestBuilder = client.prepareIndex(indexName, type);
}
- indexRequestBuilder.setSource(resultsMapper.getEntityMapper().mapToString(query.getObject()));
+ indexRequestBuilder.setSource(resultsMapper.getEntityMapper().mapToString(query.getObject()),
+ Requests.INDEX_CONTENT_TYPE);
} else if (query.getSource() != null) {
- indexRequestBuilder = client.prepareIndex(indexName, type, query.getId()).setSource(query.getSource());
+ indexRequestBuilder = client.prepareIndex(indexName, type, query.getId()).setSource(query.getSource(),
+ Requests.INDEX_CONTENT_TYPE);
} else {
throw new ElasticsearchException(
"object or source is null, failed to index the document [id: " + query.getId() + "]");
@@ -1059,7 +1071,8 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
public Boolean addAlias(AliasQuery query) {
Assert.notNull(query.getIndexName(), "No index defined for Alias");
Assert.notNull(query.getAliasName(), "No alias defined");
- final IndicesAliasesRequest.AliasActions aliasAction = IndicesAliasesRequest.AliasActions.add().alias(query.getAliasName()).index(query.getIndexName());
+ final IndicesAliasesRequest.AliasActions aliasAction = IndicesAliasesRequest.AliasActions.add()
+ .alias(query.getAliasName()).index(query.getIndexName());
if (query.getFilterBuilder() != null) {
aliasAction.filter(query.getFilterBuilder());
@@ -1101,7 +1114,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
ElasticsearchPersistentEntity> persistentEntity = getPersistentEntityFor(entity.getClass());
Object identifier = persistentEntity.getIdentifierAccessor(entity).getIdentifier();
- if (identifier != null){
+ if (identifier != null) {
return identifier.toString();
}
diff --git a/src/main/java/org/springframework/data/elasticsearch/core/facet/request/TermFacetRequest.java b/src/main/java/org/springframework/data/elasticsearch/core/facet/request/TermFacetRequest.java
index 1cf99384d..caa652642 100644
--- a/src/main/java/org/springframework/data/elasticsearch/core/facet/request/TermFacetRequest.java
+++ b/src/main/java/org/springframework/data/elasticsearch/core/facet/request/TermFacetRequest.java
@@ -21,17 +21,17 @@ import org.apache.commons.lang.StringUtils;
import org.apache.lucene.util.automaton.RegExp;
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilders;
-import org.elasticsearch.search.aggregations.bucket.terms.Terms;
+import org.elasticsearch.search.aggregations.BucketOrder;
+import org.elasticsearch.search.aggregations.bucket.terms.IncludeExclude;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
-import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude;
import org.springframework.data.elasticsearch.core.facet.AbstractFacetRequest;
import org.springframework.util.Assert;
-
/**
* Term facet
*
* @author Artur Konczak
+ * @author Ilkang Na
*/
@Deprecated
public class TermFacetRequest extends AbstractFacetRequest {
@@ -81,19 +81,19 @@ public class TermFacetRequest extends AbstractFacetRequest {
switch (order) {
case descTerm:
- termsBuilder.order(Terms.Order.term(false));
+ termsBuilder.order(BucketOrder.key(false));
break;
case ascTerm:
- termsBuilder.order(Terms.Order.term(true));
+ termsBuilder.order(BucketOrder.key(true));
break;
case descCount:
- termsBuilder.order(Terms.Order.count(false));
+ termsBuilder.order(BucketOrder.count(false));
break;
default:
- termsBuilder.order(Terms.Order.count(true));
+ termsBuilder.order(BucketOrder.count(true));
}
if (ArrayUtils.isNotEmpty(excludeTerms)) {
- termsBuilder.includeExclude(new IncludeExclude(null,excludeTerms));
+ termsBuilder.includeExclude(new IncludeExclude(null, excludeTerms));
}
if (allTerms) {
@@ -101,9 +101,9 @@ public class TermFacetRequest extends AbstractFacetRequest {
}
if (StringUtils.isNotBlank(regex)) {
- termsBuilder.includeExclude(new IncludeExclude(new RegExp(regex),null));
+ termsBuilder.includeExclude(new IncludeExclude(new RegExp(regex), null));
}
return termsBuilder;
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/org/springframework/data/elasticsearch/Utils.java b/src/test/java/org/springframework/data/elasticsearch/Utils.java
index 5aa016fa7..a11a2a3d6 100644
--- a/src/test/java/org/springframework/data/elasticsearch/Utils.java
+++ b/src/test/java/org/springframework/data/elasticsearch/Utils.java
@@ -26,6 +26,7 @@ import static java.util.Arrays.*;
/**
* @author Mohsin Husen
* @author Artur Konczak
+ * @author Ilkang Na
*/
public class Utils {
@@ -38,13 +39,11 @@ public class Utils {
return new NodeClientFactoryBean.TestNode(
Settings.builder()
.put("transport.type", "netty4")
- .put("transport.type", "local")
.put("http.type", "netty4")
.put("path.home", pathHome)
.put("path.data", pathData)
.put("cluster.name", clusterName)
.put("node.max_local_storage_nodes", 100)
- .put("script.inline", "true")
.build(), asList(Netty4Plugin.class)).start().client();
}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/AliasTests.java b/src/test/java/org/springframework/data/elasticsearch/core/AliasTests.java
index 140e45bd8..d866ddee8 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/AliasTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/AliasTests.java
@@ -41,6 +41,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author Mohsin Husen
+ * @author Ilkang Na
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:elasticsearch-template-test.xml")
@@ -101,7 +102,7 @@ public class AliasTests {
// then
elasticsearchTemplate.removeAlias(aliasQuery);
aliases = elasticsearchTemplate.queryForAlias(indexName);
- assertThat(aliases, is(nullValue()));
+ assertThat(aliases, anyOf(is(nullValue()), hasSize(0)));
}
/*
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/DefaultResultMapperTests.java b/src/test/java/org/springframework/data/elasticsearch/core/DefaultResultMapperTests.java
index bec87ff85..9a525ea8a 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/DefaultResultMapperTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/DefaultResultMapperTests.java
@@ -15,18 +15,16 @@
*/
package org.springframework.data.elasticsearch.core;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
+
import com.fasterxml.jackson.databind.util.ArrayIterator;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.search.SearchResponse;
+import org.elasticsearch.common.document.DocumentField;
import org.elasticsearch.search.SearchHit;
-import org.elasticsearch.search.SearchHitField;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.Aggregations;
@@ -51,6 +49,7 @@ import static org.mockito.Mockito.*;
* @author Artur Konczak
* @author Mohsin Husen
* @author Mark Paluch
+ * @author Ilkang Na
*/
public class DefaultResultMapperTests {
@@ -70,7 +69,7 @@ public class DefaultResultMapperTests {
//Given
SearchHit[] hits = {createCarHit("Ford", "Grat"), createCarHit("BMW", "Arrow")};
SearchHits searchHits = mock(SearchHits.class);
- when(searchHits.totalHits()).thenReturn(2L);
+ when(searchHits.getTotalHits()).thenReturn(2L);
when(searchHits.iterator()).thenReturn(new ArrayIterator(hits));
when(response.getHits()).thenReturn(searchHits);
@@ -91,7 +90,7 @@ public class DefaultResultMapperTests {
//Given
SearchHit[] hits = {createCarHit("Ford", "Grat"), createCarHit("BMW", "Arrow")};
SearchHits searchHits = mock(SearchHits.class);
- when(searchHits.totalHits()).thenReturn(2L);
+ when(searchHits.getTotalHits()).thenReturn(2L);
when(searchHits.iterator()).thenReturn(new ArrayIterator(hits));
when(response.getHits()).thenReturn(searchHits);
@@ -109,7 +108,7 @@ public class DefaultResultMapperTests {
//Given
SearchHit[] hits = {createCarPartialHit("Ford", "Grat"), createCarPartialHit("BMW", "Arrow")};
SearchHits searchHits = mock(SearchHits.class);
- when(searchHits.totalHits()).thenReturn(2L);
+ when(searchHits.getTotalHits()).thenReturn(2L);
when(searchHits.iterator()).thenReturn(new ArrayIterator(hits));
when(response.getHits()).thenReturn(searchHits);
@@ -161,13 +160,13 @@ public class DefaultResultMapperTests {
private SearchHit createCarHit(String name, String model) {
SearchHit hit = mock(SearchHit.class);
- when(hit.sourceAsString()).thenReturn(createJsonCar(name, model));
+ when(hit.getSourceAsString()).thenReturn(createJsonCar(name, model));
return hit;
}
private SearchHit createCarPartialHit(String name, String model) {
SearchHit hit = mock(SearchHit.class);
- when(hit.sourceAsString()).thenReturn(null);
+ when(hit.getSourceAsString()).thenReturn(null);
when(hit.getFields()).thenReturn(createCarFields(name, model));
return hit;
}
@@ -180,10 +179,10 @@ public class DefaultResultMapperTests {
return sb.toString();
}
- private Map createCarFields(String name, String model) {
- Map result = new HashMap<>();
- result.put("name", new SearchHitField("name", asList(name)));
- result.put("model", new SearchHitField("model", asList(model)));
+ private Map createCarFields(String name, String model) {
+ Map result = new HashMap<>();
+ result.put("name", new DocumentField("name", asList(name)));
+ result.put("model", new DocumentField("model", asList(model)));
return result;
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateParentChildTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateParentChildTests.java
index fe2e0bdfe..71d0eab52 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateParentChildTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateParentChildTests.java
@@ -31,6 +31,7 @@ import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +46,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author Philipp Jardas
*/
+@Ignore(value = "DATAES-421")
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:elasticsearch-template-test.xml")
public class ElasticsearchTemplateParentChildTests {
@@ -66,6 +68,7 @@ public class ElasticsearchTemplateParentChildTests {
elasticsearchTemplate.deleteIndex(ParentEntity.class);
}
+ @Ignore(value = "DATAES-421")
@Test
public void shouldIndexParentChildEntity() {
// index two parents
@@ -88,6 +91,7 @@ public class ElasticsearchTemplateParentChildTests {
assertThat("parents", parents, contains(hasProperty("id", is(parent1.getId()))));
}
+ @Ignore(value = "DATAES-421")
@Test
public void shouldUpdateChild() throws Exception {
// index parent and child
@@ -106,6 +110,7 @@ public class ElasticsearchTemplateParentChildTests {
assertThat(response.getShardInfo().getSuccessful(), is(1));
}
+ @Ignore(value = "DATAES-421")
@Test(expected = RoutingMissingException.class)
public void shouldFailWithRoutingMissingExceptionOnUpdateChildIfNotRoutingSetOnUpdateRequest() throws Exception {
// index parent and child
@@ -121,6 +126,7 @@ public class ElasticsearchTemplateParentChildTests {
update(updateRequest);
}
+ @Ignore(value = "DATAES-421")
@Test(expected = RoutingMissingException.class)
public void shouldFailWithRoutingMissingExceptionOnUpdateChildIfRoutingOnlySetOnRequestDoc() throws Exception {
// index parent and child
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
index 30918ba3e..a248dcb44 100755
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
@@ -70,6 +70,7 @@ import static org.springframework.data.elasticsearch.utils.IndexBuilder.*;
* @author Abdul Mohammed
* @author Kevin Leturc
* @author Mason Chan
+ * @author Ilkang Na
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:elasticsearch-template-test.xml")
@@ -649,7 +650,7 @@ public class ElasticsearchTemplateTests {
public AggregatedPage mapResults(SearchResponse response, Class clazz, Pageable pageable) {
List values = new ArrayList<>();
for (SearchHit searchHit : response.getHits()) {
- values.add((String) searchHit.getSource().get("message"));
+ values.add((String) searchHit.getSourceAsMap().get("message"));
}
return new AggregatedPageImpl<>((List) values);
}
@@ -780,7 +781,7 @@ public class ElasticsearchTemplateTests {
if (response.getHits().getHits().length <= 0) {
return new AggregatedPageImpl(Collections.EMPTY_LIST, response.getScrollId());
}
- String message = (String) searchHit.getSource().get("message");
+ String message = (String) searchHit.getSourceAsMap().get("message");
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(searchHit.getId());
sampleEntity.setMessage(message);
@@ -1192,7 +1193,7 @@ public class ElasticsearchTemplateTests {
}
SampleEntity user = new SampleEntity();
user.setId(searchHit.getId());
- user.setMessage((String) searchHit.getSource().get("message"));
+ user.setMessage((String) searchHit.getSourceAsMap().get("message"));
user.setHighlightedMessage(searchHit.getHighlightFields().get("message").fragments()[0].toString());
chunk.add(user);
}
@@ -1256,7 +1257,7 @@ public class ElasticsearchTemplateTests {
for (SearchHit searchHit : response.getHits()) {
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(searchHit.getId());
- sampleEntity.setMessage((String) searchHit.getSource().get("message"));
+ sampleEntity.setMessage((String) searchHit.getSourceAsMap().get("message"));
values.add(sampleEntity);
}
return new AggregatedPageImpl<>((List) values);
@@ -1431,11 +1432,11 @@ public class ElasticsearchTemplateTests {
return null;
}
Map person = new HashMap<>();
- person.put("userId", searchHit.getSource().get("userId"));
- person.put("email", searchHit.getSource().get("email"));
- person.put("title", searchHit.getSource().get("title"));
- person.put("firstName", searchHit.getSource().get("firstName"));
- person.put("lastName", searchHit.getSource().get("lastName"));
+ person.put("userId", searchHit.getSourceAsMap().get("userId"));
+ person.put("email", searchHit.getSourceAsMap().get("email"));
+ person.put("title", searchHit.getSourceAsMap().get("title"));
+ person.put("firstName", searchHit.getSourceAsMap().get("firstName"));
+ person.put("lastName", searchHit.getSourceAsMap().get("lastName"));
chunk.add(person);
}
if (chunk.size() > 0) {
@@ -1942,9 +1943,9 @@ public class ElasticsearchTemplateTests {
public AggregatedPage mapResults(SearchResponse response, Class clazz, Pageable pageable) {
List values = new ArrayList<>();
for (SearchHit searchHit : response.getHits()) {
- String id = String.valueOf(searchHit.getSource().get("id"));
- String firstName = StringUtils.isNotEmpty((String) searchHit.getSource().get("firstName")) ? (String) searchHit.getSource().get("firstName") : "";
- String lastName = StringUtils.isNotEmpty((String) searchHit.getSource().get("lastName")) ? (String) searchHit.getSource().get("lastName") : "";
+ String id = String.valueOf(searchHit.getSourceAsMap().get("id"));
+ String firstName = StringUtils.isNotEmpty((String) searchHit.getSourceAsMap().get("firstName")) ? (String) searchHit.getSourceAsMap().get("firstName") : "";
+ String lastName = StringUtils.isNotEmpty((String) searchHit.getSourceAsMap().get("lastName")) ? (String) searchHit.getSourceAsMap().get("lastName") : "";
values.add(new ResultAggregator(id, firstName, lastName));
}
return new AggregatedPageImpl<>((List) values);
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/DynamicSettingAndMappingEntityRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/DynamicSettingAndMappingEntityRepositoryTests.java
index 880343f51..0afbbe7cf 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/DynamicSettingAndMappingEntityRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/DynamicSettingAndMappingEntityRepositoryTests.java
@@ -38,6 +38,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* DynamicSettingAndMappingEntityRepositoryTests
*
* @author Mohsin Husen
+ * @author Ilkang Na
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:dynamic-settings-test.xml")
@@ -134,7 +135,7 @@ public class DynamicSettingAndMappingEntityRepositoryTests {
String mappings = "{\n" +
" \"test-setting-type\" : {\n" +
" \"properties\" : {\n" +
- " \"email\" : {\"type\" : \"string\", \"analyzer\" : \"emailAnalyzer\" }\n" +
+ " \"email\" : {\"type\" : \"text\", \"analyzer\" : \"emailAnalyzer\" }\n" +
" }\n" +
" }\n" +
"}";
diff --git a/src/test/resources/mappings/test-mappings.json b/src/test/resources/mappings/test-mappings.json
index d115109f5..74373cabb 100644
--- a/src/test/resources/mappings/test-mappings.json
+++ b/src/test/resources/mappings/test-mappings.json
@@ -2,7 +2,7 @@
"test-setting-type": {
"properties": {
"email": {
- "type": "string",
+ "type": "text",
"analyzer": "emailAnalyzer"
}
}
diff --git a/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 000000000..ca6ee9cea
--- /dev/null
+++ b/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline
\ No newline at end of file
diff --git a/src/test/resources/node-client-configuration.yml b/src/test/resources/node-client-configuration.yml
index 4d42008f7..22807744d 100644
--- a/src/test/resources/node-client-configuration.yml
+++ b/src/test/resources/node-client-configuration.yml
@@ -1,3 +1,3 @@
#enabled scripts - this require groovy
-script.inline: true
+#script.inline: true
#node.max_local_storage_nodes: 100
\ No newline at end of file
diff --git a/src/test/resources/synonyms/mappings.json b/src/test/resources/synonyms/mappings.json
index 875c23c1b..489d750c8 100644
--- a/src/test/resources/synonyms/mappings.json
+++ b/src/test/resources/synonyms/mappings.json
@@ -1,8 +1,5 @@
{
"synonym-type": {
- "_all": {
- "enabled": true
- },
"properties": {
"text": {
"type": "text",
diff --git a/src/test/resources/test-home-dir/modules/lang-expression/lang-expression-5.5.0.jar b/src/test/resources/test-home-dir/modules/lang-expression/lang-expression-5.5.0.jar
deleted file mode 100644
index fcf068702..000000000
Binary files a/src/test/resources/test-home-dir/modules/lang-expression/lang-expression-5.5.0.jar and /dev/null differ
diff --git a/src/test/resources/test-home-dir/modules/lang-expression/lang-expression-6.1.0.jar b/src/test/resources/test-home-dir/modules/lang-expression/lang-expression-6.1.0.jar
new file mode 100644
index 000000000..3f7482118
Binary files /dev/null and b/src/test/resources/test-home-dir/modules/lang-expression/lang-expression-6.1.0.jar differ
diff --git a/src/test/resources/test-home-dir/modules/lang-expression/lucene-expressions-6.6.0.jar b/src/test/resources/test-home-dir/modules/lang-expression/lucene-expressions-7.1.0.jar
similarity index 62%
rename from src/test/resources/test-home-dir/modules/lang-expression/lucene-expressions-6.6.0.jar
rename to src/test/resources/test-home-dir/modules/lang-expression/lucene-expressions-7.1.0.jar
index 8237ab730..1c479a24a 100644
Binary files a/src/test/resources/test-home-dir/modules/lang-expression/lucene-expressions-6.6.0.jar and b/src/test/resources/test-home-dir/modules/lang-expression/lucene-expressions-7.1.0.jar differ
diff --git a/src/test/resources/test-home-dir/modules/lang-expression/plugin-descriptor.properties b/src/test/resources/test-home-dir/modules/lang-expression/plugin-descriptor.properties
index cc647f1ea..2486156fe 100644
--- a/src/test/resources/test-home-dir/modules/lang-expression/plugin-descriptor.properties
+++ b/src/test/resources/test-home-dir/modules/lang-expression/plugin-descriptor.properties
@@ -22,7 +22,7 @@
description=Lucene expressions integration for Elasticsearch
#
# 'version': plugin's version
-version=5.5.0
+version=6.1.0
#
# 'name': the plugin name
name=lang-expression
@@ -37,8 +37,11 @@ classname=org.elasticsearch.script.expression.ExpressionPlugin
java.version=1.8
#
# 'elasticsearch.version': version of elasticsearch compiled against
-elasticsearch.version=5.5.0
+elasticsearch.version=6.1.0
### optional elements for plugins:
#
# 'has.native.controller': whether or not the plugin has a native controller
has.native.controller=false
+#
+# 'requires.keystore': whether or not the plugin needs the elasticsearch keystore be created
+requires.keystore=false
diff --git a/src/test/resources/test-home-dir/modules/lang-groovy/groovy-2.4.6-indy.jar b/src/test/resources/test-home-dir/modules/lang-groovy/groovy-2.4.6-indy.jar
deleted file mode 100644
index ce3531e0b..000000000
Binary files a/src/test/resources/test-home-dir/modules/lang-groovy/groovy-2.4.6-indy.jar and /dev/null differ
diff --git a/src/test/resources/test-home-dir/modules/lang-groovy/lang-groovy-5.5.0.jar b/src/test/resources/test-home-dir/modules/lang-groovy/lang-groovy-5.5.0.jar
deleted file mode 100644
index b8ffc7562..000000000
Binary files a/src/test/resources/test-home-dir/modules/lang-groovy/lang-groovy-5.5.0.jar and /dev/null differ
diff --git a/src/test/resources/test-home-dir/modules/lang-groovy/plugin-descriptor.properties b/src/test/resources/test-home-dir/modules/lang-groovy/plugin-descriptor.properties
deleted file mode 100644
index 48bfc72db..000000000
--- a/src/test/resources/test-home-dir/modules/lang-groovy/plugin-descriptor.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-# Elasticsearch plugin descriptor file
-# This file must exist as 'plugin-descriptor.properties' in a folder named `elasticsearch`
-# inside all plugins.
-#
-### example plugin for "foo"
-#
-# foo.zip <-- zip file for the plugin, with this structure:
-#|____elasticsearch/
-#| |____ .jar <-- classes, resources, dependencies
-#| |____ .jar <-- any number of jars
-#| |____ plugin-descriptor.properties <-- example contents below:
-#
-# classname=foo.bar.BazPlugin
-# description=My cool plugin
-# version=2.0
-# elasticsearch.version=2.0
-# java.version=1.7
-#
-### mandatory elements for all plugins:
-#
-# 'description': simple summary of the plugin
-description=Groovy scripting integration for Elasticsearch
-#
-# 'version': plugin's version
-version=5.5.0
-#
-# 'name': the plugin name
-name=lang-groovy
-#
-# 'classname': the name of the class to load, fully-qualified.
-classname=org.elasticsearch.script.groovy.GroovyPlugin
-#
-# 'java.version': version of java the code is built against
-# use the system property java.specification.version
-# version string must be a sequence of nonnegative decimal integers
-# separated by "."'s and may have leading zeros
-java.version=1.8
-#
-# 'elasticsearch.version': version of elasticsearch compiled against
-elasticsearch.version=5.5.0
-### optional elements for plugins:
-#
-# 'has.native.controller': whether or not the plugin has a native controller
-has.native.controller=false
diff --git a/src/test/resources/test-home-dir/modules/lang-groovy/plugin-security.policy b/src/test/resources/test-home-dir/modules/lang-groovy/plugin-security.policy
deleted file mode 100644
index 13d00d6d1..000000000
--- a/src/test/resources/test-home-dir/modules/lang-groovy/plugin-security.policy
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-
-grant {
- // needed to generate runtime classes
- permission java.lang.RuntimePermission "createClassLoader";
- // needed by IndyInterface
- permission java.lang.RuntimePermission "getClassLoader";
- // needed by groovy engine
- permission java.lang.RuntimePermission "accessDeclaredMembers";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.reflect";
- permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.reflect";
- // Allow executing groovy scripts with codesource of /untrusted
- permission groovy.security.GroovyCodeSourcePermission "/untrusted";
-
- // Standard set of classes
- permission org.elasticsearch.script.ClassPermission "<>";
- // groovy runtime (TODO: clean these up if possible)
- permission org.elasticsearch.script.ClassPermission "groovy.grape.GrabAnnotationTransformation";
- permission org.elasticsearch.script.ClassPermission "groovy.lang.Binding";
- permission org.elasticsearch.script.ClassPermission "groovy.lang.GroovyObject";
- permission org.elasticsearch.script.ClassPermission "groovy.lang.GString";
- permission org.elasticsearch.script.ClassPermission "groovy.lang.Script";
- permission org.elasticsearch.script.ClassPermission "groovy.util.GroovyCollections";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.ast.builder.AstBuilderTransformation";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.reflection.ClassInfo";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.runtime.GStringImpl";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.runtime.powerassert.ValueRecorder";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.runtime.powerassert.AssertionRenderer";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.runtime.ScriptBytecodeAdapter";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.vmplugin.v7.IndyInterface";
- permission org.elasticsearch.script.ClassPermission "sun.reflect.ConstructorAccessorImpl";
- permission org.elasticsearch.script.ClassPermission "sun.reflect.MethodAccessorImpl";
- permission org.elasticsearch.script.ClassPermission "jdk.internal.reflect.ConstructorAccessorImpl";
- permission org.elasticsearch.script.ClassPermission "jdk.internal.reflect.MethodAccessorImpl";
-
- permission org.elasticsearch.script.ClassPermission "groovy.lang.Closure";
- permission org.elasticsearch.script.ClassPermission "org.codehaus.groovy.runtime.GeneratedClosure";
- permission org.elasticsearch.script.ClassPermission "groovy.lang.MetaClass";
- permission org.elasticsearch.script.ClassPermission "groovy.lang.Range";
- permission org.elasticsearch.script.ClassPermission "groovy.lang.Reference";
-};