You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by as...@apache.org on 2009/07/28 19:07:05 UTC
svn commit: r798608 - in /cxf/branches/2.2.x-fixes: ./
rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java
systests/src/test/java/org/apache/cxf/systest/http/WSDLAddressRewriteTest.java
Author: asoldano
Date: Tue Jul 28 17:07:05 2009
New Revision: 798608
URL: http://svn.apache.org/viewvc?rev=798608&view=rev
Log:
Merged revisions 798479,798557,798573 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r798479 | asoldano | 2009-07-28 12:18:24 +0200 (mar, 28 lug 2009) | 2 lines
[CXF-2364] Allow SOAP address rewrite in wsdl according to the request call
........
r798557 | asoldano | 2009-07-28 17:23:32 +0200 (mar, 28 lug 2009) | 2 lines
[CXF-2364] adding check on Service name + providing a testcase
........
r798573 | asoldano | 2009-07-28 17:44:27 +0200 (mar, 28 lug 2009) | 2 lines
Checkstyle error fix
........
Added:
cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/http/WSDLAddressRewriteTest.java
- copied unchanged from r798557, cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http/WSDLAddressRewriteTest.java
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 28 17:07:05 2009
@@ -1 +1 @@
-/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728,794771,794778-794780,794892,795044,795104,795160,795583,795907,796022-796023,796352,796593,796741,796780,796994-796997,797117,797159,797192,797194,797231-797233,797442,797505,797517,797534,797581-797583,797587,797640,797651,797699,797882-797883,798344-798346,798363,798461,798533,798551,798561-798562,798570,798584
+/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728,794771,794778-794780,794892,795044,795104,795160,795583,795907,796022-796023,796352,796593,796741,796780,796994-796997,797117,797159,797192,797194,797231-797233,797442,797505,797517,797534,797581-797583,797587,797640,797651,797699,797882-797883,798344-798346,798363,798461,798479,798533,798551,798557,798561-798562,798570,798573,79858
4
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java?rev=798608&r1=798607&r2=798608&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java (original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java Tue Jul 28 17:07:05 2009
@@ -207,7 +207,7 @@
doc = XMLUtils.getParser().parse(src);
}
- updateDoc(doc, base, mp, smp);
+ updateDoc(doc, base, mp, smp, endpointInfo);
String enc = doc.getXmlEncoding();
if (enc == null) {
enc = "utf-8";
@@ -226,9 +226,10 @@
}
}
- private void updateDoc(Document doc, String base,
+ protected void updateDoc(Document doc, String base,
Map<String, Definition> mp,
- Map<String, SchemaReference> smp) {
+ Map<String, SchemaReference> smp,
+ EndpointInfo ei) {
List<Element> elementList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
"http://www.w3.org/2001/XMLSchema",
"import");
@@ -258,6 +259,33 @@
el.setAttribute("location", base + "?wsdl=" + sl);
}
}
+
+ Boolean rewriteSoapAddress = ei.getProperty("autoRewriteSoapAddress", Boolean.class);
+
+ if (rewriteSoapAddress != null && rewriteSoapAddress.booleanValue()) {
+ List<Element> serviceList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://schemas.xmlsoap.org/wsdl/",
+ "service");
+ for (Element serviceEl : serviceList) {
+ String serviceName = serviceEl.getAttribute("name");
+ if (serviceName.equals(ei.getService().getName().getLocalPart())) {
+ elementList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://schemas.xmlsoap.org/wsdl/",
+ "port");
+ for (Element el : elementList) {
+ String name = el.getAttribute("name");
+ if (name.equals(ei.getName().getLocalPart())) {
+ Element soapAddress = DOMUtils.findAllElementsByTagNameNS(el,
+ "http://schemas.xmlsoap.org/wsdl/soap/",
+ "address")
+ .iterator().next();
+ soapAddress.setAttribute("location", base);
+ }
+ }
+ }
+ }
+ }
+
doc.setXmlStandalone(true);
}