cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Mao <james....@iona.com>
Subject Re: svn commit: r527347 - in /incubator/cxf/trunk: rt/bindings/object/ rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ rt/bindings/object/src/main/resources/META-INF/cxf/ rt/bindings/object/src/test/java/org/apache/cxf/binding/object/
Date Thu, 12 Apr 2007 01:58:48 GMT
Hi Dan,


> Hi James,
>
> Two quick things before I revert:
> 1. How would I merge the various <plugin> attributes from the 
> different xml
> files? i.e. they both have different name attributes. What should I do 
> when
> combining the different tools.xml into 1 xml file? Or is that 
> attribute not
> even really used?

To combine is not a good idea, databinding and fronetend they are 
different things, if you take a look at the svn log, i did it before, 
it's looks like this:
<plugin name="cxf.default" provider="cxf.apache.org">
   <frontend name="jaxws">
    ...
  </frontend>
  <databinding name="jaxb">
  ...
  </databinding>
</plugin>

it works, but i think it's not good, so i separated, and keep every part 
independent with each other. and also move the plugin description into 
META-INF dir.

The plugin node actually just a wrap element, what really we care is the 
frontend  and databinding inside the element.

> 2. You'll still be able to use the tools separated, but as we agreed 
> on the
> mailing list, it'd be great if we could produce a cxf.jar with 
> everything,
> including the tools modules so users only need to manage one jar.

It's ok to have a single jar, but i don't think we need put the plugins 
inside the jar, that does not make much sense to me.
Take eclipse as an example, you can have a core eclipse, but other 
extensions are independent jars, you can download from eclipse/plugins

I would suggest that we pack Common/Api/Rt/ToolCore    and keep the 
plugins out side of the single jar, just like you are not going to put 
the codegen plugins/ eclipse plugins/ jdee plugins inside the single 
jar, right?

For your reference

Cheers,
James.

>
> Regards,
> - Dan
>
> On 4/10/07, James Mao <james.mao@iona.com> wrote:
>>
>>
>> Hi Dan,
>>
>>
>>
>> > Log:
>> > o Switch the tools plugin files to allow multiple plugins within a
>> single
>> >   file. This makes it easier to combine mutliple tools.xml files 
>> for the
>> >   bundle jar which we are (hopefully) producing.
>> >   Tools people: please let me know if this is an OK thing to do!
>> >
>>
>> You really don't need to do this!
>> The plugin can contain frontend and databinding in it self
>> You can write a plugin description file like this:
>>
>> <plugin name="***" provider="cxf.apache.org" ...>
>>   <frontend name="jaxws">
>>     ...
>>   </frontend>
>>   <databinding name="jaxb">
>>   </databinding>
>> </plugin>
>>
>> So, <plugins><plugin></plugin></plugins>
>> Really is a redundant
>>
>> And i'm really not like to bundle the plugins in the one jar,
>> I don't care you bundle other stuff, but i myself prefer the tools
>> plugins being separated.
>>
>> If you don't mind, please revert tools part in this commit.
>>
>> If we really need to bundle, there already has a way to bundle it
>> together, there is no need to have a <plugins>
>>
>> Thanks
>> James.
>>
>>
>>
>> >
>> > Added:
>> >
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java 
>>
>> (with props)
>> >
>> incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java 
>>
>> (with props)
>> > Modified:
>> >     incubator/cxf/trunk/rt/bindings/object/pom.xml
>> >
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java 
>>
>> >
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java 
>>
>> >
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java 
>>
>> >
>> incubator/cxf/trunk/rt/bindings/object/src/main/resources/META-INF/cxf/cxf- 
>>
>> extension-object-binding.xml
>> >
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java 
>>
>> >
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainSetupInterceptor.java 
>>
>> >
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/ChainInitiationObserver.java 
>>
>> >
>> incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/OutgoingChainInterceptorTest.java 
>>
>> >
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java 
>>
>> >
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java 
>>
>> >
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalTransportFactory.java 
>>
>> >
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/PluginLoader.java 
>>
>> >
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/resources/schemas/plugin.xsd 
>>
>> >
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java 
>>
>> >
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/resources/META-INF/tools- 
>>
>> plugin.xml
>> >
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/resources/META-INF/tools- 
>>
>> plugin.xml
>> >
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java 
>>
>> >
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws- 
>>
>> plugin.xml
>> >
>> incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java 
>>
>> >
>> > Modified: incubator/cxf/trunk/rt/bindings/object/pom.xml
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/pom.xml?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > --- incubator/cxf/trunk/rt/bindings/object/pom.xml (original)
>> > +++ incubator/cxf/trunk/rt/bindings/object/pom.xml Tue Apr 10 17:17:37
>> 2007
>> > @@ -61,6 +61,12 @@
>> >              <version>${project.version}</version>
>> >          </dependency>
>> >          <dependency>
>> > +            <groupId>org.apache.cxf</groupId>
>> > +            <artifactId>cxf-rt-transports-http-jetty</artifactId>
>> > +            <version>${project.version}</version>
>> > +            <scope>test</scope>
>> > +        </dependency>
>> > +        <dependency>
>> >              <groupId>junit</groupId>
>> >              <artifactId>junit</artifactId>
>> >              <scope>test</scope>
>> >
>> > Added:
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java?view=auto&rev=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java 
>>
>> (added)
>> > +++
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -0,0 +1,138 @@
>> > +/**
>> > + * 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.object;
>> > +
>> > +import java.io.IOException;
>> > +import java.util.logging.Level;
>> > +import java.util.logging.Logger;
>> > +
>> > +import org.apache.cxf.Bus;
>> > +import org.apache.cxf.BusException;
>> > +import org.apache.cxf.binding.Binding;
>> > +import org.apache.cxf.binding.BindingFactory;
>> > +import org.apache.cxf.common.logging.LogUtils;
>> > +import org.apache.cxf.endpoint.Endpoint;
>> > +import org.apache.cxf.endpoint.Server;
>> > +import org.apache.cxf.endpoint.ServerLifeCycleListener;
>> > +import org.apache.cxf.service.Service;
>> > +import org.apache.cxf.service.model.BindingInfo;
>> > +import org.apache.cxf.service.model.EndpointInfo;
>> > +import org.apache.cxf.transport.ChainInitiationObserver;
>> > +import org.apache.cxf.transport.Destination;
>> > +import org.apache.cxf.transport.DestinationFactory;
>> > +import org.apache.cxf.transport.DestinationFactoryManager;
>> > +import org.apache.cxf.transport.local.LocalTransportFactory;
>> > +
>> > +public class LocalServerListener implements ServerLifeCycleListener {
>> > +    private static final Logger LOG = LogUtils.getL7dLogger(
>> LocalServerListener.class);
>> > +
>> > +    private DestinationFactory destinationFactory;
>> > +    private BindingFactory bindingFactory;
>> > +    private ObjectBindingConfiguration configuration = new
>> ObjectBindingConfiguration();
>> > +    private Bus bus;
>> > +
>> > +    public LocalServerListener(Bus bus,
>> > +                               BindingFactory bindingFactory) {
>> > +        super();
>> > +        this.bindingFactory = bindingFactory;
>> > +        this.bus = bus;
>> > +    }
>> > +
>> > +    public void startServer(Server server) {
>> > +        Endpoint endpoint = server.getEndpoint();
>> > +        Service service = endpoint.getService();
>> > +
>> > +        // synthesize a new binding
>> > +        BindingInfo bi = bindingFactory.createBindingInfo(service,
>> > +
>> ObjectBindingFactory.BINDING_ID,
>> >
>> +                                                          
>> configuration);
>> > +
>> > +        Binding binding = bindingFactory.createBinding(bi);
>> > +
>> > +        String uri = "local://" + server.toString();
>> > +        EndpointInfo ei = new EndpointInfo();
>> > +        ei.setAddress(uri);
>> > +
>> > +        try {
>> > +            // Register a new Destination locally for the Server
>> > +            Destination destination =
>> getDestinationFactory().getDestination(ei);
>> > +
>> > +            destination.setMessageObserver(new
>> OverrideBindingObserver(endpoint, binding, bus));
>> > +        } catch (IOException e1) {
>> > +            LOG.log(Level.WARNING, "Could not create local
>> destination.", e1);
>> > +        }
>> > +    }
>> > +
>> > +    public void stopServer(Server server) {
>> > +        String uri = "local://" + server.toString();
>> > +        EndpointInfo ei = new EndpointInfo();
>> > +        ei.setAddress(uri);
>> > +
>> > +        try {
>> > +            Destination destination =
>> getDestinationFactory().getDestination(ei);
>> > +
>> > +            destination.shutdown();
>> > +        } catch (IOException e) {
>> > +            LOG.log(Level.WARNING, "Could not shutdown local
>> destination.", e);
>> > +        }
>> > +
>> > +    }
>> > +
>> > +    public DestinationFactory getDestinationFactory() {
>> > +        if (destinationFactory == null) {
>> > +            retrieveDF();
>> > +        }
>> > +        return destinationFactory;
>> > +    }
>> > +
>> > +    private synchronized void retrieveDF() {
>> > +        if (destinationFactory == null) {
>> > +            DestinationFactoryManager dfm = bus.getExtension(
>> DestinationFactoryManager.class);
>> > +            try {
>> > +                destinationFactory = dfm.getDestinationFactory(
>> LocalTransportFactory.TRANSPORT_ID);
>> > +            } catch (BusException e) {
>> > +                throw new RuntimeException(e);
>> > +            }
>> > +        }
>> > +    }
>> > +
>> > +    public ObjectBindingConfiguration getConfiguration() {
>> > +        return configuration;
>> > +    }
>> > +
>> > +    public void setConfiguration(ObjectBindingConfiguration
>> configuration) {
>> > +        this.configuration = configuration;
>> > +    }
>> > +
>> > +    public static class OverrideBindingObserver extends
>> ChainInitiationObserver {
>> > +
>> > +        private Binding binding;
>> > +
>> > +        public OverrideBindingObserver(Endpoint endpoint, Binding
>> binding, Bus bus) {
>> > +            super(endpoint, bus);
>> > +            this.binding = binding;
>> > +        }
>> > +
>> > +        @Override
>> > +        protected Binding getBinding() {
>> > +            return binding;
>> > +        }
>> > +
>> > +    }
>> > +}
>> >
>> > Propchange:
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java 
>>
>> >
>> ------------------------------------------------------------------------------ 
>>
>> >     svn:eol-style = native
>> >
>> > Propchange:
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java 
>>
>> >
>> ------------------------------------------------------------------------------ 
>>
>> >     svn:executable = *
>> >
>> > Propchange:
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/LocalServerListener.java 
>>
>> >
>> ------------------------------------------------------------------------------ 
>>
>> >     svn:keywords = Rev Date
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -23,7 +23,7 @@
>> >  import org.apache.cxf.binding.BindingConfiguration;
>> >
>> >  public class ObjectBindingConfiguration extends 
>> BindingConfiguration {
>> > -    private boolean stopAfterLogicalPhases = true;
>> > +    private boolean nonLogicalPhasesEnabled = true;
>> >      private Set<String> skipPhases;
>> >
>> >      @Override
>> > @@ -39,12 +39,12 @@
>> >          this.skipPhases = skipPhases;
>> >      }
>> >
>> > -    public boolean isStopAfterLogicalPhases() {
>> > -        return stopAfterLogicalPhases;
>> > +    public boolean isNonLogicalPhasesEnabled() {
>> > +        return nonLogicalPhasesEnabled;
>> >      }
>> >
>> > -    public void setStopAfterLogicalPhases(boolean
>> stopAfterLogicalPhases) {
>> > -        this.stopAfterLogicalPhases = stopAfterLogicalPhases;
>> > +    public void setNonLogicalPhasesEnabled(boolean
>> nonLogicalPhasesEnabled) {
>> > +        this.nonLogicalPhasesEnabled = nonLogicalPhasesEnabled;
>> >      }
>> >
>> >  }
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -20,11 +20,14 @@
>> >
>> >  import java.util.Collection;
>> >
>> > +import javax.annotation.PostConstruct;
>> >  import javax.annotation.Resource;
>> >  import javax.xml.namespace.QName;
>> >
>> > +import org.apache.cxf.Bus;
>> >  import org.apache.cxf.binding.AbstractBindingFactory;
>> >  import org.apache.cxf.binding.Binding;
>> > +import org.apache.cxf.endpoint.ServerLifeCycleManager;
>> >  import org.apache.cxf.service.model.BindingInfo;
>> >  import org.apache.cxf.service.model.BindingOperationInfo;
>> >  import org.apache.cxf.service.model.OperationInfo;
>> > @@ -32,10 +35,14 @@
>> >
>> >  public class ObjectBindingFactory extends AbstractBindingFactory {
>> >      public static final String BINDING_ID = "
>> http://cxf.apache.org/binding/object";
>> > -    public static final String STOP_AFTER_LOGICAL  = "
>> objectBinding.stopAfterLogical";
>> > +    public static final String RUN_NON_LOGICAL  = "
>> objectBinding.stopAfterLogical";
>> >
>> >      private Collection<String> activationNamespaces;
>> > -
>> > +    private Bus bus;
>> > +    private boolean autoRegisterLocalEndpoint;
>> > +    private boolean initialized = true;
>> > +    private LocalServerListener listener;
>> > +
>> >      public Collection<String> getActivationNamespaces() {
>> >          return activationNamespaces;
>> >      }
>> > @@ -44,7 +51,24 @@
>> >      public void setActivationNamespaces(Collection<String> ans) {
>> >          activationNamespaces = ans;
>> >      }
>> > +
>> > +    @Resource(name = "bus")
>> > +    public void setBus(Bus bus) {
>> > +        this.bus = bus;
>> > +    }
>> >
>> > +    @PostConstruct
>> > +    public void initialize() {
>> > +        if (autoRegisterLocalEndpoint) {
>> > +            ServerLifeCycleManager manager = bus.getExtension(
>> ServerLifeCycleManager.class);
>> > +            if (manager != null) {
>> > +                listener = new LocalServerListener(bus, this);
>> > +                manager.registerListener(listener);
>> > +            }
>> > +        }
>> > +        initialized = true;
>> > +    }
>> > +
>> >      public Binding createBinding(BindingInfo bi) {
>> >          ObjectBinding binding = new ObjectBinding();
>> >          binding.getOutInterceptors().add(new
>> ObjectDispatchOutInterceptor());
>> > @@ -59,7 +83,7 @@
>> >          if (config instanceof ObjectBindingConfiguration) {
>> >              ObjectBindingConfiguration c = 
>> (ObjectBindingConfiguration)
>> config;
>> >
>> > -            info.setProperty(STOP_AFTER_LOGICAL,
>> c.isStopAfterLogicalPhases());
>> > +            info.setProperty(RUN_NON_LOGICAL,
>> c.isNonLogicalPhasesEnabled());
>> >          }
>> >
>> >          info.setName(new QName(si.getName().getNamespaceURI(),
>> > @@ -70,6 +94,19 @@
>> >              info.addOperation(bop);
>> >          }
>> >          return info;
>> > +    }
>> > +
>> > +    public boolean isAutoRegisterLocalEndpoint() {
>> > +        return autoRegisterLocalEndpoint;
>> > +    }
>> > +
>> > +    public void setAutoRegisterLocalEndpoint(boolean
>> autoRegisterLocalEndpoint) {
>> > +        this.autoRegisterLocalEndpoint = autoRegisterLocalEndpoint;
>> > +
>> > +        if (initialized && listener == null) {
>> > +            // register the lifecycle listener
>> > +            initialize();
>> > +        }
>> >      }
>> >
>> >  }
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -50,14 +50,17 @@
>> >          if (opName == null) {
>> >              throw new Fault(new 
>> org.apache.cxf.common.i18n.Message("NO_OPERATION",
>> BUNDLE));
>> >          }
>> > +
>> > +        Endpoint ep = message.getExchange().get(Endpoint.class);
>> > +
>> > +        BindingInfo binding = null;
>> >
>> >          if (bindingName == null) {
>> > -            throw new Fault(new 
>> org.apache.cxf.common.i18n.Message("NO_BINDING",
>> BUNDLE));
>> > +            binding = ep.getEndpointInfo().getBinding();
>> > +        } else {
>> > +            binding = ep.getService
>> ().getServiceInfo().getBinding(bindingName);
>> >          }
>> >
>> > -        Endpoint ep = message.getExchange().get(Endpoint.class);
>> > -
>> > -        BindingInfo binding = ep.getService
>> ().getServiceInfo().getBinding(bindingName);
>> >          BindingOperationInfo bop = binding.getOperation(opName);
>> >
>> >          message.getExchange().put(BindingOperationInfo.class, bop);
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/bindings/object/src/main/resources/META-INF/cxf/cxf- 
>>
>> extension-object-binding.xml
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/resources/META-INF/cxf/cxf-extension-object-binding.xml?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/bindings/object/src/main/resources/META-INF/cxf/cxf- 
>>
>> extension-object-binding.xml (original)
>> > +++
>> incubator/cxf/trunk/rt/bindings/object/src/main/resources/META-INF/cxf/cxf- 
>>
>> extension-object-binding.xml Tue Apr 10 17:17:37 2007
>> > @@ -25,7 +25,8 @@
>> >  http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans.xsd">
>> >
>> >       <bean class="org.apache.cxf.binding.object.ObjectBindingFactory"
>> > -             lazy-init="true">
>> > +             lazy-init="true" depends-on="
>> org.apache.cxf.endpoint.ServerLifeCycleManager" >
>> > +             <property name="bus" ref="cxf"/>
>> >               <property name="activationNamespaces">
>> >                       <set>
>> >                               <value>
>> http://cxf.apache.org/binding/object</value>
>> >
>> > Added:
>> incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java?view=auto&rev=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java 
>>
>> (added)
>> > +++
>> incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -0,0 +1,109 @@
>> > +/**
>> > + * 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.object;
>> > +
>> > +import java.io.IOException;
>> > +import java.util.ArrayList;
>> > +import java.util.List;
>> > +
>> > +import org.apache.cxf.BusException;
>> > +import org.apache.cxf.binding.BindingFactoryManager;
>> > +import org.apache.cxf.endpoint.Server;
>> > +import org.apache.cxf.frontend.ServerFactoryBean;
>> > +import org.apache.cxf.helpers.CastUtils;
>> > +import org.apache.cxf.message.ExchangeImpl;
>> > +import org.apache.cxf.message.Message;
>> > +import org.apache.cxf.message.MessageImpl;
>> > +import org.apache.cxf.service.model.BindingInfo;
>> > +import org.apache.cxf.service.model.BindingOperationInfo;
>> > +import org.apache.cxf.service.model.EndpointInfo;
>> > +import org.apache.cxf.service.model.ServiceInfo;
>> > +import org.apache.cxf.test.AbstractCXFTest;
>> > +import org.apache.cxf.transport.Conduit;
>> > +import org.apache.cxf.transport.ConduitInitiator;
>> > +import org.apache.cxf.transport.ConduitInitiatorManager;
>> > +import org.apache.cxf.transport.MessageObserver;
>> > +import org.apache.cxf.transport.local.LocalConduit;
>> > +import org.apache.cxf.transport.local.LocalTransportFactory;
>> > +import org.junit.Test;
>> > +
>> > +public class LocalServerRegistrationTest extends AbstractCXFTest {
>> > +    private Message response;
>> > +
>> > +    @Test
>> > +    public void testServer() throws Exception {
>> > +        // Enable the auto registration of a default local endpoint
>> when we use other transports
>> > +        BindingFactoryManager bfm = getBus().getExtension(
>> BindingFactoryManager.class);
>> > +        ObjectBindingFactory obj = (ObjectBindingFactory)
>> > +            bfm.getBindingFactory(ObjectBindingFactory.BINDING_ID);
>> > +        obj.setAutoRegisterLocalEndpoint(true);
>> > +
>> > +        // Create an HTTP endpoint
>> > +        ServerFactoryBean sfb = new ServerFactoryBean();
>> > +        sfb.setServiceClass(EchoImpl.class);
>> > +        sfb.setAddress("http://localhost:9001/echo");
>> > +        Server server = sfb.create();
>> > +
>> > +        List<Object> content = new ArrayList<Object>();
>> > +        content.add("Hello");
>> > +
>> > +        ServiceInfo serviceInfo = server.getEndpoint
>> ().getService().getServiceInfo();
>> > +        BindingInfo bi = serviceInfo.getBindings().iterator().next();
>> > +        BindingOperationInfo bop = bi.getOperations
>> ().iterator().next();
>> > +
>> > +        assertNotNull(bop.getOperationInfo());
>> > +
>> > +        MessageImpl m = new MessageImpl();
>> > +        m.setContent(List.class, content);
>> > +        m.put(LocalConduit.DIRECT_DISPATCH, Boolean.TRUE);
>> > +        m.put(ObjectBinding.BINDING, bop.getBinding().getName());
>> > +        m.put(ObjectBinding.OPERATION, bop.getName());
>> > +
>> > +        ExchangeImpl ex = new ExchangeImpl();
>> > +        ex.setInMessage(m);
>> > +
>> > +        Conduit c = getLocalConduit("local://" + server);
>> > +        m.setConduit(c);
>> > +
>> > +        c.setMessageObserver(new MessageObserver() {
>> > +            public void onMessage(Message message) {
>> > +                response = message;
>> > +            }
>> > +        });
>> > +        c.prepare(m);
>> > +        c.close(m);
>> > +
>> > +        Thread.sleep(1000);
>> > +        assertNotNull(response);
>> > +
>> > +        List<?> content2 = 
>> CastUtils.cast((List<?>)response.getContent(
>> List.class));
>> > +        assertNotNull(content2);
>> > +        assertEquals(1, content2.size());
>> > +
>> > +    }
>> > +
>> > +    private Conduit getLocalConduit(String string) throws 
>> BusException,
>> IOException {
>> > +        ConduitInitiatorManager cim = getBus().getExtension(
>> ConduitInitiatorManager.class);
>> > +
>> > +        ConduitInitiator ci = cim.getConduitInitiator(
>> LocalTransportFactory.TRANSPORT_ID);
>> > +        EndpointInfo ei = new EndpointInfo();
>> > +        ei.setAddress(string);
>> > +        return ci.getConduit(ei);
>> > +    }
>> > +}
>> >
>> > Propchange:
>> incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java 
>>
>> >
>> ------------------------------------------------------------------------------ 
>>
>> >     svn:eol-style = native
>> >
>> > Propchange:
>> incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java 
>>
>> >
>> ------------------------------------------------------------------------------ 
>>
>> >     svn:executable = *
>> >
>> > Propchange:
>> incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/LocalServerRegistrationTest.java 
>>
>> >
>> ------------------------------------------------------------------------------ 
>>
>> >     svn:keywords = Rev Date
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -25,6 +25,7 @@
>> >  import java.util.logging.Logger;
>> >
>> >  import org.apache.cxf.Bus;
>> > +import org.apache.cxf.binding.Binding;
>> >  import org.apache.cxf.endpoint.Endpoint;
>> >  import org.apache.cxf.message.Exchange;
>> >  import org.apache.cxf.message.Message;
>> > @@ -87,6 +88,7 @@
>> >
>> >      public static InterceptorChain getOutInterceptorChain(Exchange 
>> ex)
>> {
>> >          Bus bus = ex.get(Bus.class);
>> > +        Binding binding = ex.get(Binding.class);
>> >          PhaseManager pm = bus.getExtension(PhaseManager.class);
>> >          PhaseInterceptorChain chain = new PhaseInterceptorChain(
>> pm.getOutPhases());
>> >
>> > @@ -106,8 +108,8 @@
>> >              LOG.fine("Interceptors contributed by bus: " + il);
>> >          }
>> >          chain.add(il);
>> > -        if (ep.getBinding() != null) {
>> > -            il = ep.getBinding().getOutInterceptors();
>> > +        if (binding != null) {
>> > +            il = binding.getOutInterceptors();
>> >              if (LOG.isLoggable(Level.FINE)) {
>> >                  LOG.fine("Interceptors contributed by binding: " + 
>> il);
>> >              }
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainSetupInterceptor.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainSetupInterceptor.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainSetupInterceptor.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainSetupInterceptor.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -24,6 +24,7 @@
>> >  import java.util.logging.Logger;
>> >
>> >  import org.apache.cxf.Bus;
>> > +import org.apache.cxf.binding.Binding;
>> >  import org.apache.cxf.endpoint.Endpoint;
>> >  import org.apache.cxf.message.Exchange;
>> >  import org.apache.cxf.message.Message;
>> > @@ -50,11 +51,11 @@
>> >              return;
>> >          }
>> >
>> > -        Endpoint ep = ex.get(Endpoint.class);
>> > +        Binding binding = ex.get(Binding.class);
>> >
>> >          Message outMessage = message.getExchange().getOutMessage();
>> >          if (outMessage == null) {
>> > -            outMessage = ep.getBinding().createMessage();
>> > +            outMessage = binding.createMessage();
>> >              ex.setOutMessage(outMessage);
>> >          }
>> >
>> > @@ -62,7 +63,7 @@
>> >
>> >          Message faultMessage = message.getExchange
>> ().getOutFaultMessage();
>> >          if (faultMessage == null) {
>> > -            faultMessage = ep.getBinding().createMessage();
>> > +            faultMessage = binding.createMessage();
>> >              ex.setOutFaultMessage(faultMessage);
>> >          }
>> >          outMessage.setInterceptorChain(getOutInterceptorChain(ex));
>> > @@ -70,6 +71,7 @@
>> >
>> >      public static InterceptorChain getOutInterceptorChain(Exchange 
>> ex)
>> {
>> >          Bus bus = ex.get(Bus.class);
>> > +        Binding binding = ex.get(Binding.class);
>> >          PhaseManager pm = bus.getExtension(PhaseManager.class);
>> >          PhaseInterceptorChain chain = new PhaseInterceptorChain(
>> pm.getOutPhases());
>> >
>> > @@ -89,8 +91,8 @@
>> >              LOG.fine("Interceptors contributed by bus: " + il);
>> >          }
>> >          chain.add(il);
>> > -        if (ep.getBinding() != null) {
>> > -            il = ep.getBinding().getOutInterceptors();
>> > +        if (binding != null) {
>> > +            il = binding.getOutInterceptors();
>> >              if (LOG.isLoggable(Level.FINE)) {
>> >                  LOG.fine("Interceptors contributed by binding: " + 
>> il);
>> >              }
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/ChainInitiationObserver.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/ChainInitiationObserver.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/ChainInitiationObserver.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/ChainInitiationObserver.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -40,7 +40,7 @@
>> >      }
>> >
>> >      public void onMessage(Message m) {
>> > -        Message message = endpoint.getBinding().createMessage(m);
>> > +        Message message = getBinding().createMessage(m);
>> >          Exchange exchange = message.getExchange();
>> >          if (exchange == null) {
>> >              exchange = new ExchangeImpl();
>> > @@ -49,25 +49,34 @@
>> >          setExchangeProperties(exchange, message);
>> >
>> >          // setup chain
>> > -        PhaseInterceptorChain chain = new PhaseInterceptorChain(
>> bus.getExtension(PhaseManager.class)
>> > -            .getInPhases());
>> > +        PhaseInterceptorChain chain = createChain();
>> >
>> >          message.setInterceptorChain(chain);
>> >
>> >          chain.add(bus.getInInterceptors());
>> >          chain.add(endpoint.getInInterceptors());
>> > -        chain.add(endpoint.getBinding().getInInterceptors());
>> > +        chain.add(getBinding().getInInterceptors());
>> >          chain.add(endpoint.getService().getInInterceptors());
>> >
>> >          chain.setFaultObserver(endpoint.getOutFaultObserver());
>> >
>> >          chain.doIntercept(message);
>> >      }
>> > +
>> > +    protected PhaseInterceptorChain createChain() {
>> > +        PhaseInterceptorChain chain = new PhaseInterceptorChain(
>> bus.getExtension(PhaseManager.class)
>> > +            .getInPhases());
>> > +        return chain;
>> > +    }
>> > +
>> > +    protected Binding getBinding() {
>> > +        return endpoint.getBinding();
>> > +    }
>> >
>> >      protected void setExchangeProperties(Exchange exchange, 
>> Message m)
>> {
>> >          exchange.put(Endpoint.class, endpoint);
>> >          exchange.put(Service.class, endpoint.getService());
>> > -        exchange.put(Binding.class, endpoint.getBinding());
>> > +        exchange.put(Binding.class, getBinding());
>> >          exchange.put(Bus.class, bus);
>> >          if (exchange.getDestination() == null) {
>> >              exchange.setDestination(m.getDestination());
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/OutgoingChainInterceptorTest.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/OutgoingChainInterceptorTest.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/OutgoingChainInterceptorTest.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/interceptor/OutgoingChainInterceptorTest.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -106,6 +106,7 @@
>> >          m.setExchange(exchange);
>> >          exchange.put(Bus.class, bus);
>> >          exchange.put(Endpoint.class, endpoint);
>> > +        exchange.put(Binding.class, binding);
>> >          exchange.put(BindingOperationInfo.class, bopInfo);
>> >          exchange.setOutMessage(m);
>> >          setupIntc.handleMessage(m);
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -23,10 +23,13 @@
>> >  import java.io.InputStream;
>> >  import java.io.OutputStream;
>> >  import java.io.PipedInputStream;
>> > +import java.util.Map;
>> > +import java.util.Set;
>> >  import java.util.logging.Logger;
>> >
>> >  import org.apache.cxf.attachment.CachedOutputStream;
>> >  import org.apache.cxf.common.logging.LogUtils;
>> > +import org.apache.cxf.helpers.CastUtils;
>> >  import org.apache.cxf.io.AbstractCachedOutputStream;
>> >  import org.apache.cxf.message.Exchange;
>> >  import org.apache.cxf.message.ExchangeImpl;
>> > @@ -40,14 +43,17 @@
>> >      public static final String RESPONSE_CONDUIT =
>> LocalConduit.class.getName() + ".inConduit";
>> >      public static final String IN_EXCHANGE = 
>> LocalConduit.class.getName()
>> + ".inExchange";
>> >      public static final String DIRECT_DISPATCH =
>> LocalConduit.class.getName() + ".directDispatch";
>> > +    public static final String MESSAGE_FILTER_PROPERTIES =
>> LocalConduit.class.getName() + ".filterProperties";
>> >
>> >      private static final Logger LOG = LogUtils.getL7dLogger(
>> LocalConduit.class);
>> >
>> >      private LocalDestination destination;
>> > +    private LocalTransportFactory transportFactory;
>> >
>> > -    public LocalConduit(LocalDestination destination) {
>> > +    public LocalConduit(LocalTransportFactory transportFactory,
>> LocalDestination destination) {
>> >          super(destination.getAddress());
>> >          this.destination = destination;
>> > +        this.transportFactory = transportFactory;
>> >      }
>> >
>> >      public void prepare(final Message message) throws IOException {
>> > @@ -75,10 +81,7 @@
>> >          copy.put(IN_CONDUIT, this);
>> >          copy.setDestination(destination);
>> >
>> > -        // copy all the contents
>> > -        copy.putAll(message);
>> > -        MessageImpl.copyContent(message, copy);
>> > -        copy.remove(Message.REQUESTOR_ROLE);
>> > +        copy(message, copy, 
>> transportFactory.getMessageFilterProperties
>> ());
>> >
>> >          // Create a new incoming exchange and store the original
>> exchange for the response
>> >          ExchangeImpl ex = new ExchangeImpl();
>> > @@ -87,6 +90,22 @@
>> >          ex.setDestination(destination);
>> >
>> >          destination.getMessageObserver().onMessage(copy);
>> > +    }
>> > +
>> > +    public static void copy(Message message, MessageImpl copy,
>> Set<String> defaultFilter) {
>> > +        Set<String> filter = CastUtils.cast
>> ((Set)message.get(MESSAGE_FILTER_PROPERTIES));
>> > +        if (filter == null) {
>> > +            filter = defaultFilter;
>> > +        }
>> > +
>> > +        // copy all the contents
>> > +        for (Map.Entry<String, Object> e : message.entrySet()) {
>> > +            if (!filter.contains(e.getKey())) {
>> > +                copy.put(e.getKey(), e.getValue());
>> > +            }
>> > +        }
>> > +
>> > +        MessageImpl.copyContent(message, copy);
>> >      }
>> >
>> >      private void dispatchViaPipe(final Message message) throws
>> IOException {
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -74,9 +74,32 @@
>> >          }
>> >
>> >          public void prepare(final Message message) throws 
>> IOException {
>> > -            final Exchange exchange =
>> (Exchange)message.getExchange().get(LocalConduit.IN_EXCHANGE);
>> > -
>> > +            if (!Boolean.TRUE.equals(message.get(
>> LocalConduit.DIRECT_DISPATCH))) {
>> > +                final Exchange exchange =
>> (Exchange)message.getExchange().get(LocalConduit.IN_EXCHANGE);
>> > +
>> > +                final PipedInputStream stream = new 
>> PipedInputStream();
>> > +                final Runnable receiver = new Runnable() {
>> > +                    public void run() {
>> > +                        MessageImpl m = new MessageImpl();
>> > +                        if (exchange != null) {
>> > +                            exchange.setInMessage(m);
>> > +                        }
>> > +                        m.setContent(InputStream.class, stream);
>> > +                        conduit.getMessageObserver().onMessage(m);
>> > +                    }
>> > +                };
>> > +
>> > +                PipedOutputStream outStream = new
>> PipedOutputStream(stream);
>> > +                message.setContent(OutputStream.class, outStream);
>> > +
>> > +                new Thread(receiver).start();
>> > +            }
>> > +        }
>> > +
>> > +        @Override
>> > +        public void close(Message message) throws IOException {
>> >              if (Boolean.TRUE.equals(message.get(
>> LocalConduit.DIRECT_DISPATCH))) {
>> > +                final Exchange exchange =
>> (Exchange)message.getExchange().get(LocalConduit.IN_EXCHANGE);
>> >                  MessageImpl copy = new MessageImpl();
>> >                  copy.putAll(message);
>> >                  MessageImpl.copyContent(message, copy);
>> > @@ -88,23 +111,8 @@
>> >                  conduit.getMessageObserver().onMessage(copy);
>> >                  return;
>> >              }
>> > -
>> > -            final PipedInputStream stream = new PipedInputStream();
>> > -            final Runnable receiver = new Runnable() {
>> > -                public void run() {
>> > -                    MessageImpl m = new MessageImpl();
>> > -                    if (exchange != null) {
>> > -                        exchange.setInMessage(m);
>> > -                    }
>> > -                    m.setContent(InputStream.class, stream);
>> > -                    conduit.getMessageObserver().onMessage(m);
>> > -                }
>> > -            };
>> > -
>> > -            PipedOutputStream outStream = new
>> PipedOutputStream(stream);
>> > -            message.setContent(OutputStream.class, outStream);
>> > -
>> > -            new Thread(receiver).start();
>> > +
>> > +            super.close(message);
>> >          }
>> >
>> >          protected Logger getLogger() {
>> >
>> > Modified:
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalTransportFactory.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalTransportFactory.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalTransportFactory.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalTransportFactory.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -31,6 +31,7 @@
>> >  import javax.annotation.Resource;
>> >
>> >  import org.apache.cxf.Bus;
>> > +import org.apache.cxf.message.Message;
>> >  import org.apache.cxf.service.model.EndpointInfo;
>> >  import org.apache.cxf.transport.AbstractTransportFactory;
>> >  import org.apache.cxf.transport.Conduit;
>> > @@ -54,12 +55,17 @@
>> >
>> >      private Map<String, Destination> destinations = new 
>> HashMap<String,
>> Destination>();
>> >      private Bus bus;
>> > -
>> > +
>> > +    private Set<String> messageFilterProperties;
>> > +
>> >      public LocalTransportFactory() {
>> >          super();
>> >          List<String> ids = new ArrayList<String>();
>> >          ids.add(TRANSPORT_ID);
>> >          setTransportIds(ids);
>> > +
>> > +        messageFilterProperties = new HashSet<String>();
>> > +        messageFilterProperties.add(Message.REQUESTOR_ROLE);
>> >      }
>> >
>> >      @Resource(name = "bus")
>> > @@ -96,11 +102,11 @@
>> >      }
>> >
>> >      public Conduit getConduit(EndpointInfo ei) throws IOException {
>> > -        return new 
>> LocalConduit((LocalDestination)getDestination(ei));
>> > +        return new LocalConduit(this,
>> (LocalDestination)getDestination(ei));
>> >      }
>> >
>> >      public Conduit getConduit(EndpointInfo ei, EndpointReferenceType
>> target) throws IOException {
>> > -        return new LocalConduit((LocalDestination)getDestination(ei,
>> target));
>> > +        return new LocalConduit(this,
>> (LocalDestination)getDestination(ei, target));
>> >      }
>> >
>> >      EndpointReferenceType createReference(EndpointInfo ei) {
>> > @@ -113,6 +119,14 @@
>> >
>> >      public Set<String> getUriPrefixes() {
>> >          return URI_PREFIXES;
>> > +    }
>> > +
>> > +    public Set<String> getMessageFilterProperties() {
>> > +        return messageFilterProperties;
>> > +    }
>> > +
>> > +    public void setMessageFilterProperties(Set<String>
>> messageFilterProperties) {
>> > +        this.messageFilterProperties = messageFilterProperties;
>> >      }
>> >
>> >  }
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/PluginLoader.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/PluginLoader.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/PluginLoader.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/core/PluginLoader.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -27,14 +27,15 @@
>> >  import java.io.InputStream;
>> >  import java.net.URL;
>> >  import java.util.ArrayList;
>> > +import java.util.Collection;
>> >  import java.util.Enumeration;
>> >  import java.util.LinkedHashMap;
>> >  import java.util.List;
>> >  import java.util.Map;
>> >  import java.util.logging.Level;
>> >  import java.util.logging.Logger;
>> > +
>> >  import javax.xml.bind.JAXBContext;
>> > -import javax.xml.bind.JAXBElement;
>> >  import javax.xml.bind.JAXBException;
>> >  import javax.xml.bind.Unmarshaller;
>> >
>> > @@ -48,6 +49,7 @@
>> >  import org.apache.cxf.tools.plugin.FrontEnd;
>> >  import org.apache.cxf.tools.plugin.Generator;
>> >  import org.apache.cxf.tools.plugin.Plugin;
>> > +import org.apache.cxf.tools.plugin.Plugins;
>> >
>> >  public final class PluginLoader {
>> >      public static final Logger LOG = LogUtils.getL7dLogger(
>> PluginLoader.class);
>> > @@ -55,7 +57,7 @@
>> >      private static PluginLoader pluginLoader;
>> >      private static final String PLUGIN_FILE_NAME = "META-INF/tools-
>> plugin.xml";
>> >
>> > -    private Map<String, Plugin> plugins = new LinkedHashMap<String,
>> Plugin>();
>> > +    private Map<String, Collection<Plugin>> plugins = new
>> LinkedHashMap<String, Collection<Plugin>>();
>> >
>> >      private Map<String, FrontEnd> frontends = new 
>> LinkedHashMap<String,
>> FrontEnd>();
>> >      private Map<String, FrontEndProfile> frontendProfiles = new
>> LinkedHashMap<String, FrontEndProfile>();
>> > @@ -103,7 +105,7 @@
>> >      public void loadPlugin(URL url) throws IOException {
>> >          try {
>> >              LOG.log(Level.INFO, "PLUGIN_LOADING", url);
>> > -            loadPlugin(getPlugin(url));
>> > +            loadPlugins(getPlugins(url));
>> >          } catch (JAXBException e) {
>> >              Message msg = new Message("PLUGIN_LOAD_FAIL", LOG, url);
>> >              LOG.log(Level.SEVERE, msg.toString());
>> > @@ -114,7 +116,7 @@
>> >      public void loadPlugin(String resource) {
>> >          try {
>> >              LOG.log(Level.INFO, "PLUGIN_LOADING", resource);
>> > -            loadPlugin(getPlugin(resource));
>> > +            loadPlugins(getPlugins(resource));
>> >          } catch (JAXBException e) {
>> >              Message msg = new Message("PLUGIN_LOAD_FAIL", LOG,
>> resource);
>> >              LOG.log(Level.SEVERE, msg.toString());
>> > @@ -127,6 +129,12 @@
>> >
>> >      }
>> >
>> > +    protected void loadPlugins(Collection<Plugin> ps) {
>> > +        for (Plugin p : ps) {
>> > +            loadPlugin(p);
>> > +        }
>> > +    }
>> > +
>> >      protected void loadPlugin(Plugin plugin) {
>> >          if (plugin.getFrontend().size() > 0) {
>> >              LOG.log(Level.INFO, "FOUND_FRONTENDS", new Object[]{
>> plugin.getName(),
>> > @@ -170,28 +178,29 @@
>> >          }
>> >      }
>> >
>> > -    protected Plugin getPlugin(URL url) throws IOException,
>> JAXBException, FileNotFoundException {
>> > -        Plugin plugin = plugins.get(url.getFile());
>> > +    protected Collection<Plugin> getPlugins(URL url)
>> > +        throws IOException, JAXBException, FileNotFoundException {
>> > +        Collection<Plugin> p = plugins.get(url.getFile());
>> >          InputStream is = null;
>> > -        if (plugin == null) {
>> > +        if (p == null) {
>> >              is = url.openStream();
>> > -            plugin = getPlugin(is);
>> > -            if (plugin == null || 
>> StringUtils.isEmpty(plugin.getName()))
>> {
>> > +            p = getPlugins(is);
>> > +            if (p == null) {
>> >                  Message msg = new Message("PLUGIN_LOAD_FAIL", LOG,
>> url);
>> >                  LOG.log(Level.SEVERE, msg.toString());
>> >                  throw new ToolException(msg);
>> >              }
>> > -            plugins.put(url.getFile(), plugin);
>> > +            plugins.put(url.getFile(), p);
>> >          }
>> >          if (is == null) {
>> > -            return getPlugin(url.getFile());
>> > +            return getPlugins(url.getFile());
>> >          }
>> > -        return plugin;
>> > +        return p;
>> >      }
>> >
>> > -    protected Plugin getPlugin(String resource) throws JAXBException,
>> FileNotFoundException {
>> > -        Plugin plugin = plugins.get(resource);
>> > -        if (plugin == null) {
>> > +    protected Collection<Plugin> getPlugins(String resource) throws
>> JAXBException, FileNotFoundException {
>> > +        Collection<Plugin> p = plugins.get(resource);
>> > +        if (p == null) {
>> >              InputStream is = null;
>> >              if (new File(resource).exists()) {
>> >                  is = new BufferedInputStream(new FileInputStream(new
>> File(resource)));
>> > @@ -204,19 +213,23 @@
>> >                  LOG.log(Level.SEVERE, msg.toString());
>> >                  throw new ToolException(msg);
>> >              }
>> > -            plugin = getPlugin(is);
>> > -            if (plugin == null || 
>> StringUtils.isEmpty(plugin.getName()))
>> {
>> > +            p = getPlugins(is);
>> > +            if (p == null) {
>> >                  Message msg = new Message("PLUGIN_LOAD_FAIL", LOG,
>> resource);
>> >                  LOG.log(Level.SEVERE, msg.toString());
>> >                  throw new ToolException(msg);
>> >              }
>> > -            plugins.put(resource, plugin);
>> > +            plugins.put(resource, p);
>> >          }
>> > -        return plugin;
>> > +        return p;
>> >      }
>> >
>> > -    private Plugin getPlugin(InputStream is) throws JAXBException {
>> > -        return (Plugin)
>> ((JAXBElement<?>)unmarshaller.unmarshal(is)).getValue();
>> > +    private Collection<Plugin> getPlugins(InputStream is) throws
>> JAXBException {
>> > +        Plugins ps = (Plugins) unmarshaller.unmarshal(is);
>> > +        if (ps != null) {
>> > +            return ps.getPlugin();
>> > +        }
>> > +        return null;
>> >      }
>> >
>> >      public FrontEnd getFrontEnd(String name) {
>> > @@ -417,7 +430,7 @@
>> >          return this.databindings;
>> >      }
>> >
>> > -    public Map<String, Plugin> getPlugins() {
>> > +    public Map<String, Collection<Plugin>> getPlugins() {
>> >          return this.plugins;
>> >      }
>> >  }
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/resources/schemas/plugin.xsd 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/core/src/main/resources/schemas/plugin.xsd?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/resources/schemas/plugin.xsd 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/core/src/main/resources/schemas/plugin.xsd 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -1,63 +1,74 @@
>> >  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> >
>> > -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> > -        xmlns="http://cxf.apache.org/tools/plugin"
>> > -        targetNamespace="http://cxf.apache.org/tools/plugin"
>> > -        elementFormDefault="qualified">
>> > -
>> > -    <xs:complexType name="DataBinding">
>> > -     <xs:attribute name="name" type="xs:string" use="required"/>
>> > -     <xs:attribute name="package" type="xs:string" use="required"/>
>> > -     <xs:attribute name="profile" type="xs:string" use="required"/>
>> > -    </xs:complexType>
>> > -
>> > -    <xs:complexType name="FrontEnd">
>> > -     <xs:sequence>
>> > -         <xs:element name="generators" type="Generators"/>
>> > -         <xs:element name="processor" type="Processor" maxOccurs="1"
>> minOccurs="1"/>
>> > -         <xs:element name="container" type="Container" maxOccurs="1"
>> minOccurs="1"/>
>> > -         <xs:element name="builder" type="Builder" maxOccurs="1"/>
>> > -     </xs:sequence>
>> > -     <xs:attribute name="name" type="xs:string" use="required"/>
>> > -     <xs:attribute name="package" type="xs:string" use="required"/>
>> > -     <xs:attribute name="profile" type="xs:string" use="required"/>
>> > -    </xs:complexType>
>> > -
>> > -    <xs:element name="generator" type="Generator"/>
>> > -    <xs:complexType name="Generator">
>> > -     <xs:attribute name="name" type="xs:string" use="required"/>
>> > -     <xs:attribute name="package" type="xs:string"/>
>> > -    </xs:complexType>
>> > -    <xs:complexType name="Processor">
>> > -     <xs:attribute name="name" type="xs:string" use="required"/>
>> > -     <xs:attribute name="package" type="xs:string"/>
>> > -    </xs:complexType>
>> > -    <xs:complexType name="Builder">
>> > -     <xs:attribute name="name" type="xs:string" use="required"/>
>> > -     <xs:attribute name="package" type="xs:string"/>
>> > -    </xs:complexType>
>> > -    <xs:complexType name="Container">
>> > -     <xs:attribute name="name" type="xs:string" use="required"/>
>> > -     <xs:attribute name="package" type="xs:string"/>
>> > -     <xs:attribute name="toolspec" type="xs:string" use="required"/>
>> > -    </xs:complexType>
>> > -
>> > -    <xs:complexType name="Generators">
>> > -     <xs:sequence>
>> > -         <xs:element ref="generator" maxOccurs="unbounded"/>
>> > -     </xs:sequence>
>> > -     <xs:attribute name="package" type="xs:string"/>
>> > -    </xs:complexType>
>> > -
>> > -    <xs:element name="plugin" type="Plugin"/>
>> > -    <xs:complexType name="Plugin">
>> > -     <xs:sequence>
>> > -         <xs:element name="frontend" type="FrontEnd"
>> maxOccurs="unbounded"/>
>> > -         <xs:element name="databinding" type="DataBinding"
>> maxOccurs="unbounded"/>
>> > -     </xs:sequence>
>> > -     <xs:attribute name="name" type="xs:string" use="required"/>
>> > -     <xs:attribute name="version" type="xs:string" use="required"/>
>> > -     <xs:attribute name="provider" type="xs:string" use="required"/>
>> > -    </xs:complexType>
>> > +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> > +     xmlns="http://cxf.apache.org/tools/plugin"
>> > +     targetNamespace="http://cxf.apache.org/tools/plugin"
>> > +     elementFormDefault="qualified">
>> >
>> > +     <xs:complexType name="DataBinding">
>> > +             <xs:attribute name="name" type="xs:string" 
>> use="required"
>> />
>> > +             <xs:attribute name="package" type="xs:string"
>> use="required" />
>> > +             <xs:attribute name="profile" type="xs:string"
>> use="required" />
>> > +     </xs:complexType>
>> > +
>> > +     <xs:complexType name="FrontEnd">
>> > +             <xs:sequence>
>> > +                     <xs:element name="generators" 
>> type="Generators" />
>> > +                     <xs:element name="processor" type="Processor"
>> maxOccurs="1"
>> > +                             minOccurs="1" />
>> > +                     <xs:element name="container" type="Container"
>> maxOccurs="1"
>> > +                             minOccurs="1" />
>> > +                     <xs:element name="builder" type="Builder"
>> maxOccurs="1" />
>> > +             </xs:sequence>
>> > +             <xs:attribute name="name" type="xs:string" 
>> use="required"
>> />
>> > +             <xs:attribute name="package" type="xs:string"
>> use="required" />
>> > +             <xs:attribute name="profile" type="xs:string"
>> use="required" />
>> > +     </xs:complexType>
>> > +
>> > +     <xs:element name="generator" type="Generator" />
>> > +     <xs:complexType name="Generator">
>> > +             <xs:attribute name="name" type="xs:string" 
>> use="required"
>> />
>> > +             <xs:attribute name="package" type="xs:string" />
>> > +     </xs:complexType>
>> > +     <xs:complexType name="Processor">
>> > +             <xs:attribute name="name" type="xs:string" 
>> use="required"
>> />
>> > +             <xs:attribute name="package" type="xs:string" />
>> > +     </xs:complexType>
>> > +     <xs:complexType name="Builder">
>> > +             <xs:attribute name="name" type="xs:string" 
>> use="required"
>> />
>> > +             <xs:attribute name="package" type="xs:string" />
>> > +     </xs:complexType>
>> > +     <xs:complexType name="Container">
>> > +             <xs:attribute name="name" type="xs:string" 
>> use="required"
>> />
>> > +             <xs:attribute name="package" type="xs:string" />
>> > +             <xs:attribute name="toolspec" type="xs:string"
>> use="required" />
>> > +     </xs:complexType>
>> > +
>> > +     <xs:complexType name="Generators">
>> > +             <xs:sequence>
>> > +                     <xs:element ref="generator" 
>> maxOccurs="unbounded"
>> />
>> > +             </xs:sequence>
>> > +             <xs:attribute name="package" type="xs:string" />
>> > +     </xs:complexType>
>> > +
>> > +     <xs:element name="plugin" type="Plugin" />
>> > +     <xs:complexType name="Plugin">
>> > +             <xs:sequence>
>> > +                     <xs:element name="frontend" type="FrontEnd"
>> > +                             maxOccurs="unbounded" />
>> > +                     <xs:element name="databinding" 
>> type="DataBinding"
>> > +                             maxOccurs="unbounded" />
>> > +             </xs:sequence>
>> > +             <xs:attribute name="name" type="xs:string" 
>> use="required"
>> />
>> > +             <xs:attribute name="version" type="xs:string"
>> use="required" />
>> > +             <xs:attribute name="provider" type="xs:string"
>> use="required" />
>> > +     </xs:complexType>
>> > +
>> > +    <xs:element name="plugins">
>> > +      <xs:complexType>
>> > +        <xs:sequence>
>> > +          <xs:element ref="plugin" maxOccurs="unbounded"
>> minOccurs="0"/>
>> > +        </xs:sequence>
>> > +      </xs:complexType>
>> > +    </xs:element>
>> >  </xs:schema>
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -180,7 +180,7 @@
>> >              return;
>> >          } catch (IOException e) {
>> >              Message msg = new Message("FAIL_TO_GENERATE_TYPES", LOG);
>> > -            throw new ToolException(msg);
>> > +            throw new ToolException(msg, e);
>> >          }
>> >      }
>> >
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/resources/META-INF/tools- 
>>
>> plugin.xml
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/resources/META-INF/tools-plugin.xml?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/resources/META-INF/tools- 
>>
>> plugin.xml (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/resources/META-INF/tools- 
>>
>> plugin.xml Tue Apr 10 17:17:37 2007
>> > @@ -17,7 +17,8 @@
>> >  specific language governing permissions and limitations
>> >  under the License.
>> >  -->
>> > -
>> > -<plugin name="jaxb" version="" provider="cxf.apache.org" xmlns="
>> http://cxf.apache.org/tools/plugin">
>> > +<plugins xmlns="http://cxf.apache.org/tools/plugin">
>> > +  <plugin name="jaxb" version="" provider="cxf.apache.org">
>> >      <databinding name="jaxb" package="
>> org.apache.cxf.tools.wsdlto.databinding.jaxb" 
>> profile="JAXBDataBinding"/>
>> > -</plugin>
>> > \ No newline at end of file
>> > +  </plugin>
>> > +</plugins>
>> > \ No newline at end of file
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/resources/META-INF/tools- 
>>
>> plugin.xml
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/resources/META-INF/tools-plugin.xml?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/resources/META-INF/tools- 
>>
>> plugin.xml (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/resources/META-INF/tools- 
>>
>> plugin.xml Tue Apr 10 17:17:37 2007
>> > @@ -17,8 +17,8 @@
>> >  specific language governing permissions and limitations
>> >  under the License.
>> >  -->
>> > -
>> > -<plugin name="jaxws" version="" provider="cxf.apache.org" xmlns="
>> http://cxf.apache.org/tools/plugin">
>> > +<plugins xmlns="http://cxf.apache.org/tools/plugin">
>> > +  <plugin name="jaxws" version="" provider="cxf.apache.org">
>> >      <frontend name="jaxws" package="
>> org.apache.cxf.tools.wsdlto.frontend.jaxws" profile="JAXWSProfile">
>> >       <container name="JAXWSContainer" toolspec="jaxws-toolspec.xml"/>
>> >       <processor name="WSDLToJavaProcessor" package="
>> org.apache.cxf.tools.wsdlto.frontend.jaxws.processor"/>
>> > @@ -33,4 +33,5 @@
>> >           <generator name="ServiceGenerator"/>
>> >       </generators>
>> >      </frontend>
>> > -</plugin>
>> > \ No newline at end of file
>> > +  </plugin>
>> > +</plugins>
>> > \ No newline at end of file
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/JAXWSProfileTest.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -19,10 +19,10 @@
>> >
>> >  package org.apache.cxf.tools.wsdlto.frontend.jaxws;
>> >
>> > +import java.util.Collection;
>> >  import java.util.Map;
>> >
>> >  import junit.framework.TestCase;
>> > -
>> >  import org.apache.cxf.tools.common.Processor;
>> >  import org.apache.cxf.tools.plugin.FrontEnd;
>> >  import org.apache.cxf.tools.plugin.Generator;
>> > @@ -92,7 +92,8 @@
>> >      }
>> >
>> >      protected Plugin getPlugin(PluginLoader loader, int index) {
>> > -        int size = loader.getPlugins().size();
>> > -        return loader.getPlugins().values().toArray(new
>> Plugin[size])[index];
>> > +        Collection plugins = (Collection) loader.getPlugins
>> ().values().toArray()[index];
>> > +
>> > +        return (Plugin) plugins.iterator().next();
>> >      }
>> >  }
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws- 
>>
>> plugin.xml
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-plugin.xml?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws- 
>>
>> plugin.xml (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws- 
>>
>> plugin.xml Tue Apr 10 17:17:37 2007
>> > @@ -1,6 +1,24 @@
>> >  <?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
>> >
>> > -<plugin name="tools-jaxws-frontend" version="2.0" provider="apache 
>> cxf"
>> xmlns="http://cxf.apache.org/tools/plugin">
>> > +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.
>> > +-->
>> > +<plugins xmlns="http://cxf.apache.org/tools/plugin">
>> > +<plugin name="tools-jaxws-frontend" version="2.0" provider="apache
>> cxf">
>> >      <frontend name="jaxws" package="
>> org.apache.cxf.tools.wsdlto.frontend.jaxws" profile="JAXWSProfile">
>> >       <container name="JAXWSContainer" toolspec="jaxws-toolspec.xml"/>
>> >       <processor name="WSDLToJavaProcessor" package="
>> org.apache.cxf.tools.wsdlto.frontend.jaxws.processor"/>
>> > @@ -11,4 +29,5 @@
>> >       </generators>
>> >      </frontend>
>> >      <databinding name="jaxb" package="
>> org.apache.cxf.tools.wsdlto.frontend.jaxws" profile="DummyDataBinding"/>
>> > -</plugin>
>> > \ No newline at end of file
>> > +</plugin>
>> > +</plugins>
>> > \ No newline at end of file
>> >
>> > Modified:
>> incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java 
>>
>> > URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java?view=diff&rev=527347&r1=527346&r2=527347 
>>
>> >
>> ============================================================================== 
>>
>> > ---
>> incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java 
>>
>> (original)
>> > +++
>> incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/core/PluginLoaderTest.java 
>>
>> Tue Apr 10 17:17:37 2007
>> > @@ -19,6 +19,7 @@
>> >
>> >  package org.apache.cxf.tools.wsdlto.core;
>> >
>> > +import java.util.Collection;
>> >  import java.util.Map;
>> >
>> >  import junit.framework.TestCase;
>> > @@ -85,7 +86,8 @@
>> >      }
>> >
>> >      protected Plugin getPlugin(PluginLoader loader, int index) {
>> > -        int size = loader.getPlugins().size();
>> > -        return loader.getPlugins().values().toArray(new
>> Plugin[size])[index];
>> > +        Collection plugins = (Collection) loader.getPlugins
>> ().values().toArray()[index];
>> > +
>> > +        return (Plugin) plugins.iterator().next();
>> >      }
>> >  }
>> >
>> >
>> >
>> >
>>
>>
>
>


Mime
View raw message