- Instance.update() should fail if key field is dirty (or make key field read only?) - DBReference.fetch(Object) => fetch(String) to resolve ambiguities - user hooks on attribute names - new scalar attribute types: , , , , , - debug attribute per attribute/action - serialization of processing when connection pool is empty - strict mode that gives errors/warnings for unkown columns - allow aliases for schema names - timed cache - avoid repetitive error messages in logger - review the ToolFinder mechanism - logger: loglevel should stick to one velosurf instance - Instance should maybe reference a DBRef and not a DB (to control subclasses access) - allow customization of LIMIT (like order and refinement) - getMap can work with more than 2 cols (keycol -> instance) - map as an attribute result: "map/id:name", or "map/id:entityname" to have instances as values - foreign keys referencing non-primary keys generate exceptions - authenticator option for case sensivity - add attribute result types: rowset/scalar, map, ... - remember when an instance comes from newInstance (for the cache) - review UserContext life cycle (threads/sessions) - is it thread-pooling resistant? => seems so. - strip ('mangle') tablename/field prefixes on demand (like "tab_") - factorize Action and Attribute! - do sthing about serialization / transience (cf. tomcat sessions persistance for instance) - optionnaly use foreign key names when reverse enginering => should be a database option - display build # in logs at startup - naming collisions detection for aliases - TagCloudTool as an example - Instances should check external POJOs for some additional methods, like "validate" - RowIterator has to be splitted: one core object in sql (with more advanced accessors like InputStreams), one wrapper in context - tool for one-shot messages in the session (like error messages that vanish once displayed) - configLoader should know FATAL error level, even if very unfrequent - review policy when column name clashes with attribute name: maybe add a RowIterator.internalGet called from ReadOnlyMap. - testcase for exported key - when SQL exceptions are thrown from context objects, would it be possible to display line/col position in template? - clarify user context scope and life cycle => very clear for a webapp (equals session) - put version and debugging options in build.properties => 2.3 - validation filter: form values should be put as request attributes after the redirect - testcase for aliasing - testcases for POJO mapping - testcase for localization - use DatabaseMetaData.storeXXXCaseIdentifiers() to determine case sensivity - a good dissertation about HTTP authentication to place somewhere http://www.artima.com/weblogs/viewpost.jsp?thread=155252 - l10n: provide flags - obfuscation key should be specific to entities - integration with a graphic reporting library - docfix: a drivers.html page about DriverInfo - allow the database connection to be configured via a jndi resource - inheritance of entities in model.xml? - ability to query current schema (ex : under Oracle : select sys_context('userenv','current_schema') from dual) [done by caching the given schema for now] - add EntityReference.insert(List(columns in natural order))? - SQL enums? is there sthing to do to support them? - id broker? => not really a job for Velosurf? - automatic reload when the configuration file is changed (but depends upon container!) => see feasibility - 'size' attribute on multivalued attributes? (approx JDBC size? exact size?) (workaround: .rows.size) - positionned updates and deletes (via UserContext) => maybe - paging via AbstractSearchTool - database metadata informations and operations - XML databases access via IBM XML Data Mediator? - isolation levels