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();
     }

Reply via email to