MMKB-5027: improve old semver update handling
This commit is contained in:
parent
cc624d1266
commit
ab6cc10529
2
pom.xml
2
pom.xml
@ -10,7 +10,7 @@
|
||||
</properties>
|
||||
<groupId>at.ucs.magnolia</groupId>
|
||||
<artifactId>ucs-intranet-magnolia-updates</artifactId>
|
||||
<version>2.0.0</version>
|
||||
<version>1.0.42</version>
|
||||
<name>ucs-intranet-magnolia-updates</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
package at.ucs.magnolia.updates;
|
||||
|
||||
import info.magnolia.module.delta.Task;
|
||||
import info.magnolia.module.delta.Delta;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IntranetUpdateModuleConfig {
|
||||
List<Task> getInitialUpdateTasks();
|
||||
List<Delta> getInitialUpdateDeltas();
|
||||
String getYamlUpdateDir();
|
||||
String getUpdateTaskPackage();
|
||||
}
|
||||
|
||||
@ -28,11 +28,13 @@ public class IntranetUpdateModuleVersionHandler extends DefaultModuleVersionHand
|
||||
public IntranetUpdateModuleVersionHandler(IntranetUpdateModuleConfig moduleConfig) {
|
||||
super();
|
||||
this.moduleConfig = moduleConfig;
|
||||
moduleConfig.getInitialUpdateDeltas()
|
||||
.forEach(super::register);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Task> getExtraInstallTasks(InstallContext installContext) {
|
||||
return getModuleConfig().getInitialUpdateTasks();
|
||||
return getModuleConfig().getInitialUpdateDeltas().stream().map(Delta::getTasks).flatMap(List::stream).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -41,6 +43,8 @@ public class IntranetUpdateModuleVersionHandler extends DefaultModuleVersionHand
|
||||
|
||||
if (from == null) {
|
||||
deltaList.add(getInstall(installContext));
|
||||
} else {
|
||||
deltaList.addAll(super.getUpdateDeltas(installContext,from));
|
||||
}
|
||||
|
||||
deltaList.addAll(getUpdateDeltas(installContext, from));
|
||||
@ -49,6 +53,7 @@ public class IntranetUpdateModuleVersionHandler extends DefaultModuleVersionHand
|
||||
|
||||
protected List<Delta> getUpdateDeltas(InstallContext installContext, Version from) {
|
||||
try {
|
||||
|
||||
context.initFromJCR(installContext);
|
||||
return new Reflections(
|
||||
getModuleConfig().getUpdateTaskPackage(),
|
||||
|
||||
@ -77,6 +77,7 @@ public class IntranetUpdateModuleVersionHandlerContext {
|
||||
} else {
|
||||
folderNode.setProperty(INSTALLED_TASKS, BigDecimal.ONE);
|
||||
}
|
||||
installContext.getConfigJCRSession().save();
|
||||
} catch (RepositoryException e) {
|
||||
log.error("Could not add version to JCR", e);
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import at.ucs.magnolia.updates.util.IntranetUpdateModuleVersionHandlerContext;
|
||||
import at.ucs.magnolia.updates.util.TaskWrapper;
|
||||
import info.magnolia.module.InstallContext;
|
||||
import info.magnolia.module.delta.Delta;
|
||||
import info.magnolia.module.delta.DeltaBuilder;
|
||||
import info.magnolia.module.delta.Task;
|
||||
import info.magnolia.module.model.ModuleDefinition;
|
||||
import info.magnolia.module.model.Version;
|
||||
@ -35,7 +36,7 @@ public class IntranetUpdateModuleVersionHandlerTest {
|
||||
when(moduleDefinition.getVersion()).thenReturn(Version.parseVersion("9.9.9"));
|
||||
IntranetUpdateModuleConfig config = new IntranetUpdateModuleConfig() {
|
||||
@Override
|
||||
public List<Task> getInitialUpdateTasks() {
|
||||
public List<Delta> getInitialUpdateDeltas() {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
@ -66,8 +67,8 @@ public class IntranetUpdateModuleVersionHandlerTest {
|
||||
when(moduleDefinition.getVersion()).thenReturn(null);
|
||||
IntranetUpdateModuleConfig config = new IntranetUpdateModuleConfig() {
|
||||
@Override
|
||||
public List<Task> getInitialUpdateTasks() {
|
||||
return List.of(new TestTask("install1","install1desc"));
|
||||
public List<Delta> getInitialUpdateDeltas() {
|
||||
return List.of(DeltaBuilder.update( Version.parseVersion("0.0.1"), "", new TestTask("install1","install1desc")));
|
||||
}
|
||||
@Override
|
||||
public String getYamlUpdateDir() {
|
||||
@ -96,8 +97,9 @@ public class IntranetUpdateModuleVersionHandlerTest {
|
||||
when(moduleDefinition.getVersion()).thenReturn(Version.parseVersion("9.9.9"));
|
||||
IntranetUpdateModuleConfig config = new IntranetUpdateModuleConfig() {
|
||||
@Override
|
||||
public List<Task> getInitialUpdateTasks() {
|
||||
return List.of(new TestTask("install1","install1desc"));
|
||||
public List<Delta> getInitialUpdateDeltas() {
|
||||
return List.of(DeltaBuilder.update( Version.parseVersion("0.0.1"), "", new TestTask("install1","install1desc")));
|
||||
|
||||
}
|
||||
@Override
|
||||
public String getYamlUpdateDir() {
|
||||
@ -117,7 +119,7 @@ public class IntranetUpdateModuleVersionHandlerTest {
|
||||
assertThat("count of testtask must be 1", matching.size(), equalTo(1));
|
||||
}
|
||||
|
||||
private void mockVersionUtil(IntranetUpdateModuleVersionHandlerContext contextMock) throws RepositoryException {
|
||||
private void mockVersionUtil(IntranetUpdateModuleVersionHandlerContext contextMock) {
|
||||
doNothing().when(contextMock).initFromJCR(Mockito.any());
|
||||
when(contextMock.alreadyApplied(Mockito.any()))
|
||||
.thenAnswer(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user