diff --git a/.gitignore b/.gitignore index 8228688..dbc218c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ target *.iml *.ipr *.iws +.idea diff --git a/pom.xml b/pom.xml index d21d5a3..6f9ab0d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 com.thundermoose.plugins stash-token-auth - 2.2 + 2.3-SNAPSHOT atlassian-plugin Token Authenticator diff --git a/src/main/java/com/thundermoose/plugins/admin/AdminConfigDao.java b/src/main/java/com/thundermoose/plugins/admin/AdminConfigDao.java index 61ea8b5..f654cbf 100644 --- a/src/main/java/com/thundermoose/plugins/admin/AdminConfigDao.java +++ b/src/main/java/com/thundermoose/plugins/admin/AdminConfigDao.java @@ -14,7 +14,6 @@ public class AdminConfigDao { private final PluginSettingsFactory pluginSettingsFactory; private final TransactionTemplate transactionTemplate; - private AdminConfig cachedConfig; public AdminConfigDao(PluginSettingsFactory pluginSettingsFactory, TransactionTemplate transactionTemplate) { this.pluginSettingsFactory = pluginSettingsFactory; @@ -49,68 +48,63 @@ private void setDefaults() { } public AdminConfig getAdminConfig() { - AdminConfig config = getCache(); - if(config != null) { - return config; - } else { - return transactionTemplate.execute(new TransactionCallback() { - public AdminConfig doInTransaction() { - PluginSettings settings = pluginSettingsFactory.createGlobalSettings(); - AdminConfig config = new AdminConfig(); - config.setEnabled(BooleanUtils.toBoolean((String) settings.get(BASE + ".enabled"))); - config.setKey((String) settings.get(BASE + ".key")); - String ttl = (String) settings.get(BASE + ".ttl"); - if(ttl != null) { - config.setTtl(Integer.valueOf(ttl)); - } - - if(settings.get(adminPathPrefix) != null) { - config.setAdminPaths(new AdminPaths( - BooleanUtils.toBoolean((String) settings.get(adminPermissions)), - BooleanUtils.toBoolean((String) settings.get(adminUsers)), - BooleanUtils.toBoolean((String) settings.get(adminGroups)), - BooleanUtils.toBoolean((String) settings.get(adminLogs)), - BooleanUtils.toBoolean((String) settings.get(adminAllRestApi)), - BooleanUtils.toBoolean((String) settings.get(adminAllBranchUtilsApi)), - BooleanUtils.toBoolean((String) settings.get(adminAllKeysApi)), - BooleanUtils.toBoolean((String) settings.get(adminAllDefaultReviewersApi)), - BooleanUtils.toBoolean((String) settings.get(adminAllBranchPermissionsApi)) - )); - } - - if(settings.get(projectPathPrefix) != null) { - config.setProjectPaths(new ProjectPaths( - BooleanUtils.toBoolean((String) settings.get(projectList)), - BooleanUtils.toBoolean((String) settings.get(projectPermissions)), - BooleanUtils.toBoolean((String) settings.get(projectRepoList)) - )); - } - - if(settings.get(repoPathPrefix) != null) { - config.setRepoPaths(new RepoPaths( - BooleanUtils.toBoolean((String) settings.get(repoPermissions)), - BooleanUtils.toBoolean((String) settings.get(repoCommitHistory)), - BooleanUtils.toBoolean((String) settings.get(repoFiles)), - BooleanUtils.toBoolean((String) settings.get(repoPullRequests)), - BooleanUtils.toBoolean((String) settings.get(repoParticipants)), - BooleanUtils.toBoolean((String) settings.get(repoBranchPermissions)), - BooleanUtils.toBoolean((String) settings.get(repoBuildStatus)), - BooleanUtils.toBoolean((String) settings.get(repoBaseDetails)), - BooleanUtils.toBoolean((String) settings.get(repoSync)) - )); - } - - if(settings.get(sshPathPrefix) != null) { - config.setSSHPaths(new SSHPaths( - BooleanUtils.toBoolean((String) settings.get(sshUserKeys)), - BooleanUtils.toBoolean((String) settings.get(sshRepoKeys)) - )); - } - - return config; + return transactionTemplate.execute(new TransactionCallback() { + public AdminConfig doInTransaction() { + PluginSettings settings = pluginSettingsFactory.createGlobalSettings(); + AdminConfig config = new AdminConfig(); + config.setEnabled(BooleanUtils.toBoolean((String) settings.get(BASE + ".enabled"))); + config.setKey((String) settings.get(BASE + ".key")); + String ttl = (String) settings.get(BASE + ".ttl"); + if(ttl != null) { + config.setTtl(Integer.valueOf(ttl)); } - }); - } + + if(settings.get(adminPathPrefix) != null) { + config.setAdminPaths(new AdminPaths( + BooleanUtils.toBoolean((String) settings.get(adminPermissions)), + BooleanUtils.toBoolean((String) settings.get(adminUsers)), + BooleanUtils.toBoolean((String) settings.get(adminGroups)), + BooleanUtils.toBoolean((String) settings.get(adminLogs)), + BooleanUtils.toBoolean((String) settings.get(adminAllRestApi)), + BooleanUtils.toBoolean((String) settings.get(adminAllBranchUtilsApi)), + BooleanUtils.toBoolean((String) settings.get(adminAllKeysApi)), + BooleanUtils.toBoolean((String) settings.get(adminAllDefaultReviewersApi)), + BooleanUtils.toBoolean((String) settings.get(adminAllBranchPermissionsApi)) + )); + } + + if(settings.get(projectPathPrefix) != null) { + config.setProjectPaths(new ProjectPaths( + BooleanUtils.toBoolean((String) settings.get(projectList)), + BooleanUtils.toBoolean((String) settings.get(projectPermissions)), + BooleanUtils.toBoolean((String) settings.get(projectRepoList)) + )); + } + + if(settings.get(repoPathPrefix) != null) { + config.setRepoPaths(new RepoPaths( + BooleanUtils.toBoolean((String) settings.get(repoPermissions)), + BooleanUtils.toBoolean((String) settings.get(repoCommitHistory)), + BooleanUtils.toBoolean((String) settings.get(repoFiles)), + BooleanUtils.toBoolean((String) settings.get(repoPullRequests)), + BooleanUtils.toBoolean((String) settings.get(repoParticipants)), + BooleanUtils.toBoolean((String) settings.get(repoBranchPermissions)), + BooleanUtils.toBoolean((String) settings.get(repoBuildStatus)), + BooleanUtils.toBoolean((String) settings.get(repoBaseDetails)), + BooleanUtils.toBoolean((String) settings.get(repoSync)) + )); + } + + if(settings.get(sshPathPrefix) != null) { + config.setSSHPaths(new SSHPaths( + BooleanUtils.toBoolean((String) settings.get(sshUserKeys)), + BooleanUtils.toBoolean((String) settings.get(sshRepoKeys)) + )); + } + + return config; + } + }); } public void setAdminConfig(final AdminConfig config) { @@ -159,20 +153,11 @@ public AdminConfig doInTransaction() { settings.put(sshRepoKeys, BooleanUtils.toStringTrueFalse(config.getSSHPaths().getRepoKeys())); } - setCache(config); return config; } }); } - private synchronized void setCache(AdminConfig config) { - this.cachedConfig = config; - } - - private synchronized AdminConfig getCache() { - return this.cachedConfig; - } - public static final String BASE = AdminConfig.class.getName(); public static final String adminPathPrefix = BASE + ".adminPaths"; diff --git a/src/main/resources/atlassian-plugin.xml b/src/main/resources/atlassian-plugin.xml index c767baf..cb8c402 100644 --- a/src/main/resources/atlassian-plugin.xml +++ b/src/main/resources/atlassian-plugin.xml @@ -5,6 +5,7 @@ images/pluginIcon.png images/pluginIcon.png + true