diff --git a/pom.xml b/pom.xml
index b6cb4aae8..2024d9113 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,15 +86,7 @@
jackson-databind
${jackson}
-
-
-
- org.codehaus.groovy
- groovy-all
- 2.4.4
- test
-
-
+
javax.enterprise
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 a1cf002e6..6fe00e009 100755
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
@@ -472,7 +472,6 @@ public class ElasticsearchTemplateTests {
}
@Test
- @Ignore
public void shouldUseScriptedFields() {
// given
String documentId = randomNumeric(5);
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
new file mode 100644
index 000000000..ce3531e0b
Binary files /dev/null and b/src/test/resources/test-home-dir/modules/lang-groovy/groovy-2.4.6-indy.jar differ
diff --git a/src/test/resources/test-home-dir/modules/lang-groovy/lang-groovy-2.4.0.jar b/src/test/resources/test-home-dir/modules/lang-groovy/lang-groovy-2.4.0.jar
new file mode 100644
index 000000000..e5188f136
Binary files /dev/null and b/src/test/resources/test-home-dir/modules/lang-groovy/lang-groovy-2.4.0.jar 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
new file mode 100644
index 000000000..b1b8c715e
--- /dev/null
+++ b/src/test/resources/test-home-dir/modules/lang-groovy/plugin-descriptor.properties
@@ -0,0 +1,80 @@
+# Elasticsearch plugin descriptor file
+# This file must exist as 'plugin-descriptor.properties' at
+# the root directory of all plugins.
+#
+# A plugin can be 'site', 'jvm', or both.
+#
+### example site plugin for "foo":
+#
+# foo.zip <-- zip file for the plugin, with this structure:
+# _site/ <-- the contents that will be served
+# plugin-descriptor.properties <-- example contents below:
+#
+# site=true
+# description=My cool plugin
+# version=1.0
+#
+### example jvm plugin for "foo"
+#
+# foo.zip <-- zip file for the plugin, with this structure:
+# .jar <-- classes, resources, dependencies
+# .jar <-- any number of jars
+# plugin-descriptor.properties <-- example contents below:
+#
+# jvm=true
+# classname=foo.bar.BazPlugin
+# description=My cool plugin
+# version=2.0.0-rc1
+# 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=2.4.0
+#
+# 'name': the plugin name
+name=lang-groovy
+
+### mandatory elements for site plugins:
+#
+# 'site': set to true to indicate contents of the _site/
+# directory in the root of the plugin should be served.
+site=false
+#
+### mandatory elements for jvm plugins :
+#
+# 'jvm': true if the 'classname' class should be loaded
+# from jar files in the root directory of the plugin.
+# Note that only jar files in the root directory are
+# added to the classpath for the plugin! If you need
+# other resources, package them into a resources jar.
+jvm=true
+#
+# '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.7
+#
+# 'elasticsearch.version' version of elasticsearch compiled against
+# You will have to release a new version of the plugin for each new
+# elasticsearch release. This version is checked when the plugin
+# is loaded so Elasticsearch will refuse to start in the presence of
+# plugins with the incorrect elasticsearch.version.
+elasticsearch.version=2.4.0
+#
+### deprecated elements for jvm plugins :
+#
+# 'isolated': true if the plugin should have its own classloader.
+# passing false is deprecated, and only intended to support plugins
+# that have hard dependencies against each other. If this is
+# not specified, then the plugin is isolated by default.
+isolated=true
+#
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
new file mode 100644
index 000000000..ace4b214b
--- /dev/null
+++ b/src/test/resources/test-home-dir/modules/lang-groovy/plugin-security.policy
@@ -0,0 +1,56 @@
+/*
+ * 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 "accessClassInPackage.sun.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.json.JsonOutput";
+ 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 "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";
+};