You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sk...@apache.org on 2008/06/17 22:57:16 UTC
svn commit: r668825 - in
/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src:
main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/
test/resources/builder/complex/ test/resources/builder/generation/
Author: skitching
Date: Tue Jun 17 13:57:16 2008
New Revision: 668825
URL: http://svn.apache.org/viewvc?rev=668825&view=rev
Log:
QdoxModelBuilder changes:
* use JavaClass.getFullyQualifiedName everywhere for consistency
* centralise common initialisation into initAncestry method
* remove support for "parent" and "superClass" elements in doclet annotations
* make sourceClassParentClassName always match code.
IMPORTANT: This means that the logic to determine what the parent of a
generated class is must now be done in the template files!
Modified:
myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/QdoxModelBuilder.java
myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile-flat.xml
myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile.xml
myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile-flat.xml
myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile.xml
Modified: myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/QdoxModelBuilder.java
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/QdoxModelBuilder.java?rev=668825&r1=668824&r2=668825&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/QdoxModelBuilder.java (original)
+++ myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/QdoxModelBuilder.java Tue Jun 17 13:57:16 2008
@@ -83,7 +83,7 @@
JavaClass c0 = (JavaClass) arg0;
JavaClass c1 = (JavaClass) arg1;
- return (c0.getName().compareTo(c1.getName()));
+ return (c0.getFullyQualifiedName().compareTo(c1.getFullyQualifiedName()));
}
}
@@ -238,7 +238,7 @@
// ok, now we can mark this class as processed.
processedClasses.add(clazz);
- log.info("processed class:" + clazz.getName());
+ log.info("processed class:" + clazz.getFullyQualifiedName());
DocletTag tag;
Annotation anno;
@@ -457,17 +457,36 @@
* Set the parentClassName and interfaceClassNames properties of the
* provided modelItem object.
*/
- private void initAncestry(Model model, JavaClass clazz, ClassMeta modelItem)
+ private void initAncestry(Model model, JavaClass clazz,
+ ClassMeta modelItem, String classNameOverride)
{
- // self
- modelItem.setClassName(clazz.getName());
-
- // parent
+ modelItem.setSourceClassName(clazz.getFullyQualifiedName());
+ JavaClass realParentClass = clazz.getSuperJavaClass();
+ if (realParentClass != null)
+ {
+ String fqn = realParentClass.getFullyQualifiedName();
+ if ((fqn != null) && !fqn.startsWith("java.lang"))
+ {
+ modelItem.setSourceClassParentClassName(fqn);
+ }
+ }
+
+ // JSF Entity class.
+ if (StringUtils.isEmpty(classNameOverride))
+ {
+ modelItem.setClassName(clazz.getFullyQualifiedName());
+ }
+ else
+ {
+ modelItem.setClassName(classNameOverride);
+ }
+
+ // logical parent (one metadata is inherited from)
JavaClass parentClazz = clazz.getSuperJavaClass();
while (parentClazz != null)
{
ComponentMeta parentComponent = model
- .findComponentByClassName(parentClazz.getName());
+ .findComponentByClassName(parentClazz.getFullyQualifiedName());
if (parentComponent != null)
{
modelItem.setParentClassName(parentComponent.getClassName());
@@ -476,7 +495,7 @@
parentClazz = parentClazz.getSuperJavaClass();
}
- // interfaces
+ // interfaces metadata is inherited from
JavaClass[] classes = clazz.getImplementedInterfaces();
List ifaceNames = new ArrayList();
for (int i = 0; i < classes.length; ++i)
@@ -513,9 +532,11 @@
converterIdDflt = clean(value.substring(value.indexOf('"')));
}
String converterId = getString(clazz, "id", props, converterIdDflt);
- String converterClass = getString(clazz, "class", props, clazz
- .getFullyQualifiedName());
- converterClass = getString(clazz,"clazz",props,converterClass);
+
+ // Check for both "class" and "clazz" in order to support
+ // doclet and real annotations.
+ String classNameOverride = getString(clazz, "class", props, null);
+ classNameOverride = getString(clazz,"clazz",props,classNameOverride);
String componentName = getString(clazz, "name", props, null);
String bodyContent = getString(clazz, "bodyContent", props, null);
@@ -523,40 +544,18 @@
String tagSuperclass = getString(clazz, "tagSuperclass", props, null);
String serialuidtag = getString(clazz, "serialuidtag", props, null);
Boolean configExcluded = getBoolean(clazz,"configExcluded",props,null);
-
- String componentParentClass = getString(clazz, "parent", props,
- clazz.getSuperJavaClass()!= null?
- clazz.getSuperJavaClass().getFullyQualifiedName():null);
-
- String superClassName = getString(clazz,"superClass",props,null);
-
- if (componentParentClass != null && componentParentClass.startsWith("java.lang"))
- {
- componentParentClass = null;
- }
-
- if (componentParentClass != null)
- {
- if (componentParentClass.equals(""))
- {
- componentParentClass = null;
- }
- }
-
+
ConverterMeta converter = new ConverterMeta();
+ initAncestry(model, clazz, converter, classNameOverride);
converter.setName(componentName);
converter.setBodyContent(bodyContent);
converter.setTagClass(tagClass);
converter.setTagSuperclass(tagSuperclass);
- converter.setSourceClassName(clazz.getFullyQualifiedName());
- converter.setClassName(converterClass);
converter.setConverterId(converterId);
converter.setDescription(shortDescription);
converter.setLongDescription(longDescription);
converter.setSerialuidtag(serialuidtag);
converter.setConfigExcluded(configExcluded);
- converter.setSourceClassParentClassName(superClassName);
- converter.setParentClassName(componentParentClass);
// Now here walk the component looking for property annotations.
processComponentProperties(clazz, converter);
@@ -584,9 +583,11 @@
validatorIdDflt = clean(value.substring(value.indexOf('"')));
}
String validatorId = getString(clazz, "id", props, validatorIdDflt);
- String validatorClass = getString(clazz, "class", props, clazz
- .getFullyQualifiedName());
- validatorClass = getString(clazz,"clazz",props,validatorClass);
+
+ // Check for both "class" and "clazz" in order to support
+ // doclet and real annotations.
+ String classNameOverride = getString(clazz, "class", props, null);
+ classNameOverride = getString(clazz,"clazz",props,classNameOverride);
String componentName = getString(clazz, "name", props, null);
String bodyContent = getString(clazz, "bodyContent", props, null);
@@ -595,48 +596,17 @@
String serialuidtag = getString(clazz, "serialuidtag", props, null);
Boolean configExcluded = getBoolean(clazz,"configExcluded",props,null);
- String componentParentClass = getString(clazz, "parent", props,
- clazz.getSuperJavaClass()!= null?
- clazz.getSuperJavaClass().getFullyQualifiedName():null);
-
- String superClassName = getString(clazz,"superClass",props,null);
-
- if (componentParentClass != null && componentParentClass.startsWith("java.lang"))
- {
- componentParentClass = null;
- }
-
- if (componentParentClass != null)
- {
- if (componentParentClass.equals(""))
- {
- componentParentClass = null;
- }
- }
-
- // If the validatorClass is not the same as the class with
- // @JSFValidator annotation, the validator class is generated
- if (!clazz.getFullyQualifiedName().equals(validatorClass)){
- //There is only one type of generation for validators
- //(use abstract pattern), so this sets automatically the
- //superClass
- superClassName = getString(clazz,"superClass",props,clazz.getFullyQualifiedName());
- }
-
ValidatorMeta validator = new ValidatorMeta();
+ initAncestry(model, clazz, validator, classNameOverride);
validator.setName(componentName);
validator.setBodyContent(bodyContent);
validator.setTagClass(tagClass);
validator.setTagSuperclass(tagSuperclass);
- validator.setSourceClassName(clazz.getFullyQualifiedName());
- validator.setClassName(validatorClass);
validator.setValidatorId(validatorId);
validator.setDescription(shortDescription);
validator.setLongDescription(longDescription);
validator.setSerialuidtag(serialuidtag);
validator.setConfigExcluded(configExcluded);
- validator.setSourceClassParentClassName(superClassName);
- validator.setParentClassName(componentParentClass);
// Now here walk the component looking for property annotations.
processComponentProperties(clazz, validator);
@@ -766,44 +736,13 @@
}
String componentName = getString(clazz, "name", props, null);
- String componentClass = getString(clazz, "class", props, clazz
- .getFullyQualifiedName());
- componentClass = getString(clazz,"clazz",props,componentClass);
-
- //The parent class is always what is indicated or the
- //superclass of the class that has the @JSFComponent class
- String componentParentClass = getString(clazz, "parent", props,
- clazz.getSuperJavaClass()!= null?
- clazz.getSuperJavaClass().getFullyQualifiedName():null);
-
- String superClassName = getString(clazz,"superClass",props,null);
-
- if (componentParentClass != null && componentParentClass.startsWith("java.lang"))
- {
- componentParentClass = null;
- }
-
- if (componentParentClass != null)
- {
- if (componentParentClass.equals(""))
- {
- componentParentClass = null;
- }
- }
-
+
+ // Check for both "class" and "clazz" in order to support
+ // doclet and real annotations.
+ String classNameOverride = getString(clazz, "class", props, null);
+ classNameOverride = getString(clazz,"clazz",props,classNameOverride);
+
Boolean template = getBoolean(clazz,"template",props, null);
-
- // If the componentClass is not the same as the class with
- // @JSFComponent annotation, the component class is generated
- if (!clazz.getFullyQualifiedName().equals(componentClass)){
- if (!(template != null && template.booleanValue()))
- {
- //If template is false or null, the superClass of the generated
- //class is the same class, otherwise is the same as the parent
- //class.
- superClassName = getString(clazz,"superClass",props,clazz.getFullyQualifiedName());
- }
- }
String longDescription = clazz.getComment();
String descDflt = getFirstSentence(longDescription);
@@ -832,13 +771,9 @@
implementsValue = getString(clazz, "implementz", props, implementsValue);
ComponentMeta component = new ComponentMeta();
- initAncestry(model, clazz, component);
+ initAncestry(model, clazz, component, classNameOverride);
component.setName(componentName);
component.setBodyContent(bodyContent);
- component.setClassName(componentClass);
- component.setParentClassName(componentParentClass);
- component.setSourceClassName(clazz.getFullyQualifiedName());
- component.setSourceClassParentClassName(superClassName);
component.setDescription(shortDescription);
component.setLongDescription(longDescription);
component.setConfigExcluded(configExcluded);
@@ -854,7 +789,8 @@
for (int i = 0; i < interfaces.length; ++i)
{
JavaClass iface = interfaces[i];
- if (iface.getName().equals("javax.faces.component.NamingContainer"))
+ if (iface.getFullyQualifiedName().equals(
+ "javax.faces.component.NamingContainer"))
{
component.setNamingContainer(Boolean.TRUE);
break;
Modified: myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile-flat.xml
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile-flat.xml?rev=668825&r1=668824&r2=668825&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile-flat.xml (original)
+++ myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile-flat.xml Tue Jun 17 13:57:16 2008
@@ -60,6 +60,7 @@
<className>ComponentChild</className>
<parentClassName>ComponentBase</parentClassName>
<sourceClassName>ComponentChild</sourceClassName>
+ <sourceClassParentClassName>ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="ComponentInterface"/>
</interfaces>
Modified: myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile.xml
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile.xml?rev=668825&r1=668824&r2=668825&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile.xml (original)
+++ myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/complex/goodfile.xml Tue Jun 17 13:57:16 2008
@@ -60,6 +60,7 @@
<className>ComponentChild</className>
<parentClassName>ComponentBase</parentClassName>
<sourceClassName>ComponentChild</sourceClassName>
+ <sourceClassParentClassName>ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="ComponentInterface"/>
</interfaces>
Modified: myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile-flat.xml
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile-flat.xml?rev=668825&r1=668824&r2=668825&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile-flat.xml (original)
+++ myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile-flat.xml Tue Jun 17 13:57:16 2008
@@ -60,7 +60,7 @@
<className>testpkg.SubclassComponent</className>
<parentClassName>testpkg.ComponentBase</parentClassName>
<sourceClassName>testpkg.ComponentGenSubclass</sourceClassName>
- <sourceClassParentClassName>testpkg.ComponentGenSubclass</sourceClassParentClassName>
+ <sourceClassParentClassName>testpkg.ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="testpkg.ComponentInterface"/>
</interfaces>
@@ -103,6 +103,7 @@
<className>testpkg.TemplateComponent</className>
<parentClassName>testpkg.ComponentBase</parentClassName>
<sourceClassName>testpkg.ComponentGenTemplate</sourceClassName>
+ <sourceClassParentClassName>testpkg.ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="testpkg.ComponentInterface"/>
</interfaces>
@@ -158,6 +159,7 @@
<className>testpkg.ComponentManual</className>
<parentClassName>testpkg.ComponentBase</parentClassName>
<sourceClassName>testpkg.ComponentManual</sourceClassName>
+ <sourceClassParentClassName>testpkg.ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="testpkg.ComponentInterface"/>
</interfaces>
Modified: myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile.xml
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile.xml?rev=668825&r1=668824&r2=668825&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile.xml (original)
+++ myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-builder-plugin/src/test/resources/builder/generation/goodfile.xml Tue Jun 17 13:57:16 2008
@@ -60,7 +60,7 @@
<className>testpkg.SubclassComponent</className>
<parentClassName>testpkg.ComponentBase</parentClassName>
<sourceClassName>testpkg.ComponentGenSubclass</sourceClassName>
- <sourceClassParentClassName>testpkg.ComponentGenSubclass</sourceClassParentClassName>
+ <sourceClassParentClassName>testpkg.ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="testpkg.ComponentInterface"/>
</interfaces>
@@ -76,6 +76,7 @@
<className>testpkg.TemplateComponent</className>
<parentClassName>testpkg.ComponentBase</parentClassName>
<sourceClassName>testpkg.ComponentGenTemplate</sourceClassName>
+ <sourceClassParentClassName>testpkg.ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="testpkg.ComponentInterface"/>
</interfaces>
@@ -104,6 +105,7 @@
<className>testpkg.ComponentManual</className>
<parentClassName>testpkg.ComponentBase</parentClassName>
<sourceClassName>testpkg.ComponentManual</sourceClassName>
+ <sourceClassParentClassName>testpkg.ComponentBase</sourceClassParentClassName>
<interfaces>
<interface name="testpkg.ComponentInterface"/>
</interfaces>