Foudation Layer(FL) Database Tools versions releases
|
2001-08-21, sun
- Connection pool was updated for MySQL database:
- ConnectionPoolWithQueueMySQL was added.
- ConnectionProxy was fixed: internalClose: rollback was removed for
autocommitted connection.
- ConnectionPoolWithQueue was fixed:
- small performance leak was fixed in pool refreshing.
2001-08-20, sun
- Logging in FL core, FL modules was updated from
org.log4j to org.apache.log4j.
2001-08-04 (FLGen), sun
- FLGenUtilWriter was fixed:
- database creation:
- connection commit before setAutoCommit(true) was added for MSSQL.
|
2001-07-31 (FL OQL)
- SQLNames, SQLNamesImplFLUML were updated:
- getDeployedClasses() method was added.
- FLMapping was updated:
- DEPLOYED_ENTITIES parameter was added to mapping.
|
2001-07-26
- ImplObjectManager initialization was updated:
- connection pool tuning for valid pool refresh:
- "Pool.fill.factor" property was added. See
%FL_HOME%\doc\howto\FLInitialization.txt for details.
- cpwq.setCheckMetadataOnRefresh(true) was added for InterBase and MSSQL
databases. See API documentation on
ru.novosoft.jdbc.pool.ConnectionPoolWithQueue#
setCheckMetadataOnRefresh(boolean)
for details.
- cpwq.setCheckMetadataOnConnectionClose(true) was added for MSSQL
database. See API documentation on
ru.novosoft.jdbc.pool.ConnectionPoolWithQueue#
setCheckMetadataOnConnectionClose(boolean)
for details.
- Refresh of connection pool was added:
- ConnectionPoolWithQueue:
- refreshConnections(), fillConnectionPool() were added.
- float fillFactor, boolean checkMetadataOnRefresh,
boolean checkMetadataOnConnectionClose parameters were added.
|
2001-06-22
- Connection pool classes were updated to work with MySQL database (support
was added to connection pool only, FL does not support this database).
Please keep in mind that now you can get connection via
ImplObjectManager.getReadOnlySQLConnection() method in autocommit mode:
- ConnectionProxy was updated:
- setAutoCommit(false) was removed from constructor.
- now it executes rollback on close for connection with autocommit of false only.
- FLTxnConnectionProxy:
- setAutoCommit(false) was added to constructor.
- ImplObjectManager:
- constructor was updated to init DriverDataSource by user name and
password instead of creation corresponding properties.
- Connection pool changes:
- ConnectionPoolWithQueue was updated:
- getConnection was updated: logging stack traces of all busy connections
was added (if debug logging mode is enabled).
- DriverDataSource:
- DriverDataSource(String url, String user, String password) constructor
was added.
|
2001-05-13
- Allocation via database was added for Oracle: use
ImplObjectManager.enableDBKeyAllocation(int) to enable this feature.
FL uses 'fl_entity_keys' table to allocate keys. If this table is not
existed FL creates it on the first enableDBKeyAllocation call. Also on
enableDBKeyAllocation call FL initializes id counter according to entity0
table. Thus if you do'not use enableDBKeyAllocation then there are no
changes for your application and database. If you use enableDBKeyAllocation
then FL automatically creates the necessary table and initializes id
counter. If allocation via database was enabled then RMI cluster is
forbidden and vice versa.
- KeyAllocator class was added.
- JDBCAccessor: methods were added:
- allocateEntityKeys
- initEntityKey
- getDBType
- JDBCAccessorOracle was updated: entity key allocation was added.
- EntityIntIdFactory was updated:
- keyAllocator was added
- not used allocIntId(int count) was removed
- ImplObjectManager.enableDBKeyAllocation(int) was added.
|
2001-04-09
- ConnectionPoolWithQueue was updated: getConnection(), close():
logging was added.
- ObjectManager, ImplObjectManager were updated: getServerURL() method was
removed.
- ImplObjectManager was updated: constructor with javax.sql.DataSource
argument was added.
2001-04-08
- Logging was updated in com.novosoft.fl.jdbc.fltxn.FLTxnDataSource: usage of
logWriter was changed to usage of org.log4j.Category.
- ConnectionPoolWithQueue was updated: getConnection() in closed state (case
of creation of the new connection; getLogWriter, setLogWriter were
implemented.
- Classes were renamed:
- ru.novosoft.jdbc.pool.driver.DriverConnectionPoolDataSource to
ru.novosoft.jdbc.pool.ConnectionPoolDataSourceImpl
- ru.novosoft.jdbc.pool.driver.DriverPooledConnection to
ru.novosoft.jdbc.pool.PooledConnectionImpl
- ru.novosoft.jdbc.pool.driver.DriverPooledConnectionProxy to
ru.novosoft.jdbc.pool.ConnectionProxy
|
2001-04-06
- Connection pool was REPLACED with queue based implementation:
- removed:
- PooledDataSource
- ConnectionValidator
- ConnectionValidatorImpl
- rebuilt:
- DriverPooledConnection
- DriverConnectionPoolDataSource
- ConnectionPoolWithQueue
- updated:
- DriverPooledConnectionProxy
- added:
- DriverDataSource
- Queue
- FL core updates up to the new connection pool:
- FLConnectionValidatorImpl, FLConnectionValidatorImplInterbase were
removed.
- JDBCAccessor, JDBCAccessorInterbase were updated:
getConnectionValidator() method was removed.
- ImplObjectManager was updated: datasource initialization.
- Log class was updated: now warnings of '01I06' state are logged without
stack trace. Thus Informix database warnings of that state are logged
like the following: "Statement SQLWarning: java.sql.SQLWarning:
Informix extension to an ANSI-compliant standard syntax".
|
2001-04-05
- Fixed: ConnectionPoolWithQueue.getConnection: connection.rollback() was
moved out of synchronized section.
|
2001-04-02
- Synchronization of Entity factory methods was modified:
- AbstractFactory:
- getObject: synchronization by cache was added;
- EntityImplFactory:
- executeDelete, executeInsert, executeUpdate, loadObject:
synchronization was removed.
- FLGen was updated: synchronization of Entity factory methods was modified:
- Factory generation was updated: executeDelete, loadObject:
synchronization was removed.
- ImplObjectManager was updated:
- prepareSQLStatement: synchronization was removed.
|
2001-03-20
- JDBCAccessor was fixed for Oracle database to save russian letters to
String (LONG VARCHAR).
2001-03-16
- RMIClusterManagerImpl.unregisterRMIClusterSupport() was updated: logging
was added.
2001-03-14
- Callbacks were added to TransactionalAction (see API reference for details):
- commited;
- rolledback;
- rolledbackDueException;
- rolledbackDueError;
- rolledbackDuringCommit;
2001-03-05
- Fixed java.lang.NoClassDefFoundError: antlr/ANTLRGrammarParseBehavior. This
error was raised if OQL query has syntax error. Classes were added to
antlr.jar:
- antlr.AlternativeElement
- antlr.ANTLRGrammarParseBehavior
- antlr.ANTLRParser
- antlr.ANTLRTokenTypes
- antlr.DefineGrammarSymbols
- antlr.FileLineFormatter
- antlr.GrammarAnalyzer
- antlr.LLkGrammarAnalyzer
- antlr.MakeGrammar
- antlr.Tool$1
2001-02-28
- Fixed datasource closing:
ru.novosoft.jdbc.pool.ConnectionPoolWithQueue.close() method.
|
- Fixed type code storing. FL 4.6.1 does not store entity type code at all
(typeids00 table is not filled when database is created).
- OQL updated: OQLInterpreter.executeOQLQuery was updated to get connection
after OQL to SQL translation.
- "Pool.getConnection.timeout" property was added to set timeout in seconds
for getConnection() if connection pool size amounts to limit size. Read
%FL_HOME%/doc/howto/FLInitialization.txt for details.
|
- FLGen update: "flgen.min.length" model property was added to Attribute
properties. Now it used to generate min length of VARCHAR type declaration
in *.create SQL scripts for Informix database.
- Fixed inconsistency in SQL types for primary key and type code between
entity0 and other tables for Informix database.
- Fixed getExtent for Entity type.
- Security features were removed from FL. ProtectedEntity, EntityUser,
EntityUserRole classes were removed from FL model. Corresponding features
were removed:
- classes:
- com.novosoft.fl package:
- DefaultEntityUserCollector
- EntityPermission
- EntityUserCollector
- EntityUserParameters
- InstancePermission
- ObjectAccessDeniedException
- methods:
- com.novosoft.fl:
- AbstractFactory:
- checkCreate()
- ObjectManager:
- checkAccess(Entity entity, int permission)
- checkAccess(String factoryName, int permission)
- logon(String user, String password)
- setEntityUserCollector(EntityUserCollector userCollector)
- setSecurity(boolean security)
- com.novosoft.fl.impl:
- ImplObjectManager:
- checkAccess(Entity entity, int permission)
- checkAccess(String factoryName, int permission)
- getRoleByName(String name)
- getUser()
- grantPermission(EntityUserRole role, Entity entity, int permission)
- grantRole(EntityUser user, EntityUserRole role)
- logon(String user, String password)
- revokeRole(EntityUser user, EntityUserRole role)
- setEntityUserCollector(EntityUserCollector userCollector)
- setSecurity(boolean security)
Now FL does not create the following tables:
ENTITYUSE100,
ENTITYUSERR1316,
ENTITYUSERR1318,
ENTITYUSERR884,
ENTITYUSER_918,
PROTECTED102,
PROTECTED110.
- packaging files:
- %FL_HOME%\gen\Attributes\FL.atr
- %FL_HOME%\gen\Attributes\FL-add.atr
- Also removed:
- classes:
- com.novosoft.fl.impl:
- PackageImplUtils
- methods:
- com.novosoft.fl:
- ObjectManager:
- createObject(String factoryName, Object primaryKey)
- AbstractObjectManager:
- getObject(String factory, int parameter)
- createObject(String factoryName, Object primaryKey)
- Packaging files were added:
- %FL_HOME%\gen\script\flInstall.ebs
- %FL_HOME%\gen\model\fl.cat
- %FL_HOME%\gen\model\java.cat
|
- FLGen: optimization for Informix database was added:
- "lock mode row" (SQL query for table creation);
- "cluster" index for id0 of entity table;
- ru.novosoft.jdbc.pool.driver.DriverPooledConnection was updated:
"SET LOCK MODE TO WAIT 15; SET ISOLATION TO Cursor stability" is executed
to initialize new SQL connection. This tempropary feature by AJE request.
- Fixed Transaction Manager. In presence of two parallel transactions, the
shorter transactions that should have get removed, were not removed if
the longer transaction was still active at that moment.
- Fixed constructor of ImplObjectManager with parameter of java.util.Properties type.
|
- FLGen was fixed: synchronization of
Factory.createProxyObject(Object primaryKey) was removed.
- Exception handling in
ru.novosoft.jdbc.pool.driver.DriverPooledConnectionProxy.close() method was
fixed. Now this method does not throw SQLException if a call of
prepareStatement(String) raised SQLExeception but
connection proxy is still closed successfully.
|
- Fix: 4.4.10 version has bug at ImplObjectManager.massLoad(List) (the method
does not work at all). We apologize for caused inconvenience.
- FL OQL module fix: attribute mapping processing at collection path in from
clause for attributes of super class.
|
- FLGen was updated: it was removed import of org.log4j.Category class at
generated classes.
- %FL_HOME%/doc/howto/logging.txt was updated: it was added sample of log4j
property file to separate FL and Zebra logs.
- Fixed FL OQL execution: complex collection path in from clause:
OQL didn't add tables and joins for navigation by roles.
- Mass load performance was improved: EntityImplFactory - SQL query building,
MassLoadSupport - SQL query building and entity primary key handling.
- New method: massLoad with pageSize argument. See FL API javadoc for details.
- FLGen fix: fixed generation of SQL index for findReverse association with
many folders (classical example "Folders and Messages": Folder has
findReverse list of Messages).
- Fix: exception handling at mass loading of list elements was fixed.
- FL packaging fixed: antlr.jar was added to flgenfull.jar.
- log4j.jar was changed to original version of 0.9.0 (all our fixes was
implemented at this log4j version, thus there is no backward
incompatibility). Some changes about log4j configuration were inserted at
%FL_HOME%/doc/howto/logging.txt.
|
- FLGen and FL OQL subsystems were updated to the new Rose petal parser
(rosepetal.jar:
Implementation-Title: NovoSoft Petal File API,
Implementation-Version: 0.2.1).
- ImplObjectManager.massLoad() method was fixed: mass loading of loaded
objects don't cause SQL query execution.
- FLGen update: Factory.loadObject method was updated: logging of
ObjectNotFoundException exception was added.
- FL OQL fix: OQL query parameters binding was fixed: corrected thrown
exception (now OQLRuntimeException instead of
ArrayIndexOutOfBoundsException).
|
- Fixed JDBCAccessor for Informix database: setDate() and getDate() methods
(null value case).
|
- FLGen update: model attribute property was added to select string attribute
setter behavior: truncate or throw exception if too big string is set.
Read %FL_HOME%\doc\hoto\model_flgen_attributes.txt for details.
|
- FLGen fix: weak reference: entity deleting was fixed.
|
- FLGen update: generation was added for weak association with "0..*"
multiplicity.
|
- Fix: Connection Pool refresh was added to restore connections to database
after connection has been lost.
- Fix: MSAccess database: Java byte type mapping: now OQL/SQL queries for
negative values work.
- It was added support of Informix database.
- Logging of next SQLExcepion (SQLException.getNextException()) was added.
- Logging was added in Connection proxy (DEBUG level).
- TransactionalAction: logging level of message about started rollback is
changed from INFO level to WARN one.
- FL OQL: methods to execute OQL queries without parameters were added.
|
- com.novosoft.fl.OperationException was changed to runtime.
- Added logging for classes of com.novosoft.fl.jdbc.fltxn package.
- FLGen: it was added property to generate/don't generate index on name
attribute. Read %FL_HOME%\doc\howto\generation.txt for details.
- ImplObjectManager.findReverse was updated: direct PreparedStatement usage
was changed to FL JDBCAccessor usage.
- FLGen: Fixed generation for weak reference.
- FLGen: Added support of array type for user operations.
- FL OQL: Fixed bug with OQL execution for MSSQL (on JDK 1.3).
|
- FL RMI Cluster Manager fix: now during transaction commit notification
exceptions from notified clients don't break notification process and are
not thrown farther.
- FL OQL fix: execution of queries with function defines.
|
- RMI Cluster fix: entity deleting: when client1 deletes an entity and
client2 has empty proxy (EntityImpl==null) of the same entity then
NullPointerException is raised on the client2. Now it is fixed.
- JDBC access fix for MSAccess and MSSQL: now putting of empty LONG VARCHAR
string value ("") to database works.
- TransactionalAction was fixed: RuntimeException is not wrapped by
FLRuntimeException now, thus a RuntimeException which was thrown in a
transactional action is caught at TransactionalAction and then is thrown
further.
- Logging was changed. Now it uses log4j. See doc/howto/logging.txt for
details.
|
- FL OQL: added support of DB2 and MSSQL databases.
2000/08/18, FLGen:
- Removed hot fix for MSSQL database (VARCHAR SQL type problem was resolved:
it is enougth to uncheck "Use ANSI nulls, paddings and warnings" at
DSN configuration).
- Fixed generation of index on name attribute for types different from
String type.
|
2000/08/02, FLGen:
- Added hot fix for MSSQL database (VARCHAR SQL type problem was resolved).
- FL RMI update: Renamed RMI cluster URL property from
"RMIClusterManager.location" to "RMIClusterManager.url" to remove confusion.
FL RMI URL properties manual:
RMIClusterManagerLoader uses properties:
1. "RMIClusterManager.port" - port to create Registry.
2. "RMIClusterManager.name" - name for RMIClusterManager remote object.
See FL API documentation for details.
- ObjectManager: it was added getExtent() method to get all factory objects.
- SQL table for EntityUserRole: name0 column type was changed to
VARCHAR(100) (from VARCHAR(40)).
- Updated generation for classes: *Impl, *ImplResource, *ImplPseudoResource,
and for Value (transient) objects: setters/getters.
- FLBlob, FLClob update: method clone() does not throw CloneNotSupportedException
exception now.
|
- ObjectManager: removed javax.swing.table.TableModel-features.
- FLGen: Factory and SQL resources: removed ETM-features.
- FL OQL was updated to 4.3.1: SQL query execution was changed to use
java.sql.PreparedStatement and FL 4.3.1 SQL parameters binding.
- Fixed bug in resource reading at ImplObjectManager.executeSQLResource (now
it handles not found resources correctly).
- Fixed bugs with LONG VARCHAR (JDBC getters/setters).
- added classes: FLSQLInput and FLSQLOutput to eliminate explicit column
index increment (PreparedStatement argument binding, ResultSet data getting).
- com.novosoft.fl.impl.jdbc.JDBCAccessor class was added to use database-
depended JDBC getters/setters.
- Added support of Java types: char, byte, short, long, float.
|
- FLGen: checking for SQLWarnings was inserted.
|
- OQL was added to FL release (floql.jar).
|
- FLGen: Factory update method: inserted list changes heuristics.
- New functionality: runtime switching of logging level
(com.novosoft.fl.log.Log.setLevel(int level)).
WARNING: it was changed properties to start logger.
For advanced users: please, see %FL_HOME%/doc/howto/logging.txt.
|
- JDK 1.1 version removed.
|
- FLGen: fixed bug at FLBlob attribute generation: fetching of object: excessive
columnCount increment.
- FLBlob fixed: now getBytes returns null if value==null.
|
- FLCluster overhead in the case of connection was closed fixed.
|
- Throws of java.lang.RuntimeException are changed to
throws of com.novosoft.fl.FLRuntimeException.
- FL Generator 0.2.03: fixed bug at SQL resources for mass loading of
FLBlob attributes
|
- Performance improvement version
|
- FL Generator was changed. Interbase is supported at this time
- FL resources changed to support interbase
- FL jdbc packages changed to support interbase database
- FLGen was added to the CVS nws-fl project
|
- Authorization was moved from the Entity to the ProtectedEntity class
- Performance improvements: executing resources in the one prepared statement
for the same factories.
- ORACLE optimization was added. A new constructor was added
to the ObjectManager to retreiving sql connection using properties.
- The INFO level logger was changed. It does not check excepts property.
- FLGen was changed to support executing resources in the one prepared
statement for the same factories
WARNING
- The doc\gen\Attributes\FL-add.atr changes must be added to the
application Attributes file.
- Model should be converted using doc\gen\script\fl_4_1.ebs or
doc\gen\script\fl_4_1_protected.ebs scripts. The first script should be
used if application doesn't use fl authorization otherwise the second
script should be used
- Model should be regenerated.
|
- useCount not fetched in massLoad method bug was fixed
|
- FL postgres and sybase resource bug was fixed
|
- Creating database was moved outside transaction
- Generator was changed to support weak references
- Generator was changed to support msaccess blob types
- Generator was changed to checks factory types creation in PackageImplUtil
- Checking of the factory types was added to the object manager initialization
- The base EntityImplFactory was changed in executeInsert method to
increase performance
- ObjectNotFoundException was added
- Added:
1. com.novosoft.fl.FLException
Extends java.lang.Exception and has nested exception attribute.
2. com.novosoft.fl.FLRuntimeException
Extends java.lang.RuntimeException and has nested exception attribute.
- Changed:
1. com.novosoft.fl.TransactionRolledBackException
Now it extends com.novosoft.fl.FLRuntimeException
2. com.novosoft.fl.TransactionalAction
Thrown TransactionRolledBackException has nested exception to save stack trace.
|
- Warning logging was added to the TxClusterImpl
for working out in detail a problem
- Method TransactionalAction.execute(int count,...) was added
- MissingResource Logger bug was fixed
- OQL was added to the CVS
|
- EntityImpl deletion outside Cluster was fixed
- Commented old style object locking code was removed
- getSQLConnection method in the ImplObjectManager & ImplObjectManagerResource
was changed to fix a problem with getting connection
- FLGen: FLBlob generation was fixed
- FLGen: java.util.Date attribute generation was fixed
|
- CVS fix
|
- New generator binary jar
- FLBlob, FLClob was moved from the com.novosoft.fl.impl to the
com.novosoft.fl package
|
- Class com.novosoft.fl.Utils was added to fix Collections.subList method
which was supported by the com.novosoft.java.util classes.
- Logging service supports level inclusion now
- Logging service doesn't implement deprecated java classes
- Using com.sun.swing classes insted of javax.swing was fixed
|
This is a major release and may contain incompatibilities
with previous versions. The following changes were introduced:
- The fl now uses standard collection classes.
o com.sun.java.util.collections for JDK 1.1 version
o java.util for JDK 1.2 version
- The table model interface is now taken from javax.swing package.
JDK 1.1 users should use swing 1.1.* distributions.
- Transaction interfaces were moved to com.novosoft.fl.transactions
- Java generator is introduced.
- Model format is changed.
- Tested optilistic locking was introduced.
|