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/25 23:46:48 UTC

svn commit: r490196 - /cocoon/trunk/core/cocoon-xml/cocoon-xml-impl/src/main/java/org/apache/cocoon/core/xml/impl/AbstractJaxpParser.java

Author: cziegeler
Date: Mon Dec 25 14:46:48 2006
New Revision: 490196

URL: http://svn.apache.org/viewvc?view=rev&rev=490196
Log:
Search for resolver by default

Modified:
    cocoon/trunk/core/cocoon-xml/cocoon-xml-impl/src/main/java/org/apache/cocoon/core/xml/impl/AbstractJaxpParser.java

Modified: cocoon/trunk/core/cocoon-xml/cocoon-xml-impl/src/main/java/org/apache/cocoon/core/xml/impl/AbstractJaxpParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-xml/cocoon-xml-impl/src/main/java/org/apache/cocoon/core/xml/impl/AbstractJaxpParser.java?view=diff&rev=490196&r1=490195&r2=490196
==============================================================================
--- cocoon/trunk/core/cocoon-xml/cocoon-xml-impl/src/main/java/org/apache/cocoon/core/xml/impl/AbstractJaxpParser.java (original)
+++ cocoon/trunk/core/cocoon-xml/cocoon-xml-impl/src/main/java/org/apache/cocoon/core/xml/impl/AbstractJaxpParser.java Mon Dec 25 14:46:48 2006
@@ -18,6 +18,9 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
 import org.xml.sax.EntityResolver;
 
 /**
@@ -29,7 +32,10 @@
  * @version $Id$
  * @since 2.2
  */
-public abstract class AbstractJaxpParser {
+public abstract class AbstractJaxpParser implements BeanFactoryAware {
+
+    /** By default we use the logger for this class. */
+    private Log logger = LogFactory.getLog(getClass());
 
     /** the Entity Resolver */
     protected EntityResolver resolver;
@@ -37,10 +43,10 @@
     /** Do we want to validate? */
     protected boolean validate = false;
 
-    /** By default we use the logger for this class. */
-    private Log logger = LogFactory.getLog(getClass());
+    /** Do we search for a resolver if it is not configured? */
+    protected boolean searchResolver = true;
 
-    public Log getLogger() {
+    protected Log getLogger() {
         return this.logger;
     }
 
@@ -71,6 +77,14 @@
         this.validate = validate;
     }
 
+    public boolean isSearchResolver() {
+        return searchResolver;
+    }
+
+    public void setSearchResolver(boolean searchResolver) {
+        this.searchResolver = searchResolver;
+    }
+
     /**
      * Load a class
      */
@@ -80,5 +94,23 @@
             loader = getClass().getClassLoader();
         }
         return loader.loadClass( name );
+    }
+
+    /**
+     * @see org.springframework.beans.factory.BeanFactoryAware#setBeanFactory(org.springframework.beans.factory.BeanFactory)
+     */
+    public void setBeanFactory(BeanFactory factory) throws BeansException {
+        // we search for a resolver if we don't have one already 
+        if ( this.resolver == null && this.searchResolver ) {
+            if ( this.getLogger().isDebugEnabled() ) {
+                this.getLogger().debug("Searching for entity resolver in factory: " + factory);
+            }
+            if ( factory.containsBean(EntityResolver.class.getName()) ) {
+                this.resolver = (EntityResolver) factory.getBean(EntityResolver.class.getName());
+                if ( this.getLogger().isDebugEnabled() ) {
+                    this.getLogger().debug("Set resolver to: " + this.resolver);
+                }
+            }
+        }
     }
 }