001
014
015 package com.liferay.portal.repository.cmis;
016
017 import com.liferay.portal.InvalidRepositoryException;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.exception.SystemException;
020 import com.liferay.portal.kernel.repository.cmis.CMISRepositoryHandler;
021 import com.liferay.portal.kernel.repository.cmis.Session;
022 import com.liferay.portal.kernel.util.LocaleUtil;
023 import com.liferay.portal.kernel.util.UnicodeProperties;
024 import com.liferay.portal.kernel.util.Validator;
025 import com.liferay.portal.security.auth.PrincipalThreadLocal;
026
027 import java.util.HashMap;
028 import java.util.Locale;
029 import java.util.Map;
030
031 import org.apache.chemistry.opencmis.commons.SessionParameter;
032 import org.apache.chemistry.opencmis.commons.enums.BindingType;
033
034
037 public class CMISAtomPubRepository extends CMISRepositoryHandler {
038
039 @Override
040 public Session getSession() throws PortalException, SystemException {
041 Map<String, String> parameters = new HashMap<String, String>();
042
043 parameters.put(
044 SessionParameter.ATOMPUB_URL, getTypeSettingsValue(_ATOMPUB_URL));
045 parameters.put(
046 SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
047 parameters.put(SessionParameter.COMPRESSION, Boolean.TRUE.toString());
048
049 Locale locale = LocaleUtil.getDefault();
050
051 parameters.put(
052 SessionParameter.LOCALE_ISO3166_COUNTRY, locale.getCountry());
053 parameters.put(
054 SessionParameter.LOCALE_ISO639_LANGUAGE, locale.getLanguage());
055
056 String password = PrincipalThreadLocal.getPassword();
057
058 if (Validator.isNotNull(password)) {
059 parameters.put(SessionParameter.PASSWORD, password);
060 }
061
062 String login = getLogin();
063
064 if (Validator.isNotNull(login)) {
065 parameters.put(SessionParameter.USER, login);
066 }
067
068 CMISRepositoryUtil.checkRepository(
069 getRepositoryId(), parameters, getTypeSettingsProperties(),
070 _REPOSITORY_ID);
071
072 return CMISRepositoryUtil.createSession(parameters);
073 }
074
075 public String[] getSupportedConfigurations() {
076 return _SUPPORTED_CONFIGURATIONS;
077 }
078
079 public String[][] getSupportedParameters() {
080 return _SUPPORTED_PARAMETERS;
081 }
082
083 protected String getTypeSettingsValue(String typeSettingsKey)
084 throws InvalidRepositoryException {
085
086 UnicodeProperties typeSettingsProperties = getTypeSettingsProperties();
087
088 return CMISRepositoryUtil.getTypeSettingsValue(
089 typeSettingsProperties, typeSettingsKey);
090 }
091
092 private static final String _ATOMPUB_URL = "ATOMPUB_URL";
093
094 private static final String _CONFIGURATION_ATOMPUB = "ATOMPUB";
095
096 private static final String _REPOSITORY_ID = "REPOSITORY_ID";
097
098 private static final String[] _SUPPORTED_CONFIGURATIONS = {
099 _CONFIGURATION_ATOMPUB
100 };
101
102 private static final String[][] _SUPPORTED_PARAMETERS = {
103 {_ATOMPUB_URL, _REPOSITORY_ID}
104 };
105
106 }