Heed peer review

This commit is contained in:
René Pfeuffer
2019-06-13 06:24:35 +02:00
parent 7af5608aeb
commit 0dda448ac8
3 changed files with 18 additions and 15 deletions

View File

@@ -30,17 +30,19 @@ import java.util.Optional;
import java.util.Set; import java.util.Set;
@Extension @Extension
public class MigrateVerbsToPermissionRoles extends RepositoryUpdates.RepositoryUpdateType implements UpdateStep { public class MigrateVerbsToPermissionRoles implements UpdateStep {
public static final Logger LOG = LoggerFactory.getLogger(MigrateVerbsToPermissionRoles.class); public static final Logger LOG = LoggerFactory.getLogger(MigrateVerbsToPermissionRoles.class);
private final SingleRepositoryUpdateProcessor updateProcessor; private final SingleRepositoryUpdateProcessor updateProcessor;
private final SystemRepositoryPermissionProvider systemRepositoryPermissionProvider; private final SystemRepositoryPermissionProvider systemRepositoryPermissionProvider;
private final JAXBContext jaxbContext;
@Inject @Inject
public MigrateVerbsToPermissionRoles(SingleRepositoryUpdateProcessor updateProcessor, SystemRepositoryPermissionProvider systemRepositoryPermissionProvider) { public MigrateVerbsToPermissionRoles(SingleRepositoryUpdateProcessor updateProcessor, SystemRepositoryPermissionProvider systemRepositoryPermissionProvider) {
this.updateProcessor = updateProcessor; this.updateProcessor = updateProcessor;
this.systemRepositoryPermissionProvider = systemRepositoryPermissionProvider; this.systemRepositoryPermissionProvider = systemRepositoryPermissionProvider;
jaxbContext = createJAXBContext();
} }
@Override @Override
@@ -57,7 +59,6 @@ public class MigrateVerbsToPermissionRoles extends RepositoryUpdates.RepositoryU
private void writeNewRepository(Path path, Repository newRepository) { private void writeNewRepository(Path path, Repository newRepository) {
try { try {
JAXBContext jaxbContext = JAXBContext.newInstance(Repository.class);
Marshaller marshaller = jaxbContext.createMarshaller(); Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(newRepository, path.resolve("metadata.xml").toFile()); marshaller.marshal(newRepository, path.resolve("metadata.xml").toFile());
@@ -68,7 +69,6 @@ public class MigrateVerbsToPermissionRoles extends RepositoryUpdates.RepositoryU
private OldRepository readOldRepository(Path path) { private OldRepository readOldRepository(Path path) {
try { try {
JAXBContext jaxbContext = JAXBContext.newInstance(OldRepository.class);
return (OldRepository) jaxbContext.createUnmarshaller().unmarshal(path.resolve("metadata.xml").toFile()); return (OldRepository) jaxbContext.createUnmarshaller().unmarshal(path.resolve("metadata.xml").toFile());
} catch (JAXBException e) { } catch (JAXBException e) {
throw new UpdateException("could not read old repository structure", 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); 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 @Override
public Version getTargetVersion() { 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) @XmlAccessorType(XmlAccessType.FIELD)

View File

@@ -1,10 +0,0 @@
package sonia.scm.update.repository;
public class RepositoryUpdates {
static class RepositoryUpdateType {
public String getAffectedDataType() {
return "repository";
}
}
}

View File

@@ -52,7 +52,7 @@ class MigrateVerbsToPermissionRolesTest {
} }
@Test @Test
void x(@TempDirectory.TempDir Path tempDir) throws IOException { void shouldUpdateToRolesIfPossible(@TempDirectory.TempDir Path tempDir) throws IOException {
migration.doUpdate(); migration.doUpdate();
List<String> newMetadata = Files.readAllLines(tempDir.resolve("metadata.xml")); List<String> newMetadata = Files.readAllLines(tempDir.resolve("metadata.xml"));