From 0dda448ac839e4ac83b884f9ce56c052a0c3aa4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Thu, 13 Jun 2019 06:24:35 +0200 Subject: [PATCH] Heed peer review --- .../MigrateVerbsToPermissionRoles.java | 21 +++++++++++++++---- .../update/repository/RepositoryUpdates.java | 10 --------- .../MigrateVerbsToPermissionRolesTest.java | 2 +- 3 files changed, 18 insertions(+), 15 deletions(-) delete mode 100644 scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryUpdates.java diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java index 56227b7b13..b8b00e1554 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java +++ b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java @@ -30,17 +30,19 @@ import java.util.Optional; import java.util.Set; @Extension -public class MigrateVerbsToPermissionRoles extends RepositoryUpdates.RepositoryUpdateType implements UpdateStep { +public class MigrateVerbsToPermissionRoles implements UpdateStep { public static final Logger LOG = LoggerFactory.getLogger(MigrateVerbsToPermissionRoles.class); private final SingleRepositoryUpdateProcessor updateProcessor; private final SystemRepositoryPermissionProvider systemRepositoryPermissionProvider; + private final JAXBContext jaxbContext; @Inject public MigrateVerbsToPermissionRoles(SingleRepositoryUpdateProcessor updateProcessor, SystemRepositoryPermissionProvider systemRepositoryPermissionProvider) { this.updateProcessor = updateProcessor; this.systemRepositoryPermissionProvider = systemRepositoryPermissionProvider; + jaxbContext = createJAXBContext(); } @Override @@ -57,7 +59,6 @@ public class MigrateVerbsToPermissionRoles extends RepositoryUpdates.RepositoryU private void writeNewRepository(Path path, Repository newRepository) { try { - JAXBContext jaxbContext = JAXBContext.newInstance(Repository.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.marshal(newRepository, path.resolve("metadata.xml").toFile()); @@ -68,7 +69,6 @@ public class MigrateVerbsToPermissionRoles extends RepositoryUpdates.RepositoryU private OldRepository readOldRepository(Path path) { try { - JAXBContext jaxbContext = JAXBContext.newInstance(OldRepository.class); return (OldRepository) jaxbContext.createUnmarshaller().unmarshal(path.resolve("metadata.xml").toFile()); } catch (JAXBException e) { throw new UpdateException("could not read old repository structure", e); @@ -115,9 +115,22 @@ public class MigrateVerbsToPermissionRoles extends RepositoryUpdates.RepositoryU return verbs.size() == r.getVerbs().size() && r.getVerbs().containsAll(verbs); } + private JAXBContext createJAXBContext() { + try { + return JAXBContext.newInstance(Repository.class); + } catch (JAXBException e) { + throw new UpdateException("could not create XML marshaller", e); + } + } + @Override public Version getTargetVersion() { - return Version.parse("2.0.0"); + return Version.parse("2.0.2"); + } + + @Override + public String getAffectedDataType() { + return "sonia.scm.repository.xml"; } @XmlAccessorType(XmlAccessType.FIELD) diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryUpdates.java b/scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryUpdates.java deleted file mode 100644 index 864f9aeb65..0000000000 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryUpdates.java +++ /dev/null @@ -1,10 +0,0 @@ -package sonia.scm.update.repository; - -public class RepositoryUpdates { - - static class RepositoryUpdateType { - public String getAffectedDataType() { - return "repository"; - } - } -} diff --git a/scm-webapp/src/test/java/sonia/scm/update/repository/MigrateVerbsToPermissionRolesTest.java b/scm-webapp/src/test/java/sonia/scm/update/repository/MigrateVerbsToPermissionRolesTest.java index 536af6e865..8d4ceb1a14 100644 --- a/scm-webapp/src/test/java/sonia/scm/update/repository/MigrateVerbsToPermissionRolesTest.java +++ b/scm-webapp/src/test/java/sonia/scm/update/repository/MigrateVerbsToPermissionRolesTest.java @@ -52,7 +52,7 @@ class MigrateVerbsToPermissionRolesTest { } @Test - void x(@TempDirectory.TempDir Path tempDir) throws IOException { + void shouldUpdateToRolesIfPossible(@TempDirectory.TempDir Path tempDir) throws IOException { migration.doUpdate(); List newMetadata = Files.readAllLines(tempDir.resolve("metadata.xml"));