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))
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]