henning     2003/03/11 09:52:48

  Modified:    src/java/org/apache/turbine TurbineConstants.java
               src/java/org/apache/turbine/services/assemblerbroker/util/java
                        JavaActionFactory.java JavaBaseFactory.java
                        JavaLayoutFactory.java JavaNavigationFactory.java
                        JavaPageFactory.java JavaScheduledJobFactory.java
                        JavaScreenFactory.java
  Log:
  - Loader now use Constants from TurbineConstants
  - Reworked class base loader logic, removed a bug with
    interclass uppercase letters
  
  Revision  Changes    Path
  1.23      +4 -1      
jakarta-turbine-2/src/java/org/apache/turbine/TurbineConstants.java
  
  Index: TurbineConstants.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/TurbineConstants.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- TurbineConstants.java     11 Mar 2003 17:07:55 -0000      1.22
  +++ TurbineConstants.java     11 Mar 2003 17:52:47 -0000      1.23
  @@ -322,4 +322,7 @@
   
       /** Prefix for page related classes and templates */
       String PAGE_PREFIX = "pages";
  +
  +    /** Prefix for scheduler job related classes */
  +    String SCHEDULEDJOB_PREFIX = "scheduledjobs";
   }
  
  
  
  1.4       +6 -3      
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java
  
  Index: JavaActionFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaActionFactory.java    9 Mar 2003 03:06:24 -0000       1.3
  +++ JavaActionFactory.java    11 Mar 2003 17:52:47 -0000      1.4
  @@ -54,6 +54,7 @@
    * <http://www.apache.org/>.
    */
   
  +import org.apache.turbine.TurbineConstants;
   import org.apache.turbine.modules.Assembler;
   
   /**
  @@ -61,9 +62,11 @@
    * the module packages defined in the TurbineResource.properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public class JavaActionFactory extends JavaBaseFactory
  +public class JavaActionFactory
  +        extends JavaBaseFactory
   {
       /**
        * Get an Assembler.
  @@ -73,6 +76,6 @@
        */
       public Assembler getAssembler(String name)
       {
  -        return getAssembler("actions", name);
  +        return getAssembler(TurbineConstants.ACTION_PREFIX, name);
       }
   }
  
  
  
  1.4       +89 -40    
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java
  
  Index: JavaBaseFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaBaseFactory.java      9 Mar 2003 03:06:24 -0000       1.3
  +++ JavaBaseFactory.java      11 Mar 2003 17:52:47 -0000      1.4
  @@ -54,7 +54,15 @@
    * <http://www.apache.org/>.
    */
   
  +import java.util.Iterator;
   import java.util.Vector;
  +
  +import org.apache.commons.lang.StringUtils;
  +
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
  +
  +import org.apache.turbine.TurbineConstants;
   import org.apache.turbine.modules.Assembler;
   import org.apache.turbine.modules.GenericLoader;
   import org.apache.turbine.services.assemblerbroker.util.AssemblerFactory;
  @@ -66,17 +74,24 @@
    * the module packages defined in the TurbineResource.properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public abstract class JavaBaseFactory implements AssemblerFactory
  +public abstract class JavaBaseFactory
  +    implements AssemblerFactory
   {
  -    /** A vector of packages */
  +    /** A vector of packages. */
       private static Vector packages =
  -        TurbineResources.getVector("module.packages");
  +        TurbineResources.getVector(TurbineConstants.MODULE_PACKAGES);
  +
  +    /** Logging */
  +    private static Log log = LogFactory.getLog(JavaBaseFactory.class);
  +
   
       static
       {
           ObjectUtils.addOnce(packages, GenericLoader.getBasePackage());
  +        log.debug("Added the following packages: " + packages);
       }
   
       /**
  @@ -89,49 +104,83 @@
       public Assembler getAssembler(String packageName, String name)
       {
           Assembler assembler = null;
  +        
  +        log.debug("Class Fragment is " + name);
   
  -        for (int i = 0; i < packages.size(); i++)
  +        if (StringUtils.isNotEmpty(name))
           {
  -            String className = ((String) packages.elementAt(i) + "."
  -                    + packageName + "." + name);
  -            try
  -            {
  -                Class servClass = Class.forName(className);
  -                assembler = (Assembler) servClass.newInstance();
  -                return assembler;
  -            }
  -            catch (ClassNotFoundException cnfe)
  -            {
  -                // Do this so we loop through all the packages.
  -            }
  -            catch (NoClassDefFoundError ncdfe)
  -            {
  -                // Do this so we loop through all the packages.
  -            }
  -            catch (ClassCastException cce)
  -            {
  -                // This means trouble!
  -                // Alternatively we can throw this exception so
  -                // that it will appear on the client browser
  -                return null;
  -            }
  -            catch (InstantiationException ine)
  +            int dotIndex = name.lastIndexOf('.');
  +
  +            if (dotIndex > 0)
               {
  -                // This means trouble!
  -                // Alternatively we can throw this exception so
  -                // that it will appear on the client browser
  -                return null;
  +                //
  +                // Convert Foo.Bar.Baz ---> foo.bar.Baz
  +                StringBuffer nameBuffer = new StringBuffer();
  +                nameBuffer.append(name.substring(0, dotIndex).toLowerCase());
  +                nameBuffer.append('.');
  +                nameBuffer.append(name.substring(dotIndex + 1));
  +                name = nameBuffer.toString();
               }
  -            catch (IllegalAccessException ilae)
  +
  +            log.debug("Class Fragment now " + name);
  +
  +            for (Iterator it = packages.iterator(); it.hasNext();)
               {
  -                // This means trouble!
  -                // Alternatively we can throw this exception so
  -                // that it will appear on the client browser
  -                return null;
  +                StringBuffer className = new StringBuffer();
  +            
  +                className.append(it.next());
  +                className.append('.');
  +                className.append(packageName);
  +                className.append('.');
  +                className.append(name);
  +            
  +                log.debug("Trying " + className);
  +
  +                try
  +                {
  +                    Class servClass = Class.forName(className.toString());
  +                    assembler = (Assembler) servClass.newInstance();
  +                    break; // for()
  +                }
  +                catch (ClassNotFoundException cnfe)
  +                {
  +                    // Do this so we loop through all the packages.
  +                    log.debug(className + ": Not found");
  +                }
  +                catch (NoClassDefFoundError ncdfe)
  +                {
  +                    // Do this so we loop through all the packages.
  +                    log.debug(className + ": No Class Definition found");
  +                }
  +                catch (ClassCastException cce)
  +                {
  +                    // This means trouble!
  +                    // Alternatively we can throw this exception so
  +                    // that it will appear on the client browser
  +                    log.error(cce);
  +                    break; // for()
  +                }
  +                catch (InstantiationException ine)
  +                {
  +                    // This means trouble!
  +                    // Alternatively we can throw this exception so
  +                    // that it will appear on the client browser
  +                    log.error(ine);
  +                    break; // for()
  +                }
  +                catch (IllegalAccessException ilae)
  +                {
  +                    // This means trouble!
  +                    // Alternatively we can throw this exception so
  +                    // that it will appear on the client browser
  +                    log.error(ilae);
  +                    break; // for()
  +                }
  +                // With ClassCastException, InstantiationException we hit big 
problems
               }
  -            // With ClassCastException, InstantiationException
  -            // we hit big problems
           }
  +        log.debug("Returning: " + assembler);
  +
           return assembler;
       }
   }
  
  
  
  1.4       +6 -3      
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java
  
  Index: JavaLayoutFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaLayoutFactory.java    9 Mar 2003 03:06:24 -0000       1.3
  +++ JavaLayoutFactory.java    11 Mar 2003 17:52:47 -0000      1.4
  @@ -54,6 +54,7 @@
    * <http://www.apache.org/>.
    */
   
  +import org.apache.turbine.TurbineConstants;
   import org.apache.turbine.modules.Assembler;
   
   /**
  @@ -61,9 +62,11 @@
    * the module packages defined in the TurbineResource.properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public class JavaLayoutFactory extends JavaBaseFactory
  +public class JavaLayoutFactory
  +        extends JavaBaseFactory
   {
       /**
        * Get an Assembler.
  @@ -73,6 +76,6 @@
        */
       public Assembler getAssembler(String name)
       {
  -        return getAssembler("layouts", name);
  +        return getAssembler(TurbineConstants.LAYOUT_PREFIX, name);
       }
   }
  
  
  
  1.4       +6 -3      
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java
  
  Index: JavaNavigationFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaNavigationFactory.java        9 Mar 2003 03:06:24 -0000       1.3
  +++ JavaNavigationFactory.java        11 Mar 2003 17:52:47 -0000      1.4
  @@ -54,6 +54,7 @@
    * <http://www.apache.org/>.
    */
   
  +import org.apache.turbine.TurbineConstants;
   import org.apache.turbine.modules.Assembler;
   
   /**
  @@ -61,9 +62,11 @@
    * the module packages defined in the TurbineResource.properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public class JavaNavigationFactory extends JavaBaseFactory
  +public class JavaNavigationFactory
  +        extends JavaBaseFactory
   {
       /**
        * Get an Assembler.
  @@ -73,6 +76,6 @@
        */
       public Assembler getAssembler(String name)
       {
  -        return getAssembler("navigations", name);
  +        return getAssembler(TurbineConstants.NAVIGATION_PREFIX, name);
       }
   }
  
  
  
  1.4       +6 -3      
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java
  
  Index: JavaPageFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaPageFactory.java      9 Mar 2003 03:06:24 -0000       1.3
  +++ JavaPageFactory.java      11 Mar 2003 17:52:47 -0000      1.4
  @@ -54,6 +54,7 @@
    * <http://www.apache.org/>.
    */
   
  +import org.apache.turbine.TurbineConstants;
   import org.apache.turbine.modules.Assembler;
   
   /**
  @@ -61,9 +62,11 @@
    * the module packages defined in the TurbineResource.properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public class JavaPageFactory extends JavaBaseFactory
  +public class JavaPageFactory
  +        extends JavaBaseFactory
   {
       /**
        * Get an Assembler.
  @@ -73,6 +76,6 @@
        */
       public Assembler getAssembler(String name)
       {
  -        return getAssembler("pages", name);
  +        return getAssembler(TurbineConstants.PAGE_PREFIX, name);
       }
   }
  
  
  
  1.4       +6 -3      
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java
  
  Index: JavaScheduledJobFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaScheduledJobFactory.java      9 Mar 2003 03:06:24 -0000       1.3
  +++ JavaScheduledJobFactory.java      11 Mar 2003 17:52:47 -0000      1.4
  @@ -54,6 +54,7 @@
    * <http://www.apache.org/>.
    */
   
  +import org.apache.turbine.TurbineConstants;
   import org.apache.turbine.modules.Assembler;
   
   /**
  @@ -61,9 +62,11 @@
    * the module packages defined in the TurbineResource.properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public class JavaScheduledJobFactory extends JavaBaseFactory
  +public class JavaScheduledJobFactory
  +        extends JavaBaseFactory
   {
       /**
        * Get an Assembler.
  @@ -73,6 +76,6 @@
        */
       public Assembler getAssembler(String name)
       {
  -        return getAssembler("scheduledjobs", name);
  +        return getAssembler(TurbineConstants.SCHEDULEDJOB_PREFIX, name);
       }
   }
  
  
  
  1.4       +6 -3      
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java
  
  Index: JavaScreenFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaScreenFactory.java    9 Mar 2003 03:06:24 -0000       1.3
  +++ JavaScreenFactory.java    11 Mar 2003 17:52:47 -0000      1.4
  @@ -54,6 +54,7 @@
    * <http://www.apache.org/>.
    */
   
  +import org.apache.turbine.TurbineConstants;
   import org.apache.turbine.modules.Assembler;
   
   /**
  @@ -61,9 +62,11 @@
    * the module packages defined in the TurbineResource.properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public class JavaScreenFactory extends JavaBaseFactory
  +public class JavaScreenFactory
  +        extends JavaBaseFactory
   {
       /**
        * Get an Assembler.
  @@ -73,6 +76,6 @@
        */
       public Assembler getAssembler(String name)
       {
  -        return getAssembler("screens", name);
  +        return getAssembler(TurbineConstants.SCREEN_PREFIX, name);
       }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to