Details
diff --git a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
index 54fa9be..de4bf38 100755
--- a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
@@ -121,6 +121,8 @@ public class RealmRepresentation {
protected String resetCredentialsFlow;
protected String clientAuthenticationFlow;
+ protected String keycloakVersion;
+
@Deprecated
protected Boolean social;
@Deprecated
@@ -814,6 +816,14 @@ public class RealmRepresentation {
this.clientAuthenticationFlow = clientAuthenticationFlow;
}
+ public String getKeycloakVersion() {
+ return keycloakVersion;
+ }
+
+ public void setKeycloakVersion(String keycloakVersion) {
+ this.keycloakVersion = keycloakVersion;
+ }
+
public List<GroupRepresentation> getGroups() {
return groups;
}
diff --git a/services/src/main/java/org/keycloak/exportimport/dir/DirExportProvider.java b/services/src/main/java/org/keycloak/exportimport/dir/DirExportProvider.java
index dd1972d..906d246 100755
--- a/services/src/main/java/org/keycloak/exportimport/dir/DirExportProvider.java
+++ b/services/src/main/java/org/keycloak/exportimport/dir/DirExportProvider.java
@@ -17,7 +17,6 @@
package org.keycloak.exportimport.dir;
-import org.keycloak.representations.VersionRepresentation;
import org.keycloak.exportimport.util.ExportUtils;
import org.keycloak.exportimport.util.MultipleStepsExportProvider;
import org.keycloak.models.KeycloakSession;
@@ -87,13 +86,6 @@ public class DirExportProvider extends MultipleStepsExportProvider {
}
@Override
- protected void writeVersion(String fileName, VersionRepresentation version) throws IOException {
- File file = new File(this.rootDirectory, fileName);
- FileOutputStream stream = new FileOutputStream(file);
- JsonSerialization.prettyMapper.writeValue(stream, version);
- }
-
- @Override
public void close() {
}
}
diff --git a/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java b/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
index bdea6f6..72cabb5 100755
--- a/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
+++ b/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
@@ -22,6 +22,7 @@ import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
+import org.keycloak.common.Version;
import org.keycloak.common.util.Base64;
import org.keycloak.models.*;
import org.keycloak.models.utils.ModelToRepresentation;
@@ -39,6 +40,9 @@ public class ExportUtils {
public static RealmRepresentation exportRealm(KeycloakSession session, RealmModel realm, boolean includeUsers) {
RealmRepresentation rep = ModelToRepresentation.toRepresentation(realm, true);
+ // Project/product version
+ rep.setKeycloakVersion(Version.VERSION);
+
// Client Templates
List<ClientTemplateModel> templates = realm.getClientTemplates();
List<ClientTemplateRepresentation> templateReps = new ArrayList<>();
diff --git a/services/src/main/java/org/keycloak/exportimport/util/MultipleStepsExportProvider.java b/services/src/main/java/org/keycloak/exportimport/util/MultipleStepsExportProvider.java
index 735659f..4537169 100755
--- a/services/src/main/java/org/keycloak/exportimport/util/MultipleStepsExportProvider.java
+++ b/services/src/main/java/org/keycloak/exportimport/util/MultipleStepsExportProvider.java
@@ -18,7 +18,6 @@
package org.keycloak.exportimport.util;
import org.jboss.logging.Logger;
-import org.keycloak.representations.VersionRepresentation;
import org.keycloak.exportimport.ExportImportConfig;
import org.keycloak.exportimport.ExportProvider;
import org.keycloak.exportimport.UsersExportStrategy;
@@ -57,14 +56,11 @@ public abstract class MultipleStepsExportProvider implements ExportProvider {
for (RealmModel realm : holder.realms) {
exportRealmImpl(factory, realm.getName());
}
-
- writeVersion("version.json", VersionRepresentation.SINGLETON);
}
@Override
public void exportRealm(KeycloakSessionFactory factory, String realmName) throws IOException {
exportRealmImpl(factory, realmName);
- writeVersion("version.json", VersionRepresentation.SINGLETON);
}
protected void exportRealmImpl(KeycloakSessionFactory factory, final String realmName) throws IOException {
@@ -127,8 +123,6 @@ public abstract class MultipleStepsExportProvider implements ExportProvider {
protected abstract void writeUsers(String fileName, KeycloakSession session, RealmModel realm, List<UserModel> users) throws IOException;
- protected abstract void writeVersion(String fileName, VersionRepresentation version) throws IOException;
-
public static class RealmsHolder {
List<RealmModel> realms;
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java
index f8f8e14..d3ada6e 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java
@@ -166,8 +166,8 @@ public class ExportImportTest {
testFullExportImport();
- // There should be 6 files in target directory (3 realm, 3 user, 1 version)
- Assert.assertEquals(7, new File(targetDirPath).listFiles().length);
+ // There should be 6 files in target directory (3 realm, 3 user)
+ Assert.assertEquals(6, new File(targetDirPath).listFiles().length);
}
@Test
@@ -180,9 +180,9 @@ public class ExportImportTest {
testRealmExportImport();
- // There should be 3 files in target directory (1 realm, 3 user, 1 version)
+ // There should be 3 files in target directory (1 realm, 3 user)
File[] files = new File(targetDirPath).listFiles();
- Assert.assertEquals(5, files.length);
+ Assert.assertEquals(4, files.length);
}
@Test