[jboss-cvs] jboss-seam/src/main/org/jboss/seam/init ...

Gavin King gavin.king at jboss.com
Thu Jul 27 15:07:08 EDT 2006


  User: gavin   
  Date: 06/07/27 15:07:08

  Modified:    src/main/org/jboss/seam/init  Initialization.java
  Log:
  cleanup
  
  Revision  Changes    Path
  1.83      +50 -38    jboss-seam/src/main/org/jboss/seam/init/Initialization.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Initialization.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/init/Initialization.java,v
  retrieving revision 1.82
  retrieving revision 1.83
  diff -u -b -r1.82 -r1.83
  --- Initialization.java	25 Jul 2006 04:40:43 -0000	1.82
  +++ Initialization.java	27 Jul 2006 19:07:08 -0000	1.83
  @@ -94,7 +94,7 @@
   /**
    * @author Gavin King
    * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  - * @version $Revision: 1.82 $
  + * @version $Revision: 1.83 $
    */
   public class Initialization
   {
  @@ -198,12 +198,16 @@
            throw new IllegalArgumentException("must specify either class or name in components.xml");
         }
            
  -      
         List<Element> props = component.elements("property");
         for( Element prop: props )
         {
  -         String propName = name + '.' + prop.attributeValue("name");
  -         properties.put( propName, getPropertyValue(prop, propName, replacements) );
  +         String propName = prop.attributeValue("name");
  +         if (propName==null)
  +         {
  +            throw new IllegalArgumentException("no name for property of component: " + name);
  +         }
  +         String qualifiedPropName = name + '.' + propName;
  +         properties.put( qualifiedPropName, getPropertyValue(prop, qualifiedPropName, replacements) );
         }
      }
   
  @@ -417,14 +421,7 @@
   
         for ( ComponentDescriptor componentDescriptor : componentDescriptors )
         {
  -         if (componentDescriptor.scope==null)
  -         {
  -            addComponent( componentDescriptor.name, componentDescriptor.componentClass, context );
  -         }
  -         else
  -         {
  -            addComponent( componentDescriptor.name, componentDescriptor.scope, componentDescriptor.componentClass, context );
  -         }
  +         addComponent( componentDescriptor, context );
         }
   
         if (isScannerEnabled)
  @@ -443,7 +440,7 @@
         {
            Role role = componentClass.getAnnotation(Role.class);
            ScopeType scope = Seam.getComponentRoleScope(componentClass, role);
  -         addComponent( role.name(), scope, componentClass, context );
  +         addComponent( new ComponentDescriptor( role.name(), componentClass, scope), context );
         }
         if ( componentClass.isAnnotationPresent(Roles.class) )
         {
  @@ -451,36 +448,33 @@
            for (Role role: roles)
            {
               ScopeType scope = Seam.getComponentRoleScope(componentClass, role);
  -            addComponent( role.name(), scope, componentClass, context );
  +            addComponent( new ComponentDescriptor( role.name(), componentClass, scope), context );
            }
         }
      }
   
  -   protected void addComponent(String name, ScopeType scope, Class clazz, Context context)
  +   protected void addComponent(ComponentDescriptor descriptor, Context context)
      {
  -      checkDuplicates(name, context);
  -      context.set( name + COMPONENT_SUFFIX, new Component(clazz, name, scope) );
  -   }
  +      String name = descriptor.getName();
  +      String componentName = name + COMPONENT_SUFFIX;
   
  -   protected void addComponent(String name, Class clazz, Context context)
  +      if ( log.isWarnEnabled() && context.isSet(componentName) )
      {
  -      checkDuplicates(name, context);
  -      context.set( name + COMPONENT_SUFFIX, new Component(clazz, name) );
  +         log.warn("Component has been previously installed and is being redefined: " + name);
      }
   
  -   protected void addComponent(Class clazz, Context context)
  -   {
  -      String name = Seam.getComponentName(clazz);
  -      checkDuplicates(name, context);
  -      context.set( name + COMPONENT_SUFFIX, new Component(clazz) );
  +      Component component = new Component( 
  +            descriptor.getComponentClass(), 
  +            name, 
  +            descriptor.getScope()
  +         );
  +      context.set(componentName, component);
  +
      }
      
  -   private void checkDuplicates(String componentName, Context context)
  -   {
  -      if (log.isWarnEnabled() && (context.get(componentName + COMPONENT_SUFFIX) != null))
  +   protected void addComponent(Class clazz, Context context)
         {
  -         log.warn("Component with name " + componentName + " has been previously registered and is being redefined.");
  -      }
  +      addComponent( new ComponentDescriptor(clazz), context );
      }
   
      public boolean isScannerEnabled()
  @@ -496,15 +490,33 @@
      
      private static class ComponentDescriptor
      {
  -      String name;
  -      Class componentClass;
  -      ScopeType scope;
  +      private String name;
  +      private Class componentClass;
  +      private ScopeType scope;
  +      
         public ComponentDescriptor(String name, Class componentClass, ScopeType scope)
         {
            this.name = name;
            this.componentClass = componentClass;
            this.scope = scope;
         }
  +      public ComponentDescriptor(Class componentClass)
  +      {
  +         this.componentClass = componentClass;
  +      }
  +      
  +      public String getName()
  +      {
  +         return name==null ? Seam.getComponentName(componentClass) : name;
  +      }
  +      public ScopeType getScope()
  +      {
  +         return scope==null ? Seam.getComponentScope(componentClass) : scope;
  +      }
  +      public Class getComponentClass()
  +      {
  +         return componentClass;
  +      }
      }
   
   }
  
  
  



More information about the jboss-cvs-commits mailing list