diff --git a/source/java/org/alfresco/repo/version/Version2ServiceImpl.java b/source/java/org/alfresco/repo/version/Version2ServiceImpl.java index e586532fcc..751d8789ed 100644 --- a/source/java/org/alfresco/repo/version/Version2ServiceImpl.java +++ b/source/java/org/alfresco/repo/version/Version2ServiceImpl.java @@ -326,6 +326,12 @@ public class Version2ServiceImpl extends VersionServiceImpl implements VersionSe nodeRef, ContentModel.PROP_VERSION_LABEL, version.getVersionLabel()); + + // Set the version type (MNT-14681 fix) + this.nodeService.setProperty( + nodeRef, + ContentModel.PROP_VERSION_TYPE, + version.getVersionType()); } finally { diff --git a/source/test-java/org/alfresco/repo/version/VersionServiceImplTest.java b/source/test-java/org/alfresco/repo/version/VersionServiceImplTest.java index 92b41259a2..c4e7bb4cbc 100644 --- a/source/test-java/org/alfresco/repo/version/VersionServiceImplTest.java +++ b/source/test-java/org/alfresco/repo/version/VersionServiceImplTest.java @@ -2258,6 +2258,29 @@ public class VersionServiceImplTest extends BaseVersionStoreTest assertEquals(editionCodeArchive.getClass(), Integer.class); } + /** + * Check that the version type property is actually set when creating a new version. + * + * @see https://issues.alfresco.com/jira/browse/MNT-14681 + */ + public void testVersionTypeIsSet() + { + ChildAssociationRef childAssociation = nodeService.createNode(this.rootNodeRef, ContentModel.ASSOC_CHILDREN, + QName.createQName("http://www.alfresco.org/test/versiontypeissettest/1.0", "versionTypeIsSetTest"), TEST_TYPE_QNAME); + + NodeRef newNode = childAssociation.getChildRef(); + assertNull(nodeService.getProperty(newNode, ContentModel.PROP_VERSION_TYPE)); + + Map versionProps = new HashMap(1); + versionProps.put(VersionModel.PROP_VERSION_TYPE, VersionType.MINOR); + + versionService.createVersion(newNode, versionProps); + + Serializable versionTypeProperty = nodeService.getProperty(newNode, ContentModel.PROP_VERSION_TYPE); + assertNotNull(versionTypeProperty); + assertTrue(versionTypeProperty.toString().equals(VersionType.MINOR.toString())); + } + /** * Check read permission for the frozen node */ diff --git a/source/test-java/org/alfresco/repo/version/VersionableAspectTest.java b/source/test-java/org/alfresco/repo/version/VersionableAspectTest.java index 5197d7263a..cf85eb44e6 100644 --- a/source/test-java/org/alfresco/repo/version/VersionableAspectTest.java +++ b/source/test-java/org/alfresco/repo/version/VersionableAspectTest.java @@ -201,7 +201,7 @@ public class VersionableAspectTest extends TestCase } }); - assertDocumentVersionAndName("1.0", name02); + assertDocumentVersionAndName("1.0", name02, VersionType.MAJOR); transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback() { @@ -214,7 +214,7 @@ public class VersionableAspectTest extends TestCase } }); - assertDocumentVersionAndName("1.1", name11); + assertDocumentVersionAndName("1.1", name11, VersionType.MINOR); } public void testAutoVersionIncrementOnPropertiesUpdateByLockOwnerAlf14584() throws Exception @@ -258,6 +258,11 @@ public class VersionableAspectTest extends TestCase } private void assertDocumentVersionAndName(final String versionLabel, final String name) + { + assertDocumentVersionAndName(versionLabel, name, null); + } + + private void assertDocumentVersionAndName(final String versionLabel, final String name, final VersionType versionType) { transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback() { @@ -267,6 +272,13 @@ public class VersionableAspectTest extends TestCase Map properties = getAndAssertProperties(document, versionLabel); assertEquals(name, properties.get(ContentModel.PROP_NAME)); + if (versionType != null) + { + Serializable versionTypeProperty = nodeService.getProperty(document, ContentModel.PROP_VERSION_TYPE); + assertNotNull(versionTypeProperty); + assertTrue(versionTypeProperty.toString().equals(versionType.toString())); + } + return null; } }, true);