You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Benson Margulies <bi...@gmail.com> on 2008/03/27 00:09:33 UTC

Re: svn commit: r641581 - in /incubator/cxf/trunk: rt/core/src/main/java/org/apache/cxf/bus/spring/ rt/core/src/main/java/org/apache/cxf/feature/ rt/core/src/main/java/org/apache/cxf/interceptor/ rt/core/src/main/resources/schemas/ rt/databinding/jax

Is this a coincidence and you were working on this all along?

On Wed, Mar 26, 2008 at 5:23 PM, <dk...@apache.org> wrote:

> Author: dkulp
> Date: Wed Mar 26 14:23:40 2008
> New Revision: 641581
>
> URL: http://svn.apache.org/viewvc?rev=641581&view=rev
> Log:
> Add a new "FastInfoset" feature that will turn on fastinfoset negotiation
> and usage for more efficient on the wire transmissions.
> (tested interop with the JAX-WS RI to make sure it works)
>
> Added:
>
>  incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/feature/FastInfosetFeature.java
>   (with props)
>
>  incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxInInterceptor.java
>   (with props)
>
>  incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
>   (with props)
> Modified:
>
>  incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java
>
>  incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
>    incubator/cxf/trunk/rt/core/src/main/resources/schemas/core.xsd
>
>  incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
>
>  incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
>
>  incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
>
>  incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
>
>  incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
>
> Modified:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> ---
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java
> (original)
> +++
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java
> Wed Mar 26 14:23:40 2008
> @@ -19,6 +19,7 @@
>  package org.apache.cxf.bus.spring;
>
>  import org.apache.cxf.configuration.spring.SimpleBeanDefinitionParser;
> +import org.apache.cxf.feature.FastInfosetFeature;
>  import org.apache.cxf.feature.LoggingFeature;
>  import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
>
> @@ -28,5 +29,7 @@
>                                      new BusDefinitionParser());
>         registerBeanDefinitionParser("logging",
>                                      new SimpleBeanDefinitionParser(
> LoggingFeature.class));
> +        registerBeanDefinitionParser("fastinfoset",
> +                                     new SimpleBeanDefinitionParser(
> FastInfosetFeature.class));
>     }
>  }
>
> Added:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/feature/FastInfosetFeature.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/feature/FastInfosetFeature.java?rev=641581&view=auto
>
> ==============================================================================
> ---
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/feature/FastInfosetFeature.java
> (added)
> +++
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/feature/FastInfosetFeature.java
> Wed Mar 26 14:23:40 2008
> @@ -0,0 +1,73 @@
> +/**
> + * 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.feature;
> +
> +import org.apache.cxf.Bus;
> +import org.apache.cxf.interceptor.FIStaxInInterceptor;
> +import org.apache.cxf.interceptor.FIStaxOutInterceptor;
> +import org.apache.cxf.interceptor.InterceptorProvider;
> +//import org.apache.cxf.interceptor.FIStaxInInterceptor;
> +
> +/**
> + * <pre>
> + * <![CDATA[
> +    <jaxws:endpoint ...>
> +      <jaxws:features>
> +       <bean class="org.apache.cxf.feature.FastInfosetFeature"/>
> +      </jaxws:features>
> +    </jaxws:endpoint>
> +  ]]>
> +  </pre>
> + */
> +public class FastInfosetFeature extends AbstractFeature {
> +
> +    boolean force;
> +
> +    public FastInfosetFeature() {
> +        //
> +    }
> +
> +
> +    @Override
> +    protected void initializeProvider(InterceptorProvider provider, Bus
> bus) {
> +
> +        FIStaxInInterceptor in = new FIStaxInInterceptor();
> +        FIStaxOutInterceptor out = new FIStaxOutInterceptor(force);
> +        provider.getInInterceptors().add(in);
> +        provider.getInFaultInterceptors().add(in);
> +        provider.getOutInterceptors().add(out);
> +        provider.getOutFaultInterceptors().add(out);
> +    }
> +
> +    /**
> +     * Set if FastInfoset is always used without negotiation
> +     * @param b
> +     */
> +    public void setForce(boolean b) {
> +        force = b;
> +    }
> +
> +    /**
> +     * Retrieve the value set with {@link #setLimit(int)}.
> +     * @return
> +     */
> +    public boolean getForce() {
> +        return force;
> +    }
> +}
>
> Propchange:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/feature/FastInfosetFeature.java
>
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/feature/FastInfosetFeature.java
>
> ------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
> Added:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxInInterceptor.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxInInterceptor.java?rev=641581&view=auto
>
> ==============================================================================
> ---
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxInInterceptor.java
> (added)
> +++
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxInInterceptor.java
> Wed Mar 26 14:23:40 2008
> @@ -0,0 +1,74 @@
> +/**
> + * 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.interceptor;
> +
> +
> +
> +import javax.xml.stream.XMLInputFactory;
> +import javax.xml.stream.XMLStreamReader;
> +
> +import com.sun.xml.fastinfoset.stax.factory.StAXInputFactory;
> +
> +import org.apache.cxf.endpoint.Endpoint;
> +import org.apache.cxf.message.Message;
> +import org.apache.cxf.phase.AbstractPhaseInterceptor;
> +import org.apache.cxf.phase.Phase;
> +
> +/**
> + * Creates an XMLStreamReader from the InputStream on the Message.
> + */
> +public class FIStaxInInterceptor extends
> AbstractPhaseInterceptor<Message> {
> +    XMLInputFactory factory = new StAXInputFactory();
> +
> +    public FIStaxInInterceptor() {
> +        this(Phase.POST_STREAM);
> +    }
> +    public FIStaxInInterceptor(String phase) {
> +        super(phase);
> +        addBefore(StaxInInterceptor.class.getName());
> +    }
> +    protected boolean isRequestor(Message message) {
> +        return Boolean.TRUE.equals(message.containsKey(
> Message.REQUESTOR_ROLE));
> +    }
> +
> +    public void handleMessage(Message message) {
> +        if (isGET(message) || message.getContentFormats().contains(
> XMLStreamReader.class)) {
> +            return;
> +        }
> +
> +        String ct = (String)message.get(Message.CONTENT_TYPE);
> +        if (ct != null && ct.indexOf("fastinfoset") != -1) {
> +            message.put(XMLInputFactory.class.getName(), factory);
> +            ct = ct.replace("fastinfoset", "xml");
> +            if (ct.contains("application/xml")) {
> +                ct = ct.replace("application/xml", "text/xml");
> +            }
> +            message.put(Message.CONTENT_TYPE, ct);
> +
> +            message.getExchange().put(FIStaxOutInterceptor.FI_ENABLED,
> Boolean.TRUE);
> +            if (isRequestor(message)) {
> +                //record the fact that is worked so future requests will
> +                //automatically be FI enabled
> +                Endpoint ep = message.getExchange().get(Endpoint.class);
> +                ep.put(FIStaxOutInterceptor.FI_ENABLED, Boolean.TRUE);
> +            }
> +        }
> +    }
> +}
>
> Propchange:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxInInterceptor.java
>
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxInInterceptor.java
>
> ------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
> Added:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java?rev=641581&view=auto
>
> ==============================================================================
> ---
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
> (added)
> +++
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
> Wed Mar 26 14:23:40 2008
> @@ -0,0 +1,106 @@
> +/**
> + * 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.interceptor;
> +
> +
> +import java.util.ArrayList;
> +import java.util.List;
> +import java.util.Map;
> +
> +import javax.xml.stream.XMLOutputFactory;
> +import javax.xml.stream.XMLStreamWriter;
> +
> +import com.sun.xml.fastinfoset.stax.factory.StAXOutputFactory;
> +
> +import org.apache.cxf.helpers.CastUtils;
> +import org.apache.cxf.message.Message;
> +import org.apache.cxf.phase.AbstractPhaseInterceptor;
> +import org.apache.cxf.phase.Phase;
> +
> +
> +/**
> + * Creates an XMLStreamReader from the InputStream on the Message.
> + */
> +public class FIStaxOutInterceptor extends
> AbstractPhaseInterceptor<Message> {
> +    public static final String FI_ENABLED = "
> org.apache.cxf.fastinfoset.enabled";
> +
> +    boolean force;
> +    XMLOutputFactory factory = new StAXOutputFactory();
> +
> +    public FIStaxOutInterceptor() {
> +        super(Phase.PRE_STREAM);
> +        addAfter(AttachmentOutInterceptor.class.getName());
> +        addBefore(StaxOutInterceptor.class.getName());
> +    }
> +    public FIStaxOutInterceptor(boolean f) {
> +        this();
> +        force = f;
> +    }
> +    protected boolean isRequestor(Message message) {
> +        return Boolean.TRUE.equals(message.containsKey(
> Message.REQUESTOR_ROLE));
> +    }
> +
> +
> +    public void handleMessage(Message message) {
> +        XMLStreamWriter writer = message.getContent(XMLStreamWriter.class
> );
> +        if (writer != null) {
> +            return;
> +        }
> +        boolean req = isRequestor(message);
> +        Object o = message.getContextualProperty(FI_ENABLED);
> +        if (!req) {
> +            if (message.getExchange().getInMessage() != null) {
> +                //check incoming accept header
> +                String s =
> (String)message.getExchange().getInMessage().get(
> Message.ACCEPT_CONTENT_TYPE);
> +                if (s != null && s.contains("fastinfoset")) {
> +                    o = Boolean.TRUE;
> +                }
> +            }
> +        } else {
> +            Map<String, List<String>> headers
> +                = CastUtils.cast((Map<?, ?>)message.get(
> Message.PROTOCOL_HEADERS));
> +            List<String> accepts = headers.get("Accept");
> +            if (accepts == null) {
> +                accepts = new ArrayList<String>();
> +                headers.put("Accept", accepts);
> +            }
> +            String a = "application/fastinfoset";
> +            if (!accepts.isEmpty()) {
> +                a += ", " + accepts.get(0);
> +            }
> +            accepts.set(0, a);
> +        }
> +
> +        if (force
> +            || Boolean.TRUE.equals(o)) {
> +
> +            message.put(XMLOutputFactory.class.getName(),
> +                        factory);
> +            String s = (String)message.get(Message.CONTENT_TYPE);
> +            if (s.contains("application/soap+xml")) {
> +                s = s.replace("application/soap+xml",
> "application/soap+fastinfoset");
> +                message.put(Message.CONTENT_TYPE, s);
> +            } else {
> +                message.put(Message.CONTENT_TYPE,
> "application/fastinfoset");
> +            }
> +        }
> +    }
> +
> +}
>
> Propchange:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
>
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
>
> ------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
> Modified:
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> ---
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
> (original)
> +++
> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
> Wed Mar 26 14:23:40 2008
> @@ -41,6 +41,8 @@
>  * Creates an XMLStreamReader from the InputStream on the Message.
>  */
>  public class StaxOutInterceptor extends AbstractPhaseInterceptor<Message>
> {
> +    public static final String FORCE_START_DOCUMENT = "
> org.apache.cxf.stax.force-start-document";
> +
>     private static final ResourceBundle BUNDLE = BundleUtils.getBundle(
> StaxOutInterceptor.class);
>     private static Map<Object, XMLOutputFactory> factories = new
> HashMap<Object, XMLOutputFactory>();
>
> @@ -64,6 +66,9 @@
>
>         try {
>             writer =
> getXMLOutputFactory(message).createXMLStreamWriter(os, encoding);
> +            if (Boolean.TRUE.equals(message.getContextualProperty(FORCE_START_DOCUMENT)))
> {
> +                writer.writeStartDocument(encoding);
> +            }
>         } catch (XMLStreamException e) {
>             throw new Fault(new org.apache.cxf.common.i18n.Message("STREAM_CREATE_EXC",
> BUNDLE), e);
>         }
> @@ -91,6 +96,9 @@
>     public static XMLOutputFactory getXMLOutputFactory(Message m) throws
> Fault {
>         Object o = m.getContextualProperty(XMLOutputFactory.class.getName
> ());
>         if (o instanceof XMLOutputFactory) {
> +            m.put(
> AbstractOutDatabindingInterceptor.DISABLE_OUTPUTSTREAM_OPTIMIZATION,
> +                        Boolean.TRUE);
> +            m.put(FORCE_START_DOCUMENT, Boolean.TRUE);
>             return (XMLOutputFactory)o;
>         } else if (o != null) {
>             XMLOutputFactory xif = (XMLOutputFactory)factories.get(o);
> @@ -118,6 +126,9 @@
>                     throw new Fault(e);
>                 }
>             }
> +            m.put(
> AbstractOutDatabindingInterceptor.DISABLE_OUTPUTSTREAM_OPTIMIZATION,
> +                  Boolean.TRUE);
> +            m.put(FORCE_START_DOCUMENT, Boolean.TRUE);
>             return xif;
>         } else {
>             return StaxUtils.getXMLOutputFactory();
>
> Modified: incubator/cxf/trunk/rt/core/src/main/resources/schemas/core.xsd
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/resources/schemas/core.xsd?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/resources/schemas/core.xsd
> (original)
> +++ incubator/cxf/trunk/rt/core/src/main/resources/schemas/core.xsd Wed
> Mar 26 14:23:40 2008
> @@ -48,6 +48,18 @@
>       <xsd:attribute name="limit" type="xsd:int" use="optional"
> default="102400"/>
>     </xsd:complexType>
>   </xsd:element>
> +  <xsd:element name="fastinfoset">
> +    <xsd:annotation>
> +      <xsd:documentation>
> +        The fastinfoset feature enables you to turn on using fastinfoset
> encoding of
> +        xml payloads.
> +      </xsd:documentation>
> +    </xsd:annotation>
> +    <xsd:complexType>
> +      <xsd:sequence />
> +      <xsd:attribute name="force" type="xsd:boolean" use="optional"
> default="false"/>
> +    </xsd:complexType>
> +  </xsd:element>
>
>   <xsd:element name="bus">
>     <xsd:complexType>
>
> Modified:
> incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> ---
> incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
> (original)
> +++
> incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
> Wed Mar 26 14:23:40 2008
> @@ -296,7 +296,9 @@
>             && !Modifier.isPublic(field.getModifiers())) {
>             return false;
>         }
> -
> +        if (field.getAnnotation(XmlJavaTypeAdapter.class) != null) {
> +            return false;
> +        }
>         if (accessType == XmlAccessType.NONE
>             || accessType == XmlAccessType.PROPERTY) {
>             return checkJaxbAnnotation(field.getAnnotations());
> @@ -325,7 +327,8 @@
>
>         boolean isPropGetter = method.getName().startsWith("get") ||
> method.getName().startsWith("is");
>
> -        if (!isPropGetter) {
> +        if (!isPropGetter
> +            || method.getAnnotation(XmlJavaTypeAdapter.class) != null) {
>             return false;
>         }
>         int beginIndex = 3;
>
> Modified:
> incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> ---
> incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
> (original)
> +++
> incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
> Wed Mar 26 14:23:40 2008
> @@ -137,7 +137,10 @@
>
>         if (serviceBean != null) {
>             initializeAnnotationInterceptors(server.getEndpoint(),
> this.getServiceBean().getClass());
> +        } else if (getServiceClass() != null) {
> +            initializeAnnotationInterceptors(server.getEndpoint(),
> getServiceClass());
>         }
> +
>
>         applyFeatures();
>         return server;
>
> Modified:
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> ---
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
> (original)
> +++
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
> Wed Mar 26 14:23:40 2008
> @@ -59,7 +59,7 @@
>
>     @BeforeClass
>     public static void startServers() throws Exception {
> -        assertTrue("server did not launch correctly", launchServer(
> ServerMisc.class));
> +        assertTrue("server did not launch correctly", launchServer(
> ServerMisc.class, true));
>     }
>
>     @Test
>
> Modified:
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> ---
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
> (original)
> +++
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
> Wed Mar 26 14:23:40 2008
> @@ -31,6 +31,7 @@
>  import javax.xml.ws.RequestWrapper;
>  import javax.xml.ws.ResponseWrapper;
>
> +import org.apache.cxf.feature.Features;
>  import org.apache.cxf.message.Exchange;
>  import org.apache.cxf.systest.jaxws.types.Bar;
>
> @@ -38,6 +39,7 @@
>             targetNamespace = "
> http://cxf.apache.org/systest/jaxws/DocLitWrappedCodeFirstService")
>  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT,
>              use = SOAPBinding.Use.LITERAL)
> +@Features(features = { "org.apache.cxf.feature.FastInfosetFeature" })
>  public interface DocLitWrappedCodeFirstService {
>
>     @WebMethod
>
> Modified:
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
> URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java?rev=641581&r1=641580&r2=641581&view=diff
>
> ==============================================================================
> ---
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
> (original)
> +++
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
> Wed Mar 26 14:23:40 2008
> @@ -27,6 +27,7 @@
>  import javax.xml.ws.Holder;
>  import javax.xml.ws.WebServiceContext;
>
> +import org.apache.cxf.feature.Features;
>  import org.apache.cxf.message.Exchange;
>  import org.apache.cxf.systest.jaxws.types.Bar;
>  import org.apache.cxf.systest.jaxws.types.BarImpl;
> @@ -35,6 +36,7 @@
>             serviceName = "DocLitWrappedCodeFirstService",
>             portName = "DocLitWrappedCodeFirstServicePort",
>             targetNamespace = "
> http://cxf.apache.org/systest/jaxws/DocLitWrappedCodeFirstService")
> +@Features(features = { "org.apache.cxf.feature.FastInfosetFeature" })
>  public class DocLitWrappedCodeFirstServiceImpl implements
> DocLitWrappedCodeFirstService {
>     public static final String DATA[] = new String[] {"string1",
> "string2", "string3"};
>
>
>
>

Re: svn commit: r641581 - in /incubator/cxf/trunk: rt/core/src/main/java/org/apache/cxf/bus/spring/ rt/core/src/main/java/org/apache/cxf/feature/ rt/core/src/main/java/org/apache/cxf/interceptor/ rt/core/src/main/resources/schemas/ rt/databinding/jax

Posted by Daniel Kulp <dk...@apache.org>.
On Wednesday 26 March 2008, Benson Margulies wrote:
> Is this a coincidence and you were working on this all along?

Well, yes and no.  It's kind of been on my todo list since I updated the 
stack comparison page on the Axis2 wiki and had to leave 
the "fastinfoset" checkbox blank.  Also, a month or so ago, someone 
reported trying to use the FastInfoset factories and it didn't work.  
Just never had time to investigate.

You just inspired me to actually look into it.  Can't let you have all 
the fun.  :-)

Dan



>
> On Wed, Mar 26, 2008 at 5:23 PM, <dk...@apache.org> wrote:
> > Author: dkulp
> > Date: Wed Mar 26 14:23:40 2008
> > New Revision: 641581
> >
> > URL: http://svn.apache.org/viewvc?rev=641581&view=rev
> > Log:
> > Add a new "FastInfoset" feature that will turn on fastinfoset
> > negotiation and usage for more efficient on the wire transmissions.
> > (tested interop with the JAX-WS RI to make sure it works)
> >
> > Added:


-- 
J. Daniel Kulp
Principal Engineer, IONA
dkulp@apache.org
http://www.dankulp.com/blog