Regarding this ID type, I think it's time we move this type into the cxf-beans schema because we now have three schemas (wsrm, http, and cluster) locally defining this ID type.
The cxf-beans schema seems to be the right place. If there is no objection, I can do the move and consolidate all these three schemas to use that type. 2012/5/22 Willem Jiang <[email protected]>: > Hi Dan, > > Thanks for the hint, I just commit the new patch to get ride of blueprint > schema. > > > On Mon May 21 22:41:12 2012, Daniel Kulp wrote: >> >> >> >> Willem, >> >> Can we do this without having separate Blueprint and Spring schemas? >> Since >> this is effectively a new schema for both, I'd hate to have 2 schemas when >> one could do. >> >> >> The configuration/wsrm-manager.xsd did something similar at one point and >> ended up defining a very small "identifiedType" complexType to stick the >> attributes that are required instead of pulling them from Spring or >> Blueprint. >> >> Also: the blueprint xsd is invalid. There is a missing closing element >> and the Apache header is missing. But if you get rid of it... problem >> solved. :-) >> >> Thanks! >> >> Dan >> >> >> >> >> On Monday, May 21, 2012 07:00:00 AM [email protected] wrote: >>> >>> Author: ningjiang >>> Date: Mon May 21 06:59:59 2012 >>> New Revision: 1340905 >>> >>> URL: http://svn.apache.org/viewvc?rev=1340905&view=rev >>> Log: >>> CXF-4326 CXF-4327 add blueprint support on the cxf clustering >>> >>> Added: >>> >>> cxf/trunk/rt/features/clustering/src/main/java/org/apache/cxf/clustering/ >>> blueprint/ >>> cxf/trunk/rt/features/clustering/src/main/java/org/apache/cxf/clustering/ >>> blueprint/ClusteringBPNamespaceHandler.java >>> cxf/trunk/rt/features/clustering/src/main/resources/META-INF/spring.schem >>> as cxf/trunk/rt/features/clustering/src/main/resources/OSGI-INF/ >>> cxf/trunk/rt/features/clustering/src/main/resources/OSGI-INF/blueprint/ >>> cxf/trunk/rt/features/clustering/src/main/resources/OSGI-INF/blueprint/cx >>> f-clustering.xml >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/ >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/blueprint/ >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/blueprint/clu >>> stering.xsd >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/clustering.xs >>> d Modified: >>> cxf/trunk/rt/features/clustering/pom.xml >>> >>> Modified: cxf/trunk/rt/features/clustering/pom.xml >>> URL: >>> http://svn.apache.org/viewvc/cxf/trunk/rt/features/clustering/pom.xml?rev >>> =1340905&r1=1340904&r2=1340905&view=diff >>> ========================================================================= >>> ===== --- cxf/trunk/rt/features/clustering/pom.xml (original) >>> +++ cxf/trunk/rt/features/clustering/pom.xml Mon May 21 06:59:59 2012 >>> @@ -55,6 +55,12 @@ >>> <version>${project.version}</version> >>> </dependency> >>> <dependency> >>> +<groupId>org.apache.aries.blueprint</groupId> >>> +<artifactId>org.apache.aries.blueprint.core</artifactId> >>> +<scope>provided</scope> >>> +<optional>true</optional> >>> +</dependency> >>> +<dependency> >>> <groupId>org.springframework</groupId> >>> <artifactId>spring-core</artifactId> >>> <scope>provided</scope> >>> >>> Added: >>> cxf/trunk/rt/features/clustering/src/main/java/org/apache/cxf/clustering/ >>> blueprint/ClusteringBPNamespaceHandler.java URL: >>> http://svn.apache.org/viewvc/cxf/trunk/rt/features/clustering/src/main/ja >>> >>> va/org/apache/cxf/clustering/blueprint/ClusteringBPNamespaceHandler.java?r >>> ev=1340905&view=auto >>> ========================================================================= >>> ===== --- >>> cxf/trunk/rt/features/clustering/src/main/java/org/apache/cxf/clustering/ >>> blueprint/ClusteringBPNamespaceHandler.java (added) +++ >>> cxf/trunk/rt/features/clustering/src/main/java/org/apache/cxf/clustering/ >>> blueprint/ClusteringBPNamespaceHandler.java Mon May 21 06:59:59 2012 @@ >>> -0,0 +1,59 @@ >>> +/** >>> + * 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.clustering.blueprint; >>> + >>> +import java.net.URL; >>> +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.clustering.FailoverFeature; >>> +import org.apache.cxf.clustering.LoadDistributorTargetSelector; >>> +import >>> org.apache.cxf.configuration.blueprint.SimpleBPBeanDefinitionParser; >>> +import org.osgi.service.blueprint.reflect.ComponentMetadata; >>> +import org.osgi.service.blueprint.reflect.Metadata; >>> + >>> +public class ClusteringBPNamespaceHandler implements NamespaceHandler { >>> + public ComponentMetadata decorate(Node node, ComponentMetadata >>> component, ParserContext context) { + return null; >>> + } >>> + >>> + public Metadata parse(Element element, ParserContext context) { >>> + String s = element.getLocalName(); >>> + if ("failover".equals(s)) { >>> + return new >>> SimpleBPBeanDefinitionParser(FailoverFeature.class).parse(element, >>> context); + } else if ("loadDistributor".equals(s)) { >>> + return new >>> SimpleBPBeanDefinitionParser(LoadDistributorTargetSelector.class).parse(e >>> lement, context); + } >>> + return null; >>> + } >>> + >>> + public Set<Class> getManagedClasses() { >>> + //probably should have the various stuff in cxf-api in here? >>> + return null; >>> + } >>> + >>> + public URL getSchemaLocation(String namespace) { >>> + return >>> getClass().getClassLoader().getResource("/schemas/blueprint/clustering.xs >>> d"); + } >>> + >>> +} >>> >>> Added: >>> cxf/trunk/rt/features/clustering/src/main/resources/META-INF/spring.schem >>> as URL: >>> http://svn.apache.org/viewvc/cxf/trunk/rt/features/clustering/src/main/re >>> sources/META-INF/spring.schemas?rev=1340905&view=auto >>> ========================================================================= >>> ===== --- >>> cxf/trunk/rt/features/clustering/src/main/resources/META-INF/spring.schem >>> as (added) +++ >>> cxf/trunk/rt/features/clustering/src/main/resources/META-INF/spring.schem >>> as Mon May 21 06:59:59 2012 @@ -0,0 +1,21 @@ >>> +# >>> +# >>> +# 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. >>> +# >>> +# >>> +http\://cxf.apache.org/schemas/clustering.xsd=schemas/clustering.xsd >>> \ No newline at end of file >>> >>> Added: >>> cxf/trunk/rt/features/clustering/src/main/resources/OSGI-INF/blueprint/cx >>> f-clustering.xml URL: >>> http://svn.apache.org/viewvc/cxf/trunk/rt/features/clustering/src/main/re >>> sources/OSGI-INF/blueprint/cxf-clustering.xml?rev=1340905&view=auto >>> ========================================================================= >>> ===== --- >>> cxf/trunk/rt/features/clustering/src/main/resources/OSGI-INF/blueprint/cx >>> f-clustering.xml (added) +++ >>> cxf/trunk/rt/features/clustering/src/main/resources/OSGI-INF/blueprint/cx >>> f-clustering.xml Mon May 21 06:59:59 2012 @@ -0,0 +1,31 @@ >>> +<!-- >>> + ~ /** >>> + ~ * 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://cxf.apache.org/blueprint/clustering"/> + >>> </service-properties> >>> +<bean >>> class="org.apache.cxf.clustering.blueprint.ClusteringBPNamespaceHandler"/ >>>> >>>> +</service> >>> >>> +</blueprint> >>> \ No newline at end of file >>> >>> Added: >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/blueprint/clu >>> stering.xsd URL: >>> http://svn.apache.org/viewvc/cxf/trunk/rt/features/clustering/src/main/re >>> sources/schemas/blueprint/clustering.xsd?rev=1340905&view=auto >>> ========================================================================= >>> ===== --- >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/blueprint/clu >>> stering.xsd (added) +++ >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/blueprint/clu >>> stering.xsd Mon May 21 06:59:59 2012 @@ -0,0 +1,57 @@ >>> +<xsd:schema xmlns="http://cxf.apache.org/blueprint/clustering" >>> + xmlns:xsd="http://www.w3.org/2001/XMLSchema" >>> + xmlns:beans="http://www.osgi.org/xmlns/blueprint/v1.0.0" >>> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> + targetNamespace="http://cxf.apache.org/blueprint/clustering" >>> + elementFormDefault="qualified" >>> + attributeFormDefault="unqualified"> >>> + >>> +<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:element name="failover"> >>> +<xsd:annotation> >>> +<xsd:documentation>Configures the failover feature. This element is >>> associated with the org.apache.cxf.clustering.FailoverFeature >>> object.</xsd:documentation> +</xsd:annotation> >>> +<xsd:complexType> >>> +<xsd:complexContent> >>> +<xsd:extension base="beans:Tcomponent"> >>> +<xsd:all> >>> +<xsd:element name="strategy" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the strategy that the >>> failover feature will be used. The Strategy object instance need to be >>> implemented the >>> org.apache.cxf.clustering.FailoverStrategy.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:element> >>> +<xsd:element name="targetSelector" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the the targetSelector >>> which will be used in the failover feature.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:all> >>> +</xsd:complexContent> >>> +</xsd:complexType> >>> +</xsd:element> >>> + >>> +<xsd:element name="loadDistributor"> >>> +<xsd:annotation> >>> +<xsd:documentation>Configures the loadDistributor feature. This >>> element is associated with the org.apache.cxf.clustering.FailoverFeature >>> object.</xsd:documentation> +</xsd:annotation> >>> +<xsd:complexType> >>> +<xsd:complexContent> >>> +<xsd:extension base="beans:Tcomponent"> >>> +<xsd:all> >>> +<xsd:element name="strategy" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the strategy that the >>> loadDistributor feature will be used. The Strategy object instance need >>> to be implemented the >>> org.apache.cxf.clustering.FailoverStrategy.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:element> >>> +<xsd:element name="targetSelector" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the the targetSelector >>> which will be used in the loadDistributor feature.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:element> >>> +</xsd:all> >>> +</xsd:extension> >>> +</xsd:complexContent> >>> +</xsd:complexType> >>> +</xsd:element> >>> + >>> +</xsd:schema> >>> \ No newline at end of file >>> >>> Added: >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/clustering.xs >>> d URL: >>> http://svn.apache.org/viewvc/cxf/trunk/rt/features/clustering/src/main/re >>> sources/schemas/clustering.xsd?rev=1340905&view=auto >>> ========================================================================= >>> ===== --- >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/clustering.xs >>> d (added) +++ >>> cxf/trunk/rt/features/clustering/src/main/resources/schemas/clustering.xs >>> d Mon May 21 06:59:59 2012 @@ -0,0 +1,77 @@ >>> +<?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://cxf.apache.org/clustering" >>> + xmlns:xsd="http://www.w3.org/2001/XMLSchema" >>> + xmlns:beans="http://www.springframework.org/schema/beans" >>> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> + targetNamespace="http://cxf.apache.org/clustering" >>> + elementFormDefault="qualified" >>> + attributeFormDefault="unqualified"> >>> + >>> +<xsd:import namespace="http://www.springframework.org/schema/beans" >>> schemaLocation="http://www.springframework.org/schema/beans/spring-beans. >>> xsd"/> + >>> +<xsd:element name="failover"> >>> +<xsd:annotation> >>> +<xsd:documentation>Configures the failover feature. This element is >>> associated with the org.apache.cxf.clustering.FailoverFeature >>> object.</xsd:documentation> +</xsd:annotation> >>> +<xsd:complexType> >>> +<xsd:complexContent> >>> +<xsd:extension base="beans:identifiedType"> >>> +<xsd:all> >>> +<xsd:element name="strategy" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the strategy that the >>> failover feature will be used. The Strategy object instance need to be >>> implemented the >>> org.apache.cxf.clustering.FailoverStrategy.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:element> >>> +<xsd:element name="targetSelector" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the targetSelector which >>> will be used in the failover feature.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:element> >>> +</xsd:all> >>> +</xsd:complexContent> >>> +</xsd:complexType> >>> +</xsd:element> >>> + >>> +<xsd:element name="loadDistributor"> >>> +<xsd:annotation> >>> +<xsd:documentation>Configures the loadDistributor feature. This >>> element is associated with the org.apache.cxf.clustering.FailoverFeature >>> object.</xsd:documentation> +</xsd:annotation> >>> +<xsd:complexType> >>> +<xsd:complexContent> >>> +<xsd:extension base="beans:identifiedType"> >>> +<xsd:all> >>> +<xsd:element name="strategy" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the strategy that the >>> loadDistributor feature will be used. The Strategy object instance need >>> to be implemented the >>> org.apache.cxf.clustering.FailoverStrategy.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:element> >>> +<xsd:element name="targetSelector" type="xsd:anyType" >>> minOccurs="0"> +<xsd:annotation> >>> +<xsd:documentation>Configures the the targetSelector >>> which will be used in the loadDistributor feature.</xsd:documentation> + >>> </xsd:annotation> >>> +</xsd:element> >>> +</xsd:all> >>> +</xsd:extension> >>> +</xsd:complexContent> >>> +</xsd:complexType> >>> +</xsd:element> >>> + >>> +</xsd:schema> >>> \ No newline at end of file > > > > > -- > Willem > ---------------------------------- > CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com > FuseSource > Web: http://www.fusesource.com > Blog: http://willemjiang.blogspot.com (English) > http://jnn.javaeye.com (Chinese) > Twitter: willemjiang > Weibo: willemjiang >
