Return-Path: Mailing-List: contact soap-dev-help@xml.apache.org; run by ezmlm Delivered-To: mailing list soap-dev@xml.apache.org Received: (qmail 86806 invoked from network); 14 Dec 2001 15:08:06 -0000 Received: from smtpproxy1.mitre.org (129.83.20.90) by daedalus.apache.org with SMTP; 14 Dec 2001 15:08:06 -0000 Received: from avsrv1.mitre.org (avsrv1.mitre.org [129.83.20.58]) by smtpproxy1.mitre.org (8.11.3/8.11.3) with ESMTP id fBEF87822843 for ; Fri, 14 Dec 2001 10:08:07 -0500 (EST) Received: from MAILHUB1 (mailhub1.mitre.org [129.83.20.31]) by smtpsrv1.mitre.org (8.11.3/8.11.3) with ESMTP id fBEF86s12093 for ; Fri, 14 Dec 2001 10:08:07 -0500 (EST) Received: from dhcp-102-207.mitre.org (128.29.102.207) by mailhub1.mitre.org with SMTP id 8576540; Fri, 14 Dec 2001 10:07:37 -0500 Message-ID: <3C1A15D5.AAC49782@mitre.org> Date: Fri, 14 Dec 2001 10:08:05 -0500 From: Paul Klinker Organization: The MITRE Corporation X-Mailer: Mozilla 4.76 [en]C-20010313M (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: soap-dev@xml.apache.org Subject: Re: Submitting code change. References: <3C1A12A9.6EB3BE35@mitre.org> <046401c184af$b0dd4940$c267b809@watson.ibm.com> Content-Type: multipart/mixed; boundary="------------5987B71380C3B6BDE2ACA527" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N This is a multi-part message in MIME format. --------------5987B71380C3B6BDE2ACA527 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sanjiva, The proxy is specified in the same way as the authentication information. The flag is -proxy and the parameters follow separated by a ":". E.g. java ... [-proxy host:port] url ... The proxy flag does not need the auth flag. If the auth flag is present the proxy flag must not precede it. If you have any questions please let me know. Thanks, Paul Sanjiva Weerawarana wrote: > > Please send the updated file to soap-dev and I'll check and commit it. > > Sanjiva. > > ----- Original Message ----- > From: "Paul Klinker" > To: > Sent: Friday, December 14, 2001 8:54 PM > Subject: Submitting code change. > > > Hello, > > > > I want to reach an outside SOAP server from behind a firewall using > > ServiceManagerClient. This requires the use of a proxy but from what I > > can tell this is not possible using the ServiceManagerClient. > > > > To this end I modified org.apache.soap.server.ServiceManagerClient to > > take a proxy host and port as optional input parameters. It will then > > use the proxy in the SOAPHTTPConnection. I tested it and I am now able > > to reach the outside server. How do I get this code added to the > > baseline? > > > > Thanks, > > > > Paul --------------5987B71380C3B6BDE2ACA527 Content-Type: application/x-unknown-content-type-JBuilder.JavaSource; name="ServiceManagerClient.java" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="ServiceManagerClient.java" LyoNCiAqIFRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjENCiAqDQog Kg0KICogQ29weXJpZ2h0IChjKSAyMDAwIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlv bi4gIEFsbCByaWdodHMgDQogKiByZXNlcnZlZC4NCiAqDQogKiBSZWRpc3RyaWJ1dGlvbiBh bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAq IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp bmcgY29uZGl0aW9ucw0KICogYXJlIG1ldDoNCiAqDQogKiAxLiBSZWRpc3RyaWJ1dGlvbnMg b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj bGFpbWVyLiANCiAqDQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluDQogKiAg ICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp dGggdGhlDQogKiAgICBkaXN0cmlidXRpb24uDQogKg0KICogMy4gVGhlIGVuZC11c2VyIGRv Y3VtZW50YXRpb24gaW5jbHVkZWQgd2l0aCB0aGUgcmVkaXN0cmlidXRpb24sDQogKiAgICBp ZiBhbnksIG11c3QgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50OiAgDQog KiAgICAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0 aGUNCiAqICAgICAgICBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5h cGFjaGUub3JnLykuIg0KICogICAgQWx0ZXJuYXRlbHksIHRoaXMgYWNrbm93bGVkZ21lbnQg bWF5IGFwcGVhciBpbiB0aGUgc29mdHdhcmUgaXRzZWxmLA0KICogICAgaWYgYW5kIHdoZXJl dmVyIHN1Y2ggdGhpcmQtcGFydHkgYWNrbm93bGVkZ21lbnRzIG5vcm1hbGx5IGFwcGVhci4N CiAqDQogKiA0LiBUaGUgbmFtZXMgIlNPQVAiIGFuZCAiQXBhY2hlIFNvZnR3YXJlIEZvdW5k YXRpb24iIG11c3QNCiAqICAgIG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcw0KICogICAgc29mdHdhcmUgd2l0aG91dCBwcmlv ciB3cml0dGVuIHBlcm1pc3Npb24uIEZvciB3cml0dGVuIA0KICogICAgcGVybWlzc2lvbiwg cGxlYXNlIGNvbnRhY3QgYXBhY2hlQGFwYWNoZS5vcmcuDQogKg0KICogNS4gUHJvZHVjdHMg ZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgbWF5IG5vdCBiZSBjYWxsZWQgIkFwYWNoZSIs DQogKiAgICBub3IgbWF5ICJBcGFjaGUiIGFwcGVhciBpbiB0aGVpciBuYW1lLCB3aXRob3V0 IHByaW9yIHdyaXR0ZW4NCiAqICAgIHBlcm1pc3Npb24gb2YgdGhlIEFwYWNoZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLg0KICoNCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJ UycnIEFORCBBTlkgRVhQUkVTU0VEIE9SIElNUExJRUQNCiAqIFdBUlJBTlRJRVMsIElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTDQogKiBP RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFSRQ0KICogRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBUEFDSEUgU09G VFdBUkUgRk9VTkRBVElPTiBPUg0KICogSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KICogU1BFQ0lBTCwgRVhFTVBM QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KICog TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF UzsgTE9TUyBPRg0KICogVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORA0KICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksDQogKiBPUiBU T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z IFdBWSBPVVQNCiAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KICogU1VDSCBEQU1BR0UuDQogKiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KICoNCiAqIFRoaXMgc29mdHdhcmUgY29uc2lzdHMgb2Ygdm9sdW50YXJ5IGNv bnRyaWJ1dGlvbnMgbWFkZSBieSBtYW55DQogKiBpbmRpdmlkdWFscyBvbiBiZWhhbGYgb2Yg dGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGFuZCB3YXMNCiAqIG9yaWdpbmFsbHkg YmFzZWQgb24gc29mdHdhcmUgY29weXJpZ2h0IChjKSAyMDAwLCBJbnRlcm5hdGlvbmFsDQog KiBCdXNpbmVzcyBNYWNoaW5lcywgSW5jLiwgaHR0cDovL3d3dy5hcGFjaGUub3JnLiAgRm9y IG1vcmUNCiAqIGluZm9ybWF0aW9uIG9uIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlv biwgcGxlYXNlIHNlZQ0KICogPGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8+Lg0KICovDQoNCnBh Y2thZ2Ugb3JnLmFwYWNoZS5zb2FwLnNlcnZlcjsNCg0KaW1wb3J0IGphdmEubmV0LlVSTDsN CmltcG9ydCBqYXZhLmlvLio7DQppbXBvcnQgamF2YS51dGlsLio7DQppbXBvcnQgamF2YXgu eG1sLnBhcnNlcnMuKjsNCmltcG9ydCBvcmcudzNjLmRvbS4qOw0KaW1wb3J0IG9yZy54bWwu c2F4Lio7DQppbXBvcnQgb3JnLmFwYWNoZS5zb2FwLnV0aWwueG1sLio7DQppbXBvcnQgb3Jn LmFwYWNoZS5zb2FwLio7DQppbXBvcnQgb3JnLmFwYWNoZS5zb2FwLmVuY29kaW5nLlNPQVBN YXBwaW5nUmVnaXN0cnk7DQppbXBvcnQgb3JnLmFwYWNoZS5zb2FwLnRyYW5zcG9ydC5odHRw LlNPQVBIVFRQQ29ubmVjdGlvbjsNCmltcG9ydCBvcmcuYXBhY2hlLnNvYXAucnBjLio7DQoN Ci8qKg0KICogVGhpcyBpcyBhIGNsaWVudCB0byB0YWxrIHRvIGFuIEFwYWNoZSBTT0FQIFNl cnZpY2VNYW5hZ2VyIHRvIG1hbmFnZSBzZXJ2aWNlcw0KICogZGVwbG95ZWQgb24gdGhlIHNl cnZlci4NCiAqDQogKiBAYXV0aG9yIFNhbmppdmEgV2VlcmF3YXJhbmEgKHNhbmppdmFAd2F0 c29uLmlibS5jb20pDQogKi8NCnB1YmxpYyBjbGFzcyBTZXJ2aWNlTWFuYWdlckNsaWVudCB7 DQogIFVSTCByb3V0ZXJVUkw7DQogIFZlY3RvciBwYXJhbXMgPSBuZXcgVmVjdG9yICgpOw0K ICBDYWxsIGNhbGwgPSBuZXcgQ2FsbCAoKTsNCiAgU3RyaW5nIHVzZXJOYW1lOw0KICBTdHJp bmcgcGFzc3dvcmQ7DQogIFN0cmluZyBwcm94eUhvc3Q7DQogIFN0cmluZyBwcm94eVBvcnQ7 DQogIGJvb2xlYW4gdXNlUHJveHk9ZmFsc2U7DQogICANCiAgcHJpdmF0ZSBmaW5hbCBzdGF0 aWMgU3RyaW5nIFBST1hZX0FSRyA9ICItcHJveHkiOw0KDQogIHB1YmxpYyBTZXJ2aWNlTWFu YWdlckNsaWVudCAoVVJMIHJvdXRlclVSTCkgew0KICAgIFNlcmlhbGl6ZXIgYnMgPSBuZXcg b3JnLmFwYWNoZS5zb2FwLmVuY29kaW5nLnNvYXBlbmMuQmVhblNlcmlhbGl6ZXIgKCk7DQoN CiAgICB0aGlzLnJvdXRlclVSTCA9IHJvdXRlclVSTDsNCiAgICBTT0FQTWFwcGluZ1JlZ2lz dHJ5IHNtciA9IGNhbGwuZ2V0U09BUE1hcHBpbmdSZWdpc3RyeSAoKTsNCg0KICAgIC8vIHJl Z2lzdGVyIHNlcmlhbGl6ZXIvZGVzZXJpYWxpemVyIGZvciBEZXBsb3ltZW50RGVzY3JpcHRv ci5jbGFzcw0KICAgIC8vIGFuZCBUeXBlTWFwcGluZy5jbGFzcw0KICAgIHNtci5tYXBUeXBl cyAoQ29uc3RhbnRzLk5TX1VSSV9TT0FQX0VOQywNCiAgICAgICAgICAgICAgICAgIG5ldyBR TmFtZSAoQ29uc3RhbnRzLk5TX1VSSV9YTUxfU09BUCwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkRlcGxveW1lbnREZXNjcmlwdG9yIiksDQogICAgICAgICAgICAgICAgICBE ZXBsb3ltZW50RGVzY3JpcHRvci5jbGFzcywgYnMsIChEZXNlcmlhbGl6ZXIpIGJzKTsNCiAg ICBicyA9IG5ldyBUeXBlTWFwcGluZ1NlcmlhbGl6ZXIgKCk7DQogICAgc21yLm1hcFR5cGVz IChDb25zdGFudHMuTlNfVVJJX1NPQVBfRU5DLA0KICAgICAgICAgICAgICAgICAgbmV3IFFO YW1lIChDb25zdGFudHMuTlNfVVJJX1hNTF9TT0FQLCAiVHlwZU1hcHBpbmciKSwNCiAgICAg ICAgICAgICAgICAgIFR5cGVNYXBwaW5nLmNsYXNzLCBicywgKERlc2VyaWFsaXplcikgYnMp Ow0KICB9DQoNCiAgcHVibGljIHZvaWQgc2V0VXNlck5hbWUgKFN0cmluZyB1c2VyTmFtZSkg ew0KICAgIHRoaXMudXNlck5hbWUgPSB1c2VyTmFtZTsNCiAgfQ0KDQogIHB1YmxpYyB2b2lk IHNldFBhc3N3b3JkIChTdHJpbmcgcGFzc3dvcmQpIHsNCiAgICB0aGlzLnBhc3N3b3JkID0g cGFzc3dvcmQ7DQogIH0NCg0KICBwdWJsaWMgdm9pZCBzZXRQcm94eUhvc3QgKFN0cmluZyBw cm94eUhvc3QpIHsNCiAgICB0aGlzLnByb3h5SG9zdCA9IHByb3h5SG9zdDsNCiAgfQ0KDQog IHB1YmxpYyB2b2lkIHNldFByb3h5UG9ydCAoU3RyaW5nIHByb3h5UG9ydCkgew0KICAgIHRo aXMucHJveHlQb3J0ID0gcHJveHlQb3J0Ow0KICB9DQoNCiAgcHVibGljIHZvaWQgc2V0VXNl UHJveHkoYm9vbGVhbiB1c2VQcm94eSkgew0KICAgIHRoaXMudXNlUHJveHkgPSB1c2VQcm94 eTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBSZXNwb25zZSBpbnZva2VNZXRob2QgKFN0cmluZyBt ZXRob2ROYW1lLCBQYXJhbWV0ZXIgcGFyYW0pIA0KICAgICAgIHRocm93cyBTT0FQRXhjZXB0 aW9uIHsNCiAgICAgICAgIA0KICAgIGNhbGwuc2V0VGFyZ2V0T2JqZWN0VVJJIChTZXJ2ZXJD b25zdGFudHMuU0VSVklDRV9NQU5BR0VSX1NFUlZJQ0VfTkFNRSk7DQogICAgY2FsbC5zZXRN ZXRob2ROYW1lIChtZXRob2ROYW1lKTsNCiAgICBjYWxsLnNldEVuY29kaW5nU3R5bGVVUkkg KENvbnN0YW50cy5OU19VUklfU09BUF9FTkMpOw0KDQogICAgaWYgKCh1c2VQcm94eSkgfHwg KHVzZXJOYW1lICE9IG51bGwpKSB7DQogICAgICBTT0FQSFRUUENvbm5lY3Rpb24gaGMgPSBu ZXcgU09BUEhUVFBDb25uZWN0aW9uICgpOw0KICAgICAgaWYgKHVzZVByb3h5KSB7DQogICAg ICAgIGhjLnNldFByb3h5SG9zdChwcm94eUhvc3QpOw0KICAgICAgICBoYy5zZXRQcm94eVBv cnQoSW50ZWdlci5wYXJzZUludChwcm94eVBvcnQpKTsNCiAgICAgIH0NCg0KICAgICAgaWYg KHVzZXJOYW1lICE9IG51bGwpIHsNCiAgICAgICAgaGMuc2V0VXNlck5hbWUgKHVzZXJOYW1l KTsNCiAgICAgICAgaGMuc2V0UGFzc3dvcmQgKHBhc3N3b3JkKTsNCiAgICAgIH0NCiAgICAg IGNhbGwuc2V0U09BUFRyYW5zcG9ydCAoaGMpOw0KICAgIH0NCiAgICANCiAgICBpZiAocGFy YW0gIT0gbnVsbCkgew0KICAgICAgcGFyYW1zLnJlbW92ZUFsbEVsZW1lbnRzICgpOw0KICAg ICAgcGFyYW1zLmFkZEVsZW1lbnQgKHBhcmFtKTsNCiAgICAgIGNhbGwuc2V0UGFyYW1zIChw YXJhbXMpOw0KICAgIH0gZWxzZSB7DQogICAgICBjYWxsLnNldFBhcmFtcyAobnVsbCk7DQog ICAgfQ0KICAgIFJlc3BvbnNlIHJlc3AgPSBjYWxsLmludm9rZSAocm91dGVyVVJMLCAiIik7 DQogICAgaWYgKHJlc3AuZ2VuZXJhdGVkRmF1bHQgKCkpIHsNCiAgICAgIEZhdWx0IGZhdWx0 ID0gcmVzcC5nZXRGYXVsdCAoKTsNCiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiAoIk91Y2gs IHRoZSBjYWxsIGZhaWxlZDogIik7DQogICAgICBTeXN0ZW0ub3V0LnByaW50bG4gKCIgIEZh dWx0IENvZGUgICA9ICIgKyBmYXVsdC5nZXRGYXVsdENvZGUgKCkpOyAgDQogICAgICBTeXN0 ZW0ub3V0LnByaW50bG4gKCIgIEZhdWx0IFN0cmluZyA9ICIgKyBmYXVsdC5nZXRGYXVsdFN0 cmluZyAoKSk7DQogICAgfSAgDQogICAgcmV0dXJuIHJlc3A7DQogIH0NCg0KICBwdWJsaWMg dm9pZCBkZXBsb3kgKERlcGxveW1lbnREZXNjcmlwdG9yIGRkKSB0aHJvd3MgU09BUEV4Y2Vw dGlvbiB7DQogICAgUGFyYW1ldGVyIHAxID0gbmV3IFBhcmFtZXRlciAoImRlc2NyaXB0b3Ii LCBEZXBsb3ltZW50RGVzY3JpcHRvci5jbGFzcywNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZCwgbnVsbCk7DQogICAgaW52b2tlTWV0aG9kICgiZGVwbG95IiwgcDEp Ow0KICB9DQoNCiAgcHVibGljIHZvaWQgdW5kZXBsb3kgKFN0cmluZyBzZXJ2aWNlTmFtZSkg dGhyb3dzIFNPQVBFeGNlcHRpb24gew0KICAgIFBhcmFtZXRlciBwMSA9IG5ldyBQYXJhbWV0 ZXIgKCJuYW1lIiwgU3RyaW5nLmNsYXNzLCBzZXJ2aWNlTmFtZSwgbnVsbCk7DQogICAgaW52 b2tlTWV0aG9kICgidW5kZXBsb3kiLCBwMSk7DQogIH0NCiAgDQogIHB1YmxpYyBTdHJpbmdb XSBsaXN0ICgpIHRocm93cyBTT0FQRXhjZXB0aW9uIHsNCiAgICBSZXNwb25zZSByZXNwID0g aW52b2tlTWV0aG9kICgibGlzdCIsIG51bGwpOw0KICAgIGlmICghcmVzcC5nZW5lcmF0ZWRG YXVsdCAoKSkgew0KICAgICAgUGFyYW1ldGVyIHJlc3VsdCA9IHJlc3AuZ2V0UmV0dXJuVmFs dWUgKCk7DQogICAgICByZXR1cm4gKFN0cmluZ1tdKSByZXN1bHQuZ2V0VmFsdWUgKCk7DQog ICAgfSBlbHNlIHsNCiAgICAgIHJldHVybiBudWxsOw0KICAgIH0NCiAgfQ0KDQogIHB1Ymxp YyBEZXBsb3ltZW50RGVzY3JpcHRvciBxdWVyeSAoU3RyaW5nIHNlcnZpY2VOYW1lKSB0aHJv d3MgU09BUEV4Y2VwdGlvbiB7DQogICAgUGFyYW1ldGVyIHAxID0gbmV3IFBhcmFtZXRlciAo Im5hbWUiLCBTdHJpbmcuY2xhc3MsIHNlcnZpY2VOYW1lLCBudWxsKTsNCiAgICBSZXNwb25z ZSByZXNwID0gaW52b2tlTWV0aG9kICgicXVlcnkiLCBwMSk7DQogICAgaWYgKCFyZXNwLmdl bmVyYXRlZEZhdWx0ICgpKSB7DQogICAgICBQYXJhbWV0ZXIgcmVzdWx0ID0gcmVzcC5nZXRS ZXR1cm5WYWx1ZSAoKTsNCiAgICAgIHJldHVybiAoRGVwbG95bWVudERlc2NyaXB0b3IpIHJl c3VsdC5nZXRWYWx1ZSAoKTsNCiAgICB9IGVsc2Ugew0KICAgICAgcmV0dXJuIG51bGw7DQog ICAgfQ0KICB9DQoNCiAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBiYWRVc2FnZSAoKSB7DQogICAg U3lzdGVtLmVyci5wcmludGxuICgiVXNhZ2U6IGphdmEgIiArDQogICAgICAgICAgICAgICAg ICAgICAgICBTZXJ2aWNlTWFuYWdlckNsaWVudC5jbGFzcy5nZXROYW1lICgpICsNCiAgICAg ICAgICAgICAgICAgICAgICAgICIgWy1hdXRoIHVzZXJuYW1lOnBhc3N3b3JkXSBbLXByb3h5 IGhvc3Q6cG9ydF0gdXJsIG9wZXJhdGlvbiBhcmd1bWVudHMiKTsNCiAgICBTeXN0ZW0uZXJy LnByaW50bG4gKCJ3aGVyZSIpOw0KICAgIFN5c3RlbS5lcnIucHJpbnRsbiAoIlx0dXNlcm5h bWUgYW5kIHBhc3N3b3JkIGlzIHRoZSBIVFRQIEJhc2ljIiArDQoJCQkiIGF1dGhlbnRpY2F0 aW9uIGluZm8iKTsNCiAgICBTeXN0ZW0uZXJyLnByaW50bG4gKCJcdHVybCBpcyB0aGUgQXBh Y2hlIFNPQVAgcm91dGVyJ3MgVVJMIHdob3NlIiArDQogICAgICAgICAgICAgICAgICAgICAg ICAiIHNlcnZpY2VzIGFyZSBtYW5hZ2VkIik7DQogICAgU3lzdGVtLmVyci5wcmludGxuICgi XHRvcGVyYXRpb24gYW5kIGFyZ3VtZW50cyBhcmU6Iik7DQogICAgU3lzdGVtLmVyci5wcmlu dGxuICgiXHRcdGRlcGxveSBkZXBsb3ltZW50LWRlc2NyaXB0b3ItZmlsZS54bWwiKTsNCiAg ICBTeXN0ZW0uZXJyLnByaW50bG4gKCJcdFx0bGlzdCIpOw0KICAgIFN5c3RlbS5lcnIucHJp bnRsbiAoIlx0XHRxdWVyeSBzZXJ2aWNlLW5hbWUiKTsNCiAgICBTeXN0ZW0uZXJyLnByaW50 bG4gKCJcdFx0dW5kZXBsb3kgc2VydmljZS1uYW1lIik7DQogICAgDQogICAgU3lzdGVtLmV4 aXQgKDEpOw0KICB9DQoNCiAgLyoqDQogICAqIENvbW1hbmQtbGluZSBhcHAgZm9yIG1hbmFn aW5nIHNlcnZpY2VzIG9uIGFuIEFwYWNoZSBTT0FQIHNlcnZlci4NCiAgICovDQogIHB1Ymxp YyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsN CiAgICBVUkwgcm91dGVyVVJMOw0KICAgIFN0cmluZyBvcDsNCiAgICBTdHJpbmcgdXNlck5h bWUgPSBudWxsOw0KICAgIFN0cmluZyBwYXNzd29yZCA9IG51bGw7DQogICAgU3RyaW5nIHBy b3h5SG9zdCA9IG51bGw7DQogICAgU3RyaW5nIHByb3h5UG9ydCA9IG51bGw7DQogICAgYm9v bGVhbiB1c2VQcm94eT1mYWxzZTsNCg0KICAgIGlmIChhcmdzLmxlbmd0aCA8IDIpIHsNCiAg ICAgIGJhZFVzYWdlICgpOw0KICAgIH0NCg0KICAgIGludCBiYXNlID0gMDsNCiAgICBpZiAo YXJnc1swXS5lcXVhbHMgKCItYXV0aCIpKSB7DQogICAgICBpZiAoYXJncy5sZW5ndGggPCA0 KSB7IC8vIC1hdXRoIHVzZXI6cGFzcyArIHVybCArIG9wIGlzIG1pbmltYWwNCgliYWRVc2Fn ZSAoKTsNCiAgICAgIH0NCiAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdU b2tlbml6ZXIgKGFyZ3NbMV0sICI6Iik7DQogICAgICBpZiAoc3QuY291bnRUb2tlbnMgKCkg IT0gMikgew0KCWJhZFVzYWdlICgpOw0KICAgICAgfQ0KICAgICAgdXNlck5hbWUgPSBzdC5u ZXh0VG9rZW4gKCk7DQogICAgICBwYXNzd29yZCA9IHN0Lm5leHRUb2tlbiAoKTsNCiAgICAg IGJhc2UgPSAyOw0KICAgIH0NCiAgICAgICAgDQogICAgaWYgKFBST1hZX0FSRy5lcXVhbHMo YXJnc1tiYXNlXSkpIHsNCiAgICAgIGlmIChhcmdzLmxlbmd0aCA8IGJhc2UrNCkgeyAvLyAu Li4gLXByb3h5IGhvc3Q6cG9ydCArIHVybCArIG9wIGlzIG1pbmltYWwNCgliYWRVc2FnZSAo KTsNCiAgICAgIH0NCiAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tl bml6ZXIgKGFyZ3NbYmFzZSsxXSwgIjoiKTsNCiAgICAgIGlmIChzdC5jb3VudFRva2VucyAo KSAhPSAyKSB7DQoJYmFkVXNhZ2UgKCk7DQogICAgICB9DQogICAgICBwcm94eUhvc3QgPSBz dC5uZXh0VG9rZW4gKCk7DQogICAgICBwcm94eVBvcnQgPSBzdC5uZXh0VG9rZW4gKCk7DQog ICAgICBiYXNlID0gYmFzZSArIDI7DQogICAgICB1c2VQcm94eSA9IHRydWU7DQogICAgfQ0K ICAgIA0KICAgIFNlcnZpY2VNYW5hZ2VyQ2xpZW50IHNtYyA9IA0KICAgICAgbmV3IFNlcnZp Y2VNYW5hZ2VyQ2xpZW50IChuZXcgVVJMIChhcmdzW2Jhc2VdKSk7DQogICAgaWYgKChiYXNl ID09IDIpICYmKCF1c2VQcm94eSkpIHsNCiAgICAgIHNtYy5zZXRVc2VyTmFtZSAodXNlck5h bWUpOw0KICAgICAgc21jLnNldFBhc3N3b3JkIChwYXNzd29yZCk7DQogICAgfQ0KICAgIA0K ICAgIGlmICh1c2VQcm94eSkgew0KICAgICAgc21jLnNldFByb3h5SG9zdChwcm94eUhvc3Qp Ow0KICAgICAgc21jLnNldFByb3h5UG9ydChwcm94eVBvcnQpOw0KICAgICAgc21jLnNldFVz ZVByb3h5KHRydWUpOw0KICAgIH0NCiAgICANCiAgICBvcCA9IGFyZ3NbYmFzZSsxXTsNCiAg ICBpZiAob3AuZXF1YWxzICgiZGVwbG95IikpIHsNCiAgICAgIGlmIChhcmdzLmxlbmd0aCAh PSBiYXNlKzMpIHsNCiAgICAgICAgYmFkVXNhZ2UgKCk7DQogICAgICB9DQogICAgICBGaWxl UmVhZGVyIGZyID0gbmV3IEZpbGVSZWFkZXIgKGFyZ3NbYmFzZSsyXSk7DQogICAgICBEb2N1 bWVudEJ1aWxkZXIgeGRiID0gWE1MUGFyc2VyVXRpbHMuZ2V0WE1MRG9jQnVpbGRlcigpOw0K ICAgICAgRG9jdW1lbnQgZG9jID0geGRiLnBhcnNlKG5ldyBJbnB1dFNvdXJjZShmcikpOw0K ICAgICAgc21jLmRlcGxveSAoRGVwbG95bWVudERlc2NyaXB0b3IuZnJvbVhNTCAoZG9jLmdl dERvY3VtZW50RWxlbWVudCAoKSkpOw0KICAgIH0gZWxzZSBpZiAob3AuZXF1YWxzICgidW5k ZXBsb3kiKSkgew0KICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IGJhc2UrMykgew0KICAgICAg ICBiYWRVc2FnZSAoKTsNCiAgICAgIH0NCiAgICAgIHNtYy51bmRlcGxveSAoYXJnc1tiYXNl KzJdKTsNCiAgICB9IGVsc2UgaWYgKG9wLmVxdWFscyAoImxpc3QiKSkgew0KICAgICAgU3Ry aW5nW10gc21zID0gc21jLmxpc3QgKCk7DQogICAgICBpZiAoc21zICE9IG51bGwpIHsNCiAg ICAgICAgU3lzdGVtLm91dC5wcmludGxuICgiRGVwbG95ZWQgU2VydmljZXM6Iik7DQogICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc21zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAg U3lzdGVtLm91dC5wcmludGxuICgiXHQiICsgc21zW2ldKTsNCiAgICAgICAgfQ0KICAgICAg fQ0KICAgIH0gZWxzZSBpZiAob3AuZXF1YWxzICgicXVlcnkiKSkgew0KICAgICAgaWYgKGFy Z3MubGVuZ3RoICE9IGJhc2UrMykgew0KICAgICAgICBiYWRVc2FnZSAoKTsNCiAgICAgIH0N CiAgICAgIERlcGxveW1lbnREZXNjcmlwdG9yIGRkID0gc21jLnF1ZXJ5IChhcmdzW2Jhc2Ur Ml0pOw0KICAgICAgaWYgKGRkICE9IG51bGwpIHsNCiAgICAgICAgZGQudG9YTUwgKG5ldyBP dXRwdXRTdHJlYW1Xcml0ZXIgKFN5c3RlbS5vdXQpKTsNCiAgICAgIH0NCiAgICB9IGVsc2Ug ew0KICAgICAgYmFkVXNhZ2UgKCk7DQogICAgfQ0KICB9DQp9DQo= --------------5987B71380C3B6BDE2ACA527--