diff --git a/dependencies/server-all/pom.xml b/dependencies/server-all/pom.xml
index 95f510c9334..21ae45fe7d0 100755
--- a/dependencies/server-all/pom.xml
+++ b/dependencies/server-all/pom.xml
@@ -52,6 +52,18 @@
org.keycloak
keycloak-model-map-ldap
+
+ org.keycloak
+ keycloak-model-legacy
+
+
+ org.keycloak
+ keycloak-model-legacy-private
+
+
+ org.keycloak
+ keycloak-model-legacy-services
+
org.keycloak
keycloak-model-infinispan
diff --git a/distribution/feature-packs/server-feature-pack-dependencies/pom.xml b/distribution/feature-packs/server-feature-pack-dependencies/pom.xml
index c2566d7f3f2..a628c1df17a 100644
--- a/distribution/feature-packs/server-feature-pack-dependencies/pom.xml
+++ b/distribution/feature-packs/server-feature-pack-dependencies/pom.xml
@@ -190,6 +190,36 @@
+
+ org.keycloak
+ keycloak-model-legacy
+
+
+ *
+ *
+
+
+
+
+ org.keycloak
+ keycloak-model-legacy-private
+
+
+ *
+ *
+
+
+
+
+ org.keycloak
+ keycloak-model-legacy-services
+
+
+ *
+ *
+
+
+
org.keycloak
keycloak-model-map
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml
index ebb263c7145..954e2fa04f7 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml
@@ -29,6 +29,9 @@
+
+
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml
index dcca1bfd2ee..bf1bcf050e5 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml
@@ -30,6 +30,9 @@
+
+
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml
index 7364f8a3678..15e67071010 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml
@@ -27,6 +27,8 @@
+
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml
index 2306ba9f39f..c52e42d5c7e 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml
@@ -30,6 +30,7 @@
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-private/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-private/main/module.xml
new file mode 100755
index 00000000000..b00cebb2d33
--- /dev/null
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-private/main/module.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-services/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-services/main/module.xml
new file mode 100755
index 00000000000..38e8f040d70
--- /dev/null
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-services/main/module.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy/main/module.xml
new file mode 100755
index 00000000000..8406507ec57
--- /dev/null
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy/main/module.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
index 5577e7c7ee4..97340bedca7 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
@@ -36,6 +36,9 @@
+
+
+
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml
index 6d56d6e9951..4267945ef1b 100644
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml
@@ -30,5 +30,8 @@
+
+
+
\ No newline at end of file
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml
index ebb263c7145..954e2fa04f7 100755
--- a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml
@@ -29,6 +29,9 @@
+
+
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml
index dcca1bfd2ee..bf1bcf050e5 100755
--- a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml
@@ -30,6 +30,9 @@
+
+
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml
index 7364f8a3678..c89a501b7fd 100755
--- a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml
@@ -30,6 +30,7 @@
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml
index 2306ba9f39f..c52e42d5c7e 100755
--- a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml
@@ -30,6 +30,7 @@
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-private/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-private/main/module.xml
new file mode 100755
index 00000000000..b00cebb2d33
--- /dev/null
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-private/main/module.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-services/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-services/main/module.xml
new file mode 100755
index 00000000000..38e8f040d70
--- /dev/null
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy-services/main/module.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy/main/module.xml
new file mode 100755
index 00000000000..75d5889d0a7
--- /dev/null
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-model-legacy/main/module.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
index 5577e7c7ee4..97340bedca7 100755
--- a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
@@ -36,6 +36,9 @@
+
+
+
diff --git a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml
index 6d56d6e9951..4267945ef1b 100644
--- a/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml
+++ b/distribution/galleon-feature-packs/server-galleon-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml
@@ -30,5 +30,8 @@
+
+
+
\ No newline at end of file
diff --git a/federation/kerberos/pom.xml b/federation/kerberos/pom.xml
index 236ec3389bf..e2726f57145 100755
--- a/federation/kerberos/pom.xml
+++ b/federation/kerberos/pom.xml
@@ -45,6 +45,11 @@
keycloak-server-spi-private
provided
+
+ org.keycloak
+ keycloak-model-legacy-private
+ provided
+
org.jboss.logging
jboss-logging
diff --git a/federation/ldap/pom.xml b/federation/ldap/pom.xml
index 084045713bf..0b98cccec4d 100755
--- a/federation/ldap/pom.xml
+++ b/federation/ldap/pom.xml
@@ -40,6 +40,11 @@
keycloak-server-spi
provided
+
+ org.keycloak
+ keycloak-model-legacy
+ provided
+
org.keycloak
keycloak-server-spi-private
diff --git a/federation/sssd/pom.xml b/federation/sssd/pom.xml
index 6445cb3a8cf..d08ac4220a8 100644
--- a/federation/sssd/pom.xml
+++ b/federation/sssd/pom.xml
@@ -48,6 +48,11 @@
keycloak-core
provided
+
+ org.keycloak
+ keycloak-model-legacy-private
+ provided
+
org.keycloak
keycloak-server-spi
diff --git a/model/infinispan/pom.xml b/model/infinispan/pom.xml
index 5c8158c6460..f58499c3496 100755
--- a/model/infinispan/pom.xml
+++ b/model/infinispan/pom.xml
@@ -38,6 +38,10 @@
org.keycloak
keycloak-server-spi
+
+ org.keycloak
+ keycloak-model-legacy
+
org.keycloak
keycloak-server-spi-private
diff --git a/model/jpa/pom.xml b/model/jpa/pom.xml
index e1b65421ed7..8a3149ef921 100755
--- a/model/jpa/pom.xml
+++ b/model/jpa/pom.xml
@@ -62,6 +62,10 @@
org.keycloak
keycloak-services
+
+ org.keycloak
+ keycloak-model-legacy
+
org.liquibase
liquibase-core
diff --git a/model/legacy-private/pom.xml b/model/legacy-private/pom.xml
new file mode 100644
index 00000000000..b45bc1df215
--- /dev/null
+++ b/model/legacy-private/pom.xml
@@ -0,0 +1,63 @@
+
+
+
+ keycloak-model-pom
+ org.keycloak
+ 999-SNAPSHOT
+
+ 4.0.0
+
+ keycloak-model-legacy-private
+ Keycloak Legacy Database Support - Private classes
+
+
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+
+
+ org.keycloak
+ keycloak-core
+
+
+ org.keycloak
+ keycloak-server-spi
+
+
+ org.keycloak
+ keycloak-server-spi-private
+
+
+ org.keycloak
+ keycloak-model-legacy
+
+
+
+
+ org.jboss.resteasy
+ resteasy-jaxrs
+ provided
+
+
+ junit
+ junit
+ test
+
+
+ org.jboss.logging
+ jboss-logging
+
+
+ org.jboss.logging
+ jboss-logging-annotations
+ provided
+
+
+ org.hamcrest
+ hamcrest
+ test
+
+
+
+
\ No newline at end of file
diff --git a/model/legacy-services/pom.xml b/model/legacy-services/pom.xml
new file mode 100644
index 00000000000..90bc19ca79a
--- /dev/null
+++ b/model/legacy-services/pom.xml
@@ -0,0 +1,52 @@
+
+
+
+ keycloak-model-pom
+ org.keycloak
+ 999-SNAPSHOT
+
+ 4.0.0
+
+ keycloak-model-legacy-services
+ Keycloak Legacy Database Support - REST services
+
+
+
+
+ org.keycloak
+ keycloak-services
+
+
+ org.keycloak
+ keycloak-model-legacy-private
+
+
+ org.keycloak
+ keycloak-ldap-federation
+
+
+ org.jboss.logging
+ jboss-logging
+
+
+ junit
+ junit
+ test
+
+
+ org.jboss.logging
+ jboss-logging-annotations
+ provided
+
+
+ org.hamcrest
+ hamcrest
+ test
+
+
+ com.openshift
+ openshift-restclient-java
+
+
+
+
\ No newline at end of file
diff --git a/model/legacy/pom.xml b/model/legacy/pom.xml
new file mode 100644
index 00000000000..914b199459d
--- /dev/null
+++ b/model/legacy/pom.xml
@@ -0,0 +1,56 @@
+
+
+
+ keycloak-model-pom
+ org.keycloak
+ 999-SNAPSHOT
+
+ 4.0.0
+
+ keycloak-model-legacy
+ Keycloak Legacy Database Support
+
+
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+
+
+ org.keycloak
+ keycloak-core
+
+
+ org.keycloak
+ keycloak-server-spi
+
+
+ org.keycloak
+ keycloak-server-spi-private
+
+
+ junit
+ junit
+ test
+
+
+ org.jboss.logging
+ jboss-logging
+
+
+ org.jboss.logging
+ jboss-logging-annotations
+ provided
+
+
+ org.hamcrest
+ hamcrest
+ test
+
+
+ com.openshift
+ openshift-restclient-java
+
+
+
+
\ No newline at end of file
diff --git a/model/pom.xml b/model/pom.xml
index 3e140443e49..5857196926f 100755
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -31,6 +31,9 @@
pom
+ legacy
+ legacy-private
+ legacy-services
jpa
map-jpa
infinispan
diff --git a/pom.xml b/pom.xml
index 49dca3125e1..f25c6e6c4c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1268,6 +1268,21 @@
keycloak-model-jpa
${project.version}
+
+ org.keycloak
+ keycloak-model-legacy
+ ${project.version}
+
+
+ org.keycloak
+ keycloak-model-legacy-private
+ ${project.version}
+
+
+ org.keycloak
+ keycloak-model-legacy-services
+ ${project.version}
+
org.keycloak
keycloak-model-map
diff --git a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml
index df7b0fba617..1749490245a 100644
--- a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml
+++ b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/pom.xml
@@ -53,6 +53,10 @@
org.keycloak
keycloak-services
+
+ org.keycloak
+ keycloak-model-legacy-services
+
org.wildfly.core
wildfly-controller
diff --git a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/resources/org/keycloak/testsuite/integration-arquillian-testsuite-providers/main/module.xml b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/resources/org/keycloak/testsuite/integration-arquillian-testsuite-providers/main/module.xml
index e971230b677..77f8a2ab31f 100644
--- a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/resources/org/keycloak/testsuite/integration-arquillian-testsuite-providers/main/module.xml
+++ b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/resources/org/keycloak/testsuite/integration-arquillian-testsuite-providers/main/module.xml
@@ -38,6 +38,9 @@
+
+
+
diff --git a/testsuite/integration-arquillian/tests/base/pom.xml b/testsuite/integration-arquillian/tests/base/pom.xml
index 125b47a0e07..2f1a80d1956 100644
--- a/testsuite/integration-arquillian/tests/base/pom.xml
+++ b/testsuite/integration-arquillian/tests/base/pom.xml
@@ -111,6 +111,10 @@
org.keycloak
keycloak-model-map
+
+ org.keycloak
+ keycloak-model-legacy-services
+
org.keycloak.testsuite
integration-arquillian-servers-app-server-spi