diff --git a/debezium-core/pom.xml b/debezium-core/pom.xml
index 72c6596ea..9efc96934 100644
--- a/debezium-core/pom.xml
+++ b/debezium-core/pom.xml
@@ -47,26 +47,6 @@
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
-
- org.codehaus.groovy
- groovy
- true
-
-
- org.codehaus.groovy
- groovy-jsr223
- true
-
-
- org.graalvm.js
- js
- true
-
-
- org.graalvm.js
- js-scriptengine
- true
-
diff --git a/debezium-microbenchmark/pom.xml b/debezium-microbenchmark/pom.xml
index 753adf758..867e71fab 100644
--- a/debezium-microbenchmark/pom.xml
+++ b/debezium-microbenchmark/pom.xml
@@ -15,6 +15,10 @@
io.debezium
debezium-core
+
+ io.debezium
+ debezium-scripting
+
io.debezium
debezium-connector-mysql
diff --git a/debezium-scripting/pom.xml b/debezium-scripting/pom.xml
new file mode 100644
index 000000000..da4b2c609
--- /dev/null
+++ b/debezium-scripting/pom.xml
@@ -0,0 +1,141 @@
+
+
+
+ io.debezium
+ debezium-parent
+ 1.3.0-SNAPSHOT
+ ../pom.xml
+
+ 4.0.0
+ debezium-scripting
+ Debezium Scripting
+ jar
+
+
+ package-distribution
+
+
+
+
+ io.debezium
+ debezium-core
+
+
+ org.slf4j
+ slf4j-api
+ provided
+
+
+ org.apache.kafka
+ connect-api
+ provided
+
+
+ org.apache.kafka
+ connect-transforms
+ provided
+
+
+ org.codehaus.groovy
+ groovy
+ true
+
+
+ org.codehaus.groovy
+ groovy-jsr223
+ true
+
+
+ org.graalvm.js
+ js
+ true
+
+
+ org.graalvm.js
+ js-scriptengine
+ true
+
+
+
+
+ org.slf4j
+ slf4j-log4j12
+ test
+
+
+ log4j
+ log4j
+ test
+
+
+ junit
+ junit
+ test
+
+
+ org.easytesting
+ fest-assert
+ test
+
+
+ org.codehaus.groovy
+ groovy-json
+ test
+
+
+ io.debezium
+ debezium-core
+ test-jar
+ test
+
+
+
+
+
+
+
+
+ true
+ src/main/resources
+
+ **/build.properties
+
+
+
+
+
+
+
+ assembly
+
+ false
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${version.assembly.plugin}
+
+
+ default
+ package
+
+ single
+
+
+ false
+ true
+
+ src/main/resources/assemblies/${assembly.descriptor}.xml
+
+ posix
+
+
+
+
+
+
+
+
+
diff --git a/debezium-core/src/main/java/io/debezium/transforms/ContentBasedRouter.java b/debezium-scripting/src/main/java/io/debezium/transforms/ContentBasedRouter.java
similarity index 100%
rename from debezium-core/src/main/java/io/debezium/transforms/ContentBasedRouter.java
rename to debezium-scripting/src/main/java/io/debezium/transforms/ContentBasedRouter.java
diff --git a/debezium-core/src/main/java/io/debezium/transforms/Filter.java b/debezium-scripting/src/main/java/io/debezium/transforms/Filter.java
similarity index 100%
rename from debezium-core/src/main/java/io/debezium/transforms/Filter.java
rename to debezium-scripting/src/main/java/io/debezium/transforms/Filter.java
diff --git a/debezium-core/src/main/java/io/debezium/transforms/ScriptingTransformation.java b/debezium-scripting/src/main/java/io/debezium/transforms/ScriptingTransformation.java
similarity index 100%
rename from debezium-core/src/main/java/io/debezium/transforms/ScriptingTransformation.java
rename to debezium-scripting/src/main/java/io/debezium/transforms/ScriptingTransformation.java
diff --git a/debezium-core/src/main/java/io/debezium/transforms/scripting/Engine.java b/debezium-scripting/src/main/java/io/debezium/transforms/scripting/Engine.java
similarity index 100%
rename from debezium-core/src/main/java/io/debezium/transforms/scripting/Engine.java
rename to debezium-scripting/src/main/java/io/debezium/transforms/scripting/Engine.java
diff --git a/debezium-core/src/main/java/io/debezium/transforms/scripting/GraalJsEngine.java b/debezium-scripting/src/main/java/io/debezium/transforms/scripting/GraalJsEngine.java
similarity index 100%
rename from debezium-core/src/main/java/io/debezium/transforms/scripting/GraalJsEngine.java
rename to debezium-scripting/src/main/java/io/debezium/transforms/scripting/GraalJsEngine.java
diff --git a/debezium-core/src/main/java/io/debezium/transforms/scripting/Jsr223Engine.java b/debezium-scripting/src/main/java/io/debezium/transforms/scripting/Jsr223Engine.java
similarity index 100%
rename from debezium-core/src/main/java/io/debezium/transforms/scripting/Jsr223Engine.java
rename to debezium-scripting/src/main/java/io/debezium/transforms/scripting/Jsr223Engine.java
diff --git a/debezium-core/src/main/java/io/debezium/transforms/scripting/RecordHeader.java b/debezium-scripting/src/main/java/io/debezium/transforms/scripting/RecordHeader.java
similarity index 100%
rename from debezium-core/src/main/java/io/debezium/transforms/scripting/RecordHeader.java
rename to debezium-scripting/src/main/java/io/debezium/transforms/scripting/RecordHeader.java
diff --git a/debezium-scripting/src/main/resources/assemblies/package-distribution.xml b/debezium-scripting/src/main/resources/assemblies/package-distribution.xml
new file mode 100644
index 000000000..5ea904634
--- /dev/null
+++ b/debezium-scripting/src/main/resources/assemblies/package-distribution.xml
@@ -0,0 +1,35 @@
+
+
+ distribution
+
+ tar.gz
+ zip
+
+ false
+
+
+
+ ${project.build.directory}
+ ${project.artifactId}
+
+ ${project.build.finalName}.jar
+
+ true
+
+
+
+ ${project.basedir}/..
+ ${project.artifactId}
+
+ README*
+ CHANGELOG*
+ CONTRIBUTE*
+ COPYRIGHT*
+ LICENSE*
+
+ true
+
+
+
diff --git a/debezium-core/src/test/java/io/debezium/transforms/FilterTest.java b/debezium-scripting/src/test/java/io/debezium/transforms/FilterTest.java
similarity index 100%
rename from debezium-core/src/test/java/io/debezium/transforms/FilterTest.java
rename to debezium-scripting/src/test/java/io/debezium/transforms/FilterTest.java
diff --git a/debezium-core/src/test/java/io/debezium/transforms/RouterTest.java b/debezium-scripting/src/test/java/io/debezium/transforms/RouterTest.java
similarity index 100%
rename from debezium-core/src/test/java/io/debezium/transforms/RouterTest.java
rename to debezium-scripting/src/test/java/io/debezium/transforms/RouterTest.java
diff --git a/debezium-scripting/src/test/resources/log4j.properties b/debezium-scripting/src/test/resources/log4j.properties
new file mode 100644
index 000000000..5849b7860
--- /dev/null
+++ b/debezium-scripting/src/test/resources/log4j.properties
@@ -0,0 +1,18 @@
+# Direct log messages to stdout
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %m (%c)%n
+
+# Direct Debezium log messages to stdout with special prefix
+log4j.appender.debezium=org.apache.log4j.ConsoleAppender
+log4j.appender.debezium.Target=System.out
+log4j.appender.debezium.layout=org.apache.log4j.PatternLayout
+log4j.appender.debezium.layout.ConversionPattern=%d{ISO8601} %-5p DBZ %m (%c)%n
+
+# Root logger option
+log4j.rootLogger=INFO, stdout
+
+# Set up the default logging to be INFO level, then override specific units
+log4j.logger.io.debezium=INFO, debezium
+log4j.additivity.io.debezium=false
\ No newline at end of file
diff --git a/debezium-server/debezium-server-dist/pom.xml b/debezium-server/debezium-server-dist/pom.xml
index 092f3dbf1..db8c10083 100644
--- a/debezium-server/debezium-server-dist/pom.xml
+++ b/debezium-server/debezium-server-dist/pom.xml
@@ -93,7 +93,7 @@
single
-
+
false
true
diff --git a/pom.xml b/pom.xml
index 75786bf65..5cb1090b2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -179,6 +179,7 @@
debezium-connector-sqlserver
debezium-microbenchmark
debezium-quarkus-outbox
+ debezium-scripting
debezium-server
debezium-testing
@@ -470,6 +471,11 @@
debezium-core
${project.version}
+
+ io.debezium
+ debezium-scripting
+ ${project.version}
+
io.debezium
debezium-embedded