[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