You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/12/29 19:06:28 UTC

svn commit: r491066 - in /cocoon/trunk/core: cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/ cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/ cocoon-sitemap/cocoon-site...

Author: cziegeler
Date: Fri Dec 29 10:06:27 2006
New Revision: 491066

URL: http://svn.apache.org/viewvc?view=rev&rev=491066
Log:
Read properties from WEB-INF/cocoon/* as well

Modified:
    cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/BlockResourcesHolder.java
    cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/WebAppContextUtils.java
    cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/AbstractElementParser.java
    cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DefaultBlockResourcesHolder.java
    cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DeploymentUtil.java
    cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsBeanFactoryPostProcessor.java
    cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsElementParser.java
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/SitemapElementParser.java

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/BlockResourcesHolder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/BlockResourcesHolder.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/BlockResourcesHolder.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/BlockResourcesHolder.java Fri Dec 29 10:06:27 2006
@@ -19,9 +19,10 @@
 import java.util.Map;
 
 /**
- * FIXME: Perhaps someone has a better name?!?
- * @version $Id$
+ * This component provides a map with the deployed block resources.
  *
+ * @version $Id$
+ * @since 1.0
  */
 public interface BlockResourcesHolder {
 

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/WebAppContextUtils.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/WebAppContextUtils.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/WebAppContextUtils.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/WebAppContextUtils.java Fri Dec 29 10:06:27 2006
@@ -25,7 +25,10 @@
 import org.springframework.web.context.support.WebApplicationContextUtils;
 
 /**
+ * Utility class to manage hierarchical application contexts.
+ *
  * @version $Id$
+ * @since 1.0
  */
 public abstract class WebAppContextUtils {
 

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/AbstractElementParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/AbstractElementParser.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/AbstractElementParser.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/AbstractElementParser.java Fri Dec 29 10:06:27 2006
@@ -20,7 +20,7 @@
 
 import java.io.IOException;
 import java.util.Arrays;
-import java.util.Collections;
+import java.util.List;
 
 import org.apache.cocoon.configuration.Settings;
 import org.apache.cocoon.spring.ResourceUtils;
@@ -43,8 +43,7 @@
  * This is a base class for all bean definition parsers used in Cocoon. It
  * provides some utility methods.
  * 
- * @version $Id: AbstractElementParser.java 463297 2006-10-12 16:03:45Z
- *          cziegeler $
+ * @version $Id$
  * @since 1.0
  */
 public abstract class AbstractElementParser implements BeanDefinitionParser {
@@ -267,16 +266,16 @@
 
     /**
      * Register a property placeholder configurer. The configurer will read all
-     * *.properties files from the specified location.
+     * *.properties files from the specified locations.
      * 
      * @param parserContext
-     * @param location
+     * @param locations
      */
     protected void registerPropertyOverrideConfigurer(final ParserContext parserContext,
-                                                      final String        location) {
+                                                      final List          locations) {
         final RootBeanDefinition beanDef = this.createBeanDefinition(CocoonPropertyOverrideConfigurer.class.getName(),
                 null, true);
-        beanDef.getPropertyValues().addPropertyValue("locations", Collections.singletonList(location));
+        beanDef.getPropertyValues().addPropertyValue("locations", locations);
         beanDef.getPropertyValues().addPropertyValue("resourceLoader",
                 parserContext.getReaderContext().getReader().getResourceLoader());
         beanDef.getPropertyValues().addPropertyValue("beanNameSeparator", "/");

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DefaultBlockResourcesHolder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DefaultBlockResourcesHolder.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DefaultBlockResourcesHolder.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DefaultBlockResourcesHolder.java Fri Dec 29 10:06:27 2006
@@ -23,9 +23,10 @@
 import org.apache.cocoon.spring.BlockResourcesHolder;
 
 /**
- * FIXME: Perhaps someone has a better name?!?
- * @version $Id$
+ * Default implementation of a {@link BlockResourceHolder}.
  *
+ * @version $Id$
+ * @since 1.0
  */
 public class DefaultBlockResourcesHolder
     implements BlockResourcesHolder {

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DeploymentUtil.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DeploymentUtil.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DeploymentUtil.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/DeploymentUtil.java Fri Dec 29 10:06:27 2006
@@ -37,7 +37,7 @@
  * Helper class for deploying resources from the block artifacts.
  *
  * @version $Id$
- * @since 2.2
+ * @since 1.0
  */
 public class DeploymentUtil {
 

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsBeanFactoryPostProcessor.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsBeanFactoryPostProcessor.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsBeanFactoryPostProcessor.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsBeanFactoryPostProcessor.java Fri Dec 29 10:06:27 2006
@@ -164,11 +164,18 @@
         // create an empty properties object
         final Properties properties = new Properties();
 
-        // now read all properties from the properties directory
+        // now read all properties from classpath directory
         ResourceUtils.readProperties(org.apache.cocoon.spring.impl.Constants.CLASSPATH_PROPERTIES_LOCATION,
                 properties, this.getResourceLoader(), this.logger);
         // read all properties from the mode dependent directory
         ResourceUtils.readProperties(org.apache.cocoon.spring.impl.Constants.CLASSPATH_PROPERTIES_LOCATION
+                + "/" + mode, properties, this.getResourceLoader(), this.logger);
+
+        // now read all properties from the properties directory
+        ResourceUtils.readProperties(org.apache.cocoon.spring.impl.Constants.GLOBAL_PROPERTIES_LOCATION,
+                properties, this.getResourceLoader(), this.logger);
+        // read all properties from the mode dependent directory
+        ResourceUtils.readProperties(org.apache.cocoon.spring.impl.Constants.GLOBAL_PROPERTIES_LOCATION
                 + "/" + mode, properties, this.getResourceLoader(), this.logger);
 
         // fill from the servlet context

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsElementParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsElementParser.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsElementParser.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/spring/impl/SettingsElementParser.java Fri Dec 29 10:06:27 2006
@@ -18,6 +18,9 @@
  */
 package org.apache.cocoon.spring.impl;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.servlet.ServletContext;
 
 import org.apache.cocoon.configuration.Settings;
@@ -33,8 +36,7 @@
  * 
  * @see SitemapNamespaceHandler
  * @see SettingsBeanFactoryPostProcessor
- * @version $Id: SettingsElementParser.java 470732 2006-11-03 09:10:13Z
- *          cziegeler $
+ * @version $Id$
  * @since 1.0
  */
 public class SettingsElementParser extends AbstractElementParser {
@@ -53,8 +55,6 @@
      *      org.springframework.beans.factory.xml.ParserContext)
      */
     public BeanDefinition parse(Element element, ParserContext parserContext) {
-        final String springConfigLocation = this.getAttributeValue(element, "location",
-                Constants.CLASSPATH_SPRING_CONFIGURATION_LOCATION);
 
         // create bean definition for settings object
         final String componentClassName = this.getAttributeValue(element, PROCESSOR_CLASS_NAME_ATTR,
@@ -69,7 +69,15 @@
         this.register(beanDef, Settings.ROLE, parserContext.getRegistry());
 
         // register a PropertyPlaceholderConfigurer
-        this.registerPropertyOverrideConfigurer(parserContext, springConfigLocation);
+        // we create a list with the default locations and add the optional location attribute
+        final List locations = new ArrayList();
+        locations.add(Constants.CLASSPATH_SPRING_CONFIGURATION_LOCATION);
+        locations.add(Constants.GLOBAL_SPRING_CONFIGURATION_LOCATION);
+        final String springConfigLocation = this.getAttributeValue(element, "location", null);
+        if ( springConfigLocation != null ) {
+            locations.add(springConfigLocation);
+        }
+        this.registerPropertyOverrideConfigurer(parserContext, locations);
 
         // add the servlet context as a bean
         this.addComponent(ServletContextFactoryBean.class.getName(),

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/SitemapElementParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/SitemapElementParser.java?view=diff&rev=491066&r1=491065&r2=491066
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/SitemapElementParser.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/SitemapElementParser.java Fri Dec 29 10:06:27 2006
@@ -19,6 +19,7 @@
 package org.apache.cocoon.core.container.spring;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
@@ -131,7 +132,7 @@
 
             // register a PropertyPlaceholderConfigurer
             if ( useDefaultIncludes ) {
-                this.registerPropertyOverrideConfigurer(parserContext, Constants.DEFAULT_CHILD_SPRING_CONFIGURATION_LOCATION);
+                this.registerPropertyOverrideConfigurer(parserContext, Collections.singletonList(Constants.DEFAULT_CHILD_SPRING_CONFIGURATION_LOCATION));
             }
             
             RootBeanDefinition def =  this.createBeanDefinition(SubSettingsBeanFactoryPostProcessor.class.getName(),