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

Gavin King gavin.king at jboss.com
Thu Nov 16 21:35:45 EST 2006


  User: gavin   
  Date: 06/11/16 21:35:45

  Modified:    src/main/org/jboss/seam/init  Initialization.java
  Log:
  auto-create JBSEAM-385
  
  Revision  Changes    Path
  1.118     +37 -18    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.117
  retrieving revision 1.118
  diff -u -b -r1.117 -r1.118
  --- Initialization.java	16 Nov 2006 17:51:06 -0000	1.117
  +++ Initialization.java	17 Nov 2006 02:35:45 -0000	1.118
  @@ -111,7 +111,7 @@
   /**
    * @author Gavin King
    * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  - * @version $Revision: 1.117 $
  + * @version $Revision: 1.118 $
    */
   public class Initialization
   {
  @@ -298,7 +298,8 @@
         ScopeType scope = scopeName==null ?
               ScopeType.UNSPECIFIED :
               ScopeType.valueOf( scopeName.toUpperCase() );
  -      factoryDescriptors.add( new FactoryDescriptor(name, scope, method, value) );
  +      boolean autoCreate = "true".equals( factory.attributeValue("auto-create") );
  +      factoryDescriptors.add( new FactoryDescriptor(name, scope, method, value, autoCreate) );
      }
   
      private Document getDocument(InputStream stream) throws DocumentException
  @@ -328,6 +329,7 @@
         String scopeName = component.attributeValue("scope");
         String jndiName = component.attributeValue("jndi-name");
         ScopeType scope = scopeName==null ? null : ScopeType.valueOf(scopeName.toUpperCase());
  +      boolean autoCreate = "true".equals( component.attributeValue("auto-create") );
         if (className!=null)
         {
            Class<?> clazz = null;
  @@ -353,7 +355,7 @@
            {
               name = clazz.getAnnotation(Name.class).value();
            }
  -         componentDescriptors.add( new ComponentDescriptor(name, clazz, scope, jndiName) );
  +         componentDescriptors.add( new ComponentDescriptor(name, clazz, scope, autoCreate, jndiName) );
            installedComponents.add(clazz);
         }
         else if (name==null)
  @@ -528,7 +530,7 @@
      private void installRole(Class<Object> scannedClass, Role role)
      {
         ScopeType scope = Seam.getComponentRoleScope(scannedClass, role);
  -      componentDescriptors.add( new ComponentDescriptor( role.name(), scannedClass, scope, null ) );
  +      componentDescriptors.add( new ComponentDescriptor( role.name(), scannedClass, scope, false, null ) );
      }
   
       private void addNamespace(Package pkg) {
  @@ -543,16 +545,12 @@
       }
   
       private void addNamespaces() {
  -        addNamespace(Package.getPackage("org.jboss.seam.core"));
  +        addNamespace(Init.class.getPackage());
           // need to solve the problem of forcing a package to load
  -        Class c = org.jboss.seam.framework.Home.class;
  -        addNamespace(Package.getPackage("org.jboss.seam.framework"));
  -        c = org.jboss.seam.jms.TopicSession.class;
  -        addNamespace(Package.getPackage("org.jboss.seam.jms"));
  -        c = org.jboss.seam.remoting.RequestContext.class;
  -        addNamespace(Package.getPackage("org.jboss.seam.remoting"));
  -        c = org.jboss.seam.theme.Theme.class;
  -        addNamespace(Package.getPackage("org.jboss.seam.theme"));
  +        addNamespace(org.jboss.seam.framework.Home.class.getPackage());
  +        addNamespace(org.jboss.seam.jms.TopicSession.class.getPackage());
  +        addNamespace(org.jboss.seam.remoting.RequestContext.class.getPackage());
  +        addNamespace(org.jboss.seam.theme.Theme.class.getPackage());
   
           if (isScannerEnabled) {
               for (Package pkg: new NamespaceScanner("seam.properties").getPackages()) { 
  @@ -622,7 +620,7 @@
         addComponent( Init.class, context );
   
         //force instantiation of Init
  -      Init init = (Init) Component.getInstance(Init.class, ScopeType.APPLICATION, true);
  +      Init init = (Init) Component.getInstance(Init.class, ScopeType.APPLICATION);
   
         addComponent( Expressions.class, context);
         addComponent( Pages.class, context);
  @@ -723,17 +721,25 @@
         for ( ComponentDescriptor componentDescriptor: componentDescriptors )
         {
            addComponent(componentDescriptor, context);
  +         if ( componentDescriptor.isAutoCreate() )
  +         {
  +            init.addAutocreateVariable( componentDescriptor.getName() );
  +         }
         }
   
         for (FactoryDescriptor factoryDescriptor: factoryDescriptors)
         {
            if ( factoryDescriptor.isValueBinding() )
            {
  -            init.addFactoryValueBinding(factoryDescriptor.name, factoryDescriptor.value, factoryDescriptor.scope);
  +            init.addFactoryValueBinding(factoryDescriptor.getName(), factoryDescriptor.getValue(), factoryDescriptor.getScope());
            }
            else
            {
  -            init.addFactoryMethodBinding(factoryDescriptor.name, factoryDescriptor.method, factoryDescriptor.scope);
  +            init.addFactoryMethodBinding(factoryDescriptor.getName(), factoryDescriptor.getMethod(), factoryDescriptor.getScope());
  +         }
  +         if ( factoryDescriptor.isAutoCreate() )
  +         {
  +            init.addAutocreateVariable(factoryDescriptor.getName());
            }
         }
   
  @@ -798,14 +804,16 @@
         private ScopeType scope;
         private String method;
         private String value;
  +      private boolean autoCreate;
   
  -      public FactoryDescriptor(String name, ScopeType scope, String method, String value)
  +      public FactoryDescriptor(String name, ScopeType scope, String method, String value, boolean autoCreate)
         {
            super();
            this.name = name;
            this.scope = scope;
            this.method = method;
            this.value = value;
  +         this.autoCreate = autoCreate;
         }
   
         public String getMethod()
  @@ -833,6 +841,11 @@
            return method==null;
         }
         
  +      public boolean isAutoCreate()
  +      {
  +         return autoCreate;
  +      }
  +
         @Override
         public String toString()
         {
  @@ -863,13 +876,15 @@
         private Class componentClass;
         private ScopeType scope;
         private String jndiName;
  +      private boolean autoCreate;
   
  -      public ComponentDescriptor(String name, Class componentClass, ScopeType scope, String jndiName)
  +      public ComponentDescriptor(String name, Class componentClass, ScopeType scope, boolean autoCreate, String jndiName)
         {
            this.name = name;
            this.componentClass = componentClass;
            this.scope = scope;
            this.jndiName = jndiName;
  +         this.autoCreate = autoCreate;
         }
         public ComponentDescriptor(Class componentClass)
         {
  @@ -892,6 +907,10 @@
         {
            return jndiName;
         }
  +      public boolean isAutoCreate()
  +      {
  +         return autoCreate;
  +      }
   
         @Override
         public String toString()
  
  
  



More information about the jboss-cvs-commits mailing list