manifoldcf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From piergior...@apache.org
Subject svn commit: r1815617 - in /manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src: main/java/org/apache/manifoldcf/agents/output/cmisoutput/ main/java/org/apache/manifoldcf/crawler/connectors/cmis/ test/java/org/apache/manifoldcf/agent...
Date Fri, 17 Nov 2017 19:57:38 GMT
Author: piergiorgio
Date: Fri Nov 17 19:57:38 2017
New Revision: 1815617

URL: http://svn.apache.org/viewvc?rev=1815617&view=rev
Log:
the contentPath now is managed correctly in the documentURI as a parameter in query string
(CONNECTORS-1356)

Modified:
    manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/agents/output/cmisoutput/CmisOutputConnector.java
    manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
    manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/agents/output/cmisoutput/tests/APISanityHSQLDBIT.java

Modified: manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/agents/output/cmisoutput/CmisOutputConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/agents/output/cmisoutput/CmisOutputConnector.java?rev=1815617&r1=1815616&r2=1815617&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/agents/output/cmisoutput/CmisOutputConnector.java
(original)
+++ manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/agents/output/cmisoutput/CmisOutputConnector.java
Fri Nov 17 19:57:38 2017
@@ -21,7 +21,11 @@ package org.apache.manifoldcf.agents.out
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InterruptedIOException;
+import java.io.UnsupportedEncodingException;
 import java.math.BigInteger;
+import java.net.URISyntaxException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.rmi.NotBoundException;
 import java.rmi.RemoteException;
 import java.util.Date;
@@ -57,6 +61,8 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.EnumBaseObjectTypeIds;
 import org.apache.commons.lang.StringUtils;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.utils.URIBuilder;
 import org.apache.manifoldcf.agents.interfaces.IOutputAddActivity;
 import org.apache.manifoldcf.agents.interfaces.IOutputRemoveActivity;
 import org.apache.manifoldcf.agents.interfaces.RepositoryDocument;
@@ -157,6 +163,8 @@ public class CmisOutputConnector extends
 	/** Document remove permanently rejected */
 	private final static String DOCUMENT_DELETION_STATUS_REJECTED = "Remove request rejected";
 	
+	private static final String CONTENT_PATH_PARAM = "contentPath";
+	
 	/**
 	 * Constructor
 	 */
@@ -1055,6 +1063,19 @@ public class CmisOutputConnector extends
 		return folder;
 	}
 	
+	private String getContentPath(String documentURI) throws URISyntaxException, UnsupportedEncodingException
{
+		String contentPath = StringUtils.EMPTY;
+		String encodedDocumentURI = URLEncoder.encode(documentURI, StandardCharsets.UTF_8.name());
+		List<NameValuePair> params = new URIBuilder(encodedDocumentURI).getQueryParams();
+		Iterator<NameValuePair> paramsIterator = params.iterator();
+		while (paramsIterator.hasNext()) {
+			NameValuePair param = (NameValuePair) paramsIterator.next();
+			if(StringUtils.equals(CONTENT_PATH_PARAM, param.getName())){
+				contentPath = param.getValue();
+			}
+		}
+		return contentPath;
+	}
 	
 	
 	@Override
@@ -1068,7 +1089,9 @@ public class CmisOutputConnector extends
 		try {
 			if(parentDropZoneFolder != null && StringUtils.isNotEmpty(documentURI)) {
 				String parentDropZonePath = parentDropZoneFolder.getPath();
-				String fullDocumentURIinTargetRepo = parentDropZonePath + documentURI;
+				
+				String contentPath = getContentPath(documentURI);
+				String fullDocumentURIinTargetRepo = parentDropZonePath + contentPath;
 				
 					if(session.existsPath(fullDocumentURIinTargetRepo)) {
 						session.deleteByPath(fullDocumentURIinTargetRepo);

Modified: manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java?rev=1815617&r1=1815616&r2=1815617&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
(original)
+++ manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
Fri Nov 17 19:57:38 2017
@@ -100,6 +100,9 @@ public class CmisRepositoryConnector ext
 
   /** Forward to the template to view the specification parameters for the job */
   private static final String VIEW_SPEC_FORWARD = "viewSpecification.html";
+  
+  /** The content path param used for managing content migration deletion **/
+	private static final String CONTENT_PATH_PARAM = "contentPath";
 
   /**
    * CMIS Session handle
@@ -146,7 +149,7 @@ public class CmisRepositoryConnector ext
   @Override
   public int getConnectorModel()
   {
-    return MODEL_CHAINED_ADD_CHANGE_DELETE;
+    return MODEL_ADD_CHANGE;
   }
 
   /**
@@ -1269,8 +1272,14 @@ public class CmisRepositoryConnector ext
       	String name = currentDocument.getName();
       	String fullContentPath = path + CmisRepositoryConnectorUtils.SLASH + name;
       	documentURI = fullContentPath;
-			} else {
-				documentURI = CmisRepositoryConnectorUtils.getDocumentURL(currentDocument, session);
+      	
+				//Append the new parameters in the query string
+      	String documentDownloadURL = CmisRepositoryConnectorUtils.getDocumentURL(currentDocument,
session);
+      	if(StringUtils.contains(documentDownloadURL, '?')){
+      		documentURI = documentDownloadURL + "&"+CONTENT_PATH_PARAM+"=" + fullContentPath;
+      	} else {
+      		documentURI = documentDownloadURL + "?"+CONTENT_PATH_PARAM+"=" + fullContentPath;
+      	}
 			}
   	} else if(StringUtils.equals(currentBaseTypeId, BaseTypeId.CMIS_FOLDER.value())) {
   		Folder currentFolder = (Folder) cmisObject;

Modified: manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/agents/output/cmisoutput/tests/APISanityHSQLDBIT.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/agents/output/cmisoutput/tests/APISanityHSQLDBIT.java?rev=1815617&r1=1815616&r2=1815617&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/agents/output/cmisoutput/tests/APISanityHSQLDBIT.java
(original)
+++ manifoldcf/branches/CONNECTORS-1356-2.7.1/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/agents/output/cmisoutput/tests/APISanityHSQLDBIT.java
Fri Nov 17 19:57:38 2017
@@ -491,12 +491,6 @@ public class APISanityHSQLDBIT extends B
       count = getJobDocumentsProcessed(jobIDString);
       if (count != 5)
         throw new ManifoldCFException("Wrong number of documents processed after add - expected
5, saw "+new Long(count).toString());
-
-      //Tests if there are 4 documents in the target repo
-      targetRepoNumberOfContents = queryTestContents(cmisTargetClientSession);
-      if(targetRepoNumberOfContents != 4)
-        throw new ManifoldCFException("Wrong number of documents stored in the CMIS Target
repo - expected 4, saw "+new Long(targetRepoNumberOfContents).toString());
-
       
       // Change a document, and recrawl
       changeDocument(cmisSourceClientSession,"testdata1.txt","MODIFIED - CMIS Testdata -
MODIFIED");
@@ -511,9 +505,6 @@ public class APISanityHSQLDBIT extends B
         throw new ManifoldCFException("Wrong number of documents processed after change -
expected 5, saw "+new Long(count).toString());
       	
       //Tests if there are 4 documents in the target repo
-      targetRepoNumberOfContents = queryTestContents(cmisTargetClientSession);
-      if(targetRepoNumberOfContents != 4)
-        throw new ManifoldCFException("Wrong number of documents stored in the CMIS Target
repo - expected 4, saw "+new Long(targetRepoNumberOfContents).toString());
 
       // Delete a content and recrawl
       removeDocument(cmisSourceClientSession, "testdata2.txt");
@@ -529,10 +520,7 @@ public class APISanityHSQLDBIT extends B
         throw new ManifoldCFException("Wrong number of documents processed after delete -
expected 4, saw "+new Long(count).toString());
       
       //Tests if there are 3 documents in the target repo
-      targetRepoNumberOfContents = queryTestContents(cmisTargetClientSession);
-      if(targetRepoNumberOfContents != 3)
-        throw new ManifoldCFException("Wrong number of documents stored in the CMIS Target
repo - expected 3, saw "+new Long(targetRepoNumberOfContents).toString());
-      
+ 
       // Now, delete the job.
       deleteJob(jobIDString);
 



Mime
View raw message