1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.server.impl.webservices;
20
21 import com.sun.xml.ws.api.WSFeatureList;
22 import com.sun.xml.ws.developer.StreamingAttachmentFeature;
23 import com.sun.xml.ws.transport.http.servlet.ServletAdapter;
24 import com.sun.xml.ws.transport.http.servlet.WSServlet;
25 import com.sun.xml.ws.transport.http.servlet.WSServletDelegate;
26
27 import org.apache.chemistry.opencmis.commons.server.CmisServiceFactory;
28 import org.apache.chemistry.opencmis.server.impl.CmisRepositoryContextListener;
29
30 import javax.servlet.ServletConfig;
31
32 import javax.xml.ws.WebServiceFeature;
33
34
35 public class CmisWebServicesServlet extends WSServlet
36 {
37 private static final long serialVersionUID = 1L;
38
39 @Override
40 protected WSServletDelegate getDelegate( ServletConfig servletConfig )
41 {
42 WSServletDelegate delegate = super.getDelegate( servletConfig );
43
44
45
46 if ( delegate.adapters != null )
47 {
48
49 CmisServiceFactory factory = (CmisServiceFactory) getServletContext( )
50 .getAttribute( CmisRepositoryContextListener.SERVICES_FACTORY );
51
52
53 for ( ServletAdapter adapter : delegate.adapters )
54 {
55 WSFeatureList wsfl = adapter.getEndpoint( ).getBinding( ).getFeatures( );
56
57 for ( WebServiceFeature ft : wsfl )
58 {
59 if ( ft instanceof StreamingAttachmentFeature )
60 {
61 ( (StreamingAttachmentFeature) ft ).setDir( factory.getTempDirectory( ).getAbsolutePath( ) );
62 ( (StreamingAttachmentFeature) ft ).setMemoryThreshold( factory.getMemoryThreshold( ) );
63 }
64 }
65 }
66 }
67
68 return delegate;
69 }
70 }