fixing producer for creation objects with custom model
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d275e67a Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d275e67a Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d275e67a Branch: refs/heads/master Commit: d275e67a7c7739d354a7070d92a3974b0979f354 Parents: dbf8be1 Author: bava...@gmail.com <bava...@gmail.com> Authored: Fri Jan 23 15:42:04 2015 +0300 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Jan 29 07:36:12 2015 +0100 ---------------------------------------------------------------------- .../org/apache/camel/component/cmis/CMISProducer.java | 4 ++-- .../apache/camel/component/cmis/CMISSessionFacade.java | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/d275e67a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java index 44496fb..cf71b43 100644 --- a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java +++ b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISProducer.java @@ -102,7 +102,7 @@ public class CMISProducer extends DefaultProducer { private boolean isFolder(Message message) { String baseTypeId = message.getHeader(PropertyIds.OBJECT_TYPE_ID, String.class); if (baseTypeId != null) { - return baseTypeId.equals(CamelCMISConstants.CMIS_FOLDER); + return CamelCMISConstants.CMIS_FOLDER.equals(cmisSessionFacade.getCMISTypeFor(baseTypeId)); } return message.getBody() == null; } @@ -137,7 +137,7 @@ public class CMISProducer extends DefaultProducer { private boolean isDocument(Exchange exchange) { String baseTypeId = exchange.getIn().getHeader(PropertyIds.OBJECT_TYPE_ID, String.class); if (baseTypeId != null) { - return baseTypeId.equals(CamelCMISConstants.CMIS_DOCUMENT); + return CamelCMISConstants.CMIS_DOCUMENT.equals(cmisSessionFacade.getCMISTypeFor(baseTypeId)); } return exchange.getIn().getBody() != null; } http://git-wip-us.apache.org/repos/asf/camel/blob/d275e67a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISSessionFacade.java ---------------------------------------------------------------------- diff --git a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISSessionFacade.java b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISSessionFacade.java index ff03d91..8ea367e 100644 --- a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISSessionFacade.java +++ b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISSessionFacade.java @@ -190,10 +190,8 @@ public class CMISSessionFacade { } public boolean isObjectTypeVersionable(String objectType) { - ObjectType typeDefinition = session.getTypeDefinition(objectType); - ObjectType objectBaseType = typeDefinition.getBaseType(); - if (CamelCMISConstants.CMIS_DOCUMENT.equals(objectType) - || (objectBaseType != null && CamelCMISConstants.CMIS_DOCUMENT.equals(objectBaseType.getId()))) { + if (CamelCMISConstants.CMIS_DOCUMENT.equals(getCMISTypeFor(objectType))) { + ObjectType typeDefinition = session.getTypeDefinition(objectType); return ((DocumentType)typeDefinition).isVersionable(); } return false; @@ -203,7 +201,12 @@ public class CMISSessionFacade { return buf != null ? session.getObjectFactory() .createContentStream(fileName, buf.length, mimeType, new ByteArrayInputStream(buf)) : null; } - + + public String getCMISTypeFor(String customOrCMISType) { + ObjectType objectBaseType = session.getTypeDefinition(customOrCMISType).getBaseType(); + return objectBaseType == null ? customOrCMISType : objectBaseType.getId(); + } + public OperationContext createOperationContext() { return session.createOperationContext(); }