svn commit: r592978 - in /db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb: ./ constraints/
[email protected] Thu, 08 Nov 2007 00:37:41 -0000
| Newsgroups | gmane.comp.jakarta.ojb.devel |
|---|---|
| Message-ID | <[email protected]> |
Author: arminw
Date: Wed Nov 7 16:37:40 2007
New Revision: 592978
URL: http://svn.apache.org/viewvc?rev=592978&view=rev
Log:
- fix problems caused by new OJB shortcut name support
- disable automatic set of a FieldConversion for all array type fields (e.g. some DB support byte[] fields), log warning instead
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbMemberTagsHandler.java
db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbTagsHandler.java
db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ClassDescriptorConstraints.java
db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/CollectionDescriptorConstraints.java
db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/FieldDescriptorConstraints.java
db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ReferenceDescriptorConstraints.java
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbMemberTagsHandler.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbMemberTagsHandler.java?rev=592978&r1=592977&r2=592978&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbMemberTagsHandler.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbMemberTagsHandler.java Wed Nov 7 16:37:40 2007
@@ -60,6 +60,25 @@
}
/**
+ * Returns the name of the current member class.
+ *
+ * @return The member class name
+ * @exception XDocletException if an error occurs
+ */
+ public static String getMemberClassName() throws XDocletException
+ {
+ if (getCurrentField() != null) {
+ return getCurrentField().getContainingClass().getQualifiedName();
+ }
+ else if (getCurrentMethod() != null) {
+ return getCurrentMethod().getContainingClass().getQualifiedName();
+ }
+ else {
+ return null;
+ }
+ }
+
+ /**
* Returns the type of the current member which is the type in the case of a field, the return type for a getter
* method, or the type of the parameter for a setter method.
*
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbTagsHandler.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbTagsHandler.java?rev=592978&r1=592977&r2=592978&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbTagsHandler.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/OjbTagsHandler.java Wed Nov 7 16:37:40 2007
@@ -1781,7 +1781,12 @@
{
if (OjbMemberTagsHandler.getMemberDimension() > 0)
{
- return JdbcTypeHelper.JDBC_DEFAULT_CONVERSION;
+ LogHelper.warn(true, OjbTagsHandler.class, "getDefaultJdbcConversionForCurrentMember",
+ "Class '" + OjbMemberTagsHandler.getMemberClassName()
+ + ", field '" + OjbMemberTagsHandler.getMemberName()
+ + "': Array type detected, a FieldConversion NEEDED?");
+ //return JdbcTypeHelper.JDBC_DEFAULT_CONVERSION;
+ return null;
}
String type = OjbMemberTagsHandler.getMemberType().getQualifiedName();
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ClassDescriptorConstraints.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ClassDescriptorConstraints.java?rev=592978&r1=592977&r2=592978&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ClassDescriptorConstraints.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ClassDescriptorConstraints.java Wed Nov 7 16:37:40 2007
@@ -458,7 +458,12 @@
}
catch (ClassNotFoundException ex)
{
- throw new ConstraintException("Could not find the class "+ex.getMessage()+" on the classpath while checking the row-reader class "+rowReaderName+" of class "+classDef.getName());
+ // throw new ConstraintException("Could not find the class "+ex.getMessage()+" on the classpath while checking the row-reader class "+rowReaderName+" of class "+classDef.getName());
+ LogHelper.warn(true,
+ ClassDescriptorConstraints.class,
+ "checkRowReader",
+ "Class '" + classDef.getQualifiedName() + "', RowReader name '"
+ + rowReaderName + "' can't be resolved - SHORTCUT NAME or typo?");
}
}
@@ -501,7 +506,12 @@
}
catch (ClassNotFoundException ex)
{
- throw new ConstraintException("Could not find the class "+ex.getMessage()+" on the classpath while checking the object-cache class "+objectCacheName+" of class "+classDef.getName());
+ //throw new ConstraintException("Could not find the class "+ex.getMessage()+" on the classpath while checking the object-cache class "+objectCacheName+" of class "+classDef.getName());
+ LogHelper.warn(true,
+ ClassDescriptorConstraints.class,
+ "checkObjectCache",
+ "Class '" + classDef.getQualifiedName() + "', ObjectCache name '"
+ + objectCacheName + "' can't be resolved - SHORTCUT NAME or typo?");
}
}
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/CollectionDescriptorConstraints.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/CollectionDescriptorConstraints.java?rev=592978&r1=592977&r2=592978&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/CollectionDescriptorConstraints.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/CollectionDescriptorConstraints.java Wed Nov 7 16:37:40 2007
@@ -1,6 +1,7 @@
package xdoclet.modules.ojb.constraints;
import xdoclet.modules.ojb.CommaListIterator;
+import xdoclet.modules.ojb.LogHelper;
import xdoclet.modules.ojb.model.ClassDescriptorDef;
import xdoclet.modules.ojb.model.CollectionDescriptorDef;
import xdoclet.modules.ojb.model.FieldDescriptorDef;
@@ -217,7 +218,13 @@
}
catch (ClassNotFoundException ex)
{
- throw new ConstraintException("Could not find the class "+ex.getMessage()+" on the classpath while checking the collection "+collDef.getName()+" in class "+collDef.getOwner().getName());
+ // throw new ConstraintException("Could not find the class "+ex.getMessage()+" on the classpath while checking the collection "+collDef.getName()+" in class "+collDef.getOwner().getName());
+ LogHelper.warn(true,
+ CollectionDescriptorConstraints.class,
+ "ensureCollectionClass",
+ "Class '" + collDef.getOwner().getName() + "', field '" + collDef.getName()
+ + "': Specified collection-class '" + specifiedClass
+ + "' can't be resolved - SHORTCUT NAME or typo?");
}
}
}
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/FieldDescriptorConstraints.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/FieldDescriptorConstraints.java?rev=592978&r1=592977&r2=592978&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/FieldDescriptorConstraints.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/FieldDescriptorConstraints.java Wed Nov 7 16:37:40 2007
@@ -1,12 +1,12 @@
package xdoclet.modules.ojb.constraints;
import java.util.HashMap;
+import java.util.Locale;
import xdoclet.modules.ojb.LogHelper;
import xdoclet.modules.ojb.model.FieldDescriptorDef;
import xdoclet.modules.ojb.model.PropertyHelper;
import xdoclet.modules.ojb.model.ClassDescriptorDef;
-import org.apache.commons.lang.SystemUtils;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -71,6 +71,7 @@
_jdbcTypes.put("REF", null);
_jdbcTypes.put("BOOLEAN", null);
_jdbcTypes.put("DATALINK", null);
+ _jdbcTypes.put("JAVA_OBJECT", null);
}
/**
@@ -165,10 +166,10 @@
}
fieldDef.setProperty(PropertyHelper.OJB_PROPERTY_JDBC_TYPE, fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_JDBC_TYPE));
- if (!fieldDef.hasProperty(PropertyHelper.OJB_PROPERTY_CONVERSION) && fieldDef.hasProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_CONVERSION))
- {
- fieldDef.setProperty(PropertyHelper.OJB_PROPERTY_CONVERSION, fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_CONVERSION));
- }
+// if (!fieldDef.hasProperty(PropertyHelper.OJB_PROPERTY_CONVERSION) && fieldDef.hasProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_CONVERSION))
+// {
+// fieldDef.setProperty(PropertyHelper.OJB_PROPERTY_CONVERSION, fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_CONVERSION));
+// }
}
else
{
@@ -178,13 +179,22 @@
if (!_jdbcTypes.containsKey(jdbcType))
{
- throw new ConstraintException("The field "+fieldDef.getName()+" in class "+fieldDef.getOwner().getName()+" specifies the invalid jdbc type "+jdbcType);
+ if(!_jdbcTypes.containsKey(jdbcType.toUpperCase(Locale.ENGLISH)))
+ {
+ throw new ConstraintException("The field "+fieldDef.getName()+" in class "+fieldDef.getOwner().getName()+" specifies the invalid jdbc type "+jdbcType);
+ }
+ else
+ {
+ // replace with correct upper case
+ fieldDef.setProperty(PropertyHelper.OJB_PROPERTY_JDBC_TYPE, jdbcType.toUpperCase(Locale.ENGLISH));
+ }
}
}
}
/**
- * Constraint that ensures that the field has a conversion if the java type requires it. Also checks the conversion class.
+ * Constraint that ensures that the field has a conversion if the java type requires it.
+ * Also checks the conversion class.
*
* @param fieldDef The field descriptor
* @param checkLevel The current check level (this constraint is checked in basic (partly) and strict)
@@ -234,7 +244,12 @@
}
catch (ClassNotFoundException ex)
{
- throw new ConstraintException("The class "+ex.getMessage()+" hasn't been found on the classpath while checking the conversion class specified for field "+fieldDef.getName()+" in class "+fieldDef.getOwner().getName());
+ //throw new ConstraintException("The class "+ex.getMessage()+" hasn't been found on the classpath while checking the conversion class specified for field "+fieldDef.getName()+" in class "+fieldDef.getOwner().getName());
+ LogHelper.warn(true,
+ FieldDescriptorConstraints.class,
+ "ensureConversion",
+ "Class '"+fieldDef.getOwner().getName() + "', field '" + fieldDef.getName() +
+ "': FieldConversion class '" + conversionClass + "' can't be resolved - SHORTCUT NAME or typo?");
}
}
}
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ReferenceDescriptorConstraints.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ReferenceDescriptorConstraints.java?rev=592978&r1=592977&r2=592978&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ReferenceDescriptorConstraints.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/xdoclet/java/src/xdoclet/modules/ojb/constraints/ReferenceDescriptorConstraints.java Wed Nov 7 16:37:40 2007
@@ -122,10 +122,12 @@
{
// no, so defer the check but issue a warning
performCheck = false;
- LogHelper.warn(true,
- getClass(),
- "ensureClassRef",
- "Cannot check whether the type "+targetClassDef.getQualifiedName()+" specified as class-ref at reference "+refDef.getName()+" in class "+ownerClassDef.getName()+" is assignable to the declared type "+varType+" of the reference because this variable type cannot be found in source or on the classpath");
+ LogHelper.warn(true, getClass(), "ensureClassRef",
+ "Cannot check whether the type " + targetClassDef.getQualifiedName()
+ + " specified as class-ref at reference " + refDef.getName()
+ + " in class "+ownerClassDef.getName()
+ + " is assignable to the declared type " + varType
+ + " of the reference because this variable type cannot be found in source or on the classpath");
}
}
if (performCheck && !helper.isSameOrSubTypeOf(targetClassDef, varType, true))