package jp.aegif.nemaki.test.nemaki;
import java.util.HashMap;
import java.util.Map;
import org.apache.chemistry.opencmis.client.api.OperationContext;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.enums.BindingType;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
public class SessionUtil {
public static Session createCmisSession(String repositoryId, String userId, String password){
//System.setProperty("http.maxConnections", "500");
Map<String, String> parameter = new HashMap<String, String>();
// user credentials
//TODO enable change a user
parameter.put(SessionParameter.USER, userId);
parameter.put(SessionParameter.PASSWORD, password);
// session locale
parameter.put(SessionParameter.LOCALE_ISO3166_COUNTRY, "");
parameter.put(SessionParameter.LOCALE_ISO639_LANGUAGE, "");
// repository
parameter.put(SessionParameter.REPOSITORY_ID, repositoryId);
//parameter.put(org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_REPOSITORY_ID, NemakiConfig.getValue(PropertyKey.NEMAKI_CORE_URI_REPOSITORY));
parameter. put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
String coreAtomUri = "http://localhost:8080/core/atom/" + repositoryId; //TODO
parameter.put(SessionParameter.ATOMPUB_URL, coreAtomUri);
//timeout
//parameter.put(SessionParameter.CONNECT_TIMEOUT, "30000");
//parameter.put(SessionParameter.READ_TIMEOUT, "30000");
//parameter.put(SessionParameter.HTTP_INVOKER_CLASS, "org.apache.chemistry.opencmis.client.bindings.spi.http.ApacheClientHttpInvoker");
SessionFactory f = SessionFactoryImpl.newInstance();
Session session = f.createSession(parameter);
OperationContext operationContext = session.createOperationContext(null,
true, true, false, IncludeRelationships.BOTH, null, false, null, true, 100);
session.setDefaultContext(operationContext);
return session;
}
}