Add WS support - alfa version. (#37)

* Add support for WS Binding - alfa stage.
This commit is contained in:
Alexandru-Eusebiu Epure
2020-09-30 15:57:54 +03:00
committed by GitHub
parent ec79172479
commit 961b336c11
2 changed files with 48 additions and 23 deletions

View File

@@ -1,15 +1,5 @@
package org.alfresco.cmis;
import static org.alfresco.utility.Utility.checkObjectIsInitialized;
import static org.alfresco.utility.report.log.Step.STEP;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import org.alfresco.cmis.dsl.BaseObjectType;
import org.alfresco.cmis.dsl.CheckIn;
import org.alfresco.cmis.dsl.CmisAssertion;
@@ -63,6 +53,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import static org.alfresco.utility.Utility.checkObjectIsInitialized;
import static org.alfresco.utility.report.log.Step.STEP;
@Service
@Scope(value = "prototype")
public class CmisWrapper extends DSLProtocol<CmisWrapper> implements DSLContentModelAction<CmisWrapper>, DSLFile<CmisWrapper>, DSLFolder<CmisWrapper>
@@ -109,6 +109,21 @@ public class CmisWrapper extends DSLProtocol<CmisWrapper> implements DSLContentM
parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
LOG.info("Using binding type [{}] to [{}] and credentials: {}", BindingType.ATOMPUB.value(), cmisURLPath, userModel.toString());
}
else if (binding.equals(BindingType.WEBSERVICES.value()))
{
parameter.put(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_OBJECT_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_VERSIONING_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_ACL_SERVICE, cmisURLPath);
parameter.put(SessionParameter.WEBSERVICES_POLICY_SERVICE, cmisURLPath);
parameter.put(SessionParameter.BINDING_TYPE, BindingType.WEBSERVICES.value());
LOG.info("Using binding type [{}] to [{}] and credentials: {}", BindingType.WEBSERVICES.value(), cmisURLPath, userModel.toString());
}
parameter.put(SessionParameter.CONNECT_TIMEOUT, "20000");
parameter.put(SessionParameter.READ_TIMEOUT, "60000");
List<Repository> repositories = factory.getRepositories(parameter);

View File

@@ -1,16 +1,5 @@
package org.alfresco.cmis.dsl;
import static org.alfresco.utility.report.log.Step.STEP;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.alfresco.cmis.CmisWrapper;
import org.alfresco.cmis.exception.InvalidCmisObjectException;
import org.alfresco.utility.LogFactory;
@@ -44,12 +33,24 @@ import org.apache.chemistry.opencmis.commons.data.PropertyData;
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
import org.apache.chemistry.opencmis.commons.enums.Action;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
import org.apache.chemistry.opencmis.commons.enums.BindingType;
import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisVersioningException;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.testng.collections.Lists;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static org.alfresco.utility.report.log.Step.STEP;
/**
* DSL utility for managing CMIS objects
*/
@@ -511,11 +512,20 @@ public class CmisUtil
public Map<String, Object> getProperties(ContentModel contentModel, String baseTypeId)
{
List<Object> aspects = new ArrayList<Object>();
aspects.add("P:cm:titled");
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, baseTypeId);
properties.put(PropertyIds.NAME, contentModel.getName());
// WebServices binding does not have SecondaryTypes and cannot be added to Object.
// cm:title and cm:description Policies
if (cmisAPI.getSession().getBinding().getBindingType().value().equals(BindingType.WEBSERVICES.value()))
{
return properties;
}
List<Object> aspects = new ArrayList<Object>();
aspects.add("P:cm:titled");
properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, aspects);
properties.put("cm:title", contentModel.getTitle());
properties.put("cm:description", contentModel.getDescription());