blob: b3ae341a861198d43fa91263ea758235d1c6dd49 [file] [log] [blame]
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package};
import java.math.BigInteger;
import java.util.Map;
import org.apache.chemistry.opencmis.commons.impl.server.AbstractServiceFactory;
import org.apache.chemistry.opencmis.commons.server.CallContext;
import org.apache.chemistry.opencmis.commons.server.CmisService;
import org.apache.chemistry.opencmis.server.support.wrapper.ConformanceCmisServiceWrapper;
/**
* CMIS Service Factory.
*/
public class ${projectPrefix}CmisServiceFactory extends AbstractServiceFactory {
/** Default maxItems value for getTypeChildren()}. */
private static final BigInteger DEFAULT_MAX_ITEMS_TYPES = BigInteger.valueOf(1000);
/** Default depth value for getTypeDescendants(). */
private static final BigInteger DEFAULT_DEPTH_TYPES = BigInteger.valueOf(-1);
/**
* Default maxItems value for getChildren() and other methods returning
* lists of objects.
*/
private static final BigInteger DEFAULT_MAX_ITEMS_OBJECTS = BigInteger.valueOf(100000);
/** Default depth value for getDescendants(). */
private static final BigInteger DEFAULT_DEPTH_OBJECTS = BigInteger.valueOf(10);
@Override
public void init(Map<String, String> parameters) {
}
@Override
public void destroy() {
}
@Override
public CmisService getService(CallContext context) {
// authentication can go here
String user = context.getUsername();
String password = context.getPassword();
// if the authentication fails, throw a CmisPermissionDeniedException
// create a new service object
// (can also be pooled or stored in a ThreadLocal)
${projectPrefix}CmisService service = new ${projectPrefix}CmisService();
// add the conformance CMIS service wrapper
// (The wrapper catches invalid CMIS requests and sets default values
// for parameters that have not been provided by the client.)
ConformanceCmisServiceWrapper wrapperService =
new ConformanceCmisServiceWrapper(service, DEFAULT_MAX_ITEMS_TYPES, DEFAULT_DEPTH_TYPES,
DEFAULT_MAX_ITEMS_OBJECTS, DEFAULT_DEPTH_OBJECTS);
// hand over the call context to the service object
wrapperService.setCallContext(context);
return wrapperService;
}
}