This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 4ef2b849b93ccc6878e113a1f3994341774adeea Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Aug 30 16:09:51 2015 +0200 Permettre d'enregistrer les configurations de bases et d'utilisateurs même immuables (See #7494) --- .../configuration/db/ObserveWebDatabasesHelper.java | 8 +++++++- .../db/impl/ObserveWebDatabaseImmutable.java | 20 ++++++++++++++++++++ .../db/impl/ObserveWebDatabaseRoleImmutable.java | 6 ++++++ .../db/impl/ObserveWebDatabasesImmutable.java | 16 ++++++++++++++++ .../configuration/user/ObserveWebUsersHelper.java | 8 +++++++- .../user/impl/ObserveWebUserImmutable.java | 17 +++++++++++++++++ .../user/impl/ObserveWebUserPermissionImmutable.java | 6 ++++++ .../user/impl/ObserveWebUsersImmutable.java | 14 ++++++++++++++ .../db/ObserveWebDatabasesHelperTest.java | 7 ++++++- .../user/ObserveWebUsersHelperTest.java | 7 ++++++- 10 files changed, 105 insertions(+), 4 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelper.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelper.java index 60dfb6c..cd3e21b 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelper.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelper.java @@ -131,7 +131,7 @@ public class ObserveWebDatabasesHelper { } - public void storeBean(ObserveWebDatabasesBean databases, File file) { + public void store(ObserveWebDatabases databases, File file) { if (log.isInfoEnabled()) { log.info("Store databases to " + file); @@ -139,6 +139,12 @@ public class ObserveWebDatabasesHelper { try (BufferedWriter fileWriter = Files.newWriter(file, Charsets.UTF_8)) { YamlWriter writer = new YamlWriter(fileWriter, createConfig()); + if (databases instanceof ObserveWebDatabasesImmutable) { + + ObserveWebDatabasesImmutable observeWebDatabasesImmutable = (ObserveWebDatabasesImmutable) databases; + databases = observeWebDatabasesImmutable.toBean(); + + } writer.write(databases); writer.close(); } catch (Exception e) { diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseImmutable.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseImmutable.java index 6d5b8b4..eba202a 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseImmutable.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseImmutable.java @@ -3,9 +3,12 @@ package fr.ird.observe.application.web.configuration.db.impl; import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import fr.ird.observe.application.web.configuration.db.ObserveWebDatabase; +import javax.annotation.Nullable; import java.util.Collection; /** @@ -65,4 +68,21 @@ public class ObserveWebDatabaseImmutable implements ObserveWebDatabase<ObserveWe return Optional.fromNullable(observeWebDatabaseRole); } + public ObserveWebDatabaseBean toBean() { + ObserveWebDatabaseBean observeWebDatabaseBean = new ObserveWebDatabaseBean(); + observeWebDatabaseBean.setDefaultDatabase(defaultDatabase); + observeWebDatabaseBean.setName(name); + observeWebDatabaseBean.setUrl(url); + observeWebDatabaseBean.setRoles(Sets.newLinkedHashSet(Iterables.transform(getRoles(), new Function<ObserveWebDatabaseRoleImmutable, ObserveWebDatabaseRoleBean>() { + + @Nullable + @Override + public ObserveWebDatabaseRoleBean apply(ObserveWebDatabaseRoleImmutable input) { + return input.toBean(); + } + }))); + + return observeWebDatabaseBean; + } + } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseRoleImmutable.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseRoleImmutable.java index 2f67745..612e25d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseRoleImmutable.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabaseRoleImmutable.java @@ -28,4 +28,10 @@ public class ObserveWebDatabaseRoleImmutable implements ObserveWebDatabaseRole { return password; } + public ObserveWebDatabaseRoleBean toBean() { + ObserveWebDatabaseRoleBean observeWebDatabasesBean = new ObserveWebDatabaseRoleBean(); + observeWebDatabasesBean.setLogin(login); + observeWebDatabasesBean.setPassword(password); + return observeWebDatabasesBean; + } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabasesImmutable.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabasesImmutable.java index cd5aad1..c579b0d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabasesImmutable.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/db/impl/ObserveWebDatabasesImmutable.java @@ -3,9 +3,12 @@ package fr.ird.observe.application.web.configuration.db.impl; import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import fr.ird.observe.application.web.configuration.db.ObserveWebDatabases; +import javax.annotation.Nullable; import java.util.Collection; /** @@ -55,4 +58,17 @@ public class ObserveWebDatabasesImmutable implements ObserveWebDatabases<Observe return Optional.fromNullable(database); } + public ObserveWebDatabasesBean toBean() { + ObserveWebDatabasesBean observeWebDatabasesBean = new ObserveWebDatabasesBean(); + observeWebDatabasesBean.setDatabases(Sets.newLinkedHashSet(Iterables.transform(getDatabases(), new Function<ObserveWebDatabaseImmutable, ObserveWebDatabaseBean>() { + + @Nullable + @Override + public ObserveWebDatabaseBean apply(ObserveWebDatabaseImmutable input) { + return input.toBean(); + } + }))); + return observeWebDatabasesBean; + } + } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelper.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelper.java index e3661ff..4f82b1f 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelper.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelper.java @@ -109,7 +109,7 @@ public class ObserveWebUsersHelper { } - public void storeBean(ObserveWebUsersBean users, File file) { + public void store(ObserveWebUsers users, File file) { if (log.isInfoEnabled()) { log.info("Store users to " + file); @@ -117,6 +117,12 @@ public class ObserveWebUsersHelper { try (BufferedWriter fileWriter = Files.newWriter(file, Charsets.UTF_8)) { YamlWriter writer = new YamlWriter(fileWriter, createConfig()); + if (users instanceof ObserveWebUsersImmutable) { + + ObserveWebUsersImmutable observeWebUsersImmutable = (ObserveWebUsersImmutable) users; + users = observeWebUsersImmutable.toBean(); + + } writer.write(users); writer.close(); } catch (Exception e) { diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserImmutable.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserImmutable.java index 2801cd6..acbdd73 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserImmutable.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserImmutable.java @@ -3,7 +3,9 @@ package fr.ird.observe.application.web.configuration.user.impl; import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import fr.ird.observe.application.web.configuration.user.ObserveWebUser; import java.util.Collection; @@ -55,4 +57,19 @@ public class ObserveWebUserImmutable implements ObserveWebUser<ObserveWebUserPer return Optional.fromNullable(permissions.get(databaseName)); } + public ObserveWebUserBean toBean() { + ObserveWebUserBean observeWebUserBean = new ObserveWebUserBean(); + observeWebUserBean.setLogin(login); + observeWebUserBean.setPassword(password); + observeWebUserBean.setPermissions(Sets.newLinkedHashSet(Iterables.transform(getPermissions(), new Function<ObserveWebUserPermissionImmutable, ObserveWebUserPermissionBean>() { + + @Override + public ObserveWebUserPermissionBean apply(ObserveWebUserPermissionImmutable input) { + return input.toBean(); + } + }))); + + return observeWebUserBean; + } + } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserPermissionImmutable.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserPermissionImmutable.java index 7692fda..dd7e40b 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserPermissionImmutable.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUserPermissionImmutable.java @@ -28,4 +28,10 @@ public class ObserveWebUserPermissionImmutable implements ObserveWebUserPermissi return role; } + public ObserveWebUserPermissionBean toBean() { + ObserveWebUserPermissionBean observeWebUserPermissionBean = new ObserveWebUserPermissionBean(); + observeWebUserPermissionBean.setDatabase(database); + observeWebUserPermissionBean.setRole(role); + return observeWebUserPermissionBean; + } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUsersImmutable.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUsersImmutable.java index 4ad728e..cf18fe7 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUsersImmutable.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/user/impl/ObserveWebUsersImmutable.java @@ -3,7 +3,9 @@ package fr.ird.observe.application.web.configuration.user.impl; import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import fr.ird.observe.application.web.configuration.user.ObserveWebUsers; import javax.annotation.Nullable; @@ -39,4 +41,16 @@ public class ObserveWebUsersImmutable implements ObserveWebUsers<ObserveWebUserI return Optional.fromNullable(users.get(login)); } + public ObserveWebUsersBean toBean() { + ObserveWebUsersBean observeWebUsersBean = new ObserveWebUsersBean(); + observeWebUsersBean.setUsers(Sets.newLinkedHashSet(Iterables.transform(getUsers(), new Function<ObserveWebUserImmutable, ObserveWebUserBean>() { + + @Nullable + @Override + public ObserveWebUserBean apply(ObserveWebUserImmutable input) { + return input.toBean(); + } + }))); + return observeWebUsersBean; + } } diff --git a/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelperTest.java b/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelperTest.java index 3ed490d..7d78f85 100644 --- a/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelperTest.java +++ b/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/db/ObserveWebDatabasesHelperTest.java @@ -221,12 +221,17 @@ public class ObserveWebDatabasesHelperTest { File databasesFile = configuration.getDatabasesConfigurationFile(); - observeWebDatabasesHelper.storeBean(databases, databasesFile); + observeWebDatabasesHelper.store(databases, databasesFile); String fileContent = Files.asCharSource(databasesFile, Charsets.UTF_8).read(); Assert.assertEquals(FILE_CONTENT, fileContent); System.out.println(fileContent); + observeWebDatabasesHelper.store(databases.toImmutable(), databasesFile); + + String fileContent2 = Files.asCharSource(databasesFile, Charsets.UTF_8).read(); + Assert.assertEquals(FILE_CONTENT, fileContent2); + } } \ No newline at end of file diff --git a/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelperTest.java b/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelperTest.java index 65cfbf7..67b337d 100644 --- a/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelperTest.java +++ b/observe-application-web/src/test/java/fr/ird/observe/application/web/configuration/user/ObserveWebUsersHelperTest.java @@ -172,12 +172,17 @@ public class ObserveWebUsersHelperTest { File databasesFile = configuration.getUsersConfigurationFile(); - observeWebUsersHelper.storeBean(users, databasesFile); + observeWebUsersHelper.store(users, databasesFile); String fileContent = Files.asCharSource(databasesFile, Charsets.UTF_8).read(); Assert.assertEquals(FILE_CONTENT, fileContent); System.out.println(fileContent); + observeWebUsersHelper.store(users.toImmutable(), databasesFile); + + String fileContent2 = Files.asCharSource(databasesFile, Charsets.UTF_8).read(); + Assert.assertEquals(FILE_CONTENT, fileContent2); + } } \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.