You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by bl...@apache.org on 2001/01/16 16:27:02 UTC

cvs commit: xml-cocoon/src/org/apache/cocoon Cocoon.java DefaultComponentManager.java

bloritsch    01/01/16 07:27:02

  Modified:    src/org/apache/cocoon Tag: xml-cocoon2 Cocoon.java
                        DefaultComponentManager.java
  Log:
  Fixes for step 2 of cocoon.xconf complexity cleanup
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.43  +29 -3     xml-cocoon/src/org/apache/cocoon/Cocoon.java
  
  Index: Cocoon.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/Cocoon.java,v
  retrieving revision 1.4.2.42
  retrieving revision 1.4.2.43
  diff -u -r1.4.2.42 -r1.4.2.43
  --- Cocoon.java	2001/01/15 04:45:42	1.4.2.42
  +++ Cocoon.java	2001/01/16 15:26:59	1.4.2.43
  @@ -47,7 +47,7 @@
    * @author <a href="mailto:fumagalli@exoffice.com">Pierpaolo Fumagalli</a>
    *         (Apache Software Foundation, Exoffice Technologies)
    * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.4.2.42 $ $Date: 2001/01/15 04:45:42 $
  + * @version CVS $Revision: 1.4.2.43 $ $Date: 2001/01/16 15:26:59 $
    */
   public class Cocoon
     implements Component, Configurable, ComponentManager, Modifiable, Processor, Constants {
  @@ -113,7 +113,7 @@
       public Cocoon(final URL configurationFile, final String classpath, File workDir, final String root)
       throws SAXException,
              IOException,
  -	   ConfigurationException,
  +       ConfigurationException,
              ComponentManagerException {
           this();
   
  @@ -191,12 +191,16 @@
               Configuration co = (Configuration) e.next();
               String type = co.getAttribute("type", "");
               String role = co.getAttribute("role", "");
  -            String className = co.getAttribute("class");
  +            String className = co.getAttribute("class", "");
   
               if (! type.equals("")) {
                   role = RoleUtils.lookup(type);
               }
   
  +            if (className.equals("")) {
  +                className = RoleUtils.defaultClass(role);
  +            }
  +
               try {
                   log.debug("Adding component (" + role + " = " + className + ")");
                   componentManager.addComponent(role,ClassUtils.loadClass(className),co);
  @@ -204,6 +208,28 @@
                   log.error("Could not load class " + className, ex);
                   throw new ConfigurationException("Could not get class " + className
                       + " for role " + role, ex);
  +            }
  +        }
  +
  +        e = RoleUtils.shorthandNames();
  +        while (e.hasNext()) {
  +            Configuration co = conf.getChild((String) e.next());
  +            if (! co.getLocation().equals("-")) {
  +                String role = RoleUtils.lookup(co.getName());
  +                String className = co.getAttribute("class", "");
  +
  +                if (className.equals("")) {
  +                    className = RoleUtils.defaultClass(role);
  +                }
  +
  +                try {
  +                    log.debug("Adding component (" + role + " = " + className + ")");
  +                    componentManager.addComponent(role, ClassUtils.loadClass(className), co);
  +                } catch ( Exception ex ) {
  +                    log.error("Could not load class " + className, ex);
  +                    throw new ConfigurationException("Could not get class " + className
  +                        + " for role " + role, ex);
  +                }
               }
           }
   
  
  
  
  1.1.2.9   +19 -5     xml-cocoon/src/org/apache/cocoon/Attic/DefaultComponentManager.java
  
  Index: DefaultComponentManager.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/Attic/DefaultComponentManager.java,v
  retrieving revision 1.1.2.8
  retrieving revision 1.1.2.9
  diff -u -r1.1.2.8 -r1.1.2.9
  --- DefaultComponentManager.java	2001/01/05 16:20:59	1.1.2.8
  +++ DefaultComponentManager.java	2001/01/16 15:27:00	1.1.2.9
  @@ -25,8 +25,10 @@
   import org.apache.avalon.Configuration;
   import org.apache.avalon.Composer;
   import org.apache.avalon.ConfigurationException;
  +import org.apache.avalon.DefaultConfiguration;
   
   import org.apache.cocoon.util.ClassUtils;
  +import org.apache.cocoon.util.RoleUtils;
   import org.apache.cocoon.util.ComponentPool;
   import org.apache.cocoon.util.ComponentPoolController;
   import org.apache.cocoon.CocoonComponentSelector;
  @@ -36,7 +38,7 @@
   
   /** Default component manager for Cocoon's non sitemap components.
    * @author <a href="mailto:paul@luminas.co.uk">Paul Russell</a>
  - * @version CVS $Revision: 1.1.2.8 $ $Date: 2001/01/05 16:20:59 $
  + * @version CVS $Revision: 1.1.2.9 $ $Date: 2001/01/16 15:27:00 $
    */
   public class DefaultComponentManager implements ComponentManager {
   
  @@ -91,11 +93,23 @@
           if ( componentClass == null ) {
               component = (Component)this.instances.get(role);
               if ( component == null ) {
  -                log.error(role + " could not be found");
  -                throw new ComponentNotFoundException("Could not find component for role '" + role + "'.");
  +                String className = RoleUtils.defaultClass(role);
  +                if (className == null) {
  +                    log.error(role + " could not be found");
  +                    throw new ComponentNotFoundException("Could not find component for role '" + role + "'.");
  +                }
  +                try {
  +                    componentClass = ClassUtils.loadClass(className);
  +                } catch (Exception e) {
  +                    throw new ComponentNotAccessibleException("Could not load component for role '" + role + "'.", e);
  +                }
  +                this.components.put(role, componentClass);
  +                if (Configurable.class.isAssignableFrom(componentClass)) {
  +                    this.configurations.put(role, new DefaultConfiguration("", "-"));
  +                }
               } else {
                   // we found an individual instance of a component.
  -				log.debug("DefaultComponentManager returned instance for role " + role + ".");
  +                log.debug("DefaultComponentManager returned instance for role " + role + ".");
                   return component;
               }
           }
  @@ -110,7 +124,7 @@
   
           // Work out what class of component we're dealing with.
           if ( ThreadSafe.class.isAssignableFrom(componentClass) ) {
  -			log.debug("DefaultComponentManager using threadsafe instance of " + componentClass.getName() + " for role " + role + ".");
  +            log.debug("DefaultComponentManager using threadsafe instance of " + componentClass.getName() + " for role " + role + ".");
               component = getThreadsafeComponent(componentClass);
           } else if ( Poolable.class.isAssignableFrom(componentClass) ) {
               log.debug("DefaultComponentManager using poolable instance of "