camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: svn commit: r1097936 - in /camel/trunk/components/camel-cxf: ./ src/main/java/org/apache/camel/component/cxf/ src/main/java/org/apache/camel/component/cxf/blueprint/ src/main/resources/OSGI-INF/ src/main/resources/OSGI-INF/blueprint/ src/main/res
Date Sat, 30 Apr 2011 07:21:43 GMT
I get compilation failures on trunk now.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2:43.696s
[INFO] Finished at: Sat Apr 30 08:59:18 CEST 2011
[INFO] Final Memory: 106M/272M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile
(default-compile) on project camel-cxf: Compilation failure:
Compilation failure:
[ERROR] /Users/davsclaus/workspace/camel/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java:[29,35]
package org.apache.cxf.bus.blueprint does not exist
[ERROR] /Users/davsclaus/workspace/camel/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java:[27,45]
package org.apache.cxf.configuration.blueprint does not exist
[ERROR] /Users/davsclaus/workspace/camel/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java:[30,46]
cannot find symbol
[ERROR] symbol: class AbstractBPBeanDefinitionParser
[ERROR] public class RsClientDefinitionParser extends
AbstractBPBeanDefinitionParser {
[ERROR] /Users/davsclaus/workspace/camel/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java:[38,45]
package org.apache.cxf.configuration.blueprint does not exist
[ERROR] /Users/davsclaus/workspace/camel/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java:[45,46]
cannot find symbol
...

I just did a mvn clean install -Dtest=false from the project root.



On Fri, Apr 29, 2011 at 10:12 PM,  <joed@apache.org> wrote:
> Author: joed
> Date: Fri Apr 29 20:12:54 2011
> New Revision: 1097936
>
> URL: http://svn.apache.org/viewvc?rev=1097936&view=rev
> Log:
> Camel CXF, blueprint support for endpoint.
>
> CAMEL-3452
>
> Added:
>    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBlueprintEndpoint.java
>    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/
>    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java
>    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java
>    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java
>    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java
>    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java
>    camel/trunk/components/camel-cxf/src/main/resources/OSGI-INF/
>    camel/trunk/components/camel-cxf/src/main/resources/OSGI-INF/blueprint/
>    camel/trunk/components/camel-cxf/src/main/resources/OSGI-INF/blueprint/camel-cxf.xml
>    camel/trunk/components/camel-cxf/src/main/resources/schema/blueprint/
>    camel/trunk/components/camel-cxf/src/main/resources/schema/blueprint/camel-cxf.xsd
> Modified:
>    camel/trunk/components/camel-cxf/pom.xml
>
> Modified: camel/trunk/components/camel-cxf/pom.xml
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/pom.xml?rev=1097936&r1=1097935&r2=1097936&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-cxf/pom.xml (original)
> +++ camel/trunk/components/camel-cxf/pom.xml Fri Apr 29 20:12:54 2011
> @@ -15,7 +15,8 @@
>   See the License for the specific language governing permissions and
>   limitations under the License.
>  -->
> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> +         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
>
>   <modelVersion>4.0.0</modelVersion>
>
> @@ -32,9 +33,9 @@
>   <description>Camel CXF support</description>
>
>   <properties>
> -     <camel.osgi.import>
> +    <camel.osgi.import>
>       !org.apache.camel.component.cxf.*,
> -      !META-INF.cxf.camel,
> +      !META-INF.cxf.camel,
>       javax.activation*;version="[0.0,2)",
>       javax.annotation*;version="[0.0,2)",
>       javax.jws*;version="[0.0,3)",
> @@ -44,16 +45,26 @@
>       org.apache.camel.*;${camel.osgi.import.camel.version},
>       ${camel.osgi.import.defaults},
>       ${camel.osgi.import.additional},
> +      org.osgi.service.blueprint;resolution:=optional,
> +      org.osgi.service.blueprint.container;resolution:=optional,
> +      org.osgi.service.blueprint.reflect;resolution:=optional,
> +      org.apache.aries.blueprint;resolution:=optional,
> +      org.apache.aries.blueprint.reflect ;resolution:=optional,
> +      org.apache.aries.blueprint.mutable;resolution:=optional,
> +      org.apache.camel.blueprint;resolution:=optional,
> +      org.osgi.framework;resolution:=optional,
>       *
> -     </camel.osgi.import>
> -     <camel.osgi.export>
> -       org.apache.camel.component.cxf.*;${camel.osgi.version};-split-package:=merge-first,
> -        '=META-INF.cxf.camel'
> -     </camel.osgi.export>
> -     <camel.osgi.failok>true</camel.osgi.failok>
> +    </camel.osgi.import>
> +
> +    <camel.osgi.export>
> +      org.apache.camel.component.cxf.*;${camel.osgi.version};-split-package:=merge-first,
> +      '=META-INF.cxf.camel'
> +    </camel.osgi.export>
> +    <camel.osgi.failok>true</camel.osgi.failok>
> +
>   </properties>
>
> -  <dependencies>
> +  <dependencies>
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-core</artifactId>
> @@ -61,33 +72,53 @@
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-spring</artifactId>
> -    </dependency>
> -
> +    </dependency>
> +
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-frontend-jaxrs</artifactId>
>       <version>${cxf-version}</version>
>     </dependency>
> -
> +
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-frontend-jaxws</artifactId>
>       <version>${cxf-version}</version>
>     </dependency>
> -
> +
>     <dependency>
> -       <groupId>org.springframework</groupId>
> -       <artifactId>spring-core</artifactId>
> +      <groupId>org.springframework</groupId>
> +      <artifactId>spring-core</artifactId>
>     </dependency>
>
>     <dependency>
> -       <groupId>org.springframework</groupId>
> -       <artifactId>spring-beans</artifactId>
> +      <groupId>org.springframework</groupId>
> +      <artifactId>spring-beans</artifactId>
>     </dependency>
>
>     <dependency>
> -       <groupId>org.springframework</groupId>
> -       <artifactId>spring-context</artifactId>
> +      <groupId>org.springframework</groupId>
> +      <artifactId>spring-context</artifactId>
> +    </dependency>
> +
> +    <!-- OSGi, BLueprint -->
> +    <dependency>
> +      <groupId>org.apache.camel</groupId>
> +      <artifactId>camel-blueprint</artifactId>
> +    </dependency>
> +    <dependency>
> +      <groupId>org.osgi</groupId>
> +      <artifactId>org.osgi.core</artifactId>
> +      <scope>provided</scope>
> +    </dependency>
> +    <dependency>
> +      <groupId>org.osgi</groupId>
> +      <artifactId>org.osgi.compendium</artifactId>
> +      <scope>provided</scope>
> +    </dependency>
> +    <dependency>
> +      <groupId>org.apache.aries.blueprint</groupId>
> +      <artifactId>org.apache.aries.blueprint</artifactId>
>     </dependency>
>
>     <!--  Test Dependencies -->
> @@ -96,33 +127,33 @@
>       <artifactId>camel-core-xml</artifactId>
>       <scope>test</scope>
>     </dependency>
> -
> +
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-test</artifactId>
>       <scope>test</scope>
>     </dependency>
> -
> +
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-http</artifactId>
>       <scope>test</scope>
>     </dependency>
> -
> +
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-bindings-jbi</artifactId>
>       <version>${cxf-version}</version>
>       <scope>test</scope>
>     </dependency>
> -
> +
>     <dependency>
>       <groupId>org.apache.cxf</groupId>
>       <artifactId>cxf-rt-transports-http-jetty</artifactId>
>       <version>${cxf-version}</version>
>       <scope>test</scope>
>     </dependency>
> -
> +
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-jetty</artifactId>
> @@ -135,13 +166,13 @@
>       <version>${httpclient4-version}</version>
>       <scope>test</scope>
>     </dependency>
> -
> -     <dependency>
> +
> +    <dependency>
>       <groupId>log4j</groupId>
>       <artifactId>log4j</artifactId>
>       <scope>test</scope>
>     </dependency>
> -
> +
>     <dependency>
>       <groupId>org.slf4j</groupId>
>       <artifactId>slf4j-log4j12</artifactId>
> @@ -154,23 +185,23 @@
>       <version>${cxf-version}</version>
>       <scope>test</scope>
>     </dependency>
> -
> -     <dependency>
> -       <groupId>org.springframework</groupId>
> -       <artifactId>spring-test</artifactId>
> -       <scope>test</scope>
> -     </dependency>
> -
> -    <dependency>
> -       <groupId>org.springframework</groupId>
> -       <artifactId>spring-web</artifactId>
> -       <scope>test</scope>
> -     </dependency>
> -
> -    <dependency>
> -       <groupId>junit</groupId>
> -       <artifactId>junit</artifactId>
> -       <scope>test</scope>
> +
> +    <dependency>
> +      <groupId>org.springframework</groupId>
> +      <artifactId>spring-test</artifactId>
> +      <scope>test</scope>
> +    </dependency>
> +
> +    <dependency>
> +      <groupId>org.springframework</groupId>
> +      <artifactId>spring-web</artifactId>
> +      <scope>test</scope>
> +    </dependency>
> +
> +    <dependency>
> +      <groupId>junit</groupId>
> +      <artifactId>junit</artifactId>
> +      <scope>test</scope>
>     </dependency>
>
>     <dependency>
> @@ -226,52 +257,52 @@
>         </executions>
>       </plugin>
>       <plugin>
> -       <groupId>org.apache.cxf</groupId>
> -       <artifactId>cxf-codegen-plugin</artifactId>
> -       <version>${cxf-version}</version>
> -       <executions>
> -               <execution>
> -                       <id>generate-test-sources</id>
> -                       <phase>generate-sources</phase>
> -                       <configuration>
> -                               <sourceRoot>${basedir}/target/generated</sourceRoot>
> -                               <wsdlOptions>
> -                                   <wsdlOption>
> -                                               <wsdl>${basedir}/src/test/resources/mtom.wsdl</wsdl>
> -                                       </wsdlOption>
> -                                       <wsdlOption>
> -                                               <wsdl>${basedir}/src/test/resources/MultiPartTest.wsdl</wsdl>
> -                                       </wsdlOption>
> -                                       <wsdlOption>
> -                                               <wsdl>${basedir}/src/test/resources/person.wsdl</wsdl>
> -                                       </wsdlOption>
> -                                       <wsdlOption>
> -                                               <wsdl>${basedir}/src/test/resources/person-non-wrapper.wsdl</wsdl>
> -                                               <extraargs>
> -                                                       <extraarg>-b</extraarg>
> -                                                       <extraarg>${basedir}/src/test/resources/person-non-wrapper-binding.xml</extraarg>
> -                                               </extraargs>
> -                                       </wsdlOption>
> -                                       <wsdlOption>
> -                                               <wsdl>${basedir}/src/test/resources/soap_header.wsdl</wsdl>
> -                                               <extraargs>
> -                                                       <extraarg>-verbose</extraarg>
> -                                               </extraargs>
> -                                       </wsdlOption>
> -                                       <wsdlOption>
> -                                               <wsdl>${basedir}/src/test/resources/pizza_service.wsdl</wsdl>
> -                                               <extraargs>
> -                                                       <extraarg>-exsh</extraarg>
> -                                                       <extraarg>true</extraarg>
> -                                               </extraargs>
> -                                       </wsdlOption>
> -                               </wsdlOptions>
> -                       </configuration>
> -                       <goals>
> -                               <goal>wsdl2java</goal>
> -                       </goals>
> -               </execution>
> -       </executions>
> +        <groupId>org.apache.cxf</groupId>
> +        <artifactId>cxf-codegen-plugin</artifactId>
> +        <version>${cxf-version}</version>
> +        <executions>
> +          <execution>
> +            <id>generate-test-sources</id>
> +            <phase>generate-sources</phase>
> +            <configuration>
> +              <sourceRoot>${basedir}/target/generated</sourceRoot>
> +              <wsdlOptions>
> +                <wsdlOption>
> +                  <wsdl>${basedir}/src/test/resources/mtom.wsdl</wsdl>
> +                </wsdlOption>
> +                <wsdlOption>
> +                  <wsdl>${basedir}/src/test/resources/MultiPartTest.wsdl</wsdl>
> +                </wsdlOption>
> +                <wsdlOption>
> +                  <wsdl>${basedir}/src/test/resources/person.wsdl</wsdl>
> +                </wsdlOption>
> +                <wsdlOption>
> +                  <wsdl>${basedir}/src/test/resources/person-non-wrapper.wsdl</wsdl>
> +                  <extraargs>
> +                    <extraarg>-b</extraarg>
> +                    <extraarg>${basedir}/src/test/resources/person-non-wrapper-binding.xml</extraarg>
> +                  </extraargs>
> +                </wsdlOption>
> +                <wsdlOption>
> +                  <wsdl>${basedir}/src/test/resources/soap_header.wsdl</wsdl>
> +                  <extraargs>
> +                    <extraarg>-verbose</extraarg>
> +                  </extraargs>
> +                </wsdlOption>
> +                <wsdlOption>
> +                  <wsdl>${basedir}/src/test/resources/pizza_service.wsdl</wsdl>
> +                  <extraargs>
> +                    <extraarg>-exsh</extraarg>
> +                    <extraarg>true</extraarg>
> +                  </extraargs>
> +                </wsdlOption>
> +              </wsdlOptions>
> +            </configuration>
> +            <goals>
> +              <goal>wsdl2java</goal>
> +            </goals>
> +          </execution>
> +        </executions>
>       </plugin>
>     </plugins>
>   </build>
>
> Added: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBlueprintEndpoint.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBlueprintEndpoint.java?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBlueprintEndpoint.java (added)
> +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBlueprintEndpoint.java Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,198 @@
> +/**
> + * 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.camel.component.cxf;
> +
> +import java.lang.reflect.Proxy;
> +import java.util.List;
> +import java.util.Map;
> +import javax.xml.ws.handler.Handler;
> +
> +import org.apache.camel.blueprint.BlueprintCamelContext;
> +import org.apache.camel.component.cxf.util.CxfEndpointUtils;
> +import org.apache.camel.util.ObjectHelper;
> +import org.apache.cxf.BusFactory;
> +import org.apache.cxf.endpoint.Client;
> +import org.apache.cxf.frontend.ClientFactoryBean;
> +import org.apache.cxf.frontend.ClientProxy;
> +import org.apache.cxf.frontend.ClientProxyFactoryBean;
> +import org.apache.cxf.frontend.ServerFactoryBean;
> +import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
> +import org.osgi.framework.BundleContext;
> +import org.osgi.service.blueprint.container.BlueprintContainer;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
> +
> +public class CxfBlueprintEndpoint extends CxfEndpoint {
> +
> +    private static final Logger LOG = LoggerFactory.getLogger(CxfBlueprintEndpoint.class);
> +
> +    protected Map<String, Object> properties;
> +
> +    private List<Handler> handlers;
> +    private List<String> schemaLocations;
> +
> +    private BlueprintContainer blueprintContainer;
> +    private BundleContext bundleContext;
> +    private BlueprintCamelContext blueprintCamelContext;
> +
> +    public CxfBlueprintEndpoint(String address, BlueprintCamelContext context) {
> +        super(address, context);
> +        this.blueprintCamelContext = context;
> +    }
> +
> +    public List<Handler> getHandlers() {
> +        return handlers;
> +    }
> +
> +    public void setHandlers(List<Handler> handlers) {
> +        this.handlers = handlers;
> +    }
> +
> +    public void destroy() {
> +        // Clean up the BusFactory's defaultBus
> +        // This method is not called magically, blueprint
> +        // needs you to set the destroy-method.
> +        BusFactory.setDefaultBus(null);
> +        BusFactory.setThreadDefaultBus(null);
> +    }
> +
> +    // Package private methods
> +    // -------------------------------------------------------------------------
> +
> +    /**
> +     * Create a CXF client object
> +     */
> +    Client createClient() throws Exception {
> +
> +        // get service class
> +        if (getDataFormat().equals(DataFormat.POJO)) {
> +            ObjectHelper.notEmpty(getServiceClass(), CxfConstants.SERVICE_CLASS);
> +        }
> +
> +        if (getWsdlURL() == null && getServiceClass() == null) {
> +            // no WSDL and serviceClass specified, set our default serviceClass
> +            setServiceClass(org.apache.camel.component.cxf.DefaultSEI.class.getName());
> +            setDefaultOperationNamespace(CxfConstants.DISPATCH_NAMESPACE);
> +            setDefaultOperationName(CxfConstants.DISPATCH_DEFAULT_OPERATION_NAMESPACE);
> +            if (getDataFormat().equals(DataFormat.PAYLOAD)) {
> +                setSkipPayloadMessagePartCheck(true);
> +            }
> +        }
> +
> +        Class<?> cls = null;
> +        if (getServiceClass() != null) {
> +            //Fool CXF classes to load their settings and bindings from the CXF bundle
> +            cls = bundleContext.getBundle().loadClass(getServiceClass());
> +            // create client factory bean
> +            ClientProxyFactoryBean factoryBean = createClientFactoryBean(cls);
> +            // setup client factory bean
> +            setupClientFactoryBean(factoryBean, cls);
> +            return ((ClientProxy) Proxy.getInvocationHandler(factoryBean.create())).getClient();
> +        } else {
> +            checkName(getPortName(), "endpoint/port name");
> +            checkName(getServiceName(), "service name");
> +
> +            ClientFactoryBean factoryBean = createClientFactoryBean();
> +            // setup client factory bean
> +            setupClientFactoryBean(factoryBean);
> +            return factoryBean.create();
> +        }
> +    }
> +
> +    protected void checkName(Object value, String name) {
> +        if (ObjectHelper.isEmpty(value)) {
> +            LOG.warn("The " + name + " of " + this.getEndpointUri() + " is empty, cxf will try to load the first one in wsdl for you.");
> +        }
> +    }
> +
> +    /**
> +     * Create a CXF server factory bean
> +     */
> +    ServerFactoryBean createServerFactoryBean() throws Exception {
> +
> +        Class<?> cls = null;
> +        if (getDataFormat() == DataFormat.POJO || getServiceClass() != null) {
> +            // get service class
> +            ObjectHelper.notEmpty(getServiceClass(), CxfConstants.SERVICE_CLASS);
> +            cls = bundleContext.getBundle().loadClass(getServiceClass());
> +        }
> +
> +        // create server factory bean
> +        // Shouldn't use CxfEndpointUtils.getServerFactoryBean(cls) as it is for
> +        // CxfSoapComponent
> +        ServerFactoryBean answer = null;
> +
> +        if (cls == null) {
> +            checkName(getPortName(), " endpoint/port name");
> +            checkName(getServiceName(), " service name");
> +            answer = new ServerFactoryBean(new WSDLServiceFactoryBean());
> +        } else if (CxfEndpointUtils.hasWebServiceAnnotation(cls)) {
> +            answer = new JaxWsServerFactoryBean();
> +        } else {
> +            answer = new ServerFactoryBean();
> +        }
> +        // setup server factory bean
> +        setupServerFactoryBean(answer, cls);
> +
> +        return answer;
> +    }
> +
> +    public void setSchemaLocations(List<String> schemaLocations) {
> +        this.schemaLocations = schemaLocations;
> +    }
> +
> +    public List<String> getSchemaLocations() {
> +        return schemaLocations;
> +    }
> +
> +    public BlueprintContainer getBlueprintContainer() {
> +        return blueprintContainer;
> +    }
> +
> +    public void setBlueprintContainer(BlueprintContainer blueprintContainer) {
> +        this.blueprintContainer = blueprintContainer;
> +    }
> +
> +    public BundleContext getBundleContext() {
> +        return bundleContext;
> +    }
> +
> +    public void setBundleContext(BundleContext bundleContext) {
> +        this.bundleContext = bundleContext;
> +    }
> +
> +    public BlueprintCamelContext getBlueprintCamelContext() {
> +        return blueprintCamelContext;
> +    }
> +
> +    public void setBlueprintCamelContext(BlueprintCamelContext blueprintCamelContext) {
> +        this.blueprintCamelContext = blueprintCamelContext;
> +    }
> +
> +    public Map<String, Object> getProperties() {
> +        return properties;
> +    }
> +
> +    public void setProperties(Map<String, Object> properties) {
> +        this.properties = properties;
> +    }
> +
> +    public CxfBlueprintEndpoint getBean() {
> +        return this;
> +    }
> +}
>
> Added: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java (added)
> +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,24 @@
> +/**
> + * 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.camel.component.cxf.blueprint;
> +
> +import org.apache.cxf.configuration.blueprint.AbstractBPBeanDefinitionParser;
> +
> +public class AbstractBeanDefinitionParser extends AbstractBPBeanDefinitionParser {
> +
> +}
>
> Added: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java (added)
> +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,60 @@
> +/**
> + * 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.camel.component.cxf.blueprint;
> +
> +import java.net.URL;
> +import java.util.Arrays;
> +import java.util.HashSet;
> +import java.util.Set;
> +import org.w3c.dom.Element;
> +import org.w3c.dom.Node;
> +
> +import org.apache.aries.blueprint.NamespaceHandler;
> +import org.apache.aries.blueprint.ParserContext;
> +import org.apache.cxf.bus.blueprint.BlueprintBus;
> +import org.osgi.service.blueprint.reflect.ComponentMetadata;
> +import org.osgi.service.blueprint.reflect.Metadata;
> +
> +public class CxfNamespaceHandler implements NamespaceHandler {
> +
> +    public URL getSchemaLocation(String s) {
> +        return getClass().getClassLoader().getResource("schema/blueprint/camel-cxf.xsd");
> +    }
> +
> +    public Set<Class> getManagedClasses() {
> +        return new HashSet<Class>(Arrays.asList(CxfNamespaceHandler.class));
> +    }
> +
> +    public Metadata parse(Element element, ParserContext context) {
> +        Thread.currentThread().setContextClassLoader(BlueprintBus.class.getClassLoader());
> +        String s = element.getLocalName();
> +        if ("cxfEndpoint".equals(s)) {
> +            return new EndpointDefinitionParser().parse(element, context);
> +        } else if ("server".equals(s)) {
> +            //return new RsServerDefinitionParser(JaxWsServerFactoryBean.class).parse(element, context);
> +        } else if ("client".equals(s)) {
> +            //return new RsClientDefinitionParser(JaxWsProxyFactoryBean.class).parse(element, context);
> +        }
> +        return null;
> +    }
> +
> +    public ComponentMetadata decorate(Node node, ComponentMetadata componentMetadata, ParserContext parserContext) {
> +        System.out.println("Decorate the node " + node + " " + componentMetadata);
> +        return null;
> +    }
> +}
>
> Added: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java (added)
> +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,213 @@
> +/**
> + * 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.camel.component.cxf.blueprint;
> +
> +import java.util.Set;
> +import java.util.StringTokenizer;
> +import java.util.concurrent.Callable;
> +import javax.xml.namespace.QName;
> +import org.w3c.dom.Attr;
> +import org.w3c.dom.Element;
> +import org.w3c.dom.NamedNodeMap;
> +
> +import org.apache.aries.blueprint.ComponentDefinitionRegistry;
> +import org.apache.aries.blueprint.ComponentDefinitionRegistryProcessor;
> +import org.apache.aries.blueprint.ParserContext;
> +import org.apache.aries.blueprint.PassThroughMetadata;
> +import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
> +import org.apache.aries.blueprint.mutable.MutablePassThroughMetadata;
> +import org.apache.aries.blueprint.reflect.BeanMetadataImpl;
> +import org.apache.camel.blueprint.BlueprintCamelContext;
> +import org.apache.camel.component.cxf.CxfBlueprintEndpoint;
> +import org.apache.cxf.common.util.StringUtils;
> +import org.apache.cxf.configuration.blueprint.AbstractBPBeanDefinitionParser;
> +import org.apache.cxf.helpers.DOMUtils;
> +import org.osgi.framework.Bundle;
> +import org.osgi.service.blueprint.container.BlueprintContainer;
> +import org.osgi.service.blueprint.reflect.ComponentMetadata;
> +import org.osgi.service.blueprint.reflect.Metadata;
> +
> +public class EndpointDefinitionParser extends AbstractBPBeanDefinitionParser {
> +
> +    public static String getIdOrName(Element elem) {
> +        String id = elem.getAttribute("id");
> +
> +        if (null == id || "".equals(id)) {
> +            String names = elem.getAttribute("name");
> +            if (null != names) {
> +                StringTokenizer st = new StringTokenizer(names, ",");
> +                if (st.countTokens() > 0) {
> +                    id = st.nextToken();
> +                }
> +            }
> +        }
> +        return id;
> +    }
> +
> +    public Metadata parse(Element element, ParserContext context) {
> +        MutableBeanMetadata endpointConfig = context.createMetadata(MutableBeanMetadata.class);
> +        endpointConfig.setRuntimeClass(CxfBlueprintEndpoint.class);
> +        endpointConfig.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
> +        endpointConfig.addProperty("bundleContext", createRef(context, "blueprintBundleContext"));
> +
> +        if (!StringUtils.isEmpty(getIdOrName(element))) {
> +            endpointConfig.setId(getIdOrName(element));
> +        } else {
> +            endpointConfig.setId("camel.cxf.endpoint." + context.generateId());
> +        }
> +
> +        boolean isAbstract = false;
> +        boolean publish = true;
> +        NamedNodeMap atts = element.getAttributes();
> +
> +        String bus = null;
> +        Metadata impl = null;
> +        String address = null;
> +
> +        for (int i = 0; i < atts.getLength(); i++) {
> +            Attr node = (Attr) atts.item(i);
> +            String val = node.getValue();
> +            String pre = node.getPrefix();
> +            String name = node.getLocalName();
> +            if ("createdFromAPI".equals(name) || "abstract".equals(name)) {
> +                endpointConfig.setScope(MutableBeanMetadata.SCOPE_PROTOTYPE);
> +                isAbstract = true;
> +            } else if ("publish".equals(name)) {
> +                publish = Boolean.parseBoolean(val);
> +            } else if ("bus".equals(name)) {
> +                bus = val;
> +            } else if ("address".equals(name)) {
> +                address = val;
> +            } else if (isAttribute(pre, name)) {
> +                if ("endpointName".equals(name) || "serviceName".equals(name)) {
> +                    QName q = parseQName(element, val);
> +                    endpointConfig.addProperty(name, createValue(context, q));
> +                } else if ("depends-on".equals(name)) {
> +                    endpointConfig.addDependsOn(val);
> +                } else if ("implementor".equals(name)) {
> +                    if (val.startsWith("#")) {
> +                        impl = createRef(context, val.substring(1));
> +                    } else {
> +                        impl = createObjectOfClass(context, val);
> +                    }
> +                } else if (!"name".equals(name)) {
> +                    endpointConfig.addProperty(name, AbstractBPBeanDefinitionParser.createValue(context, val));
> +                }
> +            }
> +        }
> +
> +        Element elem = DOMUtils.getFirstElement(element);
> +        while (elem != null) {
> +            String name = elem.getLocalName();
> +            if ("properties".equals(name)) {
> +                Metadata map = parseMapData(context, endpointConfig, elem);
> +                endpointConfig.addProperty(name, map);
> +            } else if ("binding".equals(name)) {
> +                setFirstChildAsProperty(element, context, endpointConfig, "bindingConfig");
> +            } else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name) || "outInterceptors".equals(name)
> +                || "outFaultInterceptors".equals(name) || "features".equals(name) || "schemaLocations".equals(name) || "handlers".equals(name)) {
> +                Metadata list = parseListData(context, endpointConfig, elem);
> +                endpointConfig.addProperty(name, list);
> +            } else {
> +                setFirstChildAsProperty(element, context, endpointConfig, name);
> +            }
> +
> +            elem = DOMUtils.getNextElement(elem);
> +        }
> +        if (StringUtils.isEmpty(bus)) {
> +            bus = "cxf";
> +        }
> +        //Will create a bus if needed...
> +
> +        endpointConfig.addProperty("bus", getBusRef(context, bus));
> +        endpointConfig.setDestroyMethod("destroy");
> +        endpointConfig.addArgument(AbstractBPBeanDefinitionParser.createValue(context, address), String.class.getName(), 0);
> +
> +        //Register a bean that will post-process and pick the first available camelContext to attach our endpoint to.
> +        MutablePassThroughMetadata regProcessorFactory = context.createMetadata(MutablePassThroughMetadata.class);
> +        regProcessorFactory.setId(context.generateId());
> +        regProcessorFactory.setObject(new PassThroughCallable<Object>(new CxfCamelContextFinder(endpointConfig.getId(), context)));
> +
> +        MutableBeanMetadata regProcessor = context.createMetadata(MutableBeanMetadata.class);
> +        regProcessor.setId(context.generateId());
> +        regProcessor.setRuntimeClass(CxfCamelContextFinder.class);
> +        regProcessor.setFactoryComponent(regProcessorFactory);
> +        regProcessor.setFactoryMethod("call");
> +        regProcessor.setProcessor(true);
> +        regProcessor.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
> +        context.getComponentDefinitionRegistry().registerComponentDefinition(regProcessor);
> +
> +        return endpointConfig;
> +    }
> +
> +    private Bundle getBlueprintBundle(ParserContext context) {
> +        PassThroughMetadata metadata = (PassThroughMetadata) context.getComponentDefinitionRegistry().getComponentDefinition("blueprintBundle");
> +
> +        Bundle result = null;
> +        if (metadata != null) {
> +            result = (Bundle) metadata.getObject();
> +        }
> +
> +        return result;
> +    }
> +
> +    public static class PassThroughCallable<T> implements Callable<T> {
> +
> +        private T value;
> +
> +        public PassThroughCallable(T value) {
> +            this.value = value;
> +        }
> +
> +        public T call() throws Exception {
> +            return value;
> +        }
> +    }
> +
> +    public static class CxfCamelContextFinder implements ComponentDefinitionRegistryProcessor {
> +
> +        private final String cxfEndpointName;
> +        private final ParserContext context;
> +        private BlueprintContainer blueprintContainer;
> +
> +        public CxfCamelContextFinder(String cxfEndpointName, ParserContext context) {
> +            this.cxfEndpointName = cxfEndpointName;
> +            this.context = context;
> +        }
> +
> +        public void setBlueprintContainer(BlueprintContainer blueprintContainer) {
> +            this.blueprintContainer = blueprintContainer;
> +        }
> +
> +        public void process(ComponentDefinitionRegistry componentDefinitionRegistry) {
> +            MutableBeanMetadata bean = (MutableBeanMetadata) blueprintContainer.getComponentMetadata(cxfEndpointName);
> +
> +            Set<String> components = componentDefinitionRegistry.getComponentDefinitionNames();
> +            for (String componentName : components) {
> +                ComponentMetadata metaData = context.getComponentDefinitionRegistry().getComponentDefinition(componentName);
> +                if (metaData instanceof BeanMetadataImpl) {
> +                    BeanMetadataImpl bim = (BeanMetadataImpl) metaData;
> +                    if (bim.getRuntimeClass().isAssignableFrom(BlueprintCamelContext.class)) {
> +                        //Found a CamelContext
> +                        bean.addArgument(createRef(context, metaData.getId()), BlueprintCamelContext.class.getName(), 1);
> +                    }
> +                }
> +            }
> +        }
> +    }
> +}
>
> Added: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java (added)
> +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,61 @@
> +/**
> + * 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.camel.component.cxf.blueprint;
> +
> +import java.util.StringTokenizer;
> +import org.w3c.dom.Element;
> +
> +import org.apache.aries.blueprint.ParserContext;
> +import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
> +import org.apache.camel.component.cxf.CxfBlueprintEndpoint;
> +import org.apache.cxf.common.util.StringUtils;
> +import org.apache.cxf.configuration.blueprint.AbstractBPBeanDefinitionParser;
> +import org.osgi.service.blueprint.reflect.Metadata;
> +
> +public class RsClientDefinitionParser extends AbstractBPBeanDefinitionParser {
> +
> +    public Metadata parse(Element element, ParserContext context) {
> +        MutableBeanMetadata endpointConfig = context.createMetadata(MutableBeanMetadata.class);
> +        endpointConfig.setRuntimeClass(CxfBlueprintEndpoint.class);
> +        endpointConfig.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
> +        endpointConfig.addProperty("bundleContext", createRef(context, "blueprintBundleContext"));
> +
> +        if (!StringUtils.isEmpty(getIdOrName(element))) {
> +            endpointConfig.setId(getIdOrName(element));
> +        } else {
> +            endpointConfig.setId("camel.cxf.endpoint." + context.generateId());
> +        }
> +
> +        return null;
> +    }
> +
> +    public static String getIdOrName(Element elem) {
> +        String id = elem.getAttribute("id");
> +
> +        if (null == id || "".equals(id)) {
> +            String names = elem.getAttribute("name");
> +            if (null != names) {
> +                StringTokenizer st = new StringTokenizer(names, ",");
> +                if (st.countTokens() > 0) {
> +                    id = st.nextToken();
> +                }
> +            }
> +        }
> +        return id;
> +    }
> +}
>
> Added: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java (added)
> +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,22 @@
> +/**
> + * 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.camel.component.cxf.blueprint;
> +
> +public class RsServerDefinitionParser {
> +
> +}
>
> Added: camel/trunk/components/camel-cxf/src/main/resources/OSGI-INF/blueprint/camel-cxf.xml
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/resources/OSGI-INF/blueprint/camel-cxf.xml?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/resources/OSGI-INF/blueprint/camel-cxf.xml (added)
> +++ camel/trunk/components/camel-cxf/src/main/resources/OSGI-INF/blueprint/camel-cxf.xml Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,29 @@
> +<!--
> +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.
> +-->
> +
> +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
> +           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> +           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
> +           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
> +
> +  <service interface="org.apache.aries.blueprint.NamespaceHandler">
> +    <service-properties>
> +      <entry key="osgi.service.blueprint.namespace" value="http://camel.apache.org/schema/blueprint/cxf"/>
> +    </service-properties>
> +    <bean class="org.apache.camel.component.cxf.blueprint.CxfNamespaceHandler"/>
> +  </service>
> +</blueprint>
> \ No newline at end of file
>
> Added: camel/trunk/components/camel-cxf/src/main/resources/schema/blueprint/camel-cxf.xsd
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/resources/schema/blueprint/camel-cxf.xsd?rev=1097936&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-cxf/src/main/resources/schema/blueprint/camel-cxf.xsd (added)
> +++ camel/trunk/components/camel-cxf/src/main/resources/schema/blueprint/camel-cxf.xsd Fri Apr 29 20:12:54 2011
> @@ -0,0 +1,170 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!--
> +  Licensed to the Apache Software Foundation (ASF) under one
> +  or more contributor license agreements. See the NOTICE file
> +  distributed with this work for additional information
> +  regarding copyright ownership. The ASF licenses this file
> +  to you under the Apache License, Version 2.0 (the
> +  "License"); you may not use this file except in compliance
> +  with the License. You may obtain a copy of the License at
> +
> +  http://www.apache.org/licenses/LICENSE-2.0
> +
> +  Unless required by applicable law or agreed to in writing,
> +  software distributed under the License is distributed on an
> +  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +  KIND, either express or implied. See the License for the
> +  specific language governing permissions and limitations
> +  under the License.
> +-->
> +<xsd:schema xmlns="http://camel.apache.org/schema/blueprint/cxf"
> +            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> +            xmlns:beans="http://www.osgi.org/xmlns/blueprint/v1.0.0"
> +            xmlns:cxf-beans="http://cxf.apache.org/configuration/beans"
> +            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> +            targetNamespace="http://camel.apache.org/schema/blueprint/cxf"
> +            elementFormDefault="qualified"
> +            attributeFormDefault="unqualified"
> +            xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
> +
> +  <xsd:import namespace="http://www.osgi.org/xmlns/blueprint/v1.0.0" schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"/>
> +  <xsd:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
> +
> +  <xsd:element name="cxfEndpoint">
> +    <xsd:complexType>
> +      <xsd:complexContent>
> +        <xsd:extension base="beans:Tcomponent">
> +          <xsd:all>
> +            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="properties" type="beans:Tmap" minOccurs="0"/>
> +            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
> +            <xsd:element name="serviceBean" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
> +          </xsd:all>
> +          <!-- xsd:attributeGroup ref="cxf-beans:beanAttributes"/-->
> +          <xsd:attribute name="address" type="xsd:string"/>
> +          <xsd:attribute name="bindingId" type="xsd:string"/>
> +          <xsd:attribute name="bus" type="xsd:string"/>
> +          <xsd:attribute name="serviceClass" type="xsd:string"/>
> +          <xsd:attribute name="transportId" type="xsd:string"/>
> +          <xsd:attribute name="wsdlURL" type="xsd:string"/>
> +          <xsd:attribute name="endpointName" type="xsd:QName"/>
> +          <xsd:attribute name="serviceName" type="xsd:QName"/>
> +        </xsd:extension>
> +      </xsd:complexContent>
> +    </xsd:complexType>
> +  </xsd:element>
> +
> +  <xsd:element name="rsServer">
> +    <xsd:complexType>
> +      <xsd:complexContent>
> +        <xsd:extension base="beans:Tcomponent">
> +          <xsd:all>
> +            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="properties" type="beans:Tmap" minOccurs="0"/>
> +            <xsd:element name="serviceBeans" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="model" type="model" minOccurs="0"/>
> +            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="extensionMappings" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="languageMappings" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
> +          </xsd:all>
> +          <!-- xsd:attributeGroup ref="cxf-beans:beanAttributes"/-->
> +          <xsd:attribute name="address" type="xsd:string"/>
> +          <xsd:attribute name="bus" type="xsd:string"/>
> +          <xsd:attribute name="serviceClass" type="xsd:string"/>
> +          <xsd:attribute name="transportId" type="xsd:string"/>
> +          <xsd:attribute name="modelRef" type="xsd:string"/>
> +          <xsd:attribute name="bindingId" type="xsd:string"/>
> +          <xsd:attribute name="staticSubresourceResolution" type="xsd:boolean"/>
> +        </xsd:extension>
> +      </xsd:complexContent>
> +    </xsd:complexType>
> +  </xsd:element>
> +
> +  <xsd:element name="rsClient">
> +    <xsd:complexType>
> +      <xsd:complexContent>
> +        <xsd:extension base="beans:Tcomponent">
> +          <xsd:all>
> +            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="properties" type="beans:Tmap" minOccurs="0"/>
> +            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="model" type="model" minOccurs="0"/>
> +            <xsd:element name="headers" type="xsd:anyType" minOccurs="0"/>
> +            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
> +          </xsd:all>
> +          <!-- xsd:attributeGroup ref="cxf-beans:beanAttributes"/-->
> +          <xsd:attribute name="address" type="xsd:string"/>
> +          <xsd:attribute name="serviceClass" type="xsd:string"/>
> +          <xsd:attribute name="inheritHeaders" type="xsd:boolean"/>
> +          <xsd:attribute name="bus" type="xsd:string"/>
> +          <xsd:attribute name="transportId" type="xsd:string"/>
> +          <xsd:attribute name="bindingId" type="xsd:string"/>
> +          <xsd:attribute name="modelRef" type="xsd:string"/>
> +          <xsd:attribute name="username" type="xsd:string"/>
> +          <xsd:attribute name="password" type="xsd:string"/>
> +        </xsd:extension>
> +      </xsd:complexContent>
> +    </xsd:complexType>
> +  </xsd:element>
> +
> +  <xsd:complexType name="schemasType">
> +    <xsd:sequence>
> +      <xsd:element name="schemaLocation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
> +    </xsd:sequence>
> +  </xsd:complexType>
> +
> +  <xsd:complexType name="model">
> +    <xsd:sequence>
> +      <xsd:element name="resource" minOccurs="0" maxOccurs="unbounded">
> +        <xsd:complexType>
> +          <xsd:sequence>
> +            <xsd:element name="operation" minOccurs="0" maxOccurs="unbounded">
> +              <xsd:complexType>
> +                <xsd:sequence>
> +                  <xsd:element name="param" minOccurs="0" maxOccurs="unbounded">
> +                    <xsd:complexType>
> +                      <xsd:attribute name="name" type="xsd:string"/>
> +                      <xsd:attribute name="type" type="xsd:string"/>
> +                    </xsd:complexType>
> +                  </xsd:element>
> +                </xsd:sequence>
> +                <xsd:attribute name="name" type="xsd:string"/>
> +                <xsd:attribute name="path" type="xsd:string"/>
> +                <xsd:attribute name="verb" type="xsd:string"/>
> +                <xsd:attribute name="consumes" type="xsd:string"/>
> +                <xsd:attribute name="produces" type="xsd:string"/>
> +              </xsd:complexType>
> +            </xsd:element>
> +          </xsd:sequence>
> +          <xsd:attribute name="name" type="xsd:string"/>
> +          <xsd:attribute name="path" type="xsd:string"/>
> +        </xsd:complexType>
> +      </xsd:element>
> +    </xsd:sequence>
> +    <xsd:attribute name="id" type="xsd:string"/>
> +  </xsd:complexType>
> +</xsd:schema>
> \ No newline at end of file
>
>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
CamelOne 2011: http://fusesource.com/camelone2011/
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Mime
View raw message