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/06/25 17:42:32 UTC
svn commit: r417025 -
/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
Author: cziegeler
Date: Sun Jun 25 08:42:32 2006
New Revision: 417025
URL: http://svn.apache.org/viewvc?rev=417025&view=rev
Log:
Add default includes
Modified:
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java?rev=417025&r1=417024&r2=417025&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java Sun Jun 25 08:42:32 2006
@@ -101,6 +101,12 @@
extends AbstractLogEnabled
implements TreeBuilder, Contextualizable, Serviceable, Recyclable, BeanFactoryAware {
+ private static final String DEFAULT_CONFIG_PROPERTIES = "config/properties";
+
+ private static final String DEFAULT_CONFIG_XCONF = "config/xconf";
+
+ private static final String DEFAULT_CONFIG_SPRING = "config/spring";
+
private static final String CLASSLOADER_CONFIG_NAME = "classloader";
// Regexp's for splitting expressions
@@ -377,8 +383,15 @@
getLogger().debug("Sitemap has no components definition at " + tree.getLocation());
}
}
- // Context and manager and classloader for the sitemap we build
-
+
+ // by default we include configuration files and properties from
+ // predefined locations
+ boolean useDefaultIncludes = true;
+ if ( componentConfig != null ) {
+ useDefaultIncludes = componentConfig.getAttributeAsBoolean("use-default-includes", true);
+ }
+
+ // Context and manager and classloader for the sitemap we build
final Context itsContext = createContext(tree);
// TODO Get factory from spring
@@ -389,7 +402,7 @@
Settings settings = (Settings)factory.getCurrentBeanFactory(itsContext).getBean(ProcessingUtil.SETTINGS_ROLE);
if ( componentConfig != null && componentConfig.getAttribute("property-dir", null) != null ) {
final String propertyDir = componentConfig.getAttribute("property-dir");
- settings = this.createSettings(settings, propertyDir);
+ settings = this.createSettings(settings, propertyDir, useDefaultIncludes);
}
// compatibility with 2.1.x - check for global variables in sitemap
// TODO - This will be removed in later versions!
@@ -434,6 +447,41 @@
if ( classPathConfig != null ) {
c.removeChild(classPathConfig);
}
+ // and now add default includes
+ if ( useDefaultIncludes ) {
+ final SourceResolver resolver = this.processor.getSourceResolver();
+ Source directory = null;
+ try {
+ directory = resolver.resolveURI(DEFAULT_CONFIG_XCONF, null, CONTEXT_PARAMETERS);
+ if (directory.exists() && directory instanceof TraversableSource) {
+ final DefaultConfiguration includeElement = new DefaultConfiguration("include",
+ c.getLocation(),
+ c.getNamespace(),
+ "");
+ includeElement.setAttribute("dir", DEFAULT_CONFIG_XCONF);
+ includeElement.setAttribute("pattern", "*.xconf");
+ c.addChild(includeElement);
+ }
+ } finally {
+ resolver.release(directory);
+ directory = null;
+ }
+ try {
+ directory = resolver.resolveURI(DEFAULT_CONFIG_SPRING, null, CONTEXT_PARAMETERS);
+ if (directory.exists() && directory instanceof TraversableSource) {
+ final DefaultConfiguration includeElement = new DefaultConfiguration("include-beans",
+ c.getLocation(),
+ c.getNamespace(),
+ "");
+ includeElement.setAttribute("dir", DEFAULT_CONFIG_SPRING);
+ includeElement.setAttribute("pattern", "*.xml");
+ c.addChild(includeElement);
+ }
+ } finally {
+ resolver.release(directory);
+ directory = null;
+ }
+ }
componentConfig = c;
}
@@ -1093,12 +1141,21 @@
*
* @return A new Settings object
*/
- protected MutableSettings createSettings(Settings parent, String directory) {
+ protected MutableSettings createSettings(Settings parent,
+ String directory,
+ boolean useDefaultIncludes) {
// get the running mode
final String mode = System.getProperty(Settings.PROPERTY_RUNNING_MODE, Settings.DEFAULT_RUNNING_MODE);
// create an empty settings objects
final MutableSettings s = new MutableSettings(parent);
+
+ // read properties from default includes
+ if ( useDefaultIncludes ) {
+ this.readProperties(SitemapLanguage.DEFAULT_CONFIG_PROPERTIES, s);
+ // read all properties from the mode dependent directory
+ this.readProperties(SitemapLanguage.DEFAULT_CONFIG_PROPERTIES + '/' + mode, s);
+ }
// now read all properties from the properties directory
this.readProperties(directory, s);