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/03/22 22:10:12 UTC

svn commit: r387948 - in /cocoon/trunk/cocoon-core/src: main/java/org/apache/cocoon/components/treeprocessor/sitemap/ main/java/org/apache/cocoon/core/container/spring/ test/java/org/apache/cocoon/core/container/

Author: cziegeler
Date: Wed Mar 22 13:10:09 2006
New Revision: 387948

URL: http://svn.apache.org/viewcvs?rev=387948&view=rev
Log:
Fix bean hierarchy handling

Added:
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/TestBean.java   (with props)
Modified:
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/BeanFactoryUtil.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java
    cocoon/trunk/cocoon-core/src/test/java/org/apache/cocoon/core/container/ContainerTestCase.java

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java?rev=387948&r1=387947&r2=387948&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java Wed Mar 22 13:10:09 2006
@@ -644,9 +644,9 @@
         // first, get the correct parent
         ConfigurableListableBeanFactory parentFactory = this.beanFactory;
         final Request request = ContextHelper.getRequest(context);
-        if (request.getAttribute(CocoonBeanFactory.BEAN_FACTORY_REQUEST_ATTRIBUTE) != null) {
+        if (request.getAttribute(CocoonBeanFactory.BEAN_FACTORY_REQUEST_ATTRIBUTE, Request.REQUEST_SCOPE) != null) {
             parentFactory = (ConfigurableListableBeanFactory) request
-                    .getAttribute(CocoonBeanFactory.BEAN_FACTORY_REQUEST_ATTRIBUTE);
+                    .getAttribute(CocoonBeanFactory.BEAN_FACTORY_REQUEST_ATTRIBUTE, Request.REQUEST_SCOPE);
         }
 
         if ( config != null ) {
@@ -658,7 +658,7 @@
             ae.settings = (Settings) this.beanFactory.getBean(Settings.ROLE);
             final ConfigurationInfo parentConfigInfo = (ConfigurationInfo) parentFactory
                     .getBean(ConfigurationInfo.class.getName());
-            final ConfigurationInfo ci = ConfigReader.readConfiguration(config, parentConfigInfo, ae);
+            final ConfigurationInfo ci = ConfigReader.readConfiguration(config, parentConfigInfo, ae, this.processor.getSourceResolver());
     
             return BeanFactoryUtil.createBeanFactory(ae, ci, parentFactory, false);
         }

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/BeanFactoryUtil.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/BeanFactoryUtil.java?rev=387948&r1=387947&r2=387948&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/BeanFactoryUtil.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/BeanFactoryUtil.java Wed Mar 22 13:10:09 2006
@@ -28,7 +28,6 @@
 import org.apache.avalon.framework.configuration.DefaultConfiguration;
 import org.apache.avalon.framework.context.Context;
 import org.apache.avalon.framework.context.DefaultContext;
-import org.apache.avalon.framework.logger.ConsoleLogger;
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.cocoon.ProcessingUtil;
 import org.apache.cocoon.acting.Action;
@@ -154,9 +153,8 @@
     protected static Logger initLogger(ServletContext servletContext,
                                        Settings       settings)
     throws Exception {
-        return new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
         // create a bootstrap logger
-     /*   int logLevel;
+        int logLevel;
         final String logLevelString = settings.getBootstrapLogLevel();
         if ( "DEBUG".equalsIgnoreCase(logLevelString) ) {
             logLevel = ServletLogger.LEVEL_DEBUG;
@@ -209,7 +207,7 @@
         if (accesslogger == null) {
             accesslogger = "cocoon";
         }
-        return loggerManager.getLoggerForCategory(accesslogger);*/
+        return loggerManager.getLoggerForCategory(accesslogger);
     }
 
     protected static void changeLogLevel(Configuration[] configs, String level) {
@@ -288,7 +286,7 @@
             ae.settings = (Settings) this.beanFactory.getBean(Settings.ROLE);
             final ConfigurationInfo parentConfigInfo = (ConfigurationInfo) parentFactory
                     .getBean(ConfigurationInfo.class.getName());
-            final ConfigurationInfo ci = ConfigReader.readConfiguration(config, parentConfigInfo, ae);
+            final ConfigurationInfo ci = ConfigReader.readConfiguration(config, parentConfigInfo, ae, null);
     
             return BeanFactoryUtil.createBeanFactory(ae, ci, parentFactory, false);
         }

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java?rev=387948&r1=387947&r2=387948&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java Wed Mar 22 13:10:09 2006
@@ -32,6 +32,7 @@
 import org.apache.cocoon.core.container.util.SimpleSourceResolver;
 import org.apache.cocoon.matching.helpers.WildcardHelper;
 import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.TraversableSource;
 
 /**
@@ -47,7 +48,7 @@
     protected static final Map CONTEXT_PARAMETERS = Collections.singletonMap("force-traversable", Boolean.TRUE);
 
     /** Source resolver for reading configuration files. */
-    protected final SimpleSourceResolver resolver;
+    protected final SourceResolver resolver;
 
     /** The configuration info. */
     protected final ConfigurationInfo configInfo;
@@ -57,26 +58,32 @@
 
     public static ConfigurationInfo readConfiguration(String source, AvalonEnvironment env)
     throws Exception {
-        final ConfigReader converter = new ConfigReader(env, null);
+        final ConfigReader converter = new ConfigReader(env, null, null);
         converter.convert(source);
         return converter.configInfo;
     }
 
-    public static ConfigurationInfo readConfiguration(Configuration config,
+    public static ConfigurationInfo readConfiguration(Configuration     config,
                                                       ConfigurationInfo parentInfo,
-                                                      AvalonEnvironment env)
+                                                      AvalonEnvironment env,
+                                                      SourceResolver    resolver)
     throws Exception {
-        final ConfigReader converter = new ConfigReader(env, parentInfo);
+        final ConfigReader converter = new ConfigReader(env, parentInfo, resolver);
         converter.convert(config, null);
         return converter.configInfo;        
     }
 
-    private ConfigReader(AvalonEnvironment env, ConfigurationInfo parentInfo)
+    private ConfigReader(AvalonEnvironment env,
+                         ConfigurationInfo parentInfo,
+                         SourceResolver    resolver)
     throws Exception {
-        this.resolver = new SimpleSourceResolver();
-        this.resolver.enableLogging(env.logger);
-        this.resolver.contextualize(env.context);
-
+        if ( resolver != null ) {
+            this.resolver = resolver;
+        } else {
+            this.resolver = new SimpleSourceResolver();
+            ((SimpleSourceResolver)this.resolver).enableLogging(env.logger);
+            ((SimpleSourceResolver)this.resolver).contextualize(env.context);
+        }
         this.enableLogging(env.logger);
         this.environment = env;
 

Added: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/TestBean.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/TestBean.java?rev=387948&view=auto
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/TestBean.java (added)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/TestBean.java Wed Mar 22 13:10:09 2006
@@ -0,0 +1,52 @@
+/* 
+ * Copyright 2006 The Apache Software Foundation
+ * Licensed  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.core.container.spring;
+
+import org.apache.cocoon.core.Settings;
+
+/**
+ * This is a simple test bean.
+ * $Id$
+ */
+public class TestBean {
+
+    protected String message;
+
+    protected Settings settings;
+
+    protected String javaVersion;
+
+    public TestBean() {
+        this.message = "Hello World from Spring";    
+    }
+    public String getMessage() {
+        return this.message;
+    }
+    public String getJavaVersion() {
+        return javaVersion;
+    }
+    public void setJavaVersion(String javaVersion) {
+        this.javaVersion = javaVersion;
+    }
+    public Settings getSettings() {
+        return settings;
+    }
+    public void setSettings(Settings settings) {
+        this.settings = settings;
+    }
+
+}

Propchange: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/TestBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/TestBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/cocoon-core/src/test/java/org/apache/cocoon/core/container/ContainerTestCase.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/test/java/org/apache/cocoon/core/container/ContainerTestCase.java?rev=387948&r1=387947&r2=387948&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/test/java/org/apache/cocoon/core/container/ContainerTestCase.java (original)
+++ cocoon/trunk/cocoon-core/src/test/java/org/apache/cocoon/core/container/ContainerTestCase.java Wed Mar 22 13:10:09 2006
@@ -295,11 +295,11 @@
 
         this.rootBeanFactory = BeanFactoryUtil.createRootBeanFactory(avalonEnv);
         // read roles
-        ConfigurationInfo rolesInfo = ConfigReader.readConfiguration(confRM, null, avalonEnv);
+        ConfigurationInfo rolesInfo = ConfigReader.readConfiguration(confRM, null, avalonEnv, null);
         ConfigurableListableBeanFactory rolesContext = BeanFactoryUtil.createBeanFactory(avalonEnv, rolesInfo, this.rootBeanFactory, true);
 
         // read components
-        ConfigurationInfo componentsInfo = ConfigReader.readConfiguration(confCM, rolesInfo, avalonEnv);
+        ConfigurationInfo componentsInfo = ConfigReader.readConfiguration(confCM, rolesInfo, avalonEnv, null);
         this.addComponents( componentsInfo );
         ConfigurableListableBeanFactory componentsContext = BeanFactoryUtil.createBeanFactory(avalonEnv, componentsInfo, rolesContext, false);