[cvs] expresso commit by rimovm: Minor compile fix.
JCorporate Ltd
jcorp at jcorporate.com
Fri Mar 18 23:46:35 UTC 2005
Log Message:
-----------
Minor compile fix.
Changes documented.
Javadoc mods.
Modified Files:
--------------
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects:
DataObjectComparators.java
DataObjectMetaData.java
Securable.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc:
JoinedDataField.java
expresso/expresso-web/expresso/doc:
ChangeLog.xml
Revision Data
-------------
Index: Securable.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/Securable.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/Securable.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/Securable.java -u -r1.7 -r1.8
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/Securable.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/Securable.java
@@ -115,6 +115,7 @@
* @param newUid Sets the UID for this DBObject. Used for security checks.
* @throws DBException if there's a problem switching UID.
* @since Expresso 4.0
+ * @deprecated Since Expresso 5.6.1 Use setrequestingUid(ReadOnlyUser) instead.
*/
void setRequestingUid(int newUid);
Index: DataObjectComparators.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectComparators.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectComparators.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectComparators.java -u -r1.1 -r1.2
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectComparators.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectComparators.java
@@ -1,8 +1,9 @@
package com.jcorporate.expresso.core.dataobjects;
import java.util.Comparator;
-import org.apache.log4j.Logger;
-import java.util.*;
+import java.util.Iterator;
+import java.util.List;
import com.jcorporate.expresso.core.db.DBException;
+import org.apache.log4j.Logger;
/**
* 'Respository' of the most common comparators to allow dropping DataObjects
Index: DataObjectMetaData.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectMetaData.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectMetaData.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectMetaData.java -u -r1.14 -r1.15
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectMetaData.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/DataObjectMetaData.java
@@ -124,6 +124,7 @@
*
* @param fieldName name of the field
* @return true if the field allows null
+ * @throws DBException upon metadata query error.
*/
public boolean isAllowsNull(String fieldName) throws DBException;
@@ -140,6 +141,7 @@
* @param fieldName the name of the field to set the attribute for
* @param attribName the name of the attribute to set
* @param attribValue the attribute to set
+ * @throws DBException upon metadata query error.
*/
public void setAttribute(String fieldName, String attribName, Object attribValue)
throws DBException;
@@ -150,6 +152,7 @@
* @param fieldName the name of the field for the attribute
* @param attribName the name of the attribute
* @return java.lang.Object
+ * @throws DBException upon metadata query error.
*/
public Object getAttribute(String fieldName, String attribName)
throws DBException;
@@ -333,6 +336,7 @@
*
* @param fieldName The name of the field
* @return integer for demcimal precision of the field
+ * @throws DBException upon metadata query error.
*/
public int getPrecision(String fieldName)
throws DBException;
Index: JoinedDataField.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataField.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataField.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataField.java -u -r1.7 -r1.8
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataField.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataField.java
@@ -83,7 +83,8 @@
* @author Michael Rimov
*/
-public class JoinedDataField implements DataField {
+public class JoinedDataField implements DataField, Comparable
+{
private static final Logger log = Logger.getLogger(JoinedDataField.class);
@@ -359,4 +360,22 @@
}
}
-}
\ No newline at end of file
+ /**
+ * Compares this object with the specified object for order.
+ *
+ * @param o the Object to be compared.
+ * @return a negative integer, zero, or a positive integer as this
+ * object is less than, equal to, or greater than the specified object.
+ * @todo Implement this java.lang.Comparable method
+ */
+ public int compareTo(Object o)
+ {
+ try {
+ return localObj.getDataField(localField).compareTo(o);
+ } catch (DBException ex) {
+ log.error("Error comparing fields", ex);
+ throw new RuntimeException("Error comparing joined data fields", ex);
+ }
+ }
+
+}
Index: ChangeLog.xml
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/expresso/doc/ChangeLog.xml,v
retrieving revision 1.295
retrieving revision 1.296
diff -Lexpresso-web/expresso/doc/ChangeLog.xml -Lexpresso-web/expresso/doc/ChangeLog.xml -u -r1.295 -r1.296
--- expresso-web/expresso/doc/ChangeLog.xml
+++ expresso-web/expresso/doc/ChangeLog.xml
@@ -16,6 +16,10 @@
<explanation>Error Pages not use stylesheet tag to allow dynamic stylesheet selection based on Setup table values.</explanation>
<contributor>Michael Rimov</contributor>
</new-feature>
+ <new-feature title="Key-based Comparators for DataObjects.">
+ <explanation>If you want to insert DBObjects/DataObjects into Sorted* Collections, you can use com.jcorporate.expresso.core.dataobjects.DataObjectComparators for increasing or decreasing sorts on the keys.</explanation>
+ <contributor>Michael Rimov</contributor>
+ </new-feature>
<bug-fix title="JobQueue entries are now deleted when requesting user is deleted">
<explanation>When a user was deleted, their JobQueue entries were not. This is now fixed.
</explanation>
@@ -25,6 +29,18 @@
<explanation>JSP Error pages were printing stack traces whether stack trace was enabled or not. Added <expresso:exception/> tag to handle the logic behind whether to display or not.</explanation>
<contributor>Michael Rimov</contributor>
</bug-fix>
+ <bug-fix title="JoinedDataObject.setDataContext()">
+ <explanation>JoinedDataObject.setDataContext() wasn't working properly on all occasions.</explanation>
+ <contributor>Michael Rimov</contributor>
+ </bug-fix>
+ <bug-fix title="JoinedDataObject.setRequestingUid()">
+ <explanation>JoinedDataObject.setRequestingUid(0 wasn't working properly on all occasions.</explanation>
+ <contributor>Michael Rimov</contributor>
+ </bug-fix>
+ <bug-fix title="JoinedDataObject Improper ANSI Join Syntax being generated.">
+ <explanation>Duplicate ANSI Join expressions were getting generated.</explanation>
+ <contributor>Michael Rimov</contributor>
+ </bug-fix>
<misc-change title="Removed 'Self-Registered Users' link from Admin setup page">
<explanation>'Self-Registered Users' users was specific to a registration domain, so it has been
removed. This information can now be accessed through 'User Information'.</explanation>
@@ -58,6 +74,10 @@
</explanation>
<contributor>Mike Traum</contributor>
</bug-fix>
+ <bug-fix title="LoginController Invalid Error Handling">
+ <explanation>A User was allowed to continue if the user was suddenly unable to be found.</explanation>
+ <contributor>Michael Rimov</contributor>
+ </bug-fix>
<new-feature title="New methods in User and EMailSender to allow for (among other things) embedding images in html emails">
<explanation>User.notify(String,String,boolean,MimeBodyPart) and EMailSender.addMimeAttachments allow adding MimeBodyPart's
directly to emails. This can be used to set their headers, which can used, for example, to embed images in html emails.
@@ -110,6 +130,18 @@
could cause cache to change.</explanation>
<contributor>Larry Hamel</contributor>
</api-change>
+ <api-change title="DataObject.setRequestingUid()">
+ <explanation>Deprecated in favor of the faster setRequestingUser(ReadOnlyUser) NOTE: Because of this change, this function is now slower than it was in previous Expresso verseions.</explanation>
+ <contributor>Michael Rimov</contributor>
+ </api-change>
+ <api-change title="DataObject.setRequestingUser(ReadOnlyUser)">
+ <explanation>Faster than setRequestingUid(). in many cases. Instead of passing integers around, pass references to the entire user object. </explanation>
+ <contributor>Michael Rimov</contributor>
+ </api-change>
+ <api-change title="RequestRegistry.getUser() returns ReadOnlyUser instead of User.">
+ <explanation>ReadOnlyUser is a new superInterface to the security.User() object. It helps prevent inadvertant modification of User references that are getting passed around via setRequestingUser().</explanation>
+ <contributor>Michael Rimov</contributor>
+ </api-change>
<bug-fix title="MultiDBObject handles otherDB map">
<explanation>MultiDBObject handles otherDB map by adding schema (db) name
in front of table name in SQL queries, as necessary.</explanation>
@@ -135,6 +167,19 @@
<package-update package-name="HttpUnit" version-number="1.6"/>
<package-update package-name="NekoHtml" version-number="0.9.1"/>
</package-changes>
+ <performance-improvement title="SecuredDBobject and RowSecuredDBobject.find() performance Improvements.">
+ <explanation>If find() was called and all keys were present. Then retrieve() is CALLED before find security checks to save triplicate security checking. Security checks are still performed on retrieve()</explanation>
+ <contributor>Michael Rimov</contributor>
+ <contributor>Larry Hamel</contributor>
+ </performance-improvement>
+ <performance-improvement title="Immutable Settings for DBObjects can save Cache copying">
+ <explanation>If an object instance is immutable then retrieval from the cache is improved since copying does not take place.</explanation>
+ <contributor>Larry Hamel</contributor>
+ </performance-improvement>
+ <performance-improvement title="Use the new Securable.setRequestingUser(ReadOnlyUser) instead of setRequestingUid(int).">
+ <explanation>Because so many security functions require access to login names or perhaps even email, passing around the user reference that is already determined by CheckLogin and stored in the RequestRegistry during a request can increase performance of these functions considerably.</explanation>
+ <contributor>Michael Rimov</contributor>
+ </performance-improvement>
</version>
<version name="5.6" releaseDate="December 5, 2004">
<comment>Continued Updates</comment>
More information about the cvs
mailing list