This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new bdae8a1  parse cxf.jaxrs.extensions like it done in 
CXFNonSpringJaxrsServlet, but with "," separator
     new a5e7f3b  Merge pull request #559 from slavb18/master
bdae8a1 is described below

commit bdae8a1b0237f2fb8bdee8c2f7548036b79930ec
Author: slavb18 <slav...@gmail.com>
AuthorDate: Fri May 31 10:04:38 2019 +0400

    parse cxf.jaxrs.extensions like it done in CXFNonSpringJaxrsServlet, but
    with "," separator
---
 .../spring/AbstractSpringConfigurationFactory.java | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/AbstractSpringConfigurationFactory.java
 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/AbstractSpringConfigurationFactory.java
index ce8b360..11f610c 100644
--- 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/AbstractSpringConfigurationFactory.java
+++ 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/AbstractSpringConfigurationFactory.java
@@ -19,7 +19,9 @@
 package org.apache.cxf.jaxrs.spring;
 
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.bus.spring.SpringBus;
@@ -39,6 +41,8 @@ public abstract class AbstractSpringConfigurationFactory
     protected ApplicationContext applicationContext;
     @Value("${cxf.jaxrs.server.address:}")
     private String jaxrsServerAddress;
+    @Value("${cxf.jaxrs.extensions:}")
+    private String jaxrsExtensions;
 
     protected Server createJaxRsServer() {
 
@@ -53,6 +57,9 @@ public abstract class AbstractSpringConfigurationFactory
         factory.setOutInterceptors(getOutInterceptors());
         factory.setOutFaultInterceptors(getOutFaultInterceptors());
         factory.setFeatures(getFeatures());
+        if (!StringUtils.isEmpty(jaxrsExtensions)) {
+            
factory.setExtensionMappings((Map)parseMapSequence(jaxrsExtensions));
+        }
         finalizeFactorySetup(factory);
         return factory.create();
     }
@@ -90,4 +97,25 @@ public abstract class AbstractSpringConfigurationFactory
     protected void finalizeFactorySetup(JAXRSServerFactoryBean factory) {
         // complete
     }
+    protected static Map<String, String> parseMapSequence(String sequence) {
+        if (sequence != null) {
+            sequence = sequence.trim();
+            Map<String, String> map = new HashMap<>();
+            String[] pairs = sequence.split(",");
+            for (String pair : pairs) {
+                String thePair = pair.trim();
+                if (thePair.length() == 0) {
+                    continue;
+                }
+                String[] value = thePair.split("=");
+                if (value.length == 2) {
+                    map.put(value[0].trim(), value[1].trim());
+                } else {
+                    map.put(thePair, "");
+                }
+            }
+            return map;
+        }
+        return Collections.emptyMap();
+    }
 }

Reply via email to