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