Return-Path: Delivered-To: apmail-cxf-dev-archive@www.apache.org Received: (qmail 36715 invoked from network); 25 Jun 2009 13:58:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 25 Jun 2009 13:58:28 -0000 Received: (qmail 62068 invoked by uid 500); 25 Jun 2009 13:58:38 -0000 Delivered-To: apmail-cxf-dev-archive@cxf.apache.org Received: (qmail 62000 invoked by uid 500); 25 Jun 2009 13:58:38 -0000 Mailing-List: contact dev-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list dev@cxf.apache.org Received: (qmail 61990 invoked by uid 99); 25 Jun 2009 13:58:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Jun 2009 13:58:38 +0000 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [216.40.44.71] (HELO smtprelay.hostedemail.com) (216.40.44.71) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Jun 2009 13:58:27 +0000 Received: from filter.hostedemail.com (ff-bigip1 [10.5.19.254]) by smtprelay03.hostedemail.com (Postfix) with SMTP id 1CCF320574BD for ; Thu, 25 Jun 2009 13:58:05 +0000 (UTC) X-Spam-Summary: 50,0,0,eda40898a44a9850,d41d8cd98f00b204,dkulp@apache.org,dev@cxf.apache.org:liucong07@gmail.com,RULES_HIT:2:355:379:481:599:601:945:960:967:973:988:989:1021:1260:1277:1311:1312:1313:1314:1345:1358:1359:1437:1515:1516:1518:1519:1535:1593:1594:1595:1596:1605:1606:1730:1747:1766:1792:2194:2196:2198:2199:2200:2201:2378:2393:2525:2553:2560:2563:2682:2685:2693:2737:2828:2857:2859:2892:2933:2937:2939:2942:2945:2947:2951:2954:3022:3027:3865:3866:3867:3868:3869:3870:3871:3872:3873:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4031:4117:4184:4250:4321:4605:5007:6117:6118:6119:6261:7679:7901:7903:8957:8985:9025:9040:9072:9108:9388:9392:10004,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fu,MSBL:none,DNSBL:none,Custom_rules:0:0:0 X-Session-Marker: 64616E406B756C702E636F6D X-Filterd-Recvd-Size: 6581 Received: from server.dankulp.com (server1.dankulp.com [66.207.172.168]) (Authenticated sender: dan@kulp.com) by omf05.hostedemail.com (Postfix) with ESMTP for ; Thu, 25 Jun 2009 13:58:05 +0000 (UTC) Received: by server.dankulp.com (Postfix, from userid 5000) id 98BC650707A3; Thu, 25 Jun 2009 09:58:04 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.2.1-gr1 (2007-05-02) on server.dankulp.com X-Spam-Level: X-Msg-File: /tmp/mailfilter.qXhh2qqkLi Received: from dilbert.localnet (host-131-239-31-200.customer.veroxity.net [131.239.31.200]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by server.dankulp.com (Postfix) with ESMTPSA id 364A550707A0; Thu, 25 Jun 2009 09:58:03 -0400 (EDT) From: Daniel Kulp To: dev@cxf.apache.org Subject: Re: How to add wsdl extension for SOAP/JMS. Date: Thu, 25 Jun 2009 09:57:54 -0400 User-Agent: KMail/1.11.4 (Linux/2.6.30-gentoo-r1; KDE/4.2.4; x86_64; ; ) Cc: liucong References: <4A40FA0F.20500@gmail.com> <200906241427.04185.dkulp@apache.org> <4A430D96.9090706@gmail.com> In-Reply-To: <4A430D96.9090706@gmail.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200906250957.55273.dkulp@apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Old-Spam-Status: No, score=-4.1 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.1-gr1 On Thu June 25 2009 1:39:34 am liucong wrote: > Hi, Dan, > > Thank you very much for your advice. By some experiments for the > WSDL extension. I think it is right that this WSDL extension needs some > changes to CXF wsdl processing. And the CXF wsdl processing will supoort > the entension in SOAP/JMS. I think this kind of extension is necessary > for CXF wsdl processing. The best place to look is in the cxf trunk/common/xjc/ts project. That project is an XJC plugin that adds "toString" methods to all the generated types. For MOST cases, you would need make the superclass be TExtensibilityElementImpl instead of Object. In other cases, it's a bit more complex: 1) For stuff that sublasses JAXBElement, you would need to make it implement ExtensibilityElement and add those methods and field. 2) For Enums - I think the stuff from (1) applies as well, not really sure though. Technically, it PROBABLY just needs to apply to "root" elements. (Stuff with @XmlRootElement annotations). Dan > Are there any documents which help me finish this kind of > extension? thank you! :-) > > Liu > > Daniel Kulp wrote: > > Hmm... I'm not really sure. I don't think there IS a schema that > > would work properly for this. My gut feeling was something like: > > > > > > > > > > > > > > > > > > > > > > > > but I know that doesn't work. > > > > This will probably need some changes to CXF wsdl processing to really get > > this to work well. Actually, this could provide a good opportunity to > > cleanup the JAXB WSDL extension mechanism to NOT require that the > > schema extends the wsdl:tExtensibilityElement type. I'm actually > > thinking a xjc plugin that would make all the generated types > > automatically implement the wsdl4j ExtensibiltyElement interface and add > > the methods/fields for that. > > > > That can significantly cleanup the CXF schemas for all the extensors. > > It would be completely automatic. > > > > Dan > > > > On Tue June 23 2009 11:51:43 am liucong wrote: > >> Hi, > >> I want to add wsdl extension for SOAP/JMS according to > >> http://www.w3.org/TR/2008/WD-soapjms-20081121/#wsdl-extensions. > >> > >> For example, I want add wsdl extension for DeliveryMode property. I edit > >> the wsdl file like[1]: > >> >> type="tns:JMSGreeterPortType"> >> transport="http://www.w3.org/2008/07/soap/bindings/JMS/"/> > >> > >> PERSISTENT > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> ... > >> > >> > >> If I add the extension schema like this[2]: > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> But I can't get the extension in the wsdl. > >> If I change the wsdl like this[3]: > >> >> type="tns:JMSGreeterPortType"> >> transport="http://www.w3.org/2008/07/soap/bindings/JMS/"/> > >> > >> PERSISTENT >>Mod e> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> ... > >> > >> > >> I'll get the result of deliveryMode extension. > >> I think the wsdl extension just can add attributes, element to a > >> extension element in CXF. But I can't get the extension element's value. > >> Is it right? > >> > >> My question is: how to get the extension information in [1]. What does > >> the extension schema look like? > >> > >> thanks. > >> Liu -- Daniel Kulp dkulp@apache.org http://www.dankulp.com/blog