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,
053 locale.getCountry());
054 parameters.put(
055 SessionParameter.LOCALE_ISO639_LANGUAGE, locale.getLanguage());
056
057 String password = PrincipalThreadLocal.getPassword();
058
059 if (Validator.isNotNull(password)) {
060 parameters.put(SessionParameter.PASSWORD, password);
061 }
062
063 String login = getLogin();
064
065 if (Validator.isNotNull(login)) {
066 parameters.put(SessionParameter.USER, login);
067 }
068
069 CMISRepositoryUtil.checkRepository(
070 getRepositoryId(), parameters, getTypeSettingsProperties(),
071 _REPOSITORY_ID);
072
073 return CMISRepositoryUtil.createSession(parameters);
074 }
075
076 public String[] getSupportedConfigurations() {
077 return _SUPPORTED_CONFIGURATIONS;
078 }
079
080 public String[][] getSupportedParameters() {
081 return _SUPPORTED_PARAMETERS;
082 }
083
084 protected String getTypeSettingsValue(String typeSettingsKey)
085 throws InvalidRepositoryException {
086
087 UnicodeProperties typeSettingsProperties = getTypeSettingsProperties();
088
089 return CMISRepositoryUtil.getTypeSettingsValue(
090 typeSettingsProperties, typeSettingsKey);
091 }
092
093 private static final String _ATOMPUB_URL = "ATOMPUB_URL";
094
095 private static final String _CONFIGURATION_ATOMPUB = "ATOMPUB";
096
097 private static final String _REPOSITORY_ID = "REPOSITORY_ID";
098
099 private static final String[] _SUPPORTED_CONFIGURATIONS = {
100 _CONFIGURATION_ATOMPUB
101 };
102
103 private static final String[][] _SUPPORTED_PARAMETERS = {
104 {_ATOMPUB_URL, _REPOSITORY_ID}
105 };
106
107 }