Skip to content

Commit dd6b651

Browse files
committed
Add CustomCXFNonSpringJaxrsServlet to handle system props
1 parent c4421b1 commit dd6b651

File tree

5 files changed

+94
-4
lines changed
  • components/apimgt
    • org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/webapp/WEB-INF
    • org.wso2.carbon.apimgt.rest.api.publisher.v1/src/main/webapp/WEB-INF
    • org.wso2.carbon.apimgt.rest.api.service.catalog/src/main/webapp/WEB-INF
    • org.wso2.carbon.apimgt.rest.api.store.v1/src/main/webapp/WEB-INF
    • org.wso2.carbon.apimgt.rest.api.util/src/main/java/org/wso2/carbon/apimgt/rest/api/util/servlet/impl

5 files changed

+94
-4
lines changed

components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/webapp/WEB-INF/web.xml

+9-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<display-name>JAX-WS/JAX-RS Servlet</display-name>
2929
<servlet-name>CXFServlet</servlet-name>
3030
<servlet-class>
31-
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
31+
org.wso2.carbon.apimgt.rest.api.util.servlet.impl.CustomCXFNonSpringJaxrsServlet
3232
</servlet-class>
3333
<load-on-startup>1</load-on-startup>
3434
<init-param>
@@ -88,6 +88,14 @@
8888
org.wso2.carbon.apimgt.rest.api.util.interceptors.response.ResponseOutInterceptor
8989
</param-value>
9090
</init-param>
91+
92+
<init-param>
93+
<param-name>jaxrs.properties</param-name>
94+
<param-value>
95+
map.cxf.interceptor.fault=true
96+
attachment-max-size={systemProperties['rest.api.admin.attachment.max.size']}
97+
</param-value>
98+
</init-param>
9199
</servlet>
92100
<servlet-mapping>
93101
<servlet-name>CXFServlet</servlet-name>

components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1/src/main/webapp/WEB-INF/web.xml

+8-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<servlet>
2929
<servlet-name>CXFServlet</servlet-name>
3030
<servlet-class>
31-
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
31+
org.wso2.carbon.apimgt.rest.api.util.servlet.impl.CustomCXFNonSpringJaxrsServlet
3232
</servlet-class>
3333
<load-on-startup>1</load-on-startup>
3434

@@ -89,6 +89,13 @@
8989
org.wso2.carbon.apimgt.rest.api.util.interceptors.response.ResponseOutInterceptor
9090
</param-value>
9191
</init-param>
92+
<init-param>
93+
<param-name>jaxrs.properties</param-name>
94+
<param-value>
95+
map.cxf.interceptor.fault=true
96+
attachment-max-size={systemProperties['rest.api.publisher.attachment.max.size']}
97+
</param-value>
98+
</init-param>
9299
</servlet>
93100
<servlet-mapping>
94101
<servlet-name>CXFServlet</servlet-name>

components/apimgt/org.wso2.carbon.apimgt.rest.api.service.catalog/src/main/webapp/WEB-INF/web.xml

+9-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<servlet>
2929
<servlet-name>CXFServlet</servlet-name>
3030
<servlet-class>
31-
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
31+
org.wso2.carbon.apimgt.rest.api.util.servlet.impl.CustomCXFNonSpringJaxrsServlet
3232
</servlet-class>
3333
<init-param>
3434
<param-name>service-list-path</param-name>
@@ -75,6 +75,14 @@
7575
org.wso2.carbon.apimgt.rest.api.util.interceptors.response.ResponseOutInterceptor
7676
</param-value>
7777
</init-param>
78+
79+
<init-param>
80+
<param-name>jaxrs.properties</param-name>
81+
<param-value>
82+
map.cxf.interceptor.fault=true
83+
attachment-max-size={systemProperties['rest.api.service.catalog.attachment.max.size']}
84+
</param-value>
85+
</init-param>
7886
</servlet>
7987
<servlet-mapping>
8088
<servlet-name>CXFServlet</servlet-name>

components/apimgt/org.wso2.carbon.apimgt.rest.api.store.v1/src/main/webapp/WEB-INF/web.xml

+8-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<servlet>
2828
<servlet-name>CXFServlet</servlet-name>
2929
<servlet-class>
30-
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
30+
org.wso2.carbon.apimgt.rest.api.util.servlet.impl.CustomCXFNonSpringJaxrsServlet
3131
</servlet-class>
3232
<load-on-startup>1</load-on-startup>
3333

@@ -85,6 +85,13 @@
8585
org.wso2.carbon.apimgt.rest.api.util.interceptors.response.ResponseOutInterceptor
8686
</param-value>
8787
</init-param>
88+
<init-param>
89+
<param-name>jaxrs.properties</param-name>
90+
<param-value>
91+
map.cxf.interceptor.fault=true
92+
attachment-max-size={systemProperties['rest.api.devportal.attachment.max.size']}
93+
</param-value>
94+
</init-param>
8895
</servlet>
8996
<servlet-mapping>
9097
<servlet-name>CXFServlet</servlet-name>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package org.wso2.carbon.apimgt.rest.api.util.servlet.impl;
2+
3+
import org.apache.commons.lang.StringUtils;
4+
import org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet;
5+
6+
import java.util.Collections;
7+
import java.util.HashMap;
8+
import java.util.Map;
9+
10+
public class CustomCXFNonSpringJaxrsServlet extends CXFNonSpringJaxrsServlet {
11+
12+
static Map<String, String> systemPropMap = new HashMap();
13+
14+
static {
15+
systemPropMap.put("rest.api.admin.attachment.max.size", "10485760");
16+
systemPropMap.put("rest.api.devportal.attachment.max.size", "10485760");
17+
systemPropMap.put("rest.api.publisher.attachment.max.size", "10485760");
18+
systemPropMap.put("rest.api.service.catalog.attachment.max.size", "10485760");
19+
}
20+
21+
protected static Map<String, String> parseMapSequence(String sequence) {
22+
if (sequence != null) {
23+
sequence = sequence.trim();
24+
Map<String, String> map = new HashMap();
25+
String[] pairs = StringUtils.split(sequence, " ");
26+
String[] arr = pairs;
27+
int len$ = pairs.length;
28+
29+
for(int i = 0; i < len$; ++i) {
30+
String pair = arr[i];
31+
String thePair = pair.trim();
32+
if (!thePair.isEmpty()) {
33+
String[] value = StringUtils.split(thePair, "=");
34+
if (value.length == 2) {
35+
if (value[1].startsWith("{systemProperties")) {
36+
//resolve system property if exists or else set default value
37+
int begin = value[1].indexOf("'");
38+
int end = value[1].lastIndexOf("'");
39+
String key = value[1].substring(begin, end);
40+
String systemPropValue = System.getProperty(key);
41+
if (StringUtils.isNotEmpty(systemPropValue)) {
42+
map.put(value[0].trim(), systemPropValue);
43+
} else {
44+
map.put(value[0].trim(), systemPropMap.get(value[0]));
45+
}
46+
} else {
47+
map.put(value[0].trim(), value[1].trim());
48+
}
49+
} else {
50+
map.put(thePair, "");
51+
}
52+
}
53+
}
54+
55+
return map;
56+
} else {
57+
return Collections.emptyMap();
58+
}
59+
}
60+
}

0 commit comments

Comments
 (0)