From 3c98f67e1a5e888d928f17a6cf775b954b81151d Mon Sep 17 00:00:00 2001 From: Cristian Turlica Date: Fri, 8 Sep 2017 15:51:43 +0300 Subject: [PATCH 1/4] REPO-2705: Service Pack: MNT-17961: Cannot create new Alfresco NON-versioned document with CMIS API Calls - added possibility to create cmis document with VersioningState.NONE --- .../java/org/alfresco/opencmis/AlfrescoCmisServiceImpl.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceImpl.java b/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceImpl.java index 0e01b2d199..6da2629133 100644 --- a/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceImpl.java +++ b/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceImpl.java @@ -1283,11 +1283,6 @@ public class AlfrescoCmisServiceImpl extends AbstractCmisService implements Alfr throw new CmisConstraintException("This document type does requires content!"); } - if (docType.isVersionable() && (versioningState == VersioningState.NONE)) - { - throw new CmisConstraintException("This document type is versionable!"); - } - if (!docType.isVersionable() && (versioningState != VersioningState.NONE)) { throw new CmisConstraintException("This document type is not versionable!"); From d1216de8d447280952f5a4c32885144a33ddbb89 Mon Sep 17 00:00:00 2001 From: alandavis Date: Mon, 11 Sep 2017 09:09:33 +0100 Subject: [PATCH 2/4] Fix/mnt 18404 image magick fails on windows (#14) REMO-18404 Environment not being set for ImageMagick The environment required by ImageMagick was not being set. Even though the environment shown by log4j.logger.org.alfresco.util.exec.RuntimeExec=trace indicated that the required variables already existed in the current environment, that does not mean they are passed on to the sub process. In this case they were not being passed on and they were not being set as additional variables required by the sub process. The bug was introduced when Alfresco PDF renderer was added (REPO-2054) to ACS 5.2.1 and ACS 5.2.g. The context file for ImageMagic (imagemagick-transform-context.xml) was used as the basis for Alfresco PDF renderer's context file. Unfortunately the names of the spring beans that provided the Windows and Unix environment variable values were not changed. As a result, ImageMagick was being provided with Alfresco PDF renderer's environment variables. The Alfresco global property img.gslib and environment variable $GS_LIB set using it, are now redundant following the REPO-2054 work so have been removed in this commit. When testing this issue we should test ImageMagick and Alfresco PDF renderer on both Windows and Unix (Linux). I have not dug into why ImageMagick and Alfresco PDF renderer are working on Linux. I'm guessing that the current environment is being passed on unlike Windows. --- .gitignore | 3 + .../alfresco-global.properties.sample | 21 +++--- ...lfresco-pdf-renderer-transform-context.xml | 6 +- .../default/imagemagick-transform-context.xml | 9 +-- .../default/imagemagick-transform.properties | 1 - .../ImageMagickContentTransformerTest.java | 64 +++++++++++-------- 6 files changed, 57 insertions(+), 47 deletions(-) diff --git a/.gitignore b/.gitignore index 5cd20fa5aa..ff04b28cf1 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,6 @@ target # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* +alf_data +/src/main/resources/alfresco-global.properties +/src/main/resources/alfresco/extension/custom-log4j.properties diff --git a/src/main/resources/alfresco-global.properties.sample b/src/main/resources/alfresco-global.properties.sample index a76e00e0a1..781a79a9db 100644 --- a/src/main/resources/alfresco-global.properties.sample +++ b/src/main/resources/alfresco-global.properties.sample @@ -29,7 +29,6 @@ # #img.coders=${img.root}/modules/coders #img.config=${img.root}/config -#img.gslib=${img.root}/lib # # Property to control whether schema updates are performed automatically. @@ -69,16 +68,16 @@ #db.url=jdbc:postgresql://localhost:5432/alfresco # -# DB2 connection -# -#db.driver=com.ibm.db2.jcc.DB2Driver -#db.url=jdbc:db2://localhost:50000/alfresco:retrieveMessagesFromServerOnGetMessage=true; +# DB2 connection +# +#db.driver=com.ibm.db2.jcc.DB2Driver +#db.url=jdbc:db2://localhost:50000/alfresco:retrieveMessagesFromServerOnGetMessage=true; # # When schema is used which does not match DB2 username then currentSchema and hibernate.default_schema should be set #db.url=jdbc:db2://localhost:50000/alfresco:retrieveMessagesFromServerOnGetMessage=true;currentSchema=${hibernate.default_schema}; #hibernate.default_schema=SAMPLE_SCHEMA - -# + +# # Index Recovery Mode #------------- #index.recovery.mode=AUTO @@ -142,11 +141,11 @@ #imap.server.port=143 #imap.server.host=localhost -# Default value of alfresco.rmi.services.host is 0.0.0.0 which means 'listen on all adapters'. -# This allows connections to JMX both remotely and locally. +# Default value of alfresco.rmi.services.host is 0.0.0.0 which means 'listen on all adapters'. +# This allows connections to JMX both remotely and locally. # -alfresco.rmi.services.host=0.0.0.0 - +alfresco.rmi.services.host=0.0.0.0 + # # # Assign individual ports for each service for best performance diff --git a/src/main/resources/alfresco/subsystems/thirdparty/default/alfresco-pdf-renderer-transform-context.xml b/src/main/resources/alfresco/subsystems/thirdparty/default/alfresco-pdf-renderer-transform-context.xml index 08d4cacf74..024e724778 100644 --- a/src/main/resources/alfresco/subsystems/thirdparty/default/alfresco-pdf-renderer-transform-context.xml +++ b/src/main/resources/alfresco/subsystems/thirdparty/default/alfresco-pdf-renderer-transform-context.xml @@ -20,7 +20,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform-context.xml b/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform-context.xml index 5fc1f0c57f..6874cc5be2 100644 --- a/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform-context.xml +++ b/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform-context.xml @@ -22,7 +22,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -62,9 +62,6 @@ ${img.config} - - ${img.gslib} - ${img.dyn} @@ -75,7 +72,7 @@ - + diff --git a/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform.properties b/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform.properties index 281e763a3b..0c0512e3be 100644 --- a/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform.properties +++ b/src/main/resources/alfresco/subsystems/thirdparty/default/imagemagick-transform.properties @@ -4,4 +4,3 @@ img.dyn=${img.root}/lib img.exe=${img.root}/bin/convert img.coders=${img.root}/modules/coders img.config=${img.root}/config -img.gslib= diff --git a/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java b/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java index 1970caccd9..c7865b0bc8 100644 --- a/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java +++ b/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java @@ -1,28 +1,28 @@ -/* - * #%L - * Alfresco Repository - * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited - * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - * #L% - */ +/* + * #%L + * Alfresco Repository + * %% + * Copyright (C) 2005 - 2016 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ package org.alfresco.repo.content.transform.magick; import java.io.File; @@ -120,12 +120,24 @@ public class ImageMagickContentTransformerTest extends AbstractContentTransforme } } + public void testGifToPng() throws Exception + { + ImageTransformationOptions options = new ImageTransformationOptions(); + transform(MimetypeMap.MIMETYPE_IMAGE_GIF, MimetypeMap.MIMETYPE_IMAGE_PNG, options); + } + + public void testJpegToPng() throws Exception + { + ImageTransformationOptions options = new ImageTransformationOptions(); + transform(MimetypeMap.MIMETYPE_IMAGE_JPEG, MimetypeMap.MIMETYPE_IMAGE_PNG, options); + } + public void testPageSourceOptions() throws Exception { // Test empty source options ImageTransformationOptions options = new ImageTransformationOptions(); this.transform(MimetypeMap.MIMETYPE_PDF, MimetypeMap.MIMETYPE_IMAGE_PNG, options); - + // Test first page options = new ImageTransformationOptions(); List sourceOptionsList = new ArrayList(); From 28366861fcf8f5f46887d8f3ddea6ff4de931a8c Mon Sep 17 00:00:00 2001 From: Ancuta Morarasu Date: Fri, 8 Sep 2017 16:20:44 +0300 Subject: [PATCH 3/4] REPO-2705 / MNT-17961: Cannot create new Alfresco NON-versioned document with CMIS API Calls - test --- .../java/org/alfresco/opencmis/CMISTest.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/test/java/org/alfresco/opencmis/CMISTest.java b/src/test/java/org/alfresco/opencmis/CMISTest.java index dc1043a8a6..b0a69bb7cb 100644 --- a/src/test/java/org/alfresco/opencmis/CMISTest.java +++ b/src/test/java/org/alfresco/opencmis/CMISTest.java @@ -3668,6 +3668,64 @@ public class CMISTest AuthenticationUtil.popAuthentication(); } } + + @Test + public void testCreateDocWithVersioningStateNone() throws Exception + { + AuthenticationUtil.pushAuthentication(); + AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName()); + + try + { + // get repository id + final String repositoryId = withCmisService(new CmisServiceCallback() + { + @Override + public String execute(CmisService cmisService) + { + List repositories = cmisService.getRepositoryInfos(null); + assertTrue(repositories.size() > 0); + RepositoryInfo repo = repositories.get(0); + final String repositoryId = repo.getId(); + return repositoryId; + } + }, CmisVersion.CMIS_1_1); + + final NodeRef documentNodeRef = withCmisService(new CmisServiceCallback() + { + @Override + public NodeRef execute(CmisService cmisService) + { + final PropertiesImpl properties = new PropertiesImpl(); + String objectTypeId = "cmis:document"; + properties.addProperty(new PropertyIdImpl(PropertyIds.OBJECT_TYPE_ID, objectTypeId)); + String fileName = "textFile" + GUID.generate(); + properties.addProperty(new PropertyStringImpl(PropertyIds.NAME, fileName)); + final ContentStreamImpl contentStream = new ContentStreamImpl(fileName, MimetypeMap.MIMETYPE_TEXT_PLAIN, "Simple text plain document"); + + String nodeId = cmisService.create(repositoryId, properties, repositoryHelper.getCompanyHome().getId(), contentStream, VersioningState.NONE, null, null); + return new NodeRef(nodeId.substring(0, nodeId.indexOf(';'))); + } + }, CmisVersion.CMIS_1_1); + + // check versioning properties + transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback>() + { + @Override + public List execute() throws Throwable + { + assertTrue(nodeService.exists(documentNodeRef)); + assertFalse(nodeService.hasAspect(documentNodeRef, ContentModel.ASPECT_VERSIONABLE)); + + return null; + } + }); + } + finally + { + AuthenticationUtil.popAuthentication(); + } + } /** * MNT-14951: Test that the list of parents can be retrieved for a folder. From 7b24ed66b6c7ea12b42945c2ddf965ad8c286dcc Mon Sep 17 00:00:00 2001 From: Alex Mukha Date: Tue, 12 Sep 2017 11:09:29 +0100 Subject: [PATCH 4/4] REPO-2183 Update data-model to 6.18 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7154d23935..94b30fcb65 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 6.0 6.13 6.0 - 6.17 + 6.18 6.3 1.0