You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/12/10 19:31:42 UTC

svn commit: r725367 - in /cxf/branches/2.1.x-fixes: ./ common/common/src/main/java/org/apache/cxf/configuration/spring/ rt/transports/http/src/main/java/org/apache/cxf/configuration/jsse/spring/ rt/transports/http/src/main/java/org/apache/cxf/transport...

Author: dkulp
Date: Wed Dec 10 10:31:41 2008
New Revision: 725367

URL: http://svn.apache.org/viewvc?rev=725367&view=rev
Log:
Merged revisions 724782 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r724782 | dkulp | 2008-12-09 12:09:40 -0500 (Tue, 09 Dec 2008) | 2 lines
  
  Do the node -> string -> jaxb parse thing for the tlsClientParameters to get the properties substituted
........

Modified:
    cxf/branches/2.1.x-fixes/   (props changed)
    cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
    cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/configuration/jsse/spring/TLSClientParametersConfig.java
    cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java
    cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_async_noservice.wsdl   (props changed)

Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 10 10:31:41 2008
@@ -1 +1 @@
-/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
 4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724785,725335
+/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
 4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,725335

Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java?rev=725367&r1=725366&r2=725367&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java (original)
+++ cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java Wed Dec 10 10:31:41 2008
@@ -240,7 +240,14 @@
         if (data == null) {
             return;
         }
-
+        mapElementToJaxbProperty(data, bean, propertyName, c);
+    }
+    
+    @SuppressWarnings("deprecation")
+    protected void mapElementToJaxbProperty(Element data, 
+                                            BeanDefinitionBuilder bean, 
+                                            String propertyName, 
+                                            Class<?> c) {
         JAXBContext context = null;
         try {
             String pkg = getJaxbPackage();

Modified: cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/configuration/jsse/spring/TLSClientParametersConfig.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/configuration/jsse/spring/TLSClientParametersConfig.java?rev=725367&r1=725366&r2=725367&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/configuration/jsse/spring/TLSClientParametersConfig.java (original)
+++ cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/configuration/jsse/spring/TLSClientParametersConfig.java Wed Dec 10 10:31:41 2008
@@ -19,11 +19,20 @@
 package org.apache.cxf.configuration.jsse.spring;
 
 import java.io.IOException;
+import java.io.StringReader;
 import java.security.GeneralSecurityException;
 
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLStreamReader;
 
+
+import org.apache.cxf.common.util.PackageUtils;
 import org.apache.cxf.configuration.jsse.TLSClientParameters;
 import org.apache.cxf.configuration.security.TLSClientParametersType;
+import org.apache.cxf.staxutils.StaxUtils;
 
 /**
  * This class provides the TLSClientParameters that programmatically
@@ -31,39 +40,74 @@
  * type TLSClientParametersType that was used in the Spring configuration
  * of the http-conduit bean.
  */
-public class TLSClientParametersConfig 
-    extends TLSClientParameters {
+public class TLSClientParametersConfig {
+    static JAXBContext context = null;
     
-    public TLSClientParametersConfig(TLSClientParametersType params) 
+    private static synchronized JAXBContext getContext() throws JAXBException {
+        if (context == null) {
+            context = JAXBContext.newInstance(PackageUtils.getPackageName(TLSClientParametersType.class), 
+                                              TLSClientParametersConfig.class.getClassLoader());            
+        }
+        return context;
+    }
+
+    static TLSClientParameters createTLSClientParametersFromType(TLSClientParametersType params) 
         throws GeneralSecurityException,
                IOException {
 
+        TLSClientParameters ret = new TLSClientParameters();
         if (params.isDisableCNCheck()) {
-            this.setDisableCNCheck(true);
+            ret.setDisableCNCheck(true);
         }
         if (params.isSetCipherSuitesFilter()) {
-            this.setCipherSuitesFilter(params.getCipherSuitesFilter());
+            ret.setCipherSuitesFilter(params.getCipherSuitesFilter());
         }
         if (params.isSetCipherSuites()) {
-            this.setCipherSuites(params.getCipherSuites().getCipherSuite());
+            ret.setCipherSuites(params.getCipherSuites().getCipherSuite());
         }
         if (params.isSetJsseProvider()) {
-            this.setJsseProvider(params.getJsseProvider());
+            ret.setJsseProvider(params.getJsseProvider());
         }
         if (params.isSetSecureRandomParameters()) {
-            this.setSecureRandom(
+            ret.setSecureRandom(
                 TLSParameterJaxBUtils.getSecureRandom(
                         params.getSecureRandomParameters()));
         }
         if (params.isSetKeyManagers()) {
-            this.setKeyManagers(
+            ret.setKeyManagers(
                 TLSParameterJaxBUtils.getKeyManagers(params.getKeyManagers()));
         }
         if (params.isSetTrustManagers()) {
-            this.setTrustManagers(
+            ret.setTrustManagers(
                 TLSParameterJaxBUtils.getTrustManagers(
                         params.getTrustManagers()));
         }
+        return ret;
+    }
+    
+
+
+    public static Object createTLSClientParameters(String s) {
+        
+        StringReader reader = new StringReader(s);
+        XMLStreamReader data = StaxUtils.createXMLStreamReader(reader);
+        Unmarshaller u;
+        try {
+            u = getContext().createUnmarshaller();
+            Object obj = u.unmarshal(data, TLSClientParametersType.class);
+            if (obj instanceof JAXBElement<?>) {
+                JAXBElement<?> el = (JAXBElement<?>)obj;
+                obj = el.getValue();
+
+            }
+            
+            TLSClientParametersType cpt = (TLSClientParametersType)obj;
+            return createTLSClientParametersFromType(cpt);
+        } catch (RuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 
 }

Modified: cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java?rev=725367&r1=725366&r2=725367&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java (original)
+++ cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java Wed Dec 10 10:31:41 2008
@@ -18,10 +18,14 @@
  */
 package org.apache.cxf.transport.http.spring;
 
+import java.io.StringWriter;
+
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Unmarshaller;
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
 
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -35,6 +39,7 @@
 import org.apache.cxf.configuration.security.ProxyAuthorizationPolicy;
 import org.apache.cxf.configuration.security.TLSClientParametersType;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
+import org.apache.cxf.staxutils.StaxUtils;
 import org.apache.cxf.transport.http.HTTPConduit;
 import org.apache.cxf.transport.http.HttpBasicAuthSupplier;
 import org.apache.cxf.transport.http.MessageTrustDecider;
@@ -90,7 +95,7 @@
             } else if ("basicAuthSupplier".equals(elementName)) {
                 mapBeanOrClassElement((Element)n, bean, HttpBasicAuthSupplier.class);
             } else if ("tlsClientParameters".equals(elementName)) {
-                mapTLSClientParameters(n, bean);
+                mapTLSClientParameters((Element)n, bean);
             }
         }
 
@@ -101,23 +106,22 @@
      * a TLSClientParametersConfig object initialized with the JAXB
      * generated type unmarshalled from the selected node.
      */
-    public void mapTLSClientParameters(Node n, BeanDefinitionBuilder bean) {
-
-        // Unmarshal the JAXB Generated Type from Config and inject
-        // the configured TLSClientParameters into the HTTPConduit.
-        JAXBContext context = null;
+    @SuppressWarnings("deprecation")
+    public void mapTLSClientParameters(Element n, BeanDefinitionBuilder bean) {
+        StringWriter writer = new StringWriter();
+        XMLStreamWriter xmlWriter = StaxUtils.createXMLStreamWriter(writer);
         try {
-            context = JAXBContext.newInstance(PackageUtils.getPackageName(TLSClientParametersType.class), 
-                    getClass().getClassLoader());
-            Unmarshaller u = context.createUnmarshaller();
-            JAXBElement<TLSClientParametersType> jaxb = 
-                u.unmarshal(n, TLSClientParametersType.class);
-            TLSClientParameters params = 
-                new TLSClientParametersConfig(jaxb.getValue());
-            bean.addPropertyValue("tlsClientParameters", params);
-        } catch (Exception e) {
-            throw new RuntimeException("Could not process configuration.", e);
+            StaxUtils.copy(n, xmlWriter);
+            xmlWriter.flush();
+        } catch (XMLStreamException e) {
+            throw new RuntimeException(e);
         }
+
+        BeanDefinitionBuilder jaxbbean 
+            = BeanDefinitionBuilder.rootBeanDefinition(TLSClientParametersConfig.class);
+        jaxbbean.getRawBeanDefinition().setFactoryMethodName("createTLSClientParameters");
+        jaxbbean.addConstructorArg(writer.toString());
+        bean.addPropertyValue("tlsClientParameters", jaxbbean.getBeanDefinition());
     }
     
     /**

Propchange: cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_async_noservice.wsdl
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 10 10:31:41 2008
@@ -1 +1 @@
-/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_async_noservice.wsdl:722412,722988,723378,724485,724668,724780,724785,725335
+/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_async_noservice.wsdl:722412,722988,723378,724485,724668,724780,724782,724785,725335