1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.document.modules.cmis.service;
35
36 import org.apache.chemistry.opencmis.commons.impl.server.AbstractServiceFactory;
37 import org.apache.chemistry.opencmis.commons.server.CallContext;
38 import org.apache.chemistry.opencmis.commons.server.CmisService;
39 import org.apache.chemistry.opencmis.server.support.CmisServiceWrapper;
40
41 import java.math.BigInteger;
42
43
44
45
46
47 public class DocumentCmisServiceFactory extends AbstractServiceFactory
48 {
49 private static final BigInteger DEFAULT_MAX_ITEMS_TYPES = BigInteger.valueOf( 50 );
50 private static final BigInteger DEFAULT_DEPTH_TYPES = BigInteger.valueOf( -1 );
51 private static final BigInteger DEFAULT_MAX_ITEMS_OBJECTS = BigInteger.valueOf( 200 );
52 private static final BigInteger DEFAULT_DEPTH_OBJECTS = BigInteger.valueOf( 10 );
53 private ThreadLocal<CmisServiceWrapper<DocumentCmisService>> threadLocalService = new ThreadLocal<CmisServiceWrapper<DocumentCmisService>>( );
54
55
56
57
58 @Override
59 public CmisService getService( CallContext context )
60 {
61 CmisServiceWrapper<DocumentCmisService> wrapperService = threadLocalService.get( );
62
63 if ( wrapperService == null )
64 {
65 wrapperService = new CmisServiceWrapper<DocumentCmisService>( new DocumentCmisService( ),
66 DEFAULT_MAX_ITEMS_TYPES, DEFAULT_DEPTH_TYPES, DEFAULT_MAX_ITEMS_OBJECTS, DEFAULT_DEPTH_OBJECTS );
67 threadLocalService.set( wrapperService );
68 }
69
70 wrapperService.getWrappedService( ).setCallContext( context );
71
72 return wrapperService;
73 }
74 }