Return-Path: Delivered-To: apmail-incubator-cxf-commits-archive@locus.apache.org Received: (qmail 44623 invoked from network); 24 Apr 2007 21:56:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 24 Apr 2007 21:56:58 -0000 Received: (qmail 80637 invoked by uid 500); 24 Apr 2007 21:57:05 -0000 Delivered-To: apmail-incubator-cxf-commits-archive@incubator.apache.org Received: (qmail 80579 invoked by uid 500); 24 Apr 2007 21:57:05 -0000 Mailing-List: contact cxf-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-commits@incubator.apache.org Received: (qmail 80569 invoked by uid 99); 24 Apr 2007 21:57:05 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Apr 2007 14:57:05 -0700 X-ASF-Spam-Status: No, hits=-98.6 required=10.0 tests=ALL_TRUSTED,INFO_TLD,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Apr 2007 14:56:57 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id CCDCB1A9838; Tue, 24 Apr 2007 14:56:36 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r532103 - in /incubator/cxf/trunk: rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/ rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/ rt/bindings/jbi/src/test/java/org/ rt/bindings/jbi/src/test/java/org/apache/ ... Date: Tue, 24 Apr 2007 21:56:35 -0000 To: cxf-commits@incubator.apache.org From: gnodet@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070424215636.CCDCB1A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: gnodet Date: Tue Apr 24 14:56:33 2007 New Revision: 532103 URL: http://svn.apache.org/viewvc?view=rev&rev=532103 Log: Refine JBI binding and transport Add some tests Add support for JBI in tooling Added: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java (with props) incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java (with props) incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java (with props) incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xjb incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd (with props) Removed: incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java Modified: incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBITransportFactory.java incubator/cxf/trunk/tools/common/pom.xml Modified: incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java (original) +++ incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java Tue Apr 24 14:56:33 2007 @@ -26,7 +26,6 @@ import org.apache.cxf.binding.jbi.interceptor.JBIOperationInInterceptor; import org.apache.cxf.binding.jbi.interceptor.JBIWrapperInInterceptor; import org.apache.cxf.binding.jbi.interceptor.JBIWrapperOutInterceptor; -import org.apache.cxf.interceptor.StaxInInterceptor; import org.apache.cxf.interceptor.StaxOutInterceptor; import org.apache.cxf.service.model.BindingInfo; import org.apache.cxf.service.model.BindingOperationInfo; @@ -38,12 +37,9 @@ public Binding createBinding(BindingInfo binding) { JBIBinding jb = new JBIBinding((JBIBindingInfo) binding); jb.getInInterceptors().add(new JBIOperationInInterceptor()); - jb.getInInterceptors().add(new StaxInInterceptor()); jb.getInInterceptors().add(new JBIWrapperInInterceptor()); - jb.getOutInterceptors().add(new StaxOutInterceptor()); jb.getOutInterceptors().add(new JBIWrapperOutInterceptor()); - jb.getOutFaultInterceptors().add(new StaxOutInterceptor()); jb.getOutFaultInterceptors().add(new JBIFaultOutInterceptor()); return jb; Modified: incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java (original) +++ incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java Tue Apr 24 14:56:33 2007 @@ -25,7 +25,7 @@ public class JBIMessage extends AbstractWrappedMessage { - protected JBIMessage(Message msg) { + public JBIMessage(Message msg) { super(msg); } Modified: incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java (original) +++ incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java Tue Apr 24 14:56:33 2007 @@ -43,9 +43,9 @@ } public void handleMessage(JBIMessage message) throws Fault { - XMLStreamWriter writer = message.getContent(XMLStreamWriter.class); - Fault fault = (Fault) message.getContent(Exception.class); try { + XMLStreamWriter writer = getWriter(message); + Fault fault = getFault(message); if (!fault.hasDetails()) { writer.writeEmptyElement("fault"); } else { @@ -63,4 +63,24 @@ } } + protected Fault getFault(JBIMessage message) { + Exception e = message.getContent(Exception.class); + Fault fault; + if (e == null) { + throw new IllegalStateException("No exception on this message!"); + } else if (e instanceof Fault) { + fault = (Fault) e; + } else { + fault = new Fault(e); + } + return fault; + } + + protected XMLStreamWriter getWriter(JBIMessage message) { + XMLStreamWriter writer = message.getContent(XMLStreamWriter.class); + if (writer == null) { + throw new IllegalStateException("No XMLStreamWriter on this message"); + } + return writer; + } } Modified: incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java (original) +++ incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java Tue Apr 24 14:56:33 2007 @@ -39,6 +39,7 @@ import org.apache.cxf.message.Message; import org.apache.cxf.phase.Phase; import org.apache.cxf.service.model.BindingInfo; +import org.apache.cxf.service.model.BindingMessageInfo; import org.apache.cxf.service.model.BindingOperationInfo; import org.apache.cxf.service.model.MessagePartInfo; import org.apache.cxf.staxutils.DepthXMLStreamReader; @@ -86,8 +87,10 @@ BindingOperationInfo bop = ex.get(BindingOperationInfo.class); DataReader dr = getDataReader(message); List parameters = new ArrayList(); - for (MessagePartInfo part : bop.getInput().getMessageParts()) { - if (reader.nextTag() != XMLStreamConstants.START_ELEMENT) { + reader.next(); + BindingMessageInfo messageInfo = isRequestor(message) ? bop.getInput() : bop.getOutput(); + for (MessagePartInfo part : messageInfo.getMessageParts()) { + if (!StaxUtils.skipToStartOfElement(reader)) { throw new Fault(new org.apache.cxf.common.i18n.Message( "NO_ENOUGH_PARTS", BUNDLE)); } @@ -110,7 +113,14 @@ } reader.next(); } - if (reader.getEventType() != XMLStreamConstants.END_DOCUMENT) { + int ev = reader.getEventType(); + while (ev != XMLStreamConstants.END_ELEMENT + && ev != XMLStreamConstants.START_ELEMENT + && ev != XMLStreamConstants.END_DOCUMENT) { + ev = reader.next(); + } + if (ev == XMLStreamConstants.START_ELEMENT) { + System.err.println(reader.getEventType()); throw new Fault(new org.apache.cxf.common.i18n.Message("TOO_MUCH_PARTS", BUNDLE)); } message.setContent(List.class, parameters); Added: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java?view=auto&rev=532103 ============================================================================== --- incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java (added) +++ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java Tue Apr 24 14:56:33 2007 @@ -0,0 +1,53 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.cxf.binding.jbi; + +import junit.framework.TestCase; + +import org.apache.cxf.binding.Binding; +import org.apache.cxf.binding.jbi.interceptor.JBIFaultOutInterceptor; +import org.apache.cxf.binding.jbi.interceptor.JBIOperationInInterceptor; +import org.apache.cxf.binding.jbi.interceptor.JBIWrapperInInterceptor; +import org.apache.cxf.binding.jbi.interceptor.JBIWrapperOutInterceptor; +import org.apache.cxf.interceptor.StaxOutInterceptor; +import org.apache.cxf.service.model.ServiceInfo; + +public class JBIBindingFactoryTest extends TestCase { + + public void testCreateBinding() { + JBIBindingInfo info = new JBIBindingInfo(new ServiceInfo(), "id"); + Binding binding = new JBIBindingFactory().createBinding(info); + assertEquals(2, binding.getInInterceptors().size()); + //assertEquals(?, binding.getInFaultInterceptors().size()); + assertEquals(2, binding.getOutInterceptors().size()); + assertEquals(2, binding.getOutFaultInterceptors().size()); + assertEquals(JBIOperationInInterceptor.class.getName(), + binding.getInInterceptors().get(0).getClass().getName()); + assertEquals(JBIWrapperInInterceptor.class.getName(), + binding.getInInterceptors().get(1).getClass().getName()); + assertEquals(StaxOutInterceptor.class.getName(), + binding.getOutInterceptors().get(0).getClass().getName()); + assertEquals(JBIWrapperOutInterceptor.class.getName(), + binding.getOutInterceptors().get(1).getClass().getName()); + assertEquals(StaxOutInterceptor.class.getName(), + binding.getOutFaultInterceptors().get(0).getClass().getName()); + assertEquals(JBIFaultOutInterceptor.class.getName(), + binding.getOutFaultInterceptors().get(1).getClass().getName()); + } +} Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java ------------------------------------------------------------------------------ svn:keywords = Date Revision Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/JBIBindingFactoryTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java?view=auto&rev=532103 ============================================================================== --- incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java (added) +++ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java Tue Apr 24 14:56:33 2007 @@ -0,0 +1,101 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.cxf.binding.jbi.interceptor; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.util.ResourceBundle; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamWriter; + +import org.w3c.dom.Document; + +import junit.framework.TestCase; + +import org.apache.cxf.binding.jbi.JBIMessage; +import org.apache.cxf.common.i18n.Message; +import org.apache.cxf.helpers.DOMUtils; +import org.apache.cxf.interceptor.Fault; +import org.apache.cxf.message.MessageImpl; +import org.apache.cxf.phase.Phase; +import org.apache.cxf.phase.PhaseInterceptor; + +public class JBIFaultOutInterceptorTest extends TestCase { + + public void testPhase() throws Exception { + PhaseInterceptor interceptor = new JBIFaultOutInterceptor(); + assertEquals(Phase.MARSHAL, interceptor.getPhase()); + } + + public void testNoWriter() throws Exception { + PhaseInterceptor interceptor = new JBIFaultOutInterceptor(); + try { + JBIMessage msg = new JBIMessage(new MessageImpl()); + interceptor.handleMessage(msg); + fail("Should have thrown an exception"); + } catch (IllegalStateException e) { + // ok + } + } + + public void testNoFault() throws Exception { + PhaseInterceptor interceptor = new JBIFaultOutInterceptor(); + try { + JBIMessage msg = new JBIMessage(new MessageImpl()); + msg.setContent(XMLStreamWriter.class, + XMLOutputFactory.newInstance().createXMLStreamWriter(new ByteArrayOutputStream())); + interceptor.handleMessage(msg); + fail("Should have thrown an exception"); + } catch (IllegalStateException e) { + // ok + } + } + + public void testEmptyFault() throws Exception { + PhaseInterceptor interceptor = new JBIFaultOutInterceptor(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(baos); + JBIMessage msg = new JBIMessage(new MessageImpl()); + msg.setContent(XMLStreamWriter.class, writer); + msg.setContent(Exception.class, new Exception("My fault")); + interceptor.handleMessage(msg); + writer.close(); + Document doc = DOMUtils.readXml(new ByteArrayInputStream(baos.toByteArray())); + assertEquals("fault", doc.getDocumentElement().getNodeName()); + } + + public void testDetailedFault() throws Exception { + PhaseInterceptor interceptor = new JBIFaultOutInterceptor(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(baos); + JBIMessage msg = new JBIMessage(new MessageImpl()); + Fault f = new Fault(new Message("FAULT", (ResourceBundle) null)); + f.getOrCreateDetail(); + f.getDetail().appendChild(f.getDetail().getOwnerDocument().createElementNS("urn:test", "myDetails")); + msg.setContent(XMLStreamWriter.class, writer); + msg.setContent(Exception.class, f); + interceptor.handleMessage(msg); + writer.close(); + Document doc = DOMUtils.readXml(new ByteArrayInputStream(baos.toByteArray())); + assertEquals("urn:test", doc.getDocumentElement().getNamespaceURI()); + assertEquals("myDetails", doc.getDocumentElement().getNodeName()); + } + +} Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java ------------------------------------------------------------------------------ svn:keywords = Date Revision Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptorTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java?view=auto&rev=532103 ============================================================================== --- incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java (added) +++ incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java Tue Apr 24 14:56:33 2007 @@ -0,0 +1,50 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.cxf.binding.jbi.interceptor; + +import junit.framework.TestCase; + +import org.apache.cxf.binding.jbi.JBIMessage; +import org.apache.cxf.phase.Phase; +import org.apache.cxf.phase.PhaseInterceptor; + +public class JBIOperationInInterceptorTest extends TestCase { + + public void testPhase() throws Exception { + PhaseInterceptor interceptor = new JBIOperationInInterceptor(); + assertEquals(Phase.PRE_PROTOCOL, interceptor.getPhase()); + } + + /* + public void testOperation() throws Exception { + PhaseInterceptor interceptor = new JBIOperationInInterceptor(); + JBIMessage msg = new JBIMessage(new MessageImpl()); + MessageExchange me = EasyMock.createMock(MessageExchange.class); + EasyMock.expect(me.getOperation()).andReturn(new QName("urn:test", "SayHi")); + EasyMock.replay(me); + msg.put(MessageExchange.class, me); + Endpoint ep = null; + msg.getExchange().put(Endpoint.class, ep); + msg.setExchange(new ExchangeImpl()); + + interceptor.handleMessage(msg); + } + */ + +} Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java ------------------------------------------------------------------------------ svn:keywords = Date Revision Propchange: incubator/cxf/trunk/rt/bindings/jbi/src/test/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptorTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java (original) +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java Tue Apr 24 14:56:33 2007 @@ -48,12 +48,12 @@ import javax.wsdl.extensions.UnknownExtensibilityElement; import javax.wsdl.extensions.schema.Schema; import javax.wsdl.extensions.schema.SchemaImport; +import javax.wsdl.extensions.soap.SOAPBinding; +import javax.wsdl.extensions.soap12.SOAP12Binding; import javax.xml.namespace.QName; import org.w3c.dom.Element; -import com.ibm.wsdl.extensions.soap.SOAPBindingImpl; - import org.apache.cxf.Bus; import org.apache.cxf.BusException; import org.apache.cxf.binding.BindingFactory; @@ -425,10 +425,20 @@ if (factory == null) { // get the transport id from bindingInfo elements = port.getBinding().getExtensibilityElements(); - for (ExtensibilityElement el : CastUtils.cast(elements, ExtensibilityElement.class)) { - if (el instanceof SOAPBindingImpl) { - ns = (String)((SOAPBindingImpl)el).getTransportURI(); - break; + if (null != elements && elements.size() > 0) { + for (ExtensibilityElement el : CastUtils.cast(elements, ExtensibilityElement.class)) { + if (el instanceof SOAPBinding) { + ns = (String)((SOAPBinding)el).getTransportURI(); + break; + } else if (el instanceof SOAP12Binding) { + ns = (String)((SOAP12Binding)el).getTransportURI(); + break; + // TODO: this is really ugly, but how to link between this binding and this transport ? + } else if ("http://cxf.apache.org/bindings/jbi" + .equals(el.getElementType().getNamespaceURI())) { + ns = "http://cxf.apache.org/transports/jbi"; + break; + } } } try { Modified: incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java (original) +++ incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java Tue Apr 24 14:56:33 2007 @@ -22,7 +22,6 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.InputStream; import java.lang.reflect.Method; import java.util.logging.Logger; @@ -33,6 +32,7 @@ import javax.jbi.messaging.NormalizedMessage; import javax.jws.WebService; import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamReader; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; @@ -41,6 +41,7 @@ import org.apache.cxf.message.Message; import org.apache.cxf.message.MessageImpl; import org.apache.cxf.service.model.BindingOperationInfo; +import org.apache.cxf.staxutils.StaxUtils; import org.apache.cxf.ws.addressing.EndpointReferenceType; import org.apache.cxf.wsdl.EndpointReferenceUtils; @@ -111,8 +112,6 @@ LOG.info(new org.apache.cxf.common.i18n.Message("EXCHANGE.ENDPOINT", LOG).toString() + xchng.getEndpoint()); - InputStream ins = null; - if (inMsg != null) { LOG.info("setup message contents on " + inMsg); inMsg.setContent(getMessageContent(message)); @@ -129,19 +128,10 @@ channel.sendSync(xchng); NormalizedMessage outMsg = ((InOut)xchng).getOutMessage(); - //revisit later - /*Source content = outMsg.getContent(); - XMLStreamReader reader = StaxUtils.createXMLStreamReader(content); - message.setContent(XMLStreamReader.class, reader);*/ - - ins = JBIMessageHelper.convertMessageToInputStream(outMsg.getContent()); - if (ins == null) { - throw new IOException(new org.apache.cxf.common.i18n.Message( - "UNABLE.RETRIEVE.MESSAGE", LOG).toString()); - } Message inMessage = new MessageImpl(); message.getExchange().setInMessage(inMessage); - inMessage.setContent(InputStream.class, ins); + XMLStreamReader reader = StaxUtils.createXMLStreamReader(outMsg.getContent()); + inMessage.setContent(XMLStreamReader.class, reader); conduit.getMessageObserver().onMessage(inMessage); } else { Modified: incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java (original) +++ incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java Tue Apr 24 14:56:33 2007 @@ -20,7 +20,6 @@ package org.apache.cxf.transport.jbi; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import java.util.logging.Level; import java.util.logging.Logger; @@ -29,11 +28,13 @@ import javax.jbi.messaging.MessageExchange; import javax.jbi.messaging.NormalizedMessage; import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamReader; import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.message.Message; import org.apache.cxf.message.MessageImpl; import org.apache.cxf.service.model.EndpointInfo; +import org.apache.cxf.staxutils.StaxUtils; import org.apache.cxf.transport.AbstractConduit; import org.apache.cxf.transport.AbstractDestination; import org.apache.cxf.transport.Conduit; @@ -94,9 +95,13 @@ */ public void prepare(Message message) throws IOException { // setup the message to be send back + DeliveryChannel dc = channel; + if (dc == null) { + dc = JBITransportFactory.getDeliveryChannel(); + } message.put(MessageExchange.class, inMessage.get(MessageExchange.class)); message.setContent(OutputStream.class, - new JBIDestinationOutputStream(inMessage, channel)); + new JBIDestinationOutputStream(inMessage, dc)); } protected Logger getLogger() { @@ -110,11 +115,12 @@ NormalizedMessage nm = exchange.getMessage("in"); try { - final InputStream in = JBIMessageHelper.convertMessageToInputStream(nm.getContent()); //get the message to be interceptor MessageImpl inMessage = new MessageImpl(); inMessage.put(MessageExchange.class, exchange); - inMessage.setContent(InputStream.class, in); + XMLStreamReader reader = StaxUtils.createXMLStreamReader(nm.getContent()); + inMessage.setContent(XMLStreamReader.class, reader); + inMessage.put(Message.REQUESTOR_ROLE, Boolean.TRUE); //dispatch to correct destination in case of multiple endpoint inMessage.setDestination(this); Modified: incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBITransportFactory.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBITransportFactory.java?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBITransportFactory.java (original) +++ incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBITransportFactory.java Tue Apr 24 14:56:33 2007 @@ -51,7 +51,7 @@ private static final Logger LOG = LogUtils.getL7dLogger(JBITransportFactory.class); - private DeliveryChannel deliveryChannel; + private static final ThreadLocal DELIVERY_CHANNEL = new ThreadLocal(); private Bus bus; private final Map destinationMap = new HashMap(); @@ -97,14 +97,14 @@ } - public DeliveryChannel getDeliveryChannel() { - return deliveryChannel; + public static DeliveryChannel getDeliveryChannel() { + return DELIVERY_CHANNEL.get(); } - public void setDeliveryChannel(DeliveryChannel newDeliverychannel) { + public static void setDeliveryChannel(DeliveryChannel newDeliverychannel) { LOG.info(new org.apache.cxf.common.i18n.Message( "CONFIG.DELIVERY.CHANNEL", LOG).toString() + newDeliverychannel); - deliveryChannel = newDeliverychannel; + DELIVERY_CHANNEL.set(newDeliverychannel); } public Conduit getConduit(EndpointInfo targetInfo) throws IOException { @@ -112,7 +112,7 @@ } public Conduit getConduit(EndpointInfo endpointInfo, EndpointReferenceType target) throws IOException { - Conduit conduit = new JBIConduit(target, deliveryChannel); + Conduit conduit = new JBIConduit(target, getDeliveryChannel()); Configurer configurer = bus.getExtension(Configurer.class); if (null != configurer) { configurer.configureBean(conduit); @@ -121,7 +121,7 @@ } public Destination getDestination(EndpointInfo ei) throws IOException { - JBIDestination destination = new JBIDestination(ei, deliveryChannel); + JBIDestination destination = new JBIDestination(ei, getDeliveryChannel()); Configurer configurer = bus.getExtension(Configurer.class); if (null != configurer) { configurer.configureBean(destination); @@ -146,4 +146,5 @@ public JBIDestination getDestination(String epName) { return destinationMap.get(epName); } + } Modified: incubator/cxf/trunk/tools/common/pom.xml URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/pom.xml?view=diff&rev=532103&r1=532102&r2=532103 ============================================================================== --- incubator/cxf/trunk/tools/common/pom.xml (original) +++ incubator/cxf/trunk/tools/common/pom.xml Tue Apr 24 14:56:33 2007 @@ -116,22 +116,30 @@ ${basedir}/target/generated/src/main/java - - ${basedir}/src/main/resources/schemas/wsdl/xml-binding.xsd - ${basedir}/src/main/resources/schemas/wsdl/xml-binding.xjb - - ${basedir}/target/generated/src/main/java/org/apache/cxf/wsdl - - - - - ${basedir}/src/main/resources/schemas/wsdl/jms.xsd - ${basedir}/src/main/resources/schemas/wsdl/jms.xjb - - ${basedir}/target/generated/src/main/java/org/apache/cxf/wsdl - - - + + ${basedir}/src/main/resources/schemas/wsdl/xml-binding.xsd + ${basedir}/src/main/resources/schemas/wsdl/xml-binding.xjb + + ${basedir}/target/generated/src/main/java/org/apache/cxf/wsdl + + + + + ${basedir}/src/main/resources/schemas/wsdl/jms.xsd + ${basedir}/src/main/resources/schemas/wsdl/jms.xjb + + ${basedir}/target/generated/src/main/java/org/apache/cxf/wsdl + + + + + ${basedir}/src/main/resources/schemas/wsdl/jbi.xsd + ${basedir}/src/main/resources/schemas/wsdl/jbi.xjb + + ${basedir}/target/generated/src/main/java/org/apache/cxf/wsdl + + + Added: incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xjb URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xjb?view=auto&rev=532103 ============================================================================== --- incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xjb (added) +++ incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xjb Tue Apr 24 14:56:33 2007 @@ -0,0 +1,34 @@ + + + + + + + + + + + + + Added: incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd?view=auto&rev=532103 ============================================================================== --- incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd (added) +++ incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd Tue Apr 24 14:56:33 2007 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + Propchange: incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd ------------------------------------------------------------------------------ svn:keywords = Date Revision Propchange: incubator/cxf/trunk/tools/common/src/main/resources/schemas/wsdl/jbi.xsd ------------------------------------------------------------------------------ svn:mime-type = text/xml