This commit is contained in:
Eduard Heimbuch
2019-11-19 14:23:05 +01:00
parent 2ec98c2763
commit e432d6d210
4 changed files with 6 additions and 11 deletions

View File

@@ -14,7 +14,6 @@ import sonia.scm.user.xml.XmlUserDAO;
import sonia.scm.version.Version;
import javax.inject.Inject;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import static sonia.scm.version.Version.parse;
@@ -42,9 +41,8 @@ public class PublicFlagUpdateStep implements UpdateStep {
createNewAnonymousUserIfNotExists();
deleteOldAnonymousUserIfAvailable();
JAXBContext jaxbContext = JAXBContext.newInstance(V1RepositoryHelper.V1RepositoryDatabase.class);
LOG.info("Migrating public flags of repositories as RepositoryRolePermission 'READ' for user '_anonymous'");
V1RepositoryHelper.readV1Database(jaxbContext, contextProvider, V1_REPOSITORY_BACKUP_FILENAME).ifPresent(
V1RepositoryHelper.readV1Database(contextProvider, V1_REPOSITORY_BACKUP_FILENAME).ifPresent(
this::addRepositoryReadPermissionForAnonymousUser
);
}

View File

@@ -26,8 +26,9 @@ class V1RepositoryHelper {
).toFile();
}
static Optional<V1RepositoryDatabase> readV1Database(JAXBContext jaxbContext, SCMContextProvider contextProvider, String filename) throws JAXBException {
Object unmarshal = jaxbContext.createUnmarshaller().unmarshal(resolveV1File(contextProvider,filename));
static Optional<V1RepositoryDatabase> readV1Database(SCMContextProvider contextProvider, String filename) throws JAXBException {
JAXBContext jaxbContext = JAXBContext.newInstance(V1RepositoryDatabase.class);
Object unmarshal = jaxbContext.createUnmarshaller().unmarshal(resolveV1File(contextProvider, filename));
if (unmarshal instanceof V1RepositoryHelper.V1RepositoryDatabase) {
return of((V1RepositoryHelper.V1RepositoryDatabase) unmarshal);
} else {

View File

@@ -17,7 +17,6 @@ import sonia.scm.update.V1Properties;
import sonia.scm.version.Version;
import javax.inject.Inject;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import java.io.IOException;
import java.nio.file.Files;
@@ -96,8 +95,7 @@ public class XmlRepositoryV1UpdateStep implements CoreUpdateStep {
LOG.info("no v1 repositories database file found");
return;
}
JAXBContext jaxbContext = JAXBContext.newInstance(V1RepositoryHelper.V1RepositoryDatabase.class);
V1RepositoryHelper.readV1Database(jaxbContext, contextProvider, V1_REPOSITORY_FILENAME).ifPresent(
V1RepositoryHelper.readV1Database(contextProvider, V1_REPOSITORY_FILENAME).ifPresent(
v1Database -> {
v1Database.repositoryList.repositories.forEach(this::readMigrationEntry);
v1Database.repositoryList.repositories.forEach(this::update);
@@ -112,8 +110,7 @@ public class XmlRepositoryV1UpdateStep implements CoreUpdateStep {
return emptyList();
}
try {
JAXBContext jaxbContext = JAXBContext.newInstance(V1RepositoryHelper.V1RepositoryDatabase.class);
return V1RepositoryHelper.readV1Database(jaxbContext, contextProvider, V1_REPOSITORY_FILENAME)
return V1RepositoryHelper.readV1Database(contextProvider, V1_REPOSITORY_FILENAME)
.map(v1Database -> v1Database.repositoryList.repositories.stream())
.orElse(Stream.empty())
.filter(v1Repository -> !this.findMigrationStrategy(v1Repository).isPresent())