You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/07/19 11:32:02 UTC
[2/2] camel git commit: Upgrade cmis and fixed CS
Upgrade cmis and fixed CS
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c1e500b0
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c1e500b0
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c1e500b0
Branch: refs/heads/master
Commit: c1e500b0965e7a1afdd0ac97b4e4242f981c7e8b
Parents: e9703d3
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jul 19 11:37:30 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jul 19 11:37:30 2015 +0200
----------------------------------------------------------------------
.../camel/component/cmis/CMISProducer.java | 278 +++++++++----------
.../camel/component/cmis/CMISSessionFacade.java | 35 ++-
.../camel/component/cmis/CMISProducerTest.java | 34 +--
parent/pom.xml | 2 +-
4 files changed, 177 insertions(+), 172 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/c1e500b0/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 49e4f80..f3d1b76 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
@@ -43,143 +43,143 @@ import org.slf4j.LoggerFactory;
* The CMIS producer.
*/
public class CMISProducer extends DefaultProducer {
- private static final Logger LOG = LoggerFactory.getLogger(CMISProducer.class);
- private final CMISSessionFacade cmisSessionFacade;
-
- public CMISProducer(CMISEndpoint endpoint, CMISSessionFacade cmisSessionFacade) {
- super(endpoint);
- this.cmisSessionFacade = cmisSessionFacade;
- }
-
- public void process(Exchange exchange) throws Exception {
- CmisObject cmisObject = createNode(exchange);
- LOG.debug("Created node with id: {}", cmisObject.getId());
- exchange.getOut().setBody(cmisObject.getId());
- }
-
- private Map<String, Object> filterTypeProperties(Map<String, Object> properties) {
- Map<String, Object> result = new HashMap<String, Object>(properties.size());
-
- String objectTypeName = CamelCMISConstants.CMIS_DOCUMENT;
- if (properties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
- objectTypeName = (String) properties.get(PropertyIds.OBJECT_TYPE_ID);
- }
-
- Set<String> types = new HashSet<String>();
- types.addAll(cmisSessionFacade.getPropertiesFor(objectTypeName));
-
- if (cmisSessionFacade.supportsSecondaries() && properties.containsKey(PropertyIds.SECONDARY_OBJECT_TYPE_IDS)) {
- @SuppressWarnings("unchecked")
- Collection<String> secondaryTypes = (Collection<String>) properties.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS);
- for (String secondaryType : secondaryTypes) {
- types.addAll(cmisSessionFacade.getPropertiesFor(secondaryType));
- }
- }
-
- for (Map.Entry<String, Object> entry : properties.entrySet()) {
- if (types.contains(entry.getKey())) {
- result.put(entry.getKey(), entry.getValue());
- }
- }
- return result;
- }
-
- private CmisObject createNode(Exchange exchange) throws Exception {
- validateRequiredHeader(exchange, PropertyIds.NAME);
-
- Message message = exchange.getIn();
- String parentFolderPath = parentFolderPathFor(message);
- Folder parentFolder = getFolderOnPath(exchange, parentFolderPath);
- Map<String, Object> cmisProperties = filterTypeProperties(message.getHeaders());
-
- if (isDocument(exchange)) {
- String fileName = message.getHeader(PropertyIds.NAME, String.class);
- String mimeType = getMimeType(message);
- byte[] buf = getBodyData(message);
- ContentStream contentStream = cmisSessionFacade.createContentStream(fileName, buf, mimeType);
- return storeDocument(parentFolder, cmisProperties, contentStream);
- } else if (isFolder(message)) {
- return storeFolder(parentFolder, cmisProperties);
- } else { // other types
- return storeDocument(parentFolder, cmisProperties, null);
- }
- }
-
- private Folder getFolderOnPath(Exchange exchange, String path) {
- try {
- return (Folder) cmisSessionFacade.getObjectByPath(path);
- } catch (CmisObjectNotFoundException e) {
- throw new RuntimeExchangeException("Path not found " + path, exchange, e);
- }
- }
-
- private String parentFolderPathFor(Message message) {
- String customPath = message.getHeader(CamelCMISConstants.CMIS_FOLDER_PATH, String.class);
- if (customPath != null) {
- return customPath;
- }
-
- if (isFolder(message)) {
- String path = (String) message.getHeader(PropertyIds.PATH);
- String name = (String) message.getHeader(PropertyIds.NAME);
- if (path != null && path.length() > name.length()) {
- return path.substring(0, path.length() - name.length());
- }
- }
-
- return "/";
- }
-
- private boolean isFolder(Message message) {
- String baseTypeId = message.getHeader(PropertyIds.OBJECT_TYPE_ID, String.class);
- if (baseTypeId != null) {
- return CamelCMISConstants.CMIS_FOLDER.equals(cmisSessionFacade.getCMISTypeFor(baseTypeId));
- }
- return message.getBody() == null;
- }
-
- private Folder storeFolder(Folder parentFolder, Map<String, Object> cmisProperties) {
- if (!cmisProperties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
- cmisProperties.put(PropertyIds.OBJECT_TYPE_ID, CamelCMISConstants.CMIS_FOLDER);
- }
- LOG.debug("Creating folder with properties: {}", cmisProperties);
- return parentFolder.createFolder(cmisProperties);
- }
-
- private Document storeDocument(Folder parentFolder, Map<String, Object> cmisProperties, ContentStream contentStream) {
- if (!cmisProperties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
- cmisProperties.put(PropertyIds.OBJECT_TYPE_ID, CamelCMISConstants.CMIS_DOCUMENT);
- }
-
- VersioningState versioningState = VersioningState.NONE;
- if (cmisSessionFacade.isObjectTypeVersionable((String) cmisProperties.get(PropertyIds.OBJECT_TYPE_ID))) {
- versioningState = VersioningState.MAJOR;
- }
- LOG.debug("Creating document with properties: {}", cmisProperties);
- return parentFolder.createDocument(cmisProperties, contentStream, versioningState);
- }
-
- private void validateRequiredHeader(Exchange exchange, String name) throws NoSuchHeaderException {
- ExchangeHelper.getMandatoryHeader(exchange, name, String.class);
- }
-
- private boolean isDocument(Exchange exchange) {
- String baseTypeId = exchange.getIn().getHeader(PropertyIds.OBJECT_TYPE_ID, String.class);
- if (baseTypeId != null) {
- return CamelCMISConstants.CMIS_DOCUMENT.equals(cmisSessionFacade.getCMISTypeFor(baseTypeId));
- }
- return exchange.getIn().getBody() != null;
- }
-
- private byte[] getBodyData(Message message) {
- return message.getBody(byte[].class);
- }
-
- private String getMimeType(Message message) throws NoSuchHeaderException {
- String mimeType = message.getHeader(PropertyIds.CONTENT_STREAM_MIME_TYPE, String.class);
- if (mimeType == null) {
- mimeType = MessageHelper.getContentType(message);
- }
- return mimeType;
- }
+ private static final Logger LOG = LoggerFactory.getLogger(CMISProducer.class);
+ private final CMISSessionFacade cmisSessionFacade;
+
+ public CMISProducer(CMISEndpoint endpoint, CMISSessionFacade cmisSessionFacade) {
+ super(endpoint);
+ this.cmisSessionFacade = cmisSessionFacade;
+ }
+
+ public void process(Exchange exchange) throws Exception {
+ CmisObject cmisObject = createNode(exchange);
+ LOG.debug("Created node with id: {}", cmisObject.getId());
+ exchange.getOut().setBody(cmisObject.getId());
+ }
+
+ private Map<String, Object> filterTypeProperties(Map<String, Object> properties) {
+ Map<String, Object> result = new HashMap<String, Object>(properties.size());
+
+ String objectTypeName = CamelCMISConstants.CMIS_DOCUMENT;
+ if (properties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
+ objectTypeName = (String) properties.get(PropertyIds.OBJECT_TYPE_ID);
+ }
+
+ Set<String> types = new HashSet<String>();
+ types.addAll(cmisSessionFacade.getPropertiesFor(objectTypeName));
+
+ if (cmisSessionFacade.supportsSecondaries() && properties.containsKey(PropertyIds.SECONDARY_OBJECT_TYPE_IDS)) {
+ @SuppressWarnings("unchecked")
+ Collection<String> secondaryTypes = (Collection<String>) properties.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS);
+ for (String secondaryType : secondaryTypes) {
+ types.addAll(cmisSessionFacade.getPropertiesFor(secondaryType));
+ }
+ }
+
+ for (Map.Entry<String, Object> entry : properties.entrySet()) {
+ if (types.contains(entry.getKey())) {
+ result.put(entry.getKey(), entry.getValue());
+ }
+ }
+ return result;
+ }
+
+ private CmisObject createNode(Exchange exchange) throws Exception {
+ validateRequiredHeader(exchange, PropertyIds.NAME);
+
+ Message message = exchange.getIn();
+ String parentFolderPath = parentFolderPathFor(message);
+ Folder parentFolder = getFolderOnPath(exchange, parentFolderPath);
+ Map<String, Object> cmisProperties = filterTypeProperties(message.getHeaders());
+
+ if (isDocument(exchange)) {
+ String fileName = message.getHeader(PropertyIds.NAME, String.class);
+ String mimeType = getMimeType(message);
+ byte[] buf = getBodyData(message);
+ ContentStream contentStream = cmisSessionFacade.createContentStream(fileName, buf, mimeType);
+ return storeDocument(parentFolder, cmisProperties, contentStream);
+ } else if (isFolder(message)) {
+ return storeFolder(parentFolder, cmisProperties);
+ } else { // other types
+ return storeDocument(parentFolder, cmisProperties, null);
+ }
+ }
+
+ private Folder getFolderOnPath(Exchange exchange, String path) {
+ try {
+ return (Folder) cmisSessionFacade.getObjectByPath(path);
+ } catch (CmisObjectNotFoundException e) {
+ throw new RuntimeExchangeException("Path not found " + path, exchange, e);
+ }
+ }
+
+ private String parentFolderPathFor(Message message) {
+ String customPath = message.getHeader(CamelCMISConstants.CMIS_FOLDER_PATH, String.class);
+ if (customPath != null) {
+ return customPath;
+ }
+
+ if (isFolder(message)) {
+ String path = (String) message.getHeader(PropertyIds.PATH);
+ String name = (String) message.getHeader(PropertyIds.NAME);
+ if (path != null && path.length() > name.length()) {
+ return path.substring(0, path.length() - name.length());
+ }
+ }
+
+ return "/";
+ }
+
+ private boolean isFolder(Message message) {
+ String baseTypeId = message.getHeader(PropertyIds.OBJECT_TYPE_ID, String.class);
+ if (baseTypeId != null) {
+ return CamelCMISConstants.CMIS_FOLDER.equals(cmisSessionFacade.getCMISTypeFor(baseTypeId));
+ }
+ return message.getBody() == null;
+ }
+
+ private Folder storeFolder(Folder parentFolder, Map<String, Object> cmisProperties) {
+ if (!cmisProperties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
+ cmisProperties.put(PropertyIds.OBJECT_TYPE_ID, CamelCMISConstants.CMIS_FOLDER);
+ }
+ LOG.debug("Creating folder with properties: {}", cmisProperties);
+ return parentFolder.createFolder(cmisProperties);
+ }
+
+ private Document storeDocument(Folder parentFolder, Map<String, Object> cmisProperties, ContentStream contentStream) {
+ if (!cmisProperties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
+ cmisProperties.put(PropertyIds.OBJECT_TYPE_ID, CamelCMISConstants.CMIS_DOCUMENT);
+ }
+
+ VersioningState versioningState = VersioningState.NONE;
+ if (cmisSessionFacade.isObjectTypeVersionable((String) cmisProperties.get(PropertyIds.OBJECT_TYPE_ID))) {
+ versioningState = VersioningState.MAJOR;
+ }
+ LOG.debug("Creating document with properties: {}", cmisProperties);
+ return parentFolder.createDocument(cmisProperties, contentStream, versioningState);
+ }
+
+ private void validateRequiredHeader(Exchange exchange, String name) throws NoSuchHeaderException {
+ ExchangeHelper.getMandatoryHeader(exchange, name, String.class);
+ }
+
+ private boolean isDocument(Exchange exchange) {
+ String baseTypeId = exchange.getIn().getHeader(PropertyIds.OBJECT_TYPE_ID, String.class);
+ if (baseTypeId != null) {
+ return CamelCMISConstants.CMIS_DOCUMENT.equals(cmisSessionFacade.getCMISTypeFor(baseTypeId));
+ }
+ return exchange.getIn().getBody() != null;
+ }
+
+ private byte[] getBodyData(Message message) {
+ return message.getBody(byte[].class);
+ }
+
+ private String getMimeType(Message message) throws NoSuchHeaderException {
+ String mimeType = message.getHeader(PropertyIds.CONTENT_STREAM_MIME_TYPE, String.class);
+ if (mimeType == null) {
+ mimeType = MessageHelper.getContentType(message);
+ }
+ return mimeType;
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/c1e500b0/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 34d6a4a..0006c2b 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
@@ -18,7 +18,11 @@ package org.apache.camel.component.cmis;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriParams;
@@ -169,9 +173,9 @@ public class CMISSessionFacade {
public Document getDocument(QueryResult queryResult) {
if (CamelCMISConstants.CMIS_DOCUMENT.equals(queryResult.getPropertyValueById(PropertyIds.OBJECT_TYPE_ID))
- || CamelCMISConstants.CMIS_DOCUMENT.equals(queryResult.getPropertyValueById(PropertyIds.BASE_TYPE_ID))) {
- String objectId = (String)queryResult.getPropertyById(PropertyIds.OBJECT_ID).getFirstValue();
- return (org.apache.chemistry.opencmis.client.api.Document)session.getObject(objectId);
+ || CamelCMISConstants.CMIS_DOCUMENT.equals(queryResult.getPropertyValueById(PropertyIds.BASE_TYPE_ID))) {
+ String objectId = (String) queryResult.getPropertyById(PropertyIds.OBJECT_ID).getFirstValue();
+ return (org.apache.chemistry.opencmis.client.api.Document) session.getObject(objectId);
}
return null;
}
@@ -191,21 +195,22 @@ public class CMISSessionFacade {
public boolean isObjectTypeVersionable(String objectType) {
if (CamelCMISConstants.CMIS_DOCUMENT.equals(getCMISTypeFor(objectType))) {
ObjectType typeDefinition = session.getTypeDefinition(objectType);
- return ((DocumentType)typeDefinition).isVersionable();
+ return ((DocumentType) typeDefinition).isVersionable();
}
return false;
}
- public boolean supportsSecondaries() {
- if (session.getRepositoryInfo().getCmisVersion() == CmisVersion.CMIS_1_0)
- return false;
- for (ObjectType type : session.getTypeChildren(null, false)) {
- if (BaseTypeId.CMIS_SECONDARY.value().equals(type.getId())) {
- return true;
- }
- }
- return false;
- }
+ public boolean supportsSecondaries() {
+ if (session.getRepositoryInfo().getCmisVersion() == CmisVersion.CMIS_1_0) {
+ return false;
+ }
+ for (ObjectType type : session.getTypeChildren(null, false)) {
+ if (BaseTypeId.CMIS_SECONDARY.value().equals(type.getId())) {
+ return true;
+ }
+ }
+ return false;
+ }
public ContentStream createContentStream(String fileName, byte[] buf, String mimeType) throws Exception {
return buf != null ? session.getObjectFactory()
http://git-wip-us.apache.org/repos/asf/camel/blob/c1e500b0/components/camel-cmis/src/test/java/org/apache/camel/component/cmis/CMISProducerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cmis/src/test/java/org/apache/camel/component/cmis/CMISProducerTest.java b/components/camel-cmis/src/test/java/org/apache/camel/component/cmis/CMISProducerTest.java
index 6cb0445..06e1cab 100644
--- a/components/camel-cmis/src/test/java/org/apache/camel/component/cmis/CMISProducerTest.java
+++ b/components/camel-cmis/src/test/java/org/apache/camel/component/cmis/CMISProducerTest.java
@@ -65,7 +65,7 @@ public class CMISProducerTest extends CMISTestSupport {
String newNodeId = exchange.getOut().getBody(String.class);
CmisObject cmisObject = retrieveCMISObjectByIdFromServer(newNodeId);
- Document doc = (Document)cmisObject;
+ Document doc = (Document) cmisObject;
assertEquals("text/plain", doc.getPropertyValue(PropertyIds.CONTENT_STREAM_MIME_TYPE));
}
@@ -94,7 +94,7 @@ public class CMISProducerTest extends CMISTestSupport {
assertNotNull(newNodeId);
CmisObject cmisObject = retrieveCMISObjectByIdFromServer(newNodeId);
- Document doc = (Document)cmisObject;
+ Document doc = (Document) cmisObject;
assertEquals("cmis:document", doc.getPropertyValue(PropertyIds.OBJECT_TYPE_ID));
}
@@ -127,24 +127,24 @@ public class CMISProducerTest extends CMISTestSupport {
newNode.getPropertyValue(PropertyIds.CONTENT_STREAM_MIME_TYPE));
}
- @Test
- public void cmisSecondaryTypePropertiesAreStored() throws Exception {
+ @Test
+ public void cmisSecondaryTypePropertiesAreStored() throws Exception {
- List<String> secondaryTypes = Arrays.asList("MySecondaryType");
+ List<String> secondaryTypes = Arrays.asList("MySecondaryType");
- Exchange exchange = createExchangeWithInBody("Some content to be store");
- exchange.getIn().getHeaders().put(PropertyIds.CONTENT_STREAM_MIME_TYPE, "text/plain; charset=UTF-8");
- exchange.getIn().getHeaders().put(PropertyIds.NAME, "test.txt");
- exchange.getIn().getHeaders().put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, secondaryTypes);
- exchange.getIn().getHeaders().put("SecondaryStringProp", "secondaryTypePropValue");
+ Exchange exchange = createExchangeWithInBody("Some content to be store");
+ exchange.getIn().getHeaders().put(PropertyIds.CONTENT_STREAM_MIME_TYPE, "text/plain; charset=UTF-8");
+ exchange.getIn().getHeaders().put(PropertyIds.NAME, "test.txt");
+ exchange.getIn().getHeaders().put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, secondaryTypes);
+ exchange.getIn().getHeaders().put("SecondaryStringProp", "secondaryTypePropValue");
- template.send(exchange);
- String newNodeId = exchange.getOut().getBody(String.class);
- CmisObject newNode = retrieveCMISObjectByIdFromServer(newNodeId);
+ template.send(exchange);
+ String newNodeId = exchange.getOut().getBody(String.class);
+ CmisObject newNode = retrieveCMISObjectByIdFromServer(newNodeId);
- assertEquals(1, newNode.getSecondaryTypes().size());
- assertEquals("secondaryTypePropValue", newNode.getPropertyValue("SecondaryStringProp"));
- }
+ assertEquals(1, newNode.getSecondaryTypes().size());
+ assertEquals("secondaryTypePropValue", newNode.getPropertyValue("SecondaryStringProp"));
+ }
@Test(expected = ResolveEndpointFailedException.class)
public void failConnectingToNonExistingRepository() throws Exception {
@@ -171,7 +171,7 @@ public class CMISProducerTest extends CMISTestSupport {
template.send(exchange);
String newNodeId = exchange.getOut().getBody(String.class);
- Document document = (Document)retrieveCMISObjectByIdFromServer(newNodeId);
+ Document document = (Document) retrieveCMISObjectByIdFromServer(newNodeId);
String documentFullPath = document.getPaths().get(0);
assertEquals(existingFolderStructure + "/test.file", documentFullPath);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/c1e500b0/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index d826219..0e001d6 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -90,7 +90,7 @@
<cglib-version>2.2</cglib-version>
<chunk-templates-version>3.0.0</chunk-templates-version>
<classmate-version>1.0.0</classmate-version>
- <cmis-version>0.8.0</cmis-version>
+ <cmis-version>0.13.0</cmis-version>
<cometd-bayeux-version>6.1.11</cometd-bayeux-version>
<cometd-java-client-version>2.4.3</cometd-java-client-version>
<cometd-java-server-bundle-version>2.3.1_2</cometd-java-server-bundle-version>