You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2009/03/16 19:20:54 UTC

svn commit: r754972 - in /cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src: changes/ main/java/org/apache/cocoon/spring/configurator/impl/ main/resources/META-INF/ main/resources/org/apache/cocoon/spring/configurator/schema/

Author: reinhard
Date: Mon Mar 16 18:20:54 2009
New Revision: 754972

URL: http://svn.apache.org/viewvc?rev=754972&view=rev
Log:
Add a WildcardBeanMap that extends BeanMap but checks for a wildcard expression instead of the bean type.

Added:
    cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java   (with props)
    cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java   (with props)
    cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd   (with props)
Modified:
    cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/changes/changes.xml
    cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/BeanMap.java
    cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/ConfiguratorNamespaceHandler.java
    cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/META-INF/spring.schemas

Modified: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/changes/changes.xml?rev=754972&r1=754971&r2=754972&view=diff
==============================================================================
--- cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/changes/changes.xml (original)
+++ cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/changes/changes.xml Mon Mar 16 18:20:54 2009
@@ -24,9 +24,14 @@
   -->
 <document>
   <body>
-    <release version="2.0.1" date="2009-??-??" description="unreleased">
+    <release version="2.1.0" date="2009-??-??" description="unreleased">
       <action dev="reinhard" type="add">
-        Support the definition of a user properties file as servlet context init parameter (org.apache.cocoon.settings).
+        Add a WildcardBeanMap that extends BeanMap but checks for a wildcard expression
+        instead of the bean type.
+      </action>   
+      <action dev="reinhard" type="add">
+        Support the definition of a user properties file as servlet context init parameter 
+        (org.apache.cocoon.settings).
       </action>   
     </release>  
     <release version="2.0.0" date="2008-08-09" description="released">
@@ -38,12 +43,15 @@
       </action>
       <action dev="gkossakowski" type="add">
         Introduced resource filter feature as explained here: http://article.gmane.org/gmane.text.xml.cocoon.devel/78158
-        The resource filtering is used for *all* resources being processed by Spring Configurator including beans definitions and property files.
+        The resource filtering is used for *all* resources being processed by 
+        Spring Configurator including beans definitions and property files.
         
-        The resource filter itself is a simple class implementing one method of ResourceFilter interface.
+        The resource filter itself is a simple class implementing one method of 
+        ResourceFilter interface.
       </action>
       <action dev="lgawron" type="fix">
-        Fix configurator:bean-map throwing ClassCastException when key-property="propertyName" did not resolve to a String property.
+        Fix configurator:bean-map throwing ClassCastException when 
+        key-property="propertyName" did not resolve to a String property.
       </action>
     </release>
 

Modified: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/BeanMap.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/BeanMap.java?rev=754972&r1=754971&r2=754972&view=diff
==============================================================================
--- cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/BeanMap.java (original)
+++ cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/BeanMap.java Mon Mar 16 18:20:54 2009
@@ -20,7 +20,6 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -50,10 +49,10 @@
  * @version $Id$
  * @since 1.0.1
  */
-public class BeanMap implements Map, BeanFactoryAware {
+public class BeanMap implements Map<Object, Object>, BeanFactoryAware {
 
     /** The real map. */
-    protected final Map beanMap = new HashMap();
+    protected final Map<Object, Object> beanMap = new HashMap<Object, Object>();
 
     /** Is the map initialized? */
     protected boolean initialized = false;
@@ -62,7 +61,7 @@
     protected ListableBeanFactory beanFactory;
 
     /** The class for all beans in this map. */
-    protected Class beanClass;
+    protected Class<?> beanClass;
 
     /** Do we strip the prefix from the bean name? */
     protected boolean stripPrefix = true;
@@ -71,35 +70,24 @@
     protected boolean checkParent = true;
 
     /** Do we check for properties? */
-    protected List hasProperties = new ArrayList();
+    protected List<String> hasProperties = new ArrayList<String>();
 
     /** Which property should we use to key the map? */
     protected String keyProperty;
 
     /**
-     * Get all the bean's from the bean factory and put them into a map using
-     * their id.
+     * Get all the beans from the bean factory and put them into a map using their id.
      *
-     * @param beanNames
-     *            The bean names to load.
+     * @param beanNames The bean names to load.
      */
-    protected void load(Set beanNames) {
-        final String prefix1 = this.beanClass.getName() + '.';
-        final String prefix2 = this.beanClass.getName() + '/';
-        final Iterator i = beanNames.iterator();
-        while (i.hasNext()) {
-            final String beanName = (String) i.next();
-            Object key = beanName;
-            if (this.stripPrefix && (beanName.startsWith(prefix1) || beanName.startsWith(prefix2))) {
-                key = beanName.substring(prefix1.length());
-            }
+    protected void load(Set<String> beanNames) {
+        for (String beanName : beanNames) {
+            Object key = this.stripPrefix(beanName);
             if (this.hasProperties.size() > 0) {
                 final Object bean = this.beanFactory.getBean(beanName);
                 final BeanWrapperImpl wrapper = new BeanWrapperImpl(bean);
                 boolean isOk = true;
-                final Iterator iter = this.hasProperties.iterator();
-                while (iter.hasNext()) {
-                    final String propName = (String) iter.next();
+                for (String propName : this.hasProperties) {
                     if (!wrapper.isReadableProperty(propName)) {
                         isOk = false;
                     }
@@ -123,6 +111,18 @@
         }
     }
 
+    protected Object stripPrefix(final String beanName) {
+        final String prefix1 = this.beanClass.getName() + '.';
+        final String prefix2 = this.beanClass.getName() + '/';
+
+        Object key = beanName;
+        if (this.stripPrefix && (beanName.startsWith(prefix1) || beanName.startsWith(prefix2))) {
+            key = beanName.substring(prefix1.length());
+        }
+
+        return key;
+    }
+
     /**
      * Check if the bean is already initialized. If not, the bean's are searched
      * in the bean factory.
@@ -135,7 +135,7 @@
                     // spring
                     // it will just contain an empty map
                     if (this.beanFactory != null) {
-                        final Set beanNames = new HashSet();
+                        final Set<String> beanNames = new HashSet<String>();
                         this.getBeanNames(this.beanFactory, beanNames);
                         this.load(beanNames);
                     }
@@ -153,7 +153,7 @@
      * @param beanNames
      *            The set containing the resulting bean names.
      */
-    protected void getBeanNames(ListableBeanFactory factory, Set beanNames) {
+    protected void getBeanNames(ListableBeanFactory factory, Set<String> beanNames) {
         // check parent first
         if (this.checkParent) {
             if (factory instanceof HierarchicalBeanFactory) {
@@ -164,12 +164,16 @@
             }
         }
         // get all bean names for our class
-        final String[] names = factory.getBeanNamesForType(this.beanClass);
+        final String[] names = this.lookupBeans(factory);
         for (int i = 0; i < names.length; i++) {
             beanNames.add(names[i]);
         }
     }
 
+    protected String[] lookupBeans(ListableBeanFactory factory) {
+        return factory.getBeanNamesForType(this.beanClass);
+    }
+
     /**
      * @see org.springframework.beans.factory.BeanFactoryAware#setBeanFactory(org.springframework.beans.factory.BeanFactory)
      */
@@ -190,7 +194,7 @@
 
     public void setHasProperties(String pHasProperties) {
         final StringTokenizer tokenizer = new StringTokenizer(pHasProperties, " \t\n\r\f,");
-        final List propNames = new ArrayList();
+        final List<String> propNames = new ArrayList<String>();
         while (tokenizer.hasMoreTokens()) {
             propNames.add(tokenizer.nextToken());
         }
@@ -201,7 +205,7 @@
         this.keyProperty = pKeyProperty;
     }
 
-    public void setType(Class typeClass) {
+    public void setType(Class<?> typeClass) {
         this.beanClass = typeClass;
     }
 
@@ -233,7 +237,7 @@
     /**
      * @see java.util.Map#entrySet()
      */
-    public Set entrySet() {
+    public Set<Entry<Object, Object>> entrySet() {
         this.checkInit();
         return this.beanMap.entrySet();
     }
@@ -257,7 +261,7 @@
     /**
      * @see java.util.Map#keySet()
      */
-    public Set keySet() {
+    public Set<Object> keySet() {
         this.checkInit();
         return this.beanMap.keySet();
     }
@@ -273,7 +277,7 @@
     /**
      * @see java.util.Map#putAll(java.util.Map)
      */
-    public void putAll(Map t) {
+    public void putAll(Map<?, ?> t) {
         this.checkInit();
         this.beanMap.putAll(t);
     }
@@ -297,7 +301,7 @@
     /**
      * @see java.util.Map#values()
      */
-    public Collection values() {
+    public Collection<Object> values() {
         this.checkInit();
         return this.beanMap.values();
     }
@@ -305,6 +309,7 @@
     /**
      * @see java.lang.Object#equals(java.lang.Object)
      */
+    @Override
     public boolean equals(Object obj) {
         this.checkInit();
         return this.beanMap.equals(obj);
@@ -313,6 +318,7 @@
     /**
      * @see java.lang.Object#hashCode()
      */
+    @Override
     public int hashCode() {
         this.checkInit();
         return this.beanMap.hashCode();
@@ -321,6 +327,7 @@
     /**
      * @see java.lang.Object#toString()
      */
+    @Override
     public String toString() {
         this.checkInit();
         return this.beanMap.toString();

Modified: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/ConfiguratorNamespaceHandler.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/ConfiguratorNamespaceHandler.java?rev=754972&r1=754971&r2=754972&view=diff
==============================================================================
--- cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/ConfiguratorNamespaceHandler.java (original)
+++ cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/ConfiguratorNamespaceHandler.java Mon Mar 16 18:20:54 2009
@@ -19,15 +19,17 @@
 import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
 
 /**
- * Spring namespace handler for the cocoon core namespace.
- * Currently this namespace defines the following elements
- * (in the namespace "http://cocoon.apache.org/schema/configurator"):
- * "settings" : This sets up the Cocoon Settings object (by reading the property
- *              files located under /WEB-INF/cocoon/properties.
- *              By specifying the attribute "processorClassName" an own implementation
- *              can be used (this should be a subclass of the {@link SettingsBeanFactoryPostProcessor}).
- * "child-settings" : This sets up a sub context.
- * "bean-map" : Creates a bean map.
+ * Spring namespace handler for the cocoon core namespace. Currently this namespace defines the
+ * following elements (in the namespace "http://cocoon.apache.org/schema/configurator"):
+ * <ul>
+ * <li>"settings": This sets up the Cocoon Settings object (by reading the property files located
+ * under /WEB-INF/cocoon/properties. By specifying the attribute "processorClassName" an own
+ * implementation can be used (this should be a subclass of the
+ * {@link SettingsBeanFactoryPostProcessor}).</li>
+ * <li>"child-settings" : This sets up a sub context.</li>
+ * <li>"bean-map" : Creates a bean map. "wildcard-bean-map" : Creates a bean map by matching the
+ * bean name against a wildcard expression.</li>
+ * </ul>
  *
  * @version $Id$
  * @since 1.0
@@ -38,8 +40,9 @@
      * @see org.springframework.beans.factory.xml.NamespaceHandler#init()
      */
     public void init() {
-        registerBeanDefinitionParser("settings", new SettingsElementParser());
-        registerBeanDefinitionParser("child-settings", new ChildSettingsElementParser());
-        registerBeanDefinitionParser("bean-map", new BeanMapElementParser());
+        this.registerBeanDefinitionParser("settings", new SettingsElementParser());
+        this.registerBeanDefinitionParser("child-settings", new ChildSettingsElementParser());
+        this.registerBeanDefinitionParser("bean-map", new BeanMapElementParser());
+        this.registerBeanDefinitionParser("wildcard-bean-map", new WildcardBeanMapElementParser());
     }
 }

Added: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java?rev=754972&view=auto
==============================================================================
--- cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java (added)
+++ cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java Mon Mar 16 18:20:54 2009
@@ -0,0 +1,69 @@
+/*
+ * 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.cocoon.spring.configurator.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.ListableBeanFactory;
+import org.springframework.util.PatternMatchUtils;
+
+/**
+ * Similar to the {@link BeanMap} it collects beans from a {@link BeanFactory}. But instead of
+ * checking the type of the bean, its bean name is matched against a wildcard expression (e.g.
+ * <code>some.beans.*</code>).
+ *
+ * @see BeanMap
+ */
+public class WildcardBeanMap extends BeanMap {
+
+    protected String wildcard;
+
+    public String getWildcard() {
+        return this.wildcard;
+    }
+
+    public void setWildcard(String wildcard) {
+        this.wildcard = wildcard;
+    }
+
+    /**
+     * Find all beans that match the wildcard expression. Expression resolving is done based on the
+     * default Spring wildcard pattern matching
+     * {@link PatternMatchUtils#simpleMatch(String, String)}.
+     *
+     * @see org.apache.cocoon.spring.configurator.impl.BeanMap#lookupBeans(org.springframework.beans.factory.ListableBeanFactory)
+     */
+    @Override
+    protected String[] lookupBeans(ListableBeanFactory factory) {
+        List<String> filteredBeanNames = new ArrayList<String>();
+
+        for (String beanName : factory.getBeanNamesForType(null)) {
+            if (PatternMatchUtils.simpleMatch(this.wildcard, beanName)) {
+                filteredBeanNames.add(beanName);
+            }
+        }
+
+        return filteredBeanNames.toArray(new String[0]);
+    }
+
+    @Override
+    protected Object stripPrefix(String beanName) {
+        return beanName;
+    }
+}

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMap.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java?rev=754972&view=auto
==============================================================================
--- cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java (added)
+++ cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java Mon Mar 16 18:20:54 2009
@@ -0,0 +1,56 @@
+/*
+ * 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.cocoon.spring.configurator.impl;
+
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.RootBeanDefinition;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Element;
+
+/**
+ * The parser for the wildcard-bean-map element.
+ *
+ * @version $Id$
+ * @since 1.0.1
+ */
+public class WildcardBeanMapElementParser extends BeanMapElementParser {
+
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.apache.cocoon.spring.configurator.impl.BeanMapElementParser#parse(org.w3c.dom.Element,
+     *      org.springframework.beans.factory.xml.ParserContext)
+     */
+    @Override
+    public BeanDefinition parse(Element element, ParserContext parserContext) {
+        // create a new bean definition for the aspect chain
+        RootBeanDefinition beanDef = this.createBeanDefinition(WildcardBeanMap.class, null, false);
+        beanDef.getPropertyValues().addPropertyValue("wildcard", this.getAttributeValue(element, "wildcard", null));
+        beanDef.getPropertyValues().addPropertyValue("checkParent",
+                this.getAttributeValue(element, "check-parent", "true"));
+        beanDef.getPropertyValues().addPropertyValue("hasProperties",
+                this.getAttributeValue(element, "has-properties", ""));
+        beanDef.getPropertyValues()
+                .addPropertyValue("keyProperty", this.getAttributeValue(element, "key-property", ""));
+
+        // register bean if it's a global definition
+        if (!parserContext.isNested()) {
+            this.register(beanDef, element, parserContext.getRegistry());
+        }
+        return beanDef;
+    }
+}

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/configurator/impl/WildcardBeanMapElementParser.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/META-INF/spring.schemas
URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/META-INF/spring.schemas?rev=754972&r1=754971&r2=754972&view=diff
==============================================================================
--- cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/META-INF/spring.schemas (original)
+++ cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/META-INF/spring.schemas Mon Mar 16 18:20:54 2009
@@ -15,3 +15,5 @@
 #
 http\://cocoon.apache.org/schema/configurator/cocoon-configurator-1.0.xsd=org/apache/cocoon/spring/configurator/schema/cocoon-configurator-1.0.xsd
 http\://cocoon.apache.org/schema/configurator/cocoon-configurator-1.0.1.xsd=org/apache/cocoon/spring/configurator/schema/cocoon-configurator-1.0.1.xsd
+http\://cocoon.apache.org/schema/configurator/cocoon-configurator-2.0.0.xsd=org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.0.0.xsd
+http\://cocoon.apache.org/schema/configurator/cocoon-configurator-2.1.0.xsd=org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd
\ No newline at end of file

Added: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd
URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd?rev=754972&view=auto
==============================================================================
--- cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd (added)
+++ cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd Mon Mar 16 18:20:54 2009
@@ -0,0 +1,116 @@
+<?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.
+-->
+<!-- $Id$ -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://cocoon.apache.org/schema/configurator"
+            xmlns:tns="http://cocoon.apache.org/schema/configurator"
+            xmlns="http://cocoon.apache.org/schema/configurator">
+
+  <xsd:element name="settings">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="include-beans" minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element ref="include-properties" minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element ref="filter" minOccurs="0" maxOccurs="1"/>
+        <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="runningMode" type="xsd:string" use="optional"/>
+      <xsd:attribute name="readFromClasspath" type="xsd:boolean" use="optional"/>
+      <xsd:attribute name="readFromGlobalLocation" type="xsd:boolean" use="optional"/>
+      <xsd:attribute name="extractBlockResources" type="xsd:boolean" use="optional"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name="child-settings">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="include-beans" minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element ref="include-properties" minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="name" type="xsd:string" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name="include-beans">
+    <xsd:complexType>
+      <xsd:attribute name="dir" type="xsd:string" use="optional"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name="include-properties">
+    <xsd:complexType>
+      <xsd:attribute name="dir" type="xsd:string" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name="filter">
+    <xsd:complexType>
+      <xsd:attribute name="class" type="xsd:string" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name="property">
+    <xsd:complexType>
+      <xsd:attribute name="name" type="xsd:string" use="required"/>
+      <xsd:attribute name="value" type="xsd:string" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <!-- Since 1.0.1 -->
+  <xsd:element name="bean-map">
+    <xsd:complexType>
+      <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+      <xsd:attribute name="name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="type" type="xsd:string" use="required"/>
+      <xsd:attribute name="check-parent" type="xsd:boolean" use="optional" default="true"/>
+      <xsd:attribute name="strip-prefix" type="xsd:boolean" use="optional" default="true"/>
+      <xsd:attribute name="has-properties" type="xsd:string" use="optional" default="">
+        <xsd:annotation>
+          <xsd:documentation>beans should have all these properties (comma separated list)</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="key-property" type="xsd:string" use="optional" default="">
+        <xsd:annotation>
+          <xsd:documentation>use value of this bean property to key the map instead of bean id</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+    </xsd:complexType>
+  </xsd:element>
+  
+  
+  <!-- Since 2.0.1 -->
+  <xsd:element name="wildcard-bean-map">
+    <xsd:complexType>
+      <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+      <xsd:attribute name="name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="wildcard" type="xsd:string" use="required"/>
+      <xsd:attribute name="check-parent" type="xsd:boolean" use="optional" default="true"/>
+      <xsd:attribute name="has-properties" type="xsd:string" use="optional" default="">
+        <xsd:annotation>
+          <xsd:documentation>beans should have all these properties (comma separated list)</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="key-property" type="xsd:string" use="optional" default="">
+        <xsd:annotation>
+          <xsd:documentation>use value of this bean property to key the map instead of bean id</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+    </xsd:complexType>
+  </xsd:element>  
+</xsd:schema>

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/subprojects/cocoon-configuration/cocoon-spring-configurator/src/main/resources/org/apache/cocoon/spring/configurator/schema/cocoon-configurator-2.1.0.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml