You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Guillaume Nodet <gn...@gmail.com> on 2007/04/20 17:33:01 UTC

Re: svn commit: r530117 [1/2] - in /incubator/cxf/trunk/rt: ./ bindings/ bindings/jbi/ bindings/jbi/src/ bindings/jbi/src/main/ bindings/jbi/src/main/java/ bindings/jbi/src/main/java/org/ bindings/jbi/src/main/java/org/apache/ bindings/jbi/src/main/j

Yeah, sorry, I have had no time to continue and explain what
I am doing.  I will start a thread on this asap.
FYI, this is indeed a replacement.

On 4/20/07, Jonathan Anstey <ja...@iona.com> wrote:
>
> Hi Guillaume,
>
> Was the
> trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi
> directory meant to be a replacement for
> trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport? If so,
> the duplicate stuff should probably be removed.
>
> Cheers,
> Jon
>
> gnodet@apache.org wrote:
> > Author: gnodet
> > Date: Wed Apr 18 11:27:39 2007
> > New Revision: 530117
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=530117
> > Log:
> > CXF-262: add a JBI binding and a JBI transport
> >
> > Added:
> >     incubator/cxf/trunk/rt/bindings/jbi/   (with props)
> >     incubator/cxf/trunk/rt/bindings/jbi/pom.xml   (with props)
> >     incubator/cxf/trunk/rt/bindings/jbi/src/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> (with props)
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> (with props)
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> extensions.xml   (with props)
> >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/
> >
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml   (with props)
> >     incubator/cxf/trunk/rt/bindings/jbi/src/test/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/test/java/
> >     incubator/cxf/trunk/rt/bindings/jbi/src/test/resources/
> >     incubator/cxf/trunk/rt/transports/jbi/   (with props)
> >     incubator/cxf/trunk/rt/transports/jbi/pom.xml   (with props)
> >     incubator/cxf/trunk/rt/transports/jbi/src/
> >     incubator/cxf/trunk/rt/transports/jbi/src/main/
> >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/
> >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/
> >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/
> >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> (with props)
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> (with props)
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> (with props)
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> (with props)
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> (with props)
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBITransportFactory.java
> (with props)
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/Messages.properties
> (with props)
> >     incubator/cxf/trunk/rt/transports/jbi/src/main/resources/
> >     incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/bus-
> extensions.xml   (with props)
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/cxf/
> >
> incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml   (with props)
> >     incubator/cxf/trunk/rt/transports/jbi/src/test/
> >     incubator/cxf/trunk/rt/transports/jbi/src/test/java/
> >     incubator/cxf/trunk/rt/transports/jbi/src/test/resources/
> > Modified:
> >     incubator/cxf/trunk/rt/bindings/pom.xml
> >     incubator/cxf/trunk/rt/pom.xml
> >
> > Propchange: incubator/cxf/trunk/rt/bindings/jbi/
> >
> ------------------------------------------------------------------------------
> > --- svn:ignore (added)
> > +++ svn:ignore Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,3 @@
> > +.classpath
> > +.project
> > +.settings
> >
> > Added: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/pom.xml?view=auto&rev=530117
> >
> ==============================================================================
> > --- incubator/cxf/trunk/rt/bindings/jbi/pom.xml (added)
> > +++ incubator/cxf/trunk/rt/bindings/jbi/pom.xml Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,93 @@
> > +<!--
> > +  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.
> > +-->
> > +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
> ">
> > +    <modelVersion>4.0.0</modelVersion>
> > +    <artifactId>cxf-rt-bindings-jbi</artifactId>
> > +    <packaging>jar</packaging>
> > +    <name>Apache CXF Runtime JBI Binding</name>
> > +    <url>http://cwiki.apache.org/CXF</url>
> > +
> > +    <parent>
> > +        <groupId>org.apache.cxf</groupId>
> > +        <artifactId>cxf-parent</artifactId>
> > +        <version>2.0-incubator-RC-SNAPSHOT</version>
> > +        <relativePath>../../../parent/pom.xml</relativePath>
> > +    </parent>
> > +
> > +
> > +    <dependencies>
> > +
> > +        <dependency>
> > +            <groupId>org.apache.cxf</groupId>
> > +            <artifactId>cxf-api</artifactId>
> > +            <version>${project.version}</version>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.apache.cxf</groupId>
> > +            <artifactId>cxf-rt-databinding-jaxb</artifactId>
> > +            <version>${project.version}</version>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.apache.cxf</groupId>
> > +            <artifactId>cxf-testutils</artifactId>
> > +            <version>${project.version}</version>
> > +            <scope>test</scope>
> > +        </dependency>
> > +
> > +        <dependency>
> > +            <groupId>junit</groupId>
> > +            <artifactId>junit</artifactId>
> > +            <scope>test</scope>
> > +        </dependency>
> > +
> > +        <dependency>
> > +            <groupId>org.easymock</groupId>
> > +            <artifactId>easymockclassextension</artifactId>
> > +            <scope>test</scope>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.apache.geronimo.specs</groupId>
> > +            <artifactId>geronimo-javamail_1.4_spec</artifactId>
> > +            <scope>test</scope>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.apache.geronimo.specs</groupId>
> > +            <artifactId>geronimo-activation_1.1_spec</artifactId>
> > +            <scope>test</scope>
> > +        </dependency>
> > +
> > +         <dependency>
> > +             <groupId>org.apache.cxf</groupId>
> > +             <artifactId>cxf-tools-common</artifactId>
> > +             <version>${project.version}</version>
> > +        </dependency>
> > +
> > +        <dependency>
> > +            <groupId>org.apache.servicemix</groupId>
> > +            <artifactId>servicemix-jbi</artifactId>
> > +            <version>3.1-incubating</version>
> > +        </dependency>
> > +
> > +    </dependencies>
> > +    <scm>
> > +        <connection>scm:svn:
> http://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/bindings/jbi
> </connection>
> > +        <developerConnection>scm:svn:
> https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/bindings/jbi
> </developerConnection>
> > +    </scm>
> > +
> > +</project>
> >
> > Propchange: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/xml
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> Wed Apr 18 11:27:39 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;
> > +
> > +import org.apache.cxf.binding.Binding;
> > +import org.apache.cxf.interceptor.AbstractBasicInterceptorProvider;
> > +import org.apache.cxf.message.Message;
> > +import org.apache.cxf.message.MessageImpl;
> > +import org.apache.cxf.service.model.BindingInfo;
> > +
> > +public class JBIBinding extends AbstractBasicInterceptorProvider
> implements Binding {
> > +
> > +    private JBIBindingInfo bindingInfo;
> > +
> > +    public JBIBinding(JBIBindingInfo bindingInfo) {
> > +        this.bindingInfo = bindingInfo;
> > +    }
> > +
> > +    public Message createMessage() {
> > +        return createMessage(new MessageImpl());
> > +    }
> > +
> > +    public Message createMessage(Message m) {
> > +        if (!m.containsKey(Message.CONTENT_TYPE)) {
> > +            m.put(Message.CONTENT_TYPE, "text/xml");
> > +        }
> > +        return new JBIMessage(m);
> > +    }
> > +
> > +    public BindingInfo getBindingInfo() {
> > +        return bindingInfo;
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> 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=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,66 @@
> > +/**
> > + * 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 javax.xml.namespace.QName;
> > +
> > +import org.apache.cxf.binding.AbstractBindingFactory;
> > +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.StaxInInterceptor;
> > +import org.apache.cxf.interceptor.StaxOutInterceptor;
> > +import org.apache.cxf.service.model.BindingInfo;
> > +import org.apache.cxf.service.model.BindingOperationInfo;
> > +import org.apache.cxf.service.model.OperationInfo;
> > +import org.apache.cxf.service.model.ServiceInfo;
> > +
> > +public class JBIBindingFactory extends AbstractBindingFactory {
> > +
> > +    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;
> > +    }
> > +
> > +    public BindingInfo createBindingInfo(ServiceInfo service, String
> namespace, Object config) {
> > +        JBIBindingInfo info = new JBIBindingInfo(service,
> JBIConstants.NS_JBI_BINDING);
> > +        info.setName(new QName(service.getName().getNamespaceURI(),
> > +                               service.getName().getLocalPart() +
> "JBIBinding"));
> > +
> > +        for (OperationInfo op : service.getInterface().getOperations())
> {
> > +            BindingOperationInfo bop =
> > +                info.buildOperation(op.getName(), op.getInputName(),
> op.getOutputName());
> > +            info.addOperation(bop);
> > +        }
> > +
> > +        return info;
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,30 @@
> > +/**
> > + * 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 org.apache.cxf.service.model.BindingInfo;
> > +import org.apache.cxf.service.model.ServiceInfo;
> > +
> > +public class JBIBindingInfo extends BindingInfo {
> > +
> > +    public JBIBindingInfo(ServiceInfo service, String bindingId) {
> > +        super(service, bindingId);
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,34 @@
> > +/**
> > + * 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 javax.xml.namespace.QName;
> > +
> > +
> > +public final class JBIConstants {
> > +
> > +    public static final String NS_JBI_BINDING = "
> http://cxf.apache.org/bindings/jbi";
> > +
> > +    public static final String NS_JBI_WRAPPER = "
> http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper";
> > +
> > +    public static final QName JBI_WRAPPER_MESSAGE = new
> QName(NS_JBI_WRAPPER, "message");
> > +
> > +    public static final QName JBI_WRAPPER_PART = new
> QName(NS_JBI_WRAPPER, "part");
> > +
> > +}
> > \ No newline at end of file
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> 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=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,36 @@
> > +/**
> > + * 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 javax.jbi.messaging.MessageExchange;
> > +
> > +import org.apache.cxf.message.AbstractWrappedMessage;
> > +import org.apache.cxf.message.Message;
> > +
> > +public class JBIMessage extends AbstractWrappedMessage {
> > +
> > +    protected JBIMessage(Message msg) {
> > +        super(msg);
> > +    }
> > +
> > +    public MessageExchange getJbiExchange() {
> > +        return get(MessageExchange.class);
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> 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=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,66 @@
> > +/**
> > + * 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.util.ResourceBundle;
> > +
> > +import javax.xml.stream.XMLStreamException;
> > +import javax.xml.stream.XMLStreamWriter;
> > +
> > +import org.w3c.dom.Element;
> > +import org.w3c.dom.NodeList;
> > +
> > +import org.apache.cxf.binding.jbi.JBIMessage;
> > +import org.apache.cxf.common.i18n.BundleUtils;
> > +import org.apache.cxf.common.i18n.Message;
> > +import org.apache.cxf.interceptor.Fault;
> > +import org.apache.cxf.phase.AbstractPhaseInterceptor;
> > +import org.apache.cxf.phase.Phase;
> > +import org.apache.cxf.staxutils.StaxUtils;
> > +
> > +public class JBIFaultOutInterceptor extends
> AbstractPhaseInterceptor<JBIMessage> {
> > +
> > +    private static final ResourceBundle BUNDLE = BundleUtils.getBundle(
> JBIFaultOutInterceptor.class);
> > +
> > +    public JBIFaultOutInterceptor() {
> > +        setPhase(Phase.MARSHAL);
> > +    }
> > +
> > +    public void handleMessage(JBIMessage message) throws Fault {
> > +        XMLStreamWriter writer = message.getContent(
> XMLStreamWriter.class);
> > +        Fault fault = (Fault) message.getContent(Exception.class);
> > +        try {
> > +            if (!fault.hasDetails()) {
> > +                writer.writeEmptyElement("fault");
> > +            } else {
> > +                Element detail = fault.getDetail();
> > +                NodeList details = detail.getChildNodes();
> > +                for (int i = 0; i < details.getLength(); i++) {
> > +                    if (details.item(i) instanceof Element) {
> > +                        StaxUtils.writeNode(details.item(i), writer,
> true);
> > +                        break;
> > +                    }
> > +                }
> > +            }
> > +        } catch (XMLStreamException xe) {
> > +            throw new Fault(new Message("XML_WRITE_EXC", BUNDLE), xe);
> > +        }
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,72 @@
> > +/**
> > + * 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.util.ResourceBundle;
> > +import java.util.logging.Logger;
> > +
> > +import javax.xml.namespace.QName;
> > +
> > +import org.apache.cxf.binding.jbi.JBIMessage;
> > +import org.apache.cxf.common.i18n.Message;
> > +import org.apache.cxf.common.logging.LogUtils;
> > +import org.apache.cxf.endpoint.Endpoint;
> > +import org.apache.cxf.interceptor.Fault;
> > +import org.apache.cxf.message.Exchange;
> > +import org.apache.cxf.phase.AbstractPhaseInterceptor;
> > +import org.apache.cxf.phase.Phase;
> > +import org.apache.cxf.service.model.BindingInfo;
> > +import org.apache.cxf.service.model.BindingOperationInfo;
> > +import org.apache.cxf.service.model.MessageInfo;
> > +import org.apache.cxf.service.model.OperationInfo;
> > +
> > +public class JBIOperationInInterceptor extends
> AbstractPhaseInterceptor<JBIMessage> {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIOperationInInterceptor.class);
> > +
> > +    private static final ResourceBundle BUNDLE = LOG.getResourceBundle
> ();
> > +
> > +    public JBIOperationInInterceptor() {
> > +        super();
> > +        setPhase(Phase.PRE_PROTOCOL);
> > +    }
> > +
> > +    public void handleMessage(JBIMessage message) throws Fault {
> > +        Exchange ex = message.getExchange();
> > +        Endpoint ep = ex.get(Endpoint.class);
> > +        BindingOperationInfo boi = ex.get(BindingOperationInfo.class);
> > +        if (boi == null && message.getJbiExchange().getOperation() !=
> null) {
> > +            BindingInfo service = ep.getEndpointInfo().getBinding();
> > +            boi = getBindingOperationInfo(service,
> message.getJbiExchange().getOperation());
> > +            if (boi == null) {
> > +                throw new Fault(new Message("UNKNOWN_OPERATION",
> BUNDLE,
> > +                        message.getJbiExchange
> ().getOperation().toString()));
> > +            }
> > +            ex.put(BindingOperationInfo.class, boi);
> > +            ex.put(OperationInfo.class, boi.getOperationInfo());
> > +            ex.setOneWay(boi.getOperationInfo().isOneWay());
> > +            message.put(MessageInfo.class, boi.getInput
> ().getMessageInfo());
> > +        }
> > +    }
> > +
> > +    protected BindingOperationInfo getBindingOperationInfo(BindingInfo
> service, QName operation) {
> > +        return service.getOperation(operation);
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> 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=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,122 @@
> > +/**
> > + * 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.util.ArrayList;
> > +import java.util.List;
> > +import java.util.ResourceBundle;
> > +import java.util.logging.Logger;
> > +
> > +import javax.xml.namespace.QName;
> > +import javax.xml.stream.XMLStreamConstants;
> > +import javax.xml.stream.XMLStreamException;
> > +import javax.xml.stream.XMLStreamReader;
> > +
> > +import org.apache.cxf.binding.jbi.JBIBindingInfo;
> > +import org.apache.cxf.binding.jbi.JBIConstants;
> > +import org.apache.cxf.common.logging.LogUtils;
> > +import org.apache.cxf.databinding.DataReader;
> > +import org.apache.cxf.endpoint.Endpoint;
> > +import org.apache.cxf.interceptor.AbstractInDatabindingInterceptor;
> > +import org.apache.cxf.interceptor.Fault;
> > +import org.apache.cxf.message.Exchange;
> > +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.BindingOperationInfo;
> > +import org.apache.cxf.service.model.MessagePartInfo;
> > +import org.apache.cxf.staxutils.DepthXMLStreamReader;
> > +import org.apache.cxf.staxutils.StaxUtils;
> > +
> > +public class JBIWrapperInInterceptor extends
> AbstractInDatabindingInterceptor {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIWrapperInInterceptor.class);
> > +
> > +    private static final ResourceBundle BUNDLE = LOG.getResourceBundle
> ();
> > +
> > +    public JBIWrapperInInterceptor() {
> > +        setPhase(Phase.UNMARSHAL);
> > +    }
> > +
> > +    public void handleMessage(Message message) throws Fault {
> > +        if (isGET(message)) {
> > +            LOG.info("JbiMessageInInterceptor skipped in HTTP GET
> method");
> > +            return;
> > +        }
> > +        XMLStreamReader xsr = message.getContent(XMLStreamReader.class
> );
> > +
> > +        DepthXMLStreamReader reader = new DepthXMLStreamReader(xsr);
> > +
> > +        Endpoint ep = message.getExchange().get(Endpoint.class);
> > +        BindingInfo binding = ep.getEndpointInfo().getBinding();
> > +        if (!(binding instanceof JBIBindingInfo)) {
> > +            throw new IllegalStateException("BindingInfo should be a
> JbiBindingInfo");
> > +        }
> > +
> > +        if (!StaxUtils.toNextElement(reader)) {
> > +            throw new Fault(new org.apache.cxf.common.i18n.Message("NO_OPERATION_ELEMENT",
> BUNDLE));
> > +        }
> > +
> > +        Exchange ex = message.getExchange();
> > +        QName startQName = reader.getName();
> > +
> > +        // handling xml normal inbound message
> > +        if (!startQName.equals(JBIConstants.JBI_WRAPPER_MESSAGE)) {
> > +            throw new Fault(new org.apache.cxf.common.i18n.Message(
> > +                    "NO_JBI_MESSAGE_ELEMENT", BUNDLE));
> > +        }
> > +
> > +        try {
> > +            BindingOperationInfo bop = ex.get(
> BindingOperationInfo.class);
> > +            DataReader<XMLStreamReader> dr = getDataReader(message);
> > +            List<Object> parameters = new ArrayList<Object>();
> > +            for (MessagePartInfo part : bop.getInput().getMessageParts())
> {
> > +                if (reader.nextTag() !=
> XMLStreamConstants.START_ELEMENT) {
> > +                    throw new Fault(new
> org.apache.cxf.common.i18n.Message(
> > +                            "NO_ENOUGH_PARTS", BUNDLE));
> > +                }
> > +                startQName = reader.getName();
> > +                if (!startQName.equals(JBIConstants.JBI_WRAPPER_PART))
> {
> > +                    throw new Fault(new
> org.apache.cxf.common.i18n.Message(
> > +                            "NO_JBI_PART_ELEMENT", BUNDLE));
> > +                }
> > +                if (part.isElement()) {
> > +                    reader.next();
> > +                    if (!StaxUtils.toNextElement(reader)) {
> > +                        throw new Fault(new
> org.apache.cxf.common.i18n.Message(
> > +                                "EXPECTED_ELEMENT_IN_PART", BUNDLE));
> > +                    }
> > +                }
> > +                parameters.add(dr.read(part, reader));
> > +                // skip end element
> > +                if (part.isElement()) {
> > +                    reader.next();
> > +                }
> > +                reader.next();
> > +            }
> > +            if (reader.getEventType() !=
> XMLStreamConstants.END_DOCUMENT) {
> > +                throw new Fault(new org.apache.cxf.common.i18n.Message("TOO_MUCH_PARTS",
> BUNDLE));
> > +            }
> > +            message.setContent(List.class, parameters);
> > +        } catch (XMLStreamException e) {
> > +            throw new RuntimeException("Couldn't parse stream.", e);
> > +        }
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,99 @@
> > +/**
> > + * 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.util.List;
> > +import java.util.ResourceBundle;
> > +import java.util.logging.Logger;
> > +
> > +import javax.xml.stream.XMLStreamException;
> > +import javax.xml.stream.XMLStreamWriter;
> > +
> > +import org.apache.cxf.binding.jbi.JBIConstants;
> > +import org.apache.cxf.common.logging.LogUtils;
> > +import org.apache.cxf.databinding.DataWriter;
> > +import org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor;
> > +import org.apache.cxf.interceptor.Fault;
> > +import org.apache.cxf.message.Message;
> > +import org.apache.cxf.phase.Phase;
> > +import org.apache.cxf.service.model.BindingOperationInfo;
> > +import org.apache.cxf.service.model.MessagePartInfo;
> > +
> > +public class JBIWrapperOutInterceptor extends
> AbstractOutDatabindingInterceptor {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIWrapperOutInterceptor.class);
> > +
> > +    private static final ResourceBundle BUNDLE = LOG.getResourceBundle
> ();
> > +
> > +    public JBIWrapperOutInterceptor() {
> > +        setPhase(Phase.MARSHAL);
> > +    }
> > +
> > +    public void handleMessage(Message message) throws Fault {
> > +        BindingOperationInfo bop = message.getExchange().get(
> BindingOperationInfo.class);
> > +        XMLStreamWriter xmlWriter = getXMLStreamWriter(message);
> > +        DataWriter<XMLStreamWriter> dataWriter = getDataWriter(message,
> XMLStreamWriter.class);
> > +
> > +        try {
> > +            xmlWriter.setPrefix("jbi", JBIConstants.NS_JBI_WRAPPER);
> > +            xmlWriter.writeStartElement(JBIConstants.NS_JBI_WRAPPER,
> > +
> JBIConstants.JBI_WRAPPER_MESSAGE.getLocalPart());
> > +            xmlWriter.writeNamespace("jbi", JBIConstants.NS_JBI_WRAPPER
> );
> > +
> > +            List<MessagePartInfo> parts = null;
> > +            if (!isRequestor(message)) {
> > +                parts = bop.getOutput().getMessageParts();
> > +            } else {
> > +                parts = bop.getInput().getMessageParts();
> > +            }
> > +            List<?> objs = (List<?>) message.getContent(List.class);
> > +            if (objs.size() < parts.size()) {
> > +                throw new Fault(new org.apache.cxf.common.i18n.Message(
> > +                        "The number of arguments is not equal!",
> BUNDLE));
> > +            }
> > +            for (int idx = 0; idx < parts.size(); idx++) {
> > +                MessagePartInfo part = parts.get(idx);
> > +                Object obj = objs.get(idx);
> > +                if (!part.isElement()) {
> > +                    if (part.getTypeClass() == String.class) {
> > +                        xmlWriter.writeStartElement(
> JBIConstants.NS_JBI_WRAPPER,
> > +
> JBIConstants.JBI_WRAPPER_PART.getLocalPart());
> > +                        xmlWriter.writeCharacters(obj.toString());
> > +                        xmlWriter.writeEndElement();
> > +                    } else {
> > +                        part = new MessagePartInfo(part.getName(),
> part.getMessageInfo());
> > +                        part.setElement(false);
> > +                        part.setConcreteName(
> JBIConstants.JBI_WRAPPER_PART);
> > +                        dataWriter.write(obj, part, xmlWriter);
> > +                    }
> > +                } else {
> > +                    xmlWriter.writeStartElement(
> JBIConstants.NS_JBI_WRAPPER,
> > +
> JBIConstants.JBI_WRAPPER_PART.getLocalPart());
> > +                    dataWriter.write(obj, part, xmlWriter);
> > +                    xmlWriter.writeEndElement();
> > +                }
> > +            }
> > +            xmlWriter.writeEndElement();
> > +
> > +        } catch (XMLStreamException e) {
> > +            throw new Fault(new org.apache.cxf.common.i18n.Message("STAX_WRITE_EXC",
> BUNDLE), e);
> > +        }
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,46 @@
> > +#
> > +#    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.
> > +#
> > +NOT.IMPLEMENTED=not yet implemented
> > +INVOKE.SERVICE=invoking service\t
> > +CREATE.MESSAGE.EXCHANGE=create message exchange svc:\t
> > +EXCHANGE.ENDPOINT=exchange endpoint:\t
> > +NO.MESSAGE=no message yet
> > +UNABLE.RETRIEVE.MESSAGE=unable to retrieve message
> > +CONTEXT.MUST.BE=context must be of type JBIOutputStreamMessageContext
> > +RECEIVED.MESSAGE=received message:\t
> > +ACTIVE.JBI.SERVER.TRANSPORT=activating JBI server transport
> > +BUILDING.DOCUMENT=building document from bytes
> > +CREATE.NORMALIZED.MESSAGE=creating NormalizedMessage
> > +POST.DISPATCH=postDispatch sending out message to NWR
> > +ERROR.SEND.MESSAGE=error sending Out message
> > +DISPATCH.MESSAGE.ON.CALLBACK=dispatching message on callback:\t
> > +ERROR.PREPARE.MESSAGE=error preparing message
> > +RECEIVE.THREAD.START=JBIServerTransport message receiving thread
> started
> > +DISPATCH.TO.SU=dispatching to CXF service unit
> > +NO.SU.FOUND=no CXFServiceUnit found
> > +ERROR.DISPATCH.THREAD=error running dispatch thread
> > +JBI.SERVER.TRANSPORT.MESSAGE.PROCESS.THREAD.EXIT=JBIServerTransport
> message processing thread exitting
> > +CONFIG.DELIVERY.CHANNEL=configuring DeliveryChannel:\t
> > +CONFIG.SU.MANAGER=configuring ServiceUnitManager:\t
> > +JBI.TRANSPORT.FACTORY.NOT.INITIALIZED=JBITransportFactory is not
> properly initialised
> > +SU.MANAGER=CXFServiceUnitManager:\t
> > +DELIVERY.CHANNEL=DeliveryChannel:\t
> > +JBI.TRANSPORT.FACTORY.NOT.FULLY.INITIALIZED=JBITransport factory not
> fully initalised
> > +CREATE.SERVER.TRANSPORT=creating JBI server transport
> > +CREATE.CLIENT.TRANSPORT=creating JBI client transport
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> extensions.xml
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-extensions.xml?view=auto&rev=530117
> >
> ==============================================================================
> > --- incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> extensions.xml (added)
> > +++ incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> extensions.xml Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,27 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<!--
> > +  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.cf
> > +-->
> > +<extensions xmlns="http://cxf.apache.org/bus/extension">
> > +
> > +    <extension class="org.apache.cxf.binding.jbi.JBIBindingFactory"
> deferred="true">
> > +        <namespace>http://cxf.apache.org/bindings/jbi</namespace>
> > +        <namespace>
> http://java.sun.com/xml/ns/jbi/binding/service+engine</namespace>
> > +    </extension>
> > +
> > +</extensions>
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> extensions.xml
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> extensions.xml
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/xml
> >
> > Added:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-extension-jbi.xml?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml (added)
> > +++
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,32 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<!--
> > +  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.
> > +-->
> > +<beans xmlns="http://www.springframework.org/schema/beans">
> > +
> > +    <bean class="org.apache.cxf.binding.jbi.JBIBindingFactory"
> lazy-init="true">
> > +      <property name="bus" ref="cxf"/>
> > +      <property name="activationNamespaces">
> > +            <set>
> > +              <value>http://cxf.apache.org/bindings/jbi</value>
> > +              <value>
> http://java.sun.com/xml/ns/jbi/binding/service+engine</value>
> > +            </set>
> > +        </property>
> > +    </bean>
> > +
> > +</beans>
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> extension-jbi.xml
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/xml
> >
> > Modified: incubator/cxf/trunk/rt/bindings/pom.xml
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/pom.xml?view=diff&rev=530117&r1=530116&r2=530117
> >
> ==============================================================================
> > --- incubator/cxf/trunk/rt/bindings/pom.xml (original)
> > +++ incubator/cxf/trunk/rt/bindings/pom.xml Wed Apr 18 11:27:39 2007
> > @@ -36,6 +36,7 @@
> >          <module>http</module>
> >          <module>object</module>
> >          <module>coloc</module>
> > +        <module>jbi</module>
> >      </modules>
> >
> >
> >
> > Modified: incubator/cxf/trunk/rt/pom.xml
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/pom.xml?view=diff&rev=530117&r1=530116&r2=530117
> >
> ==============================================================================
> > --- incubator/cxf/trunk/rt/pom.xml (original)
> > +++ incubator/cxf/trunk/rt/pom.xml Wed Apr 18 11:27:39 2007
> > @@ -43,6 +43,7 @@
> >          <module>transports/http</module>
> >          <module>transports/http-jetty</module>
> >          <module>transports/jms</module>
> > +        <module>transports/jbi</module>
> >          <module>ws/policy</module>
> >          <module>ws/addr</module>
> >          <module>ws/rm</module>
> >
> > Propchange: incubator/cxf/trunk/rt/transports/jbi/
> >
> ------------------------------------------------------------------------------
> > --- svn:ignore (added)
> > +++ svn:ignore Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,3 @@
> > +.classpath
> > +.project
> > +.settings
> >
> > Added: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/pom.xml?view=auto&rev=530117
> >
> ==============================================================================
> > --- incubator/cxf/trunk/rt/transports/jbi/pom.xml (added)
> > +++ incubator/cxf/trunk/rt/transports/jbi/pom.xml Wed Apr 18 11:27:39
> 2007
> > @@ -0,0 +1,77 @@
> > +<!--
> > +  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.
> > +-->
> > +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
> ">
> > +    <modelVersion>4.0.0</modelVersion>
> > +    <groupId>org.apache.cxf</groupId>
> > +    <artifactId>cxf-rt-transports-jbi</artifactId>
> > +    <packaging>jar</packaging>
> > +    <version>2.0-incubator-RC-SNAPSHOT</version>
> > +    <name>Apache CXF Runtime JBI transport</name>
> > +    <url>http://cwiki.apache.org/CXF</url>
> > +
> > +    <parent>
> > +        <groupId>org.apache.cxf</groupId>
> > +        <artifactId>cxf-parent</artifactId>
> > +        <version>2.0-incubator-RC-SNAPSHOT</version>
> > +        <relativePath>../../../parent/pom.xml</relativePath>
> > +    </parent>
> > +
> > +    <dependencies>
> > +        <dependency>
> > +            <groupId>junit</groupId>
> > +            <artifactId>junit</artifactId>
> > +            <scope>test</scope>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.easymock</groupId>
> > +            <artifactId>easymockclassextension</artifactId>
> > +            <scope>test</scope>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.apache.cxf</groupId>
> > +            <artifactId>cxf-api</artifactId>
> > +            <version>${project.version}</version>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.apache.cxf</groupId>
> > +            <artifactId>cxf-rt-core</artifactId>
> > +            <version>${project.version}</version>
> > +        </dependency>
> > +        <dependency>
> > +            <groupId>org.apache.cxf</groupId>
> > +            <artifactId>cxf-testutils</artifactId>
> > +            <version>${project.version}</version>
> > +            <scope>test</scope>
> > +        </dependency>
> > +
> > +        <dependency>
> > +            <groupId>org.apache.servicemix</groupId>
> > +            <artifactId>servicemix-jbi</artifactId>
> > +            <version>3.1-incubating</version>
> > +          </dependency>
> > +
> > +    </dependencies>
> > +
> > +
> > +    <scm>
> > +        <connection>scm:svn:
> http://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/transports/jbi
> </connection>
> > +        <developerConnection>scm:svn:
> https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/transports/jbi
> </developerConnection>
> > +    </scm>
> > +
> > +</project>
> >
> > Propchange: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/xml
> >
> > Added:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> (added)
> > +++
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,58 @@
> > +/**
> > + * 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.transport.jbi;
> > +
> > +import java.io.IOException;
> > +import java.io.OutputStream;
> > +import java.util.logging.Level;
> > +import java.util.logging.Logger;
> > +
> > +import javax.jbi.messaging.DeliveryChannel;
> > +
> > +
> > +
> > +import org.apache.cxf.common.logging.LogUtils;
> > +import org.apache.cxf.message.Message;
> > +import org.apache.cxf.transport.AbstractConduit;
> > +import org.apache.cxf.ws.addressing.EndpointReferenceType;
> > +
> > +
> > +public class JBIConduit extends AbstractConduit {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIConduit.class);
> > +
> > +    private DeliveryChannel channel;
> > +
> > +    public JBIConduit(EndpointReferenceType target, DeliveryChannel dc)
> {
> > +        super(target);
> > +        channel = dc;
> > +    }
> > +
> > +    protected Logger getLogger() {
> > +        return LOG;
> > +    }
> > +
> > +    public void prepare(Message message) throws IOException {
> > +        getLogger().log(Level.FINE, "JBIConduit send message");
> > +
> > +        message.setContent(OutputStream.class,
> > +                           new JBIConduitOutputStream(message, channel,
> target, this));
> > +    }
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> 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=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> (added)
> > +++
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,174 @@
> > +/**
> > + * 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.transport.jbi;
> > +
> > +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;
> > +
> > +import javax.jbi.messaging.DeliveryChannel;
> > +import javax.jbi.messaging.InOut;
> > +import javax.jbi.messaging.MessageExchange;
> > +import javax.jbi.messaging.MessageExchangeFactory;
> > +import javax.jbi.messaging.NormalizedMessage;
> > +import javax.jws.WebService;
> > +import javax.xml.namespace.QName;
> > +import javax.xml.transform.Source;
> > +import javax.xml.transform.stream.StreamSource;
> > +
> > +import org.apache.cxf.common.logging.LogUtils;
> > +import org.apache.cxf.io.AbstractCachedOutputStream;
> > +import org.apache.cxf.message.Message;
> > +import org.apache.cxf.message.MessageImpl;
> > +import org.apache.cxf.service.model.BindingOperationInfo;
> > +import org.apache.cxf.ws.addressing.EndpointReferenceType;
> > +import org.apache.cxf.wsdl.EndpointReferenceUtils;
> > +
> > +public class JBIConduitOutputStream extends AbstractCachedOutputStream
> {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIConduitOutputStream.class);
> > +
> > +    private Message message;
> > +    private boolean isOneWay;
> > +    private DeliveryChannel channel;
> > +    private JBIConduit conduit;
> > +    private EndpointReferenceType target;
> > +
> > +    public JBIConduitOutputStream(Message m, DeliveryChannel channel,
> EndpointReferenceType target,
> > +                                  JBIConduit conduit) {
> > +        message = m;
> > +        this.channel = channel;
> > +        this.conduit = conduit;
> > +        this.target = target;
> > +
> > +    }
> > +
> > +    @Override
> > +    protected void doFlush() throws IOException {
> > +
> > +    }
> > +
> > +    @Override
> > +    protected void doClose() throws IOException {
> > +        isOneWay = message.getExchange().isOneWay();
> > +        commitOutputMessage();
> > +        if (target != null) {
> > +            target.getClass();
> > +        }
> > +    }
> > +
> > +    private void commitOutputMessage() throws IOException {
> > +        try {
> > +            Method targetMethod = (Method) message.get(
> Method.class.getName());
> > +            Class<?> clz = targetMethod.getDeclaringClass();
> > +            BindingOperationInfo bop = message.getExchange().get(
> BindingOperationInfo.class);
> > +
> > +            LOG.info(new org.apache.cxf.common.i18n.Message("
> INVOKE.SERVICE", LOG).toString() + clz);
> > +
> > +            WebService ws = clz.getAnnotation(WebService.class);
> > +            assert ws != null;
> > +            QName interfaceName = new QName(ws.targetNamespace(),
> ws.name());
> > +            QName serviceName = null;
> > +            if (target != null) {
> > +                serviceName = EndpointReferenceUtils.getServiceName
> (target);
> > +            } else {
> > +                serviceName = message.getExchange().get(
> org.apache.cxf.service.Service.class).getName();
> > +            }
> > +
> > +            MessageExchangeFactory factory =
> channel.createExchangeFactoryForService(serviceName);
> > +            LOG.info(new org.apache.cxf.common.i18n.Message("
> CREATE.MESSAGE.EXCHANGE", LOG).toString()
> > +                     + serviceName);
> > +            MessageExchange xchng = null;
> > +            if (isOneWay) {
> > +                xchng = factory.createInOnlyExchange();
> > +            } else if (bop.getOutput() == null) {
> > +                xchng = factory.createRobustInOnlyExchange();
> > +            } else {
> > +                xchng = factory.createInOutExchange();
> > +            }
> > +
> > +            NormalizedMessage inMsg = xchng.createMessage();
> > +            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));
> > +                xchng.setService(serviceName);
> > +                LOG.info("service for exchange " + serviceName);
> > +
> > +                xchng.setInterfaceName(interfaceName);
> > +
> > +                xchng.setOperation(bop.getName());
> > +                xchng.setMessage(inMsg, "in");
> > +                LOG.info("sending message");
> > +                if (!isOneWay) {
> > +
> > +                    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);
> > +                    conduit.getMessageObserver().onMessage(inMessage);
> > +
> > +                } else {
> > +                    channel.send(xchng);
> > +                }
> > +
> > +            } else {
> > +                LOG.info(new org.apache.cxf.common.i18n.Message("
> NO.MESSAGE", LOG).toString());
> > +            }
> > +
> > +
> > +
> > +        } catch (Exception e) {
> > +            e.printStackTrace();
> > +            throw new IOException(e.toString());
> > +        }
> > +    }
> > +
> > +    private Source getMessageContent(Message message2) {
> > +        ByteArrayOutputStream bos = (ByteArrayOutputStream)getOut();
> > +        return new StreamSource(new ByteArrayInputStream(
> bos.toByteArray()));
> > +
> > +    }
> > +
> > +    @Override
> > +    protected void onWrite() throws IOException {
> > +
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> 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=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> (added)
> > +++
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,130 @@
> > +/**
> > + * 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.transport.jbi;
> > +
> > +import java.io.IOException;
> > +import java.io.InputStream;
> > +import java.io.OutputStream;
> > +import java.util.logging.Level;
> > +import java.util.logging.Logger;
> > +
> > +import javax.jbi.messaging.DeliveryChannel;
> > +import javax.jbi.messaging.MessageExchange;
> > +import javax.jbi.messaging.NormalizedMessage;
> > +import javax.xml.namespace.QName;
> > +
> > +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.transport.AbstractConduit;
> > +import org.apache.cxf.transport.AbstractDestination;
> > +import org.apache.cxf.transport.Conduit;
> > +import org.apache.cxf.transport.MessageObserver;
> > +import org.apache.cxf.ws.addressing.EndpointReferenceType;
> > +import org.apache.cxf.wsdl.EndpointReferenceUtils;
> > +
> > +public class JBIDestination extends AbstractDestination {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIDestination.class);
> > +
> > +    private final DeliveryChannel channel;
> > +
> > +    public JBIDestination(EndpointInfo info,
> > +                          DeliveryChannel dc) {
> > +        super(getTargetReference(info, null), info);
> > +        this.channel = dc;
> > +    }
> > +
> > +    protected Logger getLogger() {
> > +        return LOG;
> > +    }
> > +
> > +    /**
> > +     * @param inMessage the incoming message
> > +     * @return the inbuilt backchannel
> > +     */
> > +    protected Conduit getInbuiltBackChannel(Message inMessage) {
> > +        return new BackChannelConduit(
> EndpointReferenceUtils.getAnonymousEndpointReference(),
> > +                                      inMessage);
> > +    }
> > +
> > +    // this should deal with the cxf message
> > +    protected class BackChannelConduit extends AbstractConduit {
> > +
> > +        protected Message inMessage;
> > +        protected JBIDestination jbiDestination;
> > +
> > +        BackChannelConduit(EndpointReferenceType ref, Message message)
> {
> > +            super(ref);
> > +            inMessage = message;
> > +        }
> > +
> > +        /**
> > +         * Register a message observer for incoming messages.
> > +         *
> > +         * @param observer the observer to notify on receipt of
> incoming
> > +         */
> > +        public void setMessageObserver(MessageObserver observer) {
> > +            // shouldn't be called for a back channel conduit
> > +        }
> > +
> > +        /**
> > +         * Send an outbound message, assumed to contain all the
> name-value
> > +         * mappings of the corresponding input message (if any).
> > +         *
> > +         * @param message the message to be sent.
> > +         */
> > +        public void prepare(Message message) throws IOException {
> > +            // setup the message to be send back
> > +            message.put(MessageExchange.class, inMessage.get(
> MessageExchange.class));
> > +            message.setContent(OutputStream.class,
> > +                               new
> JBIDestinationOutputStream(inMessage, channel));
> > +        }
> > +
> > +        protected Logger getLogger() {
> > +            return LOG;
> > +        }
> > +    }
> > +
> > +    public void dispatch(MessageExchange exchange) throws IOException {
> > +        QName opName = exchange.getOperation();
> > +        getLogger().fine("dispatch method: " + opName);
> > +
> > +        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);
> > +
> > +            //dispatch to correct destination in case of multiple
> endpoint
> > +            inMessage.setDestination(this);
> > +            getMessageObserver().onMessage(inMessage);
> > +
> > +        } catch (Exception ex) {
> > +            getLogger().log(Level.SEVERE, new
> org.apache.cxf.common.i18n.Message(
> > +                "ERROR.PREPARE.MESSAGE", getLogger()).toString(), ex);
> > +            throw new IOException(ex.getMessage());
> > +        }
> > +
> > +    }
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> (added)
> > +++
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,113 @@
> > +/**
> > + * 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.transport.jbi;
> > +
> > +import java.io.ByteArrayInputStream;
> > +import java.io.ByteArrayOutputStream;
> > +import java.io.IOException;
> > +import java.util.logging.Level;
> > +import java.util.logging.Logger;
> > +
> > +import javax.jbi.messaging.DeliveryChannel;
> > +import javax.jbi.messaging.Fault;
> > +import javax.jbi.messaging.MessageExchange;
> > +import javax.jbi.messaging.NormalizedMessage;
> > +import javax.xml.parsers.DocumentBuilder;
> > +import javax.xml.parsers.DocumentBuilderFactory;
> > +import javax.xml.transform.dom.DOMSource;
> > +
> > +import org.w3c.dom.Document;
> > +
> > +import org.apache.cxf.common.logging.LogUtils;
> > +import org.apache.cxf.io.AbstractCachedOutputStream;
> > +import org.apache.cxf.message.Message;
> > +
> > +public class JBIDestinationOutputStream extends
> AbstractCachedOutputStream {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIDestinationOutputStream.class);
> > +    private Message inMessage;
> > +    private DeliveryChannel channel;
> > +
> > +    public JBIDestinationOutputStream(Message m,
> > +                               DeliveryChannel dc) {
> > +        super();
> > +        inMessage = m;
> > +        channel = dc;
> > +    }
> > +
> > +    @Override
> > +    protected void doFlush() throws IOException {
> > +        // so far do nothing
> > +    }
> > +
> > +    @Override
> > +    protected void doClose() throws IOException {
> > +        commitOutputMessage();
> > +    }
> > +
> > +    @Override
> > +    protected void onWrite() throws IOException {
> > +        // so far do nothing
> > +    }
> > +
> > +    private void commitOutputMessage() throws IOException {
> > +        try {
> > +            if (inMessage.getExchange().isOneWay()) {
> > +                return;
> > +            } else {
> > +
> > +                ByteArrayOutputStream baos =
> (ByteArrayOutputStream)getOut();
> > +                ByteArrayInputStream bais = new ByteArrayInputStream(
> baos.toByteArray());
> > +                LOG.finest(new org.apache.cxf.common.i18n.Message(
> > +                    "BUILDING.DOCUMENT", LOG).toString());
> > +                DocumentBuilderFactory docBuilderFactory =
> DocumentBuilderFactory.newInstance();
> > +                docBuilderFactory.setNamespaceAware(true);
> > +                DocumentBuilder builder =
> docBuilderFactory.newDocumentBuilder();
> > +                Document doc = builder.parse(bais);
> > +
> > +                MessageExchange xchng = inMessage.get(
> MessageExchange.class);
> > +                LOG.fine(new org.apache.cxf.common.i18n.Message(
> > +                    "CREATE.NORMALIZED.MESSAGE", LOG).toString());
> > +                if (inMessage.getExchange().getOutFaultMessage() !=
> null) {
> > +                    org.apache.cxf.interceptor.Fault f = (
> org.apache.cxf.interceptor.Fault)
> > +                            inMessage.getContent(Exception.class);
> > +                    if (f.hasDetails()) {
> > +                        Fault fault = xchng.createFault();
> > +                        fault.setContent(new DOMSource(doc));
> > +                        xchng.setFault(fault);
> > +                    } else {
> > +                        xchng.setError(f);
> > +                    }
> > +                } else {
> > +                    NormalizedMessage msg = xchng.createMessage();
> > +                    msg.setContent(new DOMSource(doc));
> > +                    xchng.setMessage(msg, "out");
> > +                }
> > +                LOG.fine(new org.apache.cxf.common.i18n.Message(
> > +                    "POST.DISPATCH", LOG).toString());
> > +                channel.send(xchng);
> > +            }
> > +        } catch (Exception ex) {
> > +            LOG.log(Level.SEVERE, new
> org.apache.cxf.common.i18n.Message(
> > +                "ERROR.SEND.MESSAGE", LOG).toString(), ex);
> > +        }
> > +    }
> > +
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> > Added:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java?view=auto&rev=530117
> >
> ==============================================================================
> > ---
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> (added)
> > +++
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> Wed Apr 18 11:27:39 2007
> > @@ -0,0 +1,62 @@
> > +/**
> > + * 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.transport.jbi;
> > +
> > +import java.io.ByteArrayInputStream;
> > +import java.io.ByteArrayOutputStream;
> > +import java.io.IOException;
> > +import java.io.InputStream;
> > +import java.util.logging.Logger;
> > +
> > +import javax.xml.transform.Source;
> > +import javax.xml.transform.Transformer;
> > +import javax.xml.transform.TransformerConfigurationException;
> > +import javax.xml.transform.TransformerException;
> > +import javax.xml.transform.TransformerFactory;
> > +import javax.xml.transform.stream.StreamResult;
> > +
> > +import org.apache.cxf.common.i18n.Message;
> > +import org.apache.cxf.common.logging.LogUtils;
> > +
> > +public final class JBIMessageHelper {
> > +
> > +    private static final Logger LOG = LogUtils.getL7dLogger(
> JBIMessageHelper.class);
> > +
> > +    private static final TransformerFactory TRANSFORMER_FACTORY
> > +        = TransformerFactory.newInstance();
> > +
> > +    private JBIMessageHelper() {
> > +        // complete
> > +    }
> > +
> > +
> > +    public static InputStream convertMessageToInputStream(Source src)
> > +        throws IOException, TransformerConfigurationException,
> TransformerException {
> > +
> > +        final Transformer transformer =
> TRANSFORMER_FACTORY.newTransformer();
> > +
> > +        ByteArrayOutputStream baos = new ByteArrayOutputStream();
> > +        StreamResult result = new StreamResult(baos);
> > +        transformer.transform(src, result);
> > +        LOG.finest(new Message("RECEIVED.MESSAGE", LOG) + new String(
> baos.toByteArray()));
> > +
> > +        return new ByteArrayInputStream(baos.toByteArray());
> > +    }
> > +}
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> >
> ------------------------------------------------------------------------------
> >     svn:eol-style = native
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> >
> ------------------------------------------------------------------------------
> >     svn:keywords = Date Revision
> >
> > Propchange:
> incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> >
> ------------------------------------------------------------------------------
> >     svn:mime-type = text/plain
> >
> >
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/

Re: svn commit: r530117 [1/2] - in /incubator/cxf/trunk/rt: ./ bindings/ bindings/jbi/ bindings/jbi/src/ bindings/jbi/src/main/ bindings/jbi/src/main/java/ bindings/jbi/src/main/java/org/ bindings/jbi/src/main/java/org/apache/ bindings/jbi/src/main/j

Posted by ja...@mail.ooc.nf.ca.
Cool. I figured as much, just wanted to verify. :)

Jon

On Fri, Apr 20, 2007 at 05:33:01PM +0200, Guillaume Nodet wrote:
> Yeah, sorry, I have had no time to continue and explain what
> I am doing.  I will start a thread on this asap.
> FYI, this is indeed a replacement.
> 
> On 4/20/07, Jonathan Anstey <ja...@iona.com> wrote:
> >
> > Hi Guillaume,
> >
> > Was the
> > trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi
> > directory meant to be a replacement for
> > trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport? If so,
> > the duplicate stuff should probably be removed.
> >
> > Cheers,
> > Jon
> >
> > gnodet@apache.org wrote:
> > > Author: gnodet
> > > Date: Wed Apr 18 11:27:39 2007
> > > New Revision: 530117
> > >
> > > URL: http://svn.apache.org/viewvc?view=rev&rev=530117
> > > Log:
> > > CXF-262: add a JBI binding and a JBI transport
> > >
> > > Added:
> > >     incubator/cxf/trunk/rt/bindings/jbi/   (with props)
> > >     incubator/cxf/trunk/rt/bindings/jbi/pom.xml   (with props)
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > (with props)
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> > extensions.xml   (with props)
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/
> > >
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml   (with props)
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/test/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/test/java/
> > >     incubator/cxf/trunk/rt/bindings/jbi/src/test/resources/
> > >     incubator/cxf/trunk/rt/transports/jbi/   (with props)
> > >     incubator/cxf/trunk/rt/transports/jbi/pom.xml   (with props)
> > >     incubator/cxf/trunk/rt/transports/jbi/src/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/main/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBITransportFactory.java
> > (with props)
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/Messages.properties
> > (with props)
> > >     incubator/cxf/trunk/rt/transports/jbi/src/main/resources/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/bus-
> > extensions.xml   (with props)
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/cxf/
> > >
> > incubator/cxf/trunk/rt/transports/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml   (with props)
> > >     incubator/cxf/trunk/rt/transports/jbi/src/test/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/test/java/
> > >     incubator/cxf/trunk/rt/transports/jbi/src/test/resources/
> > > Modified:
> > >     incubator/cxf/trunk/rt/bindings/pom.xml
> > >     incubator/cxf/trunk/rt/pom.xml
> > >
> > > Propchange: incubator/cxf/trunk/rt/bindings/jbi/
> > >
> > ------------------------------------------------------------------------------
> > > --- svn:ignore (added)
> > > +++ svn:ignore Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,3 @@
> > > +.classpath
> > > +.project
> > > +.settings
> > >
> > > Added: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/pom.xml?view=auto&rev=530117
> > >
> > ==============================================================================
> > > --- incubator/cxf/trunk/rt/bindings/jbi/pom.xml (added)
> > > +++ incubator/cxf/trunk/rt/bindings/jbi/pom.xml Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,93 @@
> > > +<!--
> > > +  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.
> > > +-->
> > > +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
> > http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> > http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
> > ">
> > > +    <modelVersion>4.0.0</modelVersion>
> > > +    <artifactId>cxf-rt-bindings-jbi</artifactId>
> > > +    <packaging>jar</packaging>
> > > +    <name>Apache CXF Runtime JBI Binding</name>
> > > +    <url>http://cwiki.apache.org/CXF</url>
> > > +
> > > +    <parent>
> > > +        <groupId>org.apache.cxf</groupId>
> > > +        <artifactId>cxf-parent</artifactId>
> > > +        <version>2.0-incubator-RC-SNAPSHOT</version>
> > > +        <relativePath>../../../parent/pom.xml</relativePath>
> > > +    </parent>
> > > +
> > > +
> > > +    <dependencies>
> > > +
> > > +        <dependency>
> > > +            <groupId>org.apache.cxf</groupId>
> > > +            <artifactId>cxf-api</artifactId>
> > > +            <version>${project.version}</version>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.apache.cxf</groupId>
> > > +            <artifactId>cxf-rt-databinding-jaxb</artifactId>
> > > +            <version>${project.version}</version>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.apache.cxf</groupId>
> > > +            <artifactId>cxf-testutils</artifactId>
> > > +            <version>${project.version}</version>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +
> > > +        <dependency>
> > > +            <groupId>junit</groupId>
> > > +            <artifactId>junit</artifactId>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +
> > > +        <dependency>
> > > +            <groupId>org.easymock</groupId>
> > > +            <artifactId>easymockclassextension</artifactId>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.apache.geronimo.specs</groupId>
> > > +            <artifactId>geronimo-javamail_1.4_spec</artifactId>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.apache.geronimo.specs</groupId>
> > > +            <artifactId>geronimo-activation_1.1_spec</artifactId>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +
> > > +         <dependency>
> > > +             <groupId>org.apache.cxf</groupId>
> > > +             <artifactId>cxf-tools-common</artifactId>
> > > +             <version>${project.version}</version>
> > > +        </dependency>
> > > +
> > > +        <dependency>
> > > +            <groupId>org.apache.servicemix</groupId>
> > > +            <artifactId>servicemix-jbi</artifactId>
> > > +            <version>3.1-incubating</version>
> > > +        </dependency>
> > > +
> > > +    </dependencies>
> > > +    <scm>
> > > +        <connection>scm:svn:
> > http://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/bindings/jbi
> > </connection>
> > > +        <developerConnection>scm:svn:
> > https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/bindings/jbi
> > </developerConnection>
> > > +    </scm>
> > > +
> > > +</project>
> > >
> > > Propchange: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange: incubator/cxf/trunk/rt/bindings/jbi/pom.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/xml
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > Wed Apr 18 11:27:39 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;
> > > +
> > > +import org.apache.cxf.binding.Binding;
> > > +import org.apache.cxf.interceptor.AbstractBasicInterceptorProvider;
> > > +import org.apache.cxf.message.Message;
> > > +import org.apache.cxf.message.MessageImpl;
> > > +import org.apache.cxf.service.model.BindingInfo;
> > > +
> > > +public class JBIBinding extends AbstractBasicInterceptorProvider
> > implements Binding {
> > > +
> > > +    private JBIBindingInfo bindingInfo;
> > > +
> > > +    public JBIBinding(JBIBindingInfo bindingInfo) {
> > > +        this.bindingInfo = bindingInfo;
> > > +    }
> > > +
> > > +    public Message createMessage() {
> > > +        return createMessage(new MessageImpl());
> > > +    }
> > > +
> > > +    public Message createMessage(Message m) {
> > > +        if (!m.containsKey(Message.CONTENT_TYPE)) {
> > > +            m.put(Message.CONTENT_TYPE, "text/xml");
> > > +        }
> > > +        return new JBIMessage(m);
> > > +    }
> > > +
> > > +    public BindingInfo getBindingInfo() {
> > > +        return bindingInfo;
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBinding.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > 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=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,66 @@
> > > +/**
> > > + * 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 javax.xml.namespace.QName;
> > > +
> > > +import org.apache.cxf.binding.AbstractBindingFactory;
> > > +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.StaxInInterceptor;
> > > +import org.apache.cxf.interceptor.StaxOutInterceptor;
> > > +import org.apache.cxf.service.model.BindingInfo;
> > > +import org.apache.cxf.service.model.BindingOperationInfo;
> > > +import org.apache.cxf.service.model.OperationInfo;
> > > +import org.apache.cxf.service.model.ServiceInfo;
> > > +
> > > +public class JBIBindingFactory extends AbstractBindingFactory {
> > > +
> > > +    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;
> > > +    }
> > > +
> > > +    public BindingInfo createBindingInfo(ServiceInfo service, String
> > namespace, Object config) {
> > > +        JBIBindingInfo info = new JBIBindingInfo(service,
> > JBIConstants.NS_JBI_BINDING);
> > > +        info.setName(new QName(service.getName().getNamespaceURI(),
> > > +                               service.getName().getLocalPart() +
> > "JBIBinding"));
> > > +
> > > +        for (OperationInfo op : service.getInterface().getOperations())
> > {
> > > +            BindingOperationInfo bop =
> > > +                info.buildOperation(op.getName(), op.getInputName(),
> > op.getOutputName());
> > > +            info.addOperation(bop);
> > > +        }
> > > +
> > > +        return info;
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingFactory.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,30 @@
> > > +/**
> > > + * 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 org.apache.cxf.service.model.BindingInfo;
> > > +import org.apache.cxf.service.model.ServiceInfo;
> > > +
> > > +public class JBIBindingInfo extends BindingInfo {
> > > +
> > > +    public JBIBindingInfo(ServiceInfo service, String bindingId) {
> > > +        super(service, bindingId);
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIBindingInfo.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,34 @@
> > > +/**
> > > + * 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 javax.xml.namespace.QName;
> > > +
> > > +
> > > +public final class JBIConstants {
> > > +
> > > +    public static final String NS_JBI_BINDING = "
> > http://cxf.apache.org/bindings/jbi";
> > > +
> > > +    public static final String NS_JBI_WRAPPER = "
> > http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper";
> > > +
> > > +    public static final QName JBI_WRAPPER_MESSAGE = new
> > QName(NS_JBI_WRAPPER, "message");
> > > +
> > > +    public static final QName JBI_WRAPPER_PART = new
> > QName(NS_JBI_WRAPPER, "part");
> > > +
> > > +}
> > > \ No newline at end of file
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIConstants.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > 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=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,36 @@
> > > +/**
> > > + * 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 javax.jbi.messaging.MessageExchange;
> > > +
> > > +import org.apache.cxf.message.AbstractWrappedMessage;
> > > +import org.apache.cxf.message.Message;
> > > +
> > > +public class JBIMessage extends AbstractWrappedMessage {
> > > +
> > > +    protected JBIMessage(Message msg) {
> > > +        super(msg);
> > > +    }
> > > +
> > > +    public MessageExchange getJbiExchange() {
> > > +        return get(MessageExchange.class);
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/JBIMessage.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > 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=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,66 @@
> > > +/**
> > > + * 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.util.ResourceBundle;
> > > +
> > > +import javax.xml.stream.XMLStreamException;
> > > +import javax.xml.stream.XMLStreamWriter;
> > > +
> > > +import org.w3c.dom.Element;
> > > +import org.w3c.dom.NodeList;
> > > +
> > > +import org.apache.cxf.binding.jbi.JBIMessage;
> > > +import org.apache.cxf.common.i18n.BundleUtils;
> > > +import org.apache.cxf.common.i18n.Message;
> > > +import org.apache.cxf.interceptor.Fault;
> > > +import org.apache.cxf.phase.AbstractPhaseInterceptor;
> > > +import org.apache.cxf.phase.Phase;
> > > +import org.apache.cxf.staxutils.StaxUtils;
> > > +
> > > +public class JBIFaultOutInterceptor extends
> > AbstractPhaseInterceptor<JBIMessage> {
> > > +
> > > +    private static final ResourceBundle BUNDLE = BundleUtils.getBundle(
> > JBIFaultOutInterceptor.class);
> > > +
> > > +    public JBIFaultOutInterceptor() {
> > > +        setPhase(Phase.MARSHAL);
> > > +    }
> > > +
> > > +    public void handleMessage(JBIMessage message) throws Fault {
> > > +        XMLStreamWriter writer = message.getContent(
> > XMLStreamWriter.class);
> > > +        Fault fault = (Fault) message.getContent(Exception.class);
> > > +        try {
> > > +            if (!fault.hasDetails()) {
> > > +                writer.writeEmptyElement("fault");
> > > +            } else {
> > > +                Element detail = fault.getDetail();
> > > +                NodeList details = detail.getChildNodes();
> > > +                for (int i = 0; i < details.getLength(); i++) {
> > > +                    if (details.item(i) instanceof Element) {
> > > +                        StaxUtils.writeNode(details.item(i), writer,
> > true);
> > > +                        break;
> > > +                    }
> > > +                }
> > > +            }
> > > +        } catch (XMLStreamException xe) {
> > > +            throw new Fault(new Message("XML_WRITE_EXC", BUNDLE), xe);
> > > +        }
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIFaultOutInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,72 @@
> > > +/**
> > > + * 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.util.ResourceBundle;
> > > +import java.util.logging.Logger;
> > > +
> > > +import javax.xml.namespace.QName;
> > > +
> > > +import org.apache.cxf.binding.jbi.JBIMessage;
> > > +import org.apache.cxf.common.i18n.Message;
> > > +import org.apache.cxf.common.logging.LogUtils;
> > > +import org.apache.cxf.endpoint.Endpoint;
> > > +import org.apache.cxf.interceptor.Fault;
> > > +import org.apache.cxf.message.Exchange;
> > > +import org.apache.cxf.phase.AbstractPhaseInterceptor;
> > > +import org.apache.cxf.phase.Phase;
> > > +import org.apache.cxf.service.model.BindingInfo;
> > > +import org.apache.cxf.service.model.BindingOperationInfo;
> > > +import org.apache.cxf.service.model.MessageInfo;
> > > +import org.apache.cxf.service.model.OperationInfo;
> > > +
> > > +public class JBIOperationInInterceptor extends
> > AbstractPhaseInterceptor<JBIMessage> {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIOperationInInterceptor.class);
> > > +
> > > +    private static final ResourceBundle BUNDLE = LOG.getResourceBundle
> > ();
> > > +
> > > +    public JBIOperationInInterceptor() {
> > > +        super();
> > > +        setPhase(Phase.PRE_PROTOCOL);
> > > +    }
> > > +
> > > +    public void handleMessage(JBIMessage message) throws Fault {
> > > +        Exchange ex = message.getExchange();
> > > +        Endpoint ep = ex.get(Endpoint.class);
> > > +        BindingOperationInfo boi = ex.get(BindingOperationInfo.class);
> > > +        if (boi == null && message.getJbiExchange().getOperation() !=
> > null) {
> > > +            BindingInfo service = ep.getEndpointInfo().getBinding();
> > > +            boi = getBindingOperationInfo(service,
> > message.getJbiExchange().getOperation());
> > > +            if (boi == null) {
> > > +                throw new Fault(new Message("UNKNOWN_OPERATION",
> > BUNDLE,
> > > +                        message.getJbiExchange
> > ().getOperation().toString()));
> > > +            }
> > > +            ex.put(BindingOperationInfo.class, boi);
> > > +            ex.put(OperationInfo.class, boi.getOperationInfo());
> > > +            ex.setOneWay(boi.getOperationInfo().isOneWay());
> > > +            message.put(MessageInfo.class, boi.getInput
> > ().getMessageInfo());
> > > +        }
> > > +    }
> > > +
> > > +    protected BindingOperationInfo getBindingOperationInfo(BindingInfo
> > service, QName operation) {
> > > +        return service.getOperation(operation);
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIOperationInInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > 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=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,122 @@
> > > +/**
> > > + * 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.util.ArrayList;
> > > +import java.util.List;
> > > +import java.util.ResourceBundle;
> > > +import java.util.logging.Logger;
> > > +
> > > +import javax.xml.namespace.QName;
> > > +import javax.xml.stream.XMLStreamConstants;
> > > +import javax.xml.stream.XMLStreamException;
> > > +import javax.xml.stream.XMLStreamReader;
> > > +
> > > +import org.apache.cxf.binding.jbi.JBIBindingInfo;
> > > +import org.apache.cxf.binding.jbi.JBIConstants;
> > > +import org.apache.cxf.common.logging.LogUtils;
> > > +import org.apache.cxf.databinding.DataReader;
> > > +import org.apache.cxf.endpoint.Endpoint;
> > > +import org.apache.cxf.interceptor.AbstractInDatabindingInterceptor;
> > > +import org.apache.cxf.interceptor.Fault;
> > > +import org.apache.cxf.message.Exchange;
> > > +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.BindingOperationInfo;
> > > +import org.apache.cxf.service.model.MessagePartInfo;
> > > +import org.apache.cxf.staxutils.DepthXMLStreamReader;
> > > +import org.apache.cxf.staxutils.StaxUtils;
> > > +
> > > +public class JBIWrapperInInterceptor extends
> > AbstractInDatabindingInterceptor {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIWrapperInInterceptor.class);
> > > +
> > > +    private static final ResourceBundle BUNDLE = LOG.getResourceBundle
> > ();
> > > +
> > > +    public JBIWrapperInInterceptor() {
> > > +        setPhase(Phase.UNMARSHAL);
> > > +    }
> > > +
> > > +    public void handleMessage(Message message) throws Fault {
> > > +        if (isGET(message)) {
> > > +            LOG.info("JbiMessageInInterceptor skipped in HTTP GET
> > method");
> > > +            return;
> > > +        }
> > > +        XMLStreamReader xsr = message.getContent(XMLStreamReader.class
> > );
> > > +
> > > +        DepthXMLStreamReader reader = new DepthXMLStreamReader(xsr);
> > > +
> > > +        Endpoint ep = message.getExchange().get(Endpoint.class);
> > > +        BindingInfo binding = ep.getEndpointInfo().getBinding();
> > > +        if (!(binding instanceof JBIBindingInfo)) {
> > > +            throw new IllegalStateException("BindingInfo should be a
> > JbiBindingInfo");
> > > +        }
> > > +
> > > +        if (!StaxUtils.toNextElement(reader)) {
> > > +            throw new Fault(new org.apache.cxf.common.i18n.Message("NO_OPERATION_ELEMENT",
> > BUNDLE));
> > > +        }
> > > +
> > > +        Exchange ex = message.getExchange();
> > > +        QName startQName = reader.getName();
> > > +
> > > +        // handling xml normal inbound message
> > > +        if (!startQName.equals(JBIConstants.JBI_WRAPPER_MESSAGE)) {
> > > +            throw new Fault(new org.apache.cxf.common.i18n.Message(
> > > +                    "NO_JBI_MESSAGE_ELEMENT", BUNDLE));
> > > +        }
> > > +
> > > +        try {
> > > +            BindingOperationInfo bop = ex.get(
> > BindingOperationInfo.class);
> > > +            DataReader<XMLStreamReader> dr = getDataReader(message);
> > > +            List<Object> parameters = new ArrayList<Object>();
> > > +            for (MessagePartInfo part : bop.getInput().getMessageParts())
> > {
> > > +                if (reader.nextTag() !=
> > XMLStreamConstants.START_ELEMENT) {
> > > +                    throw new Fault(new
> > org.apache.cxf.common.i18n.Message(
> > > +                            "NO_ENOUGH_PARTS", BUNDLE));
> > > +                }
> > > +                startQName = reader.getName();
> > > +                if (!startQName.equals(JBIConstants.JBI_WRAPPER_PART))
> > {
> > > +                    throw new Fault(new
> > org.apache.cxf.common.i18n.Message(
> > > +                            "NO_JBI_PART_ELEMENT", BUNDLE));
> > > +                }
> > > +                if (part.isElement()) {
> > > +                    reader.next();
> > > +                    if (!StaxUtils.toNextElement(reader)) {
> > > +                        throw new Fault(new
> > org.apache.cxf.common.i18n.Message(
> > > +                                "EXPECTED_ELEMENT_IN_PART", BUNDLE));
> > > +                    }
> > > +                }
> > > +                parameters.add(dr.read(part, reader));
> > > +                // skip end element
> > > +                if (part.isElement()) {
> > > +                    reader.next();
> > > +                }
> > > +                reader.next();
> > > +            }
> > > +            if (reader.getEventType() !=
> > XMLStreamConstants.END_DOCUMENT) {
> > > +                throw new Fault(new org.apache.cxf.common.i18n.Message("TOO_MUCH_PARTS",
> > BUNDLE));
> > > +            }
> > > +            message.setContent(List.class, parameters);
> > > +        } catch (XMLStreamException e) {
> > > +            throw new RuntimeException("Couldn't parse stream.", e);
> > > +        }
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperInInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,99 @@
> > > +/**
> > > + * 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.util.List;
> > > +import java.util.ResourceBundle;
> > > +import java.util.logging.Logger;
> > > +
> > > +import javax.xml.stream.XMLStreamException;
> > > +import javax.xml.stream.XMLStreamWriter;
> > > +
> > > +import org.apache.cxf.binding.jbi.JBIConstants;
> > > +import org.apache.cxf.common.logging.LogUtils;
> > > +import org.apache.cxf.databinding.DataWriter;
> > > +import org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor;
> > > +import org.apache.cxf.interceptor.Fault;
> > > +import org.apache.cxf.message.Message;
> > > +import org.apache.cxf.phase.Phase;
> > > +import org.apache.cxf.service.model.BindingOperationInfo;
> > > +import org.apache.cxf.service.model.MessagePartInfo;
> > > +
> > > +public class JBIWrapperOutInterceptor extends
> > AbstractOutDatabindingInterceptor {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIWrapperOutInterceptor.class);
> > > +
> > > +    private static final ResourceBundle BUNDLE = LOG.getResourceBundle
> > ();
> > > +
> > > +    public JBIWrapperOutInterceptor() {
> > > +        setPhase(Phase.MARSHAL);
> > > +    }
> > > +
> > > +    public void handleMessage(Message message) throws Fault {
> > > +        BindingOperationInfo bop = message.getExchange().get(
> > BindingOperationInfo.class);
> > > +        XMLStreamWriter xmlWriter = getXMLStreamWriter(message);
> > > +        DataWriter<XMLStreamWriter> dataWriter = getDataWriter(message,
> > XMLStreamWriter.class);
> > > +
> > > +        try {
> > > +            xmlWriter.setPrefix("jbi", JBIConstants.NS_JBI_WRAPPER);
> > > +            xmlWriter.writeStartElement(JBIConstants.NS_JBI_WRAPPER,
> > > +
> > JBIConstants.JBI_WRAPPER_MESSAGE.getLocalPart());
> > > +            xmlWriter.writeNamespace("jbi", JBIConstants.NS_JBI_WRAPPER
> > );
> > > +
> > > +            List<MessagePartInfo> parts = null;
> > > +            if (!isRequestor(message)) {
> > > +                parts = bop.getOutput().getMessageParts();
> > > +            } else {
> > > +                parts = bop.getInput().getMessageParts();
> > > +            }
> > > +            List<?> objs = (List<?>) message.getContent(List.class);
> > > +            if (objs.size() < parts.size()) {
> > > +                throw new Fault(new org.apache.cxf.common.i18n.Message(
> > > +                        "The number of arguments is not equal!",
> > BUNDLE));
> > > +            }
> > > +            for (int idx = 0; idx < parts.size(); idx++) {
> > > +                MessagePartInfo part = parts.get(idx);
> > > +                Object obj = objs.get(idx);
> > > +                if (!part.isElement()) {
> > > +                    if (part.getTypeClass() == String.class) {
> > > +                        xmlWriter.writeStartElement(
> > JBIConstants.NS_JBI_WRAPPER,
> > > +
> > JBIConstants.JBI_WRAPPER_PART.getLocalPart());
> > > +                        xmlWriter.writeCharacters(obj.toString());
> > > +                        xmlWriter.writeEndElement();
> > > +                    } else {
> > > +                        part = new MessagePartInfo(part.getName(),
> > part.getMessageInfo());
> > > +                        part.setElement(false);
> > > +                        part.setConcreteName(
> > JBIConstants.JBI_WRAPPER_PART);
> > > +                        dataWriter.write(obj, part, xmlWriter);
> > > +                    }
> > > +                } else {
> > > +                    xmlWriter.writeStartElement(
> > JBIConstants.NS_JBI_WRAPPER,
> > > +
> > JBIConstants.JBI_WRAPPER_PART.getLocalPart());
> > > +                    dataWriter.write(obj, part, xmlWriter);
> > > +                    xmlWriter.writeEndElement();
> > > +                }
> > > +            }
> > > +            xmlWriter.writeEndElement();
> > > +
> > > +        } catch (XMLStreamException e) {
> > > +            throw new Fault(new org.apache.cxf.common.i18n.Message("STAX_WRITE_EXC",
> > BUNDLE), e);
> > > +        }
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/JBIWrapperOutInterceptor.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,46 @@
> > > +#
> > > +#    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.
> > > +#
> > > +NOT.IMPLEMENTED=not yet implemented
> > > +INVOKE.SERVICE=invoking service\t
> > > +CREATE.MESSAGE.EXCHANGE=create message exchange svc:\t
> > > +EXCHANGE.ENDPOINT=exchange endpoint:\t
> > > +NO.MESSAGE=no message yet
> > > +UNABLE.RETRIEVE.MESSAGE=unable to retrieve message
> > > +CONTEXT.MUST.BE=context must be of type JBIOutputStreamMessageContext
> > > +RECEIVED.MESSAGE=received message:\t
> > > +ACTIVE.JBI.SERVER.TRANSPORT=activating JBI server transport
> > > +BUILDING.DOCUMENT=building document from bytes
> > > +CREATE.NORMALIZED.MESSAGE=creating NormalizedMessage
> > > +POST.DISPATCH=postDispatch sending out message to NWR
> > > +ERROR.SEND.MESSAGE=error sending Out message
> > > +DISPATCH.MESSAGE.ON.CALLBACK=dispatching message on callback:\t
> > > +ERROR.PREPARE.MESSAGE=error preparing message
> > > +RECEIVE.THREAD.START=JBIServerTransport message receiving thread
> > started
> > > +DISPATCH.TO.SU=dispatching to CXF service unit
> > > +NO.SU.FOUND=no CXFServiceUnit found
> > > +ERROR.DISPATCH.THREAD=error running dispatch thread
> > > +JBI.SERVER.TRANSPORT.MESSAGE.PROCESS.THREAD.EXIT=JBIServerTransport
> > message processing thread exitting
> > > +CONFIG.DELIVERY.CHANNEL=configuring DeliveryChannel:\t
> > > +CONFIG.SU.MANAGER=configuring ServiceUnitManager:\t
> > > +JBI.TRANSPORT.FACTORY.NOT.INITIALIZED=JBITransportFactory is not
> > properly initialised
> > > +SU.MANAGER=CXFServiceUnitManager:\t
> > > +DELIVERY.CHANNEL=DeliveryChannel:\t
> > > +JBI.TRANSPORT.FACTORY.NOT.FULLY.INITIALIZED=JBITransport factory not
> > fully initalised
> > > +CREATE.SERVER.TRANSPORT=creating JBI server transport
> > > +CREATE.CLIENT.TRANSPORT=creating JBI client transport
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/java/org/apache/cxf/binding/jbi/interceptor/Messages.properties
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> > extensions.xml
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-extensions.xml?view=auto&rev=530117
> > >
> > ==============================================================================
> > > --- incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> > extensions.xml (added)
> > > +++ incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> > extensions.xml Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,27 @@
> > > +<?xml version="1.0" encoding="UTF-8"?>
> > > +<!--
> > > +  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.cf
> > > +-->
> > > +<extensions xmlns="http://cxf.apache.org/bus/extension">
> > > +
> > > +    <extension class="org.apache.cxf.binding.jbi.JBIBindingFactory"
> > deferred="true">
> > > +        <namespace>http://cxf.apache.org/bindings/jbi</namespace>
> > > +        <namespace>
> > http://java.sun.com/xml/ns/jbi/binding/service+engine</namespace>
> > > +    </extension>
> > > +
> > > +</extensions>
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> > extensions.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/bus-
> > extensions.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/xml
> > >
> > > Added:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-extension-jbi.xml?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml (added)
> > > +++
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,32 @@
> > > +<?xml version="1.0" encoding="UTF-8"?>
> > > +<!--
> > > +  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.
> > > +-->
> > > +<beans xmlns="http://www.springframework.org/schema/beans">
> > > +
> > > +    <bean class="org.apache.cxf.binding.jbi.JBIBindingFactory"
> > lazy-init="true">
> > > +      <property name="bus" ref="cxf"/>
> > > +      <property name="activationNamespaces">
> > > +            <set>
> > > +              <value>http://cxf.apache.org/bindings/jbi</value>
> > > +              <value>
> > http://java.sun.com/xml/ns/jbi/binding/service+engine</value>
> > > +            </set>
> > > +        </property>
> > > +    </bean>
> > > +
> > > +</beans>
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/bindings/jbi/src/main/resources/META-INF/cxf/cxf-
> > extension-jbi.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/xml
> > >
> > > Modified: incubator/cxf/trunk/rt/bindings/pom.xml
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/pom.xml?view=diff&rev=530117&r1=530116&r2=530117
> > >
> > ==============================================================================
> > > --- incubator/cxf/trunk/rt/bindings/pom.xml (original)
> > > +++ incubator/cxf/trunk/rt/bindings/pom.xml Wed Apr 18 11:27:39 2007
> > > @@ -36,6 +36,7 @@
> > >          <module>http</module>
> > >          <module>object</module>
> > >          <module>coloc</module>
> > > +        <module>jbi</module>
> > >      </modules>
> > >
> > >
> > >
> > > Modified: incubator/cxf/trunk/rt/pom.xml
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/pom.xml?view=diff&rev=530117&r1=530116&r2=530117
> > >
> > ==============================================================================
> > > --- incubator/cxf/trunk/rt/pom.xml (original)
> > > +++ incubator/cxf/trunk/rt/pom.xml Wed Apr 18 11:27:39 2007
> > > @@ -43,6 +43,7 @@
> > >          <module>transports/http</module>
> > >          <module>transports/http-jetty</module>
> > >          <module>transports/jms</module>
> > > +        <module>transports/jbi</module>
> > >          <module>ws/policy</module>
> > >          <module>ws/addr</module>
> > >          <module>ws/rm</module>
> > >
> > > Propchange: incubator/cxf/trunk/rt/transports/jbi/
> > >
> > ------------------------------------------------------------------------------
> > > --- svn:ignore (added)
> > > +++ svn:ignore Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,3 @@
> > > +.classpath
> > > +.project
> > > +.settings
> > >
> > > Added: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/pom.xml?view=auto&rev=530117
> > >
> > ==============================================================================
> > > --- incubator/cxf/trunk/rt/transports/jbi/pom.xml (added)
> > > +++ incubator/cxf/trunk/rt/transports/jbi/pom.xml Wed Apr 18 11:27:39
> > 2007
> > > @@ -0,0 +1,77 @@
> > > +<!--
> > > +  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.
> > > +-->
> > > +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
> > http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> > http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
> > ">
> > > +    <modelVersion>4.0.0</modelVersion>
> > > +    <groupId>org.apache.cxf</groupId>
> > > +    <artifactId>cxf-rt-transports-jbi</artifactId>
> > > +    <packaging>jar</packaging>
> > > +    <version>2.0-incubator-RC-SNAPSHOT</version>
> > > +    <name>Apache CXF Runtime JBI transport</name>
> > > +    <url>http://cwiki.apache.org/CXF</url>
> > > +
> > > +    <parent>
> > > +        <groupId>org.apache.cxf</groupId>
> > > +        <artifactId>cxf-parent</artifactId>
> > > +        <version>2.0-incubator-RC-SNAPSHOT</version>
> > > +        <relativePath>../../../parent/pom.xml</relativePath>
> > > +    </parent>
> > > +
> > > +    <dependencies>
> > > +        <dependency>
> > > +            <groupId>junit</groupId>
> > > +            <artifactId>junit</artifactId>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.easymock</groupId>
> > > +            <artifactId>easymockclassextension</artifactId>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.apache.cxf</groupId>
> > > +            <artifactId>cxf-api</artifactId>
> > > +            <version>${project.version}</version>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.apache.cxf</groupId>
> > > +            <artifactId>cxf-rt-core</artifactId>
> > > +            <version>${project.version}</version>
> > > +        </dependency>
> > > +        <dependency>
> > > +            <groupId>org.apache.cxf</groupId>
> > > +            <artifactId>cxf-testutils</artifactId>
> > > +            <version>${project.version}</version>
> > > +            <scope>test</scope>
> > > +        </dependency>
> > > +
> > > +        <dependency>
> > > +            <groupId>org.apache.servicemix</groupId>
> > > +            <artifactId>servicemix-jbi</artifactId>
> > > +            <version>3.1-incubating</version>
> > > +          </dependency>
> > > +
> > > +    </dependencies>
> > > +
> > > +
> > > +    <scm>
> > > +        <connection>scm:svn:
> > http://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/transports/jbi
> > </connection>
> > > +        <developerConnection>scm:svn:
> > https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/transports/jbi
> > </developerConnection>
> > > +    </scm>
> > > +
> > > +</project>
> > >
> > > Propchange: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange: incubator/cxf/trunk/rt/transports/jbi/pom.xml
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/xml
> > >
> > > Added:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,58 @@
> > > +/**
> > > + * 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.transport.jbi;
> > > +
> > > +import java.io.IOException;
> > > +import java.io.OutputStream;
> > > +import java.util.logging.Level;
> > > +import java.util.logging.Logger;
> > > +
> > > +import javax.jbi.messaging.DeliveryChannel;
> > > +
> > > +
> > > +
> > > +import org.apache.cxf.common.logging.LogUtils;
> > > +import org.apache.cxf.message.Message;
> > > +import org.apache.cxf.transport.AbstractConduit;
> > > +import org.apache.cxf.ws.addressing.EndpointReferenceType;
> > > +
> > > +
> > > +public class JBIConduit extends AbstractConduit {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIConduit.class);
> > > +
> > > +    private DeliveryChannel channel;
> > > +
> > > +    public JBIConduit(EndpointReferenceType target, DeliveryChannel dc)
> > {
> > > +        super(target);
> > > +        channel = dc;
> > > +    }
> > > +
> > > +    protected Logger getLogger() {
> > > +        return LOG;
> > > +    }
> > > +
> > > +    public void prepare(Message message) throws IOException {
> > > +        getLogger().log(Level.FINE, "JBIConduit send message");
> > > +
> > > +        message.setContent(OutputStream.class,
> > > +                           new JBIConduitOutputStream(message, channel,
> > target, this));
> > > +    }
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduit.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > 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=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,174 @@
> > > +/**
> > > + * 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.transport.jbi;
> > > +
> > > +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;
> > > +
> > > +import javax.jbi.messaging.DeliveryChannel;
> > > +import javax.jbi.messaging.InOut;
> > > +import javax.jbi.messaging.MessageExchange;
> > > +import javax.jbi.messaging.MessageExchangeFactory;
> > > +import javax.jbi.messaging.NormalizedMessage;
> > > +import javax.jws.WebService;
> > > +import javax.xml.namespace.QName;
> > > +import javax.xml.transform.Source;
> > > +import javax.xml.transform.stream.StreamSource;
> > > +
> > > +import org.apache.cxf.common.logging.LogUtils;
> > > +import org.apache.cxf.io.AbstractCachedOutputStream;
> > > +import org.apache.cxf.message.Message;
> > > +import org.apache.cxf.message.MessageImpl;
> > > +import org.apache.cxf.service.model.BindingOperationInfo;
> > > +import org.apache.cxf.ws.addressing.EndpointReferenceType;
> > > +import org.apache.cxf.wsdl.EndpointReferenceUtils;
> > > +
> > > +public class JBIConduitOutputStream extends AbstractCachedOutputStream
> > {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIConduitOutputStream.class);
> > > +
> > > +    private Message message;
> > > +    private boolean isOneWay;
> > > +    private DeliveryChannel channel;
> > > +    private JBIConduit conduit;
> > > +    private EndpointReferenceType target;
> > > +
> > > +    public JBIConduitOutputStream(Message m, DeliveryChannel channel,
> > EndpointReferenceType target,
> > > +                                  JBIConduit conduit) {
> > > +        message = m;
> > > +        this.channel = channel;
> > > +        this.conduit = conduit;
> > > +        this.target = target;
> > > +
> > > +    }
> > > +
> > > +    @Override
> > > +    protected void doFlush() throws IOException {
> > > +
> > > +    }
> > > +
> > > +    @Override
> > > +    protected void doClose() throws IOException {
> > > +        isOneWay = message.getExchange().isOneWay();
> > > +        commitOutputMessage();
> > > +        if (target != null) {
> > > +            target.getClass();
> > > +        }
> > > +    }
> > > +
> > > +    private void commitOutputMessage() throws IOException {
> > > +        try {
> > > +            Method targetMethod = (Method) message.get(
> > Method.class.getName());
> > > +            Class<?> clz = targetMethod.getDeclaringClass();
> > > +            BindingOperationInfo bop = message.getExchange().get(
> > BindingOperationInfo.class);
> > > +
> > > +            LOG.info(new org.apache.cxf.common.i18n.Message("
> > INVOKE.SERVICE", LOG).toString() + clz);
> > > +
> > > +            WebService ws = clz.getAnnotation(WebService.class);
> > > +            assert ws != null;
> > > +            QName interfaceName = new QName(ws.targetNamespace(),
> > ws.name());
> > > +            QName serviceName = null;
> > > +            if (target != null) {
> > > +                serviceName = EndpointReferenceUtils.getServiceName
> > (target);
> > > +            } else {
> > > +                serviceName = message.getExchange().get(
> > org.apache.cxf.service.Service.class).getName();
> > > +            }
> > > +
> > > +            MessageExchangeFactory factory =
> > channel.createExchangeFactoryForService(serviceName);
> > > +            LOG.info(new org.apache.cxf.common.i18n.Message("
> > CREATE.MESSAGE.EXCHANGE", LOG).toString()
> > > +                     + serviceName);
> > > +            MessageExchange xchng = null;
> > > +            if (isOneWay) {
> > > +                xchng = factory.createInOnlyExchange();
> > > +            } else if (bop.getOutput() == null) {
> > > +                xchng = factory.createRobustInOnlyExchange();
> > > +            } else {
> > > +                xchng = factory.createInOutExchange();
> > > +            }
> > > +
> > > +            NormalizedMessage inMsg = xchng.createMessage();
> > > +            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));
> > > +                xchng.setService(serviceName);
> > > +                LOG.info("service for exchange " + serviceName);
> > > +
> > > +                xchng.setInterfaceName(interfaceName);
> > > +
> > > +                xchng.setOperation(bop.getName());
> > > +                xchng.setMessage(inMsg, "in");
> > > +                LOG.info("sending message");
> > > +                if (!isOneWay) {
> > > +
> > > +                    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);
> > > +                    conduit.getMessageObserver().onMessage(inMessage);
> > > +
> > > +                } else {
> > > +                    channel.send(xchng);
> > > +                }
> > > +
> > > +            } else {
> > > +                LOG.info(new org.apache.cxf.common.i18n.Message("
> > NO.MESSAGE", LOG).toString());
> > > +            }
> > > +
> > > +
> > > +
> > > +        } catch (Exception e) {
> > > +            e.printStackTrace();
> > > +            throw new IOException(e.toString());
> > > +        }
> > > +    }
> > > +
> > > +    private Source getMessageContent(Message message2) {
> > > +        ByteArrayOutputStream bos = (ByteArrayOutputStream)getOut();
> > > +        return new StreamSource(new ByteArrayInputStream(
> > bos.toByteArray()));
> > > +
> > > +    }
> > > +
> > > +    @Override
> > > +    protected void onWrite() throws IOException {
> > > +
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > 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=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,130 @@
> > > +/**
> > > + * 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.transport.jbi;
> > > +
> > > +import java.io.IOException;
> > > +import java.io.InputStream;
> > > +import java.io.OutputStream;
> > > +import java.util.logging.Level;
> > > +import java.util.logging.Logger;
> > > +
> > > +import javax.jbi.messaging.DeliveryChannel;
> > > +import javax.jbi.messaging.MessageExchange;
> > > +import javax.jbi.messaging.NormalizedMessage;
> > > +import javax.xml.namespace.QName;
> > > +
> > > +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.transport.AbstractConduit;
> > > +import org.apache.cxf.transport.AbstractDestination;
> > > +import org.apache.cxf.transport.Conduit;
> > > +import org.apache.cxf.transport.MessageObserver;
> > > +import org.apache.cxf.ws.addressing.EndpointReferenceType;
> > > +import org.apache.cxf.wsdl.EndpointReferenceUtils;
> > > +
> > > +public class JBIDestination extends AbstractDestination {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIDestination.class);
> > > +
> > > +    private final DeliveryChannel channel;
> > > +
> > > +    public JBIDestination(EndpointInfo info,
> > > +                          DeliveryChannel dc) {
> > > +        super(getTargetReference(info, null), info);
> > > +        this.channel = dc;
> > > +    }
> > > +
> > > +    protected Logger getLogger() {
> > > +        return LOG;
> > > +    }
> > > +
> > > +    /**
> > > +     * @param inMessage the incoming message
> > > +     * @return the inbuilt backchannel
> > > +     */
> > > +    protected Conduit getInbuiltBackChannel(Message inMessage) {
> > > +        return new BackChannelConduit(
> > EndpointReferenceUtils.getAnonymousEndpointReference(),
> > > +                                      inMessage);
> > > +    }
> > > +
> > > +    // this should deal with the cxf message
> > > +    protected class BackChannelConduit extends AbstractConduit {
> > > +
> > > +        protected Message inMessage;
> > > +        protected JBIDestination jbiDestination;
> > > +
> > > +        BackChannelConduit(EndpointReferenceType ref, Message message)
> > {
> > > +            super(ref);
> > > +            inMessage = message;
> > > +        }
> > > +
> > > +        /**
> > > +         * Register a message observer for incoming messages.
> > > +         *
> > > +         * @param observer the observer to notify on receipt of
> > incoming
> > > +         */
> > > +        public void setMessageObserver(MessageObserver observer) {
> > > +            // shouldn't be called for a back channel conduit
> > > +        }
> > > +
> > > +        /**
> > > +         * Send an outbound message, assumed to contain all the
> > name-value
> > > +         * mappings of the corresponding input message (if any).
> > > +         *
> > > +         * @param message the message to be sent.
> > > +         */
> > > +        public void prepare(Message message) throws IOException {
> > > +            // setup the message to be send back
> > > +            message.put(MessageExchange.class, inMessage.get(
> > MessageExchange.class));
> > > +            message.setContent(OutputStream.class,
> > > +                               new
> > JBIDestinationOutputStream(inMessage, channel));
> > > +        }
> > > +
> > > +        protected Logger getLogger() {
> > > +            return LOG;
> > > +        }
> > > +    }
> > > +
> > > +    public void dispatch(MessageExchange exchange) throws IOException {
> > > +        QName opName = exchange.getOperation();
> > > +        getLogger().fine("dispatch method: " + opName);
> > > +
> > > +        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);
> > > +
> > > +            //dispatch to correct destination in case of multiple
> > endpoint
> > > +            inMessage.setDestination(this);
> > > +            getMessageObserver().onMessage(inMessage);
> > > +
> > > +        } catch (Exception ex) {
> > > +            getLogger().log(Level.SEVERE, new
> > org.apache.cxf.common.i18n.Message(
> > > +                "ERROR.PREPARE.MESSAGE", getLogger()).toString(), ex);
> > > +            throw new IOException(ex.getMessage());
> > > +        }
> > > +
> > > +    }
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestination.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,113 @@
> > > +/**
> > > + * 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.transport.jbi;
> > > +
> > > +import java.io.ByteArrayInputStream;
> > > +import java.io.ByteArrayOutputStream;
> > > +import java.io.IOException;
> > > +import java.util.logging.Level;
> > > +import java.util.logging.Logger;
> > > +
> > > +import javax.jbi.messaging.DeliveryChannel;
> > > +import javax.jbi.messaging.Fault;
> > > +import javax.jbi.messaging.MessageExchange;
> > > +import javax.jbi.messaging.NormalizedMessage;
> > > +import javax.xml.parsers.DocumentBuilder;
> > > +import javax.xml.parsers.DocumentBuilderFactory;
> > > +import javax.xml.transform.dom.DOMSource;
> > > +
> > > +import org.w3c.dom.Document;
> > > +
> > > +import org.apache.cxf.common.logging.LogUtils;
> > > +import org.apache.cxf.io.AbstractCachedOutputStream;
> > > +import org.apache.cxf.message.Message;
> > > +
> > > +public class JBIDestinationOutputStream extends
> > AbstractCachedOutputStream {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIDestinationOutputStream.class);
> > > +    private Message inMessage;
> > > +    private DeliveryChannel channel;
> > > +
> > > +    public JBIDestinationOutputStream(Message m,
> > > +                               DeliveryChannel dc) {
> > > +        super();
> > > +        inMessage = m;
> > > +        channel = dc;
> > > +    }
> > > +
> > > +    @Override
> > > +    protected void doFlush() throws IOException {
> > > +        // so far do nothing
> > > +    }
> > > +
> > > +    @Override
> > > +    protected void doClose() throws IOException {
> > > +        commitOutputMessage();
> > > +    }
> > > +
> > > +    @Override
> > > +    protected void onWrite() throws IOException {
> > > +        // so far do nothing
> > > +    }
> > > +
> > > +    private void commitOutputMessage() throws IOException {
> > > +        try {
> > > +            if (inMessage.getExchange().isOneWay()) {
> > > +                return;
> > > +            } else {
> > > +
> > > +                ByteArrayOutputStream baos =
> > (ByteArrayOutputStream)getOut();
> > > +                ByteArrayInputStream bais = new ByteArrayInputStream(
> > baos.toByteArray());
> > > +                LOG.finest(new org.apache.cxf.common.i18n.Message(
> > > +                    "BUILDING.DOCUMENT", LOG).toString());
> > > +                DocumentBuilderFactory docBuilderFactory =
> > DocumentBuilderFactory.newInstance();
> > > +                docBuilderFactory.setNamespaceAware(true);
> > > +                DocumentBuilder builder =
> > docBuilderFactory.newDocumentBuilder();
> > > +                Document doc = builder.parse(bais);
> > > +
> > > +                MessageExchange xchng = inMessage.get(
> > MessageExchange.class);
> > > +                LOG.fine(new org.apache.cxf.common.i18n.Message(
> > > +                    "CREATE.NORMALIZED.MESSAGE", LOG).toString());
> > > +                if (inMessage.getExchange().getOutFaultMessage() !=
> > null) {
> > > +                    org.apache.cxf.interceptor.Fault f = (
> > org.apache.cxf.interceptor.Fault)
> > > +                            inMessage.getContent(Exception.class);
> > > +                    if (f.hasDetails()) {
> > > +                        Fault fault = xchng.createFault();
> > > +                        fault.setContent(new DOMSource(doc));
> > > +                        xchng.setFault(fault);
> > > +                    } else {
> > > +                        xchng.setError(f);
> > > +                    }
> > > +                } else {
> > > +                    NormalizedMessage msg = xchng.createMessage();
> > > +                    msg.setContent(new DOMSource(doc));
> > > +                    xchng.setMessage(msg, "out");
> > > +                }
> > > +                LOG.fine(new org.apache.cxf.common.i18n.Message(
> > > +                    "POST.DISPATCH", LOG).toString());
> > > +                channel.send(xchng);
> > > +            }
> > > +        } catch (Exception ex) {
> > > +            LOG.log(Level.SEVERE, new
> > org.apache.cxf.common.i18n.Message(
> > > +                "ERROR.SEND.MESSAGE", LOG).toString(), ex);
> > > +        }
> > > +    }
> > > +
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > > Added:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java?view=auto&rev=530117
> > >
> > ==============================================================================
> > > ---
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > (added)
> > > +++
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > Wed Apr 18 11:27:39 2007
> > > @@ -0,0 +1,62 @@
> > > +/**
> > > + * 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.transport.jbi;
> > > +
> > > +import java.io.ByteArrayInputStream;
> > > +import java.io.ByteArrayOutputStream;
> > > +import java.io.IOException;
> > > +import java.io.InputStream;
> > > +import java.util.logging.Logger;
> > > +
> > > +import javax.xml.transform.Source;
> > > +import javax.xml.transform.Transformer;
> > > +import javax.xml.transform.TransformerConfigurationException;
> > > +import javax.xml.transform.TransformerException;
> > > +import javax.xml.transform.TransformerFactory;
> > > +import javax.xml.transform.stream.StreamResult;
> > > +
> > > +import org.apache.cxf.common.i18n.Message;
> > > +import org.apache.cxf.common.logging.LogUtils;
> > > +
> > > +public final class JBIMessageHelper {
> > > +
> > > +    private static final Logger LOG = LogUtils.getL7dLogger(
> > JBIMessageHelper.class);
> > > +
> > > +    private static final TransformerFactory TRANSFORMER_FACTORY
> > > +        = TransformerFactory.newInstance();
> > > +
> > > +    private JBIMessageHelper() {
> > > +        // complete
> > > +    }
> > > +
> > > +
> > > +    public static InputStream convertMessageToInputStream(Source src)
> > > +        throws IOException, TransformerConfigurationException,
> > TransformerException {
> > > +
> > > +        final Transformer transformer =
> > TRANSFORMER_FACTORY.newTransformer();
> > > +
> > > +        ByteArrayOutputStream baos = new ByteArrayOutputStream();
> > > +        StreamResult result = new StreamResult(baos);
> > > +        transformer.transform(src, result);
> > > +        LOG.finest(new Message("RECEIVED.MESSAGE", LOG) + new String(
> > baos.toByteArray()));
> > > +
> > > +        return new ByteArrayInputStream(baos.toByteArray());
> > > +    }
> > > +}
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:eol-style = native
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:keywords = Date Revision
> > >
> > > Propchange:
> > incubator/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIMessageHelper.java
> > >
> > ------------------------------------------------------------------------------
> > >     svn:mime-type = text/plain
> > >
> > >
> >
> >
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Principal Engineer, IONA
> Blog: http://gnodet.blogspot.com/