]> git.evergreen-ils.org Git - working/Hatch.git/blob - hatch.xml
Rearrange hatch.xml to support jetty 9.3
[working/Hatch.git] / hatch.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
3
4 <Configure id="Server" class="org.eclipse.jetty.server.Server">
5
6   <!--
7   <Get id="Logger" class="org.eclipse.jetty.util.log.Log" name="log"/>
8   <Ref id="Logger">
9     <Set name="debugEnabled">true</Set>
10   </Ref>
11   -->
12
13   <Set class="org.evergreen_ils.hatch.HatchWebSocketHandler" name="trustedDomains">
14     <Array type="String">
15         <!-- 
16         List of origin domains which are allowed to connect to Hatch.
17         If the first item in the list is "*", then all domains are 
18         trusted, which is useful for testing.
19         -->
20         <Item>*</Item>
21     </Array>
22   </Set>
23
24   <!--
25   <Set class="org.evergreen_ils.hatch.HatchWebSocketHandler" 
26     name="profileDirectory"></Set>
27   -->
28
29   <!-- basic HTTP setup -->
30   <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">   
31     <Set name="secureScheme">https</Set>                                     
32     <Set name="securePort"><Property name="jetty.secure.port" default="8443" /></Set>
33     <Set name="outputBufferSize"><Property name="jetty.output.buffer.size" default="32768" /></Set>
34     <Set name="requestHeaderSize"><Property name="jetty.request.header.size" default="8192" /></Set>
35     <Set name="responseHeaderSize"><Property name="jetty.response.header.size" default="8192" /></Set>
36     <Set name="sendServerVersion"><Property name="jetty.send.server.version" default="true" /></Set>
37     <Set name="sendDateHeader"><Property name="jetty.send.date.header" default="false" /></Set>
38     <Set name="headerCacheSize">512</Set>                                    
39   </New>
40
41   <!-- SSL configuration -->
42   <!-- Using the stock Jetty certificates for now.  
43        To set a temporary trust on the cert, navigate to 
44        https://<hostname>:8443/ and confirm the cert is trusted -->
45   <New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
46     <!-- TODO: make this better -->
47     <Set name="KeyStorePath"><Property name="jetty.home" default="." />/jetty/etc/keystore</Set>
48     <Set name="KeyStorePassword">password</Set>
49     <Set name="KeyManagerPassword">password</Set>
50     <Set name="TrustStorePath"><Property name="jetty.home" default="." />/jetty/etc/keystore</Set>
51     <Set name="TrustStorePassword">password</Set>
52   </New> 
53
54   <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">  
55     <Arg><Ref refid="httpConfig"/></Arg>                                       
56     <Call name="addCustomizer">                                                
57       <Arg><New class="org.eclipse.jetty.server.SecureRequestCustomizer"/></Arg>
58     </Call>                                                                    
59   </New>                                                                       
60
61   <!-- SSL HTTP connector -->
62   <Call name="addConnector">                               
63     <Arg>                                                                      
64       <New class="org.eclipse.jetty.server.ServerConnector">                   
65         <Arg name="server"><Ref refid="Server" /></Arg>                        
66           <Arg name="factories">                                               
67             <Array type="org.eclipse.jetty.server.ConnectionFactory">          
68               <Item>                                                           
69                 <New class="org.eclipse.jetty.server.SslConnectionFactory">    
70                   <Arg name="next">http/1.1</Arg>                              
71                   <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg>
72                 </New>                                                         
73               </Item>                                                          
74               <Item>                                                           
75                 <New class="org.eclipse.jetty.server.HttpConnectionFactory">   
76                   <Arg name="config"><Ref refid="sslHttpConfig"/></Arg>        
77                 </New>                                                         
78               </Item>                                                          
79             </Array>                                                           
80           </Arg>                                                               
81           <Set name="host"><Property name="jetty.host" /></Set>                
82           <Set name="port"><Property name="jetty.secure.port" default="8443" /></Set>  
83           <Set name="idleTimeout"><Property name="https.timeout" default="30000"/></Set>
84           <Set name="soLingerTime"><Property name="https.soLingerTime" default="-1"/></Set>
85       </New>                                                                 
86     </Arg>                                                                     
87   </Call> 
88
89   <!-- HTTP connector -->
90   <Call name="addConnector">
91     <Arg>
92       <New class="org.eclipse.jetty.server.ServerConnector">
93         <Arg name="server">
94           <Ref refid="Server"/>
95         </Arg>
96         <Arg name="factories">
97           <Array type="org.eclipse.jetty.server.ConnectionFactory">
98             <Item>
99               <New class="org.eclipse.jetty.server.HttpConnectionFactory">
100                 <Arg name="config"><Ref refid="httpConfig" /></Arg> 
101               </New>
102             </Item>
103           </Array>
104         </Arg>
105         <Set name="host"><Property name="jetty.host"/></Set>
106         <Set name="port"><Property name="jetty.port" default="8080"/></Set>
107         <Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
108         <Set name="soLingerTime"><Property name="http.soLingerTime" default="-1"/></Set>
109       </New>
110     </Arg>
111   </Call>
112
113   <!-- TODO get properties working for:
114       jetty.proxy.maxThreads
115       jetty.proxy.maxConnections
116       jetty.proxy.idleTimeout
117       jetty.proxy.timeout
118   -->
119
120
121   <!-- wrap our websocketservlet into something the server can run -->
122   <New id="context" class="org.eclipse.jetty.servlet.ServletContextHandler">
123     <Set name="contextPath">/</Set>
124     <Call name="addServlet">
125       <Arg>org.evergreen_ils.hatch.HatchWebSocketServlet</Arg>
126       <Arg>/hatch</Arg>
127     </Call>
128   </New>
129
130   <!-- set our websocket handler as the server handler -->
131   <Set name="handler">
132     <New class="org.eclipse.jetty.server.handler.HandlerCollection">
133       <Set name="handlers">
134         <Array type="org.eclipse.jetty.server.Handler">
135         <Item> <Ref refid="context" /> </Item>
136         <Item>
137           <New class="org.eclipse.jetty.server.handler.DefaultHandler" />
138         </Item>
139         </Array>
140       </Set>
141     </New>
142   </Set>
143
144 </Configure>