MSS Code Factory Changelog

New in version 1.11.9541 Beta 21

February 4th, 2014
  • You can now reference and import schemas to your model by using the new SchemaRef elements of a SchemaDef.
  • Examples of how to use this new construct are present in all the models provided by the distribution packaging.
  • You need to import CFIso and CFSecurity at a minimum.
  • CFInternet is highly recommended, as well.
  • Most applications that are modified to reference CFIso and CFSecurity should see substantial reduction in code size compared to copy-pasting the old complete CFSme model.

New in version 1.11.9420 Beta 20 (December 28th, 2013)

  • All of the databases are now equivalent in functionality, though there are some minor differences in error detection and reporting that need to be tidied up.
  • SQL Server has one significant bug with cascading object deletion, but the goal was to have this beta delivered before year end.
  • All of the databases permit unauthorized deletion of data as well, which will be fixed before the production release.

New in version 1.11.9359 Beta 19 (December 12th, 2013)

  • This version adds full support for Sybase ASE 15.7 as well as correcting major and minor defects in the implementations of the other databases.
  • This leaves one more database to be supported: SQL Server.

New in version 1.11.8954 Beta 18 (October 21st, 2013)

  • Beta 18 adds tested support for Oracle 11gR2 with the same capabilities which have already been released for PostgreSQL 9.1, MySQL 5.5, and DB/2 LUW 10.1.
  • It also resurrects the CFBam 2.0 model, though there are problems with the XML parser for that model which cannot be resolved without significant work.

New in version 1.11.8680 Beta 17 (October 12th, 2013)

  • This version incorporates enhanced and upgraded support for PostgreSQL 9.1 and MySQL 5.5, providing more robust security restrictions and enforcement than Beta 16 did.
  • It also includes support for DB/2 LUW 10.1, though there are runtime exceptions occurring in two test cases consistently which cannot be replicated under Eclipse, so consider this a qualified beta for DB/2.

New in version 1.11.8123 Beta 15 (October 4th, 2013)

  • This version has completely regression tested MySQL 5.5 support as verified under Ubuntu 13.04 with OpenJDK 7 and stock 64-bit MySQL 5.5 out of the Ubuntu can.
  • This code is actually slightly more advanced than the PostgreSQL code, in that it implements read security checks for all of the stored read procedures.

New in version 1.11.7664 Beta 12 (July 27th, 2013)

  • The PostgreSQL security enforcement has been implemented and tested using MSS Code Factory CFDbTest 2.0.7664.
  • During the debugging of this release, a serious bug was encountered and corrected.
  • UUID values were not being properly considered by the equals, hashcode, and comparator logic.
  • If your application uses UUIDs, you should upgrade to this release immediately.

New in version 1.11.7420 Beta 11 (July 3rd, 2013)

  • This version adds support for audit columns for PostgreSQL.
  • By simply specifying HasAuditColumns="true" in a base table, four audit columns to track createdby, createdat, updatedby, and updatedat will be added and populated by the code.
  • This release also incorporates a subtle bugfix which affects the production of SAX XML parsers.

New in version 1.11.7160 Beta 10 (June 24th, 2013)

  • This beta adds audit history support for PostgreSQL. By simply specifying HasHistory="true" for a base table in your model, complete audit trailing is implemented for that table and all subclass tables deriving from the base.

New in version 1.11.6730 Beta 9 (April 24th, 2013)

  • This beta incorporates new stored procedures for MySQL to improve its performance.
  • A number of defects with the general framework caused by the removal of the BL layer code were fixed.
  • The test suites now run successfully again.
  • Because MySQL has limited date range support, some of the CFDbTest 2.0 tests do fail for MySQL, though the code for them is correct.

New in version 1.11.6464 Beta 7 (April 3rd, 2013)

  • This version adds support for the creation and updating of table class hierarchies.
  • Deletion of object hierarchies has not been implemented yet.
  • All of the databases have been tested for the new functionality via CFDbTest 2.0.

New in version 1.11.6160 Beta 6 (February 23rd, 2013)

  • This version corrects a defect in the RAM delete implementation, implements the RAM table ID generators, and corrects the use of table ID generators for all of the supported databases when dealing with client-side table insertions for tables that include BLOBs (or TEXT in the case of SQL Server) in their hierarchy of attributes.

New in version 1.11.6008 Beta 5 (February 12th, 2013)

  • This version provides SQL Server 2012 Express Advanced Edition support.
  • It should work for other editions of SQL Server 2012 as well.
  • Note that MSS Code Factory now restricts doubles and floats to the ranges defined by SQL Server instead of those defined by Java.
  • Portability is key.

New in version 1.11.5883 Beta 4 (February 6th, 2013)

  • Beta 4 adds tuned support for Sybase ASE 15.7.
  • This release also corrects the leak of dynamic SQL Statements and ResultSets for all of the supported databases.

New in version 1.11.5661 Beta 3 (January 12th, 2013)

  • This beta adds tuned support for Oracle 11gR2 incorporating stored procedures, but not prepared statements Prepared statements do not support the output variable binding that is required to pass back result set cursors with Oracle.

New in version 1.11.5543 Beta 2 (December 20th, 2012)

  • This version provides performance tuning for DB/2 LUW 10.1 in the same fashion as had been done for PostgreSQL in Beta 1.
  • A preview of the equivalent PL/SQL stored procedures for Oracle is also provided, though they are completely untested and likely have syntax errors.

New in version 1.11.5365 Beta 1 (December 8th, 2012)

  • The PostgreSQL 9.1 implementation has been updated to make use of stored procedures, prepared SQL statements, and every other performance-tuning trick known by the author.
  • Subsequent betas will be released as additional databases are brought to the same level of integration as this release for PostgreSQL.
  • MySQL 5.5 support is as complete as it will ever be, and basic DB/2 LUW 10.1 support is also provided.

New in version 1.11.5054 (November 1st, 2012)

  • This version provides working DB/2 LUW 10.1 support.
  • It is working well except for an exception on one test.
  • Basic support for Oracle, SQL Server, and Sybase ASE will be provided in the future.
  • Stored procedures were tuned.

New in version 1.11.4911 (October 13th, 2012)

  • DB/2 LUW support was refactored and fleshed out.
  • The DB/2 database creation scripts for CFDbTest 2.0 now run cleanly, with only expected informational and warning messages.
  • The DB/2 LUW (Linux-Unix-Windows) 10.1 Java JDBC support and database creation scripts have been refactored from the old UDB naming from 9.7.
  • A quick and dirty implementation of table-record based ID generators has been coded, which will work but won't scale or perform as well as tuned code will in the future.

New in version 1.11.4781 (September 26th, 2012)

  • This version passes the database validation suite, such as it is, including successfully merging data with updates, and replaces if the database is already populated.
  • TZ support is not correct yet (timezone details are not calculated during the SAX parse and are not persisted correctly), but all other data types can be persisted correctly to PostgreSQL.
  • Note that cascading deletes of components/children/details is not implemented yet.

New in version 1.11.4302 Alpha 6 (July 17th, 2012)

  • The PostgreSQL conversion to PreparedStatements is complete.
  • The PostgreSQL implementation now uses PreparedStatements everywhere that it is feasible to do so.
  • Only the queries with keys of optional/nullable columns and the cursor APIs still use dynamic SQL.
  • This will prevent certain problems which the dynamic SQL code would have had with large TEXT or BLOB columns.

New in version 1.11.4191 (July 3rd, 2012)

  • This version manufactures a PostgreSQL CLI driver for the SAX Loader, and cleans up the RAM CLI driver to implement consistent naming.
  • The pieces are all in place to begin creating and exercising S1DbTest20 XML loading to test the PostgreSQL database interface (though bugs will likely crop up during testing).

New in version 1.11.4088 (June 15th, 2012)

  • In this versiion, the SAX Loader attempts to provide a general-purpose database initialization and update utility for the majority of business application models.
  • The rules have been enhanced to produce AlternateIndex support when a LookupIndex isn't specified for a modelled object table.
  • The loaders produced are not capable of dealing with something as complex as the BAM, but are suitable for the data persistence test framework implementation and for priming and updating databases which don't use self-referencing hierarchical data structures (dot-name trees.)

New in version 1.11.3496 Alpha 2 (March 24th, 2012)

  • This second Alpha release corrects some defects that were discovered by creating the S1DbTest20 Business Application Model and using it to exercise the full range of Java and PostgreSQL manufactured code.
  • The full suite of attribute combinations for specifying the ranges and optionality of atomic attributes is exercised by this test.
  • The tests created to date are passed by Java, PostgreSQL, and the two in combination.
  • Please note that the BAM merge test code has not been implemented yet, otherwise this would have been Beta 1.

New in version 1.9.3294 (February 25th, 2012)

  • This version produces clean-compiling code for the new Blob, Number, and UUID types, and corrects some errors related to the UInt64 type.
  • The Blobs will not persist properly at this point, and none of the new type persistence has been tested yet.

New in version 1.8.3210 (February 17th, 2012)

  • This version is finally worthy of being called "production." There is also a useful 1.9.3208 development release that properly implements the extended parsing for the types that were added since 1.8, but the 1.8 rules need to be re-migrated to 1.9 before a full-time switch to 1.9 can be recommended.

New in version 1.8.3091 (January 30th, 2012)

  • In tribute to IBM's venerable 309x hardware, this release produces clean-compiling code for an exception-throwing approach that provides substantial performance improvements under heavy failure loads, such as users entering bad information. Roughly half the manufactured code has been converted at this point, so it's a blend of old and new styles.

New in version 1.9.3000 (December 29th, 2011)

  • The way optional reference attributes are considered has been corrected.
  • Previously, if any of the columns involved were not null, the reference resolution was attempted.
  • The corrected implementation no longer attempts to resolve a reference if any of the optional columns correlate to a required target column have not been specified.
  • Work is proceeding on testing a GEL compiler for 1.9 and 2.0 as well.

New in version 1.7.2080 (October 2nd, 2011)

  • Runnable Java 6 code is now produced.
  • The system can now successfully instantiate and persist objects to the Ram database implementation.

New in version 1.7.1911 (September 23rd, 2011)

  • The core rule engine has been split off to CFCore 1.8.
  • MSSCodeFactory 1.8 now extends CFCore to bind the generalized engine to the MSSBam Business Application Model.

New in version 1.7.1312 (July 21st, 2011)

  • The interfaces were refactored for Java and C-Sharp so that all their names start with "I".
  • A Business Logic template ruleset was added (net-sourceforge-msscodefactory-generator-v17-layered+bl) to the Java implementation.

New in version 1.7.1260 (June 7th, 2011)

  • The Java 6 support with PostgreSQL JDBC IO finally compiles cleanly, though it is untested at this point.

New in version 1.7.1165 (April 11th, 2011)

  • Support for SQL Server 2008R2 database creation scripts was added and tested.
  • Support for MySQL 5.5 database creation scripts was added and tested.

New in version 1.6.963 20110312 (March 14th, 2011)

  • Sybase ASE 15.5 and PostgreSQL 8.4 database creation scripts were tested.
  • A shift to long names was made in database creation scripts.
  • Erlang/PostgreSQL integration and C#/PostgreSQL integration were tested.

New in version 1.6.898 2011.02.27 (February 28th, 2011)

  • Added icon files and start menu entries to installer.
  • Changed to .msi-compatible version numbering scheme also incorporating subversion build numbering.

New in version 1.0.6 20110105 (January 5th, 2011)

  • The core engine is largely unchanged.
  • The rules have been updated substatially, adding range validation of numeric attributes and length validation of string and text attributes.
  • The models have been updated to comply with their own definition and to provide a consistently valid initialization image at runtime.

New in version 1.0.6-20101221-PROD (December 22nd, 2010)

  • The C#/.Net implementation of the core knowledge engine is now ready for production use.

New in version 1.0.6-2010.11.28 (November 29th, 2010)

  • The XML parsing has been implemented for C# to map a 1.0.4 Repository Model into a manufactured C#/.Net implementation.
  • This snapshot provides code manufacturing for C# with in-memory and PostgreSQL implementations of an object-relational mapping layer, database schema creation for PostgreSQL, Sybase ASE, DB/2 UDB, MySQL, and MS-SQL, and record-level database I/O implementations for C# and Erlang.
  • The key constraint is that Erlang/PostgreSQL only works if no object inheritance is modelled.