MSS Code Factory Changelog

What's new in MSS Code Factory 2.11.11158

Mar 9, 2020
  • The engine generate() method signatures in the rules were changed so they manufactured Java code uses a List instead of a string array for toolsDesired.
  • The model and rule cartridge XML files were tidied up to properly empty blank lines and update the copyright periods.

New in MSS Code Factory 2.10.14184 Development (May 7, 2018)

  • Only edu.princeton.wordnet.java is built using OpenJDK 9 under WSL Ubuntu instead of with the Oracle JDK 10 compiler for Windows 10. All of the other 2.10 projects are built using Oracle JDK 10 under Windows 10, with the package and source management under WSL Ubuntu. A VcXsrv X11 server is also running under Windows 10, allowing graphical applications to be installed and executed from the WSL Ubuntu environment.
  • CFLib and CFCore are now refreshed as part of the coordinated build, rather than having their releases tracked and managed separately. There is no more editing build files or run scripts to reference the latest version of CFLib or CFCore 2.10 -- they're in $MSSCFHOME/stdjar/msscodefactory instead of in local copies.

New in MSS Code Factory 2.10.14181 Development (May 7, 2018)

  • MSS Code Factory CFCore 2.10.14181 Repacked and rebuilt with Oracle JDK 10 CFCore 2.10 has been repackaged and rebuilt with Oracle JDK 10 under Windows, with the package and source management under WSL Ubuntu.

New in MSS Code Factory 2.9.14172 (Apr 20, 2018)

  • The rule cartridges have been moved back under the main project because no one was downloading the cartridges, just the main installer. The documentation has been refreshed to reflect the change.

New in MSS Code Factory 2.9.14170 (Apr 10, 2018)

  • CFFBProfile has been restructured to reflect the physical HTML files that I intend to parse as part of the import process. The FBTimeline is now an element of a FBTimelineFile, which extends FBHtmlFile. Each of the raw profile .htm files in the html directory now have a corresponding subclass which will own the entries and sub-objects comprising the data for that set of profile objects.
  • Image files and such are present in the other directories of the profile, and will be treated as raw binaries in all cases, uploaded to file blobs in the server for access via the database, and otherwise will remain unprocessed and unverified as to the file type contents being what it claims to be. I see that as no riskier than a renamed file with a bad extension -- it happens in the real world.

New in MSS Code Factory 2.9.14166 (Mar 18, 2018)

  • 2018-03-17 MSS Code Factory CFAll 2.9.14166 Project complete. Time to retire.
  • Having mostly debugged the C++14 RAM code, I'm now ready to put this project to bed permanently, and will be deleting all source code and tools from my computer.

New in MSS Code Factory 2.9.14162 (Mar 5, 2018)

  • Rebuilt on the refreshed and reinstalled environment, expecting to find MSS Code Factory CFLib 2.9.14161 or newer.

New in MSS Code Factory 2.9.14161 (Mar 5, 2018)

  • Rebuilt on the refreshed and reinstalled environment, validating the install scripts provided with the MSS Code Factory 2.9 documentation. The 2.9 and 2.10 series Java code is always built using the Windows 10 command prompt to run the ant scripts.

New in MSS Code Factory 2.10.14157 Development (Feb 20, 2018)

  • I had made the mistake of inheriting the referenced interfaces from imported packages in the interfaces of my code. That was incorrect. Only the implementations should be inheriting those referenced interfaces so that you can cast the implementation to any of the imported interfaces, allowing downlevel code to run against a more generic/broad implementation that imports several projects.
  • That means that only my implementation of the ::toString methods needs to specify which implementation to use for its code. Applications always use the interfaces to access the implementations, rather than accessing the implementations directly, so they shouldn't have the ambiguity problems that I've had with the implementations.
  • It all boiled down to me misunderstanding how C++14 implements virtual inheritance. Virtual inheritance only limits the number of implementations linked into your class; it does *not* resolve ambiguity between pure virtuals and virtual implementations. That is handled by the linker, not the compiler.

New in MSS Code Factory 2.9.14156 (Feb 19, 2018)

  • This release is the culmination of nine months of working producing not quite 26 million lines of clean compiling and linking C++14 code.
  • Now begins the debugging...

New in MSS Code Factory 2.9.14145 (Feb 7, 2018)

  • This is a working release built with Windows JDK 9. The 2.10 projects will also be built with Windows JDK 9. Only 2.8 is built with the Linux OpenJDK 9 headless.

New in MSS Code Factory 2.9.14134 (Dec 18, 2017)

  • Update the cplus/Package*.bash scripts to make sure the cplus/installer directory exists.

New in MSS Code Factory 2.9.14130 (Nov 26, 2017)

  • It turns out you can't expand project information in a license header as is normally done with the GPL family of licenses, because you've popped past the SchemaDef, so you can't get the information about the schema that is being manufactured. I'd have to seriously rework the MSS Code Factory engine to support such a feature (the references would have to push a new GenContext before expanding the reference, so that you can PopTop to get back to the context that invoked the reference.)

New in MSS Code Factory 2.9.14126 (Nov 15, 2017)

  • Originally this project was all about the MSS Code Factory engine itself and the rule base. But of course to debug the engine, I needed to develop some rule mappings to produce the code for supporting various technologies. After all, it wouldn't do if there was some technology I couldn't support with MSS Code Factory. Otherwise it wouldn't be a general-purpose tool.
  • Somewhere along the way, I let my focus shift to the code that was being produced by the factory, and kept enhancing and debugging it for several years until I had a Java website providing the back-end services to access any of a number of relational databases. The front-end client is completely isolated from the technology used by the back-end.
  • Then I decided I needed to be able to support C++14 code, and made the changes to the engine itself that were required, and got on with the business of migrating the Java code to C++14. I've put in a goodly effort on that front, and the bottom three layers and one main clean-compile. They aren't debugged, but they build. The framework is there to prove you can produce valid C++14 code with MSS Code Factory.
  • That is enough. It is time to put the scope-creep to bed and call this project "done."
  • I'm going to enjoy my retirement now. With the full honour of completing and sharing a life's work of 18 years with the world. Peace.

New in MSS Code Factory 2.10.14123 Development (Nov 13, 2017)

  • The code in the CFSecurity project is being used to exercise the initialization of the "system" objects for Cluster, Tenant, and User.
  • At this point the code still doesn't run properly, but some bugs have been corrected. I made some rather drastic formatting changes that will divert focus from the bug fixes in the GitHub history, so I'm issuing this release despite the fact that things still aren't functional.

New in MSS Code Factory 2.9.14122 (Nov 11, 2017)

  • The interace of CFLib is pretty stable, so the only changes I expect to make their way into CFLib are for the implementations, not the interfaces. Just in case there are any changes made along the way, I've pre-emptively injected CFLib 2.10.14121 to collect the potential edits.
  • In Obj/EditObj::copy[Buff/PKey]To[PKey/Buff]() dereference the buffer and pkey objects once instead of per-attribute. A minor performance tweak, but one that I didn't want to count on the compiler implementing automatically.
  • It takes less than 2 minutes to manufacture all of the C++14 code for CFSecurity 2.10, including the not-buildable-yet native MySql API support.
  • It takes 42 minutes on my Ryzen 5 4-core box to build CFSecurity in all its glorious layers... (MySql is a work in progress and is not in the build list yet.) I have scripts to manufacture the CFSecurity C++ layers, build/package/install them, and bundle them in distribution archives.
  • The less than comparisons were incorrect and always returned false no matter what inputs they were presented with, resulting in the code misidentifing id 1 as id 2 during the search. The search code style is valid; the problem was a bad comparison.
  • Now I need to figure out why the data pointer for the search is NULL -- an entry IS being resolved for the key "system".
  • I distracted myself with a dive into tidying up the formatting of the C++14 code. The changes are so drastic that I'm issuing a release to capture the changes with a tag in GitHub.
  • The code still does not work...

New in MSS Code Factory 2.10.14120 Development (Nov 6, 2017)

  • The code has all been remanufactured by MSS Code Factory 2.9.14119 and built from scratch to verify the build.
  • Note that only the Java build is being released at this time; I won't refresh the C++14 release until I have done some debugging of CFSecurity 2.10 to get the core objects instantiated (the static "system" Cluster, Tenant, and User objects.)
  • The C++14 code requires that CFLib 2.10.14115 be installed.

New in MSS Code Factory 2.9.14119 (Nov 4, 2017)

  • The build now requires CFLib 2.9.14117 and CFCore 2.9.14118.

New in MSS Code Factory 2.10.14113 Dev (Oct 6, 2017)

  • The RAM loaders now completely instantiate the RAM storage objects and try to initialize them. The Cluster.create() method is invoked and succeeds, but the subsequent read-by-name fails on the next invocation of getSystemCluster().
  • Still, it is progress.
  • CFLib 2.10.14111 is required by all C++14 code for this release.

New in MSS Code Factory 2.9.14112 (Oct 5, 2017)

  • September 2017 marked 18 years along the MSS Code Factory road.
  • The RAM loaders now completely instantiate the RAM storage objects and try to initialize them. The Cluster.create() method is invoked and succeeds, but the subsequent read-by-name fails on the next invocation of getSystemCluster().
  • CFLib 2.10.14111 is required by all C++14 code manufactured by this release.

New in MSS Code Factory 2.10.14110 Dev (Oct 2, 2017)

  • The RAM loaders now initiate and complain about a lack of input arguments, so all of my constructors are firing properly and successfully execute. One step at a time, eh?
  • CFLib 2.10.14108 is required by all C++14 code for this release.
  • The RAM loader now initializes and releases CFLib instead of CFLibXmlCore.

New in MSS Code Factory 2.9.14109 (Oct 2, 2017)

  • The RAM loaders now initiate and complain about a lack of input arguments, so all of my constructors are firing properly and successfully execute. One step at a time, eh?
  • The built-in tag CodeFactoryVersion has been added to MSS Code Factory itself, returning the string "MSS Code Factory 2.9.xxxxx" as defined by the CFCli main.
  • CFLib 2.10.14108 is required by all C++14 code manufactured by this release.
  • The initializers for the various classes in CFLib have been coordinated and tidied up. Now all the project code has to do is invoke CFLib::init() and CFLib::release() to fire all of the specific initializers in the library, as well as any dependent libraries like Xerces-C.

New in MSS Code Factory 2.10.14107 Dev (Sep 29, 2017)

  • The RAM loader clean compiles and packages for distribution, but crashes with segmentation violations during initialization. But I am now ready to begin debugging this pile of code...

New in MSS Code Factory 2.9.14106 (Sep 28, 2017)

  • The rule packages loader and cplus+ram+loader have been added to the rule base.
  • The RAM loader clean compiles, links, and packages for distribution, but crashes with segmentation violations during initialization.
  • I figured out to get debhelper to stop clobbering my debug path information so I can use ddd to do some debugging. I've done a test run under the debugger just to verify that the information is there now.

New in MSS Code Factory 2.9.14102 (Sep 18, 2017)

  • The C++14 RAM storage layer clean compiles and packages without any unresolved symbols, but it will leak like a sieve as I've done virtually nothing about memory management, and the Java code base I started with doesn't deal with such things.
  • The documentation has been updated. The last vestiges of the references to artificial intelligence have been replaced by the term "Fractal Programming." I think it is better to be modest about what this tool does rather than rambling about AI stuff just because it is the current "in" technology.
  • Besides, I think AI makes a lot of people nervous, and there is nothing upredictable about the code this tool produces, so I think the term "fractal" captures what it does better. It produces mathematically precise code.
  • There is much more information about the development process found in the Git logs for MSS Code Factory 2.9; I checked in frequently to make notes about how I was progressing with my efforts.
  • The RAM effort started on 2017-09-08, nine days ago. So for that period, I've averaged 608200 new lines of code per day, 25341 per hour, or 422 lines per minute. Not bad productivity, eh?

New in MSS Code Factory 2.9.14099 (Sep 9, 2017)

  • The C++14 XML library was leaking like a sieve. That has been corrected.
  • I was about to start coding the RAM layer when I realized I'll need to add a clone() method to the Buff objects so that I can easily make copies of the buffers in the RAM storage for return to the client. Unlike Java, you won't be getting back pointers to the RAM storage memory itself.
  • A proper separation of functionality is being imposed, the same as is in place for the database interfaces.
  • I also want to move the parsing methods for Enums from the implementation class to the interface for the schema. You should not need to include the implementation objects in order to parse an enum. There is no point restricting myself to the same requirements Java has when declaring an interface; C++ doesn't even have interfaces in the same sense.

New in MSS Code Factory 2.10.14100 Dev (Sep 9, 2017)

  • The C++14 XML library was leaking like a sieve. That has been corrected.

New in MSS Code Factory 2.9.14097 (Sep 8, 2017)

  • The build environment for the C++14 migration of the RAM layer has been codified in the rule base. I'm ready to start working on the actual code migration, which is likely to take several days. I just wanted to do this release to flag the start of the effort; I don't expect to post another release until I have a clean build of the RAM layer.

New in MSS Code Factory 2.9.14095 (Sep 6, 2017)

  • The SAX2 XML Parsers provided by the [schema]xml[version] sub-projects have been ported from Java 8 with Xerces-J to C++14 with Xerces-C for Ubuntu/Debian amd64 platforms.
  • All code for this release requires CFLib 2.10.14094.
  • Work on this feature started 2017-08-27, nine days ago. The new lines of code were produced at an average of 151195 lines per day, or 6299 lines per hour of each 24 hour day.
  • I may someday do a cross-platform ARM build targetting the version of Android that runs on my 7-inch Samsung tablet. Any true 64-bit platform should work for this code, but 32-bit architectures are right out. Get with today, never mind tomorrow. 32 bit is as dead as 16 bit and 8 bit.

New in MSS Code Factory 2.9.14093 (Sep 2, 2017)

  • There are now .cpp files to include the manufactured .hpp files so that their syntax can be checked by a build. The .cpp files themselves are but skeletons of what they will someday be.

New in MSS Code Factory 2.9.14092 (Sep 2, 2017)

  • An initial outline of the cplus+xml code is now produced by the factory.
  • All projects manufactured by this release require CFLib 2.10.14091 or newer.

New in MSS Code Factory 2.9.14089 (Sep 2, 2017)

  • C++14 now supports diamond inheritance of the models.

New in MSS Code Factory 2.10.14088 Dev (Aug 25, 2017)

  • The Java implementations of the projects now provide diamond inheritance of the interfaces for the objects and tables so that you can cast them to any inherited project's interface safely, not just the corresponding DefSchema objects. DefSchemas are now largely irrelevant for Java; the way they're done has changed.
  • The corresponding C++14 changes and builds will be done some other day, so CFUniverse has no changes today and will not be uploaded.

New in MSS Code Factory 2.9.14087 (Aug 25, 2017)

  • The TableRefs iterator implementation was checking for a SchemaDef GenDef instead of a Table GenDef. That caused runtime exceptions, of course, as the iterator is accessed from a Table's scope.
  • Obj.getNamedObject() should not throw exceptions if no object matching the name is found. It is perfectly reasonable to probe to check if an object exists, not knowing whether it will be found or not, as I discovered while debugging the TableRefs iterator.
  • The changes to the Java rules have been coded as well, and the resulting code test-compiled. Everything seems happy for Java, though it is really CFUniverse that would have seen a major difference in the resulting code. Still, there are changes to the Java interfaces for every project except the three lowest projects in the system: CFSecurity, CFInternet, and CFCrm.
  • I'll work on the C++14 version of the changes some other day.

New in MSS Code Factory 2.9.14062 (Aug 10, 2017)

  • The joins in the Obj and EditObj implementations now use the Reference methods for optional target arguments, and the regular attribute accessors for required arguments.
  • There have been so many changes today I've lost track, but CFInternet 2.10 still won't build. It is a lot closer this evening, but not there yet. This is work-in-progress code I'm checking in, rather than a completed task. At least CFSecurity 2.10 builds with it.

New in MSS Code Factory 2.9.14059 (Aug 9, 2017)

  • The Reference methods have been added to the Obj layer. That leaves one more step to implement, then I can test my solution to the latest CFInternet build problem. In a nutshell, C++ doesn't have automatic variable wrapping like Java does.

New in MSS Code Factory 2.9.14057 (Aug 9, 2017)

  • The rules have been updated to expect CFLib 2.10.14056, which allows the code to add the Reference methods to the attribute getters. The Reference methods return a const pointer to the value if the value is not null, or a NULL pointer if the value is null. This will take care of emulating the Java atomic type wrappers.
  • So far I've implemented the new methods for the base objects. Next I need to move up a layer and implement them for the Obj layer.
  • Then finally I can modify the implementations of the queries in the Obj and EditObj code such that they use the new methods when passing values to optional arguments of a query. That will take me one step closer to a building CFInternet -- this day's work has all been towards dealing with the next build problem I have for CFInternet.

New in MSS Code Factory 2.10.14055 Dev (Aug 9, 2017)

  • CFSecurity 2.10 has been refreshed to use the lastest CFLib 2.10.14053.

New in MSS Code Factory 2.10.14034 Dev (Aug 1, 2017)

  • There were bugs in the narrowed relationship implementations for years and years and years and years... There were bugs in the narrowed relationship implementations for years and years and years and years

New in MSS Code Factory 2.9.14033 (Aug 1, 2017)

  • There were bugs in the narrowed relationship implementations for years and years and years and years

New in MSS Code Factory 2.9.14030 (Aug 1, 2017)

  • The changes to the models and rules in version 2.8 of MSS Code Factory have been ported forward to 2.9. All of the 2.10 Java projects compile again.

New in MSS Code Factory 2.9.14027 (Aug 1, 2017)

  • I've resolve the License location issues, and have a new naming issue cropping up. I am sure it is due to the custom SAX parser in CFBam not properly establishing the parent/child relationships, though.

New in MSS Code Factory 2.9.14025 (Aug 1, 2017)

  • The mandatory attributes for AuthorEMail and ProjectURL are now supported for a SchemaDef.

New in MSS Code Factory 2.9.14022 (Jul 18, 2017)

  • A minor correction to the rule base so that all of the 2.10 C++14 code manufactures without complaint. That isn't to say it will actually compile.

New in MSS Code Factory 2.9.14021 (Jul 18, 2017)

  • Blobs now use vectors of BYTE, but as the CFSecurity model doesn't have any Blobs, the new rules are untested.

New in MSS Code Factory 2.9.14018 (Jul 18, 2017)

  • That is it for the initial coding of the base and obj layers.
  • I need to switch over the Blob data to vectors of BYTE next, then I can move on to the RAM database or the SAX parsers. I haven't decided which I'll work on first.

New in MSS Code Factory 2.9.14016 (Jul 17, 2017)

  • SchemaObj has been coded and split into .cpp/.hpp implementation files.
  • That leaves the SchemaPooledObj to implement yet, and then the Obj layer will have been coded, and I can move on to the SAX parsers or the RAM database.
  • I think I'm going to switch the Blob type over to a vector of BYTE, so that the size of the Blob is tracked without me having to muck around with extra parameters, particularly for accessing the value of a Blob.

New in MSS Code Factory 2.9.14014 (Jul 12, 2017)

  • TableObj coded:
  • TableObj has been coded and split into .cpp/.hpp implementation files.

New in MSS Code Factory 2.9.14012 (Jul 12, 2017)

  • Massive changes to base object operators:
  • All of the base object operators have been modified to take const arguments. That turned out to be a major problem with my map constructions for the TableObj implementation. TableObj isn't quite compiling yet, but it is close.

New in MSS Code Factory 2.9.14008 (Jul 12, 2017)

  • EditObj implemented:
  • EditObj has been properly implemented as pairs of .hpp/.cpp files

New in MSS Code Factory 2.9.14005 (Jul 12, 2017)

  • All of the 2.10 projects now manufacture without throwing exceptions. That isn't to say the C++14 code produced for anything but CFSecurity 2.10 will compile.

New in MSS Code Factory 2.9.14004 (Jul 12, 2017)

  • C++14 code for Mark II manufactures without complaint:
  • I wanted to refresh the Mark II code base, so I fiddled with the rules a bit until the engine would manufacture the C++14 code for Mark II without complaining. Whether that code would compile is another question entirely.

New in MSS Code Factory 2.9.14002 (Jul 12, 2017)

  • Obj implemented:
  • The Obj implementation has been fully coded with the body of the implementation in the .cpp file rather than inline in the .hpp file. There have been major changes throughout the code base along the way.

New in MSS Code Factory 2.9.13993 (Jul 12, 2017)

  • Base layer of code complete:
  • The base layer of code is complete. Now I can move on to the Obj layer.

New in MSS Code Factory 2.9.13991 (Jul 12, 2017)

  • Implemented base Schema:
  • The base Schema has been implemented. I almost forgot to code the SchemaPool; I'll do that next, then move on to the Obj layer.

New in MSS Code Factory 2.9.13989 (Jul 12, 2017)

  • That leaves the Schema at the base layer to be coded, then it is on to the Obj layer.

New in MSS Code Factory 2.10.14007 Dev (Jul 10, 2017)

  • I've decided I want to map the primitive parse trees of OpenNLP to the grammar-based parse trees of CFEng (which is based on Oxford rules, if I recall correctly.)
  • In the long run, I'd also like a C++14 tool chain that can populate the CFEng structure from an evaluation of English text. Then I can go either route into the database to parse sentences for subsequent evaluation.
  • hen comes the long, long, LONG term fun stuff -- extracting meaning from the grammatically structured text, both on the sentence level and on a higher associative level of a conversation per archived message posting. Maybe eventually I'll want to tie together conversations on an associative basis as well, to get "focus groups" of knowledge about given subjects.
  • CFEng.Sentence has been renamed CFEng.Sent, with a global patterm match substitution of "Sent" for "Sentence" in the model file. This will result in some bizarre help text for now, but I don't really care much at this time. I'll clean it up later.

New in MSS Code Factory 2.9.13987 (Jun 26, 2017)

  • ConfigurationFile coded:
  • The ConfigurationFile has been coded and clean compiles. That leaves the ClientConfigurationFile and the Schema at the base layer of the code to be implemented.
  • After that I'll be shifting to working on the implementation of the Obj layer.

New in MSS Code Factory 2.9.13985 (Jun 26, 2017)

  • In compliance with the reworked version of CFLib 2.10, the code has been switched from using std::u16string to std::string, and the CFLib conversion routines that used to exist have been eliminated.
  • I've also removed the "using namespace std" statements, and instead explicitly refer to the std namespace as per normal C++14 coding conventions.

New in MSS Code Factory 2.9.13982 (Jun 26, 2017)

  • Remove Cursor support:
  • I've never found a need for Cursors, especially with the PageData support in place, so I've removed them entirely from the system.
  • That leaves the Configuration files and the Schema at the base layer to be implemented, then I can move on to the Obj layer.
  • The Configuration files are going to be a bear -- they're based on Java Properties objects, and I'm not sure there is an equivalent thing for C++14. I may have to "roll my own" version.

New in MSS Code Factory 2.10.13983 Dev (Jun 21, 2017)

  • I've never used the Cursors, so I removed all support for them from the code.

New in MSS Code Factory 2.9.13980 (Jun 21, 2017)

  • The .cpp files for the DefaultFactory implementations have been created and clean-compile.
  • That leaves the Cursor, Configuration file objects, and the Schema to be implemented at the base layer. Then I can shift my focus to implementing the schemaobj layer instead of just the interfaces for it.

New in MSS Code Factory 2.9.13975 (Jun 16, 2017)

  • Debhelper requires that the name of the package match the name of the source directory.

New in MSS Code Factory 2.9.13973 (Jun 16, 2017)

  • The Authorization objects have a clean-compiling .cpp file now.

New in MSS Code Factory 2.9.13971 (Jun 16, 2017)

  • IObj has been coded and clean compiles. However, it has highlighted an issue that is going to result in some rather verbose code -- there is no equivalent to importing an entire package in C++, so I'll either have to include all the headers in the Schema objects and interfaces and include those, or explicitly include all the potentially necessary headers in each file. I like the Schema approach myself, so seeing as it is my project, that is probably the route I'll take.

New in MSS Code Factory 2.9.13969 (Jun 16, 2017)

  • The base interfaces have been specified and implemented. ISchemaSchema.hpp is incomplete, though, as it will require some objects that I haven't migrated yet in order to complete the specification.
  • It sure does take a lot longer to compile C++ code than Java code. And I'm not even done with CFSecurity yet!

New in MSS Code Factory 2.9.13967 (Jun 16, 2017)

  • The ISchemaTableTable.hpp and ISchemaTableTable.cpp files clean compile.

New in MSS Code Factory 2.9.13966 (Jun 14, 2017)

  • The Java arrays will be migrated as vector of pointer, so now the ISchemaTableTable.hpp files have been migrated and look clean for CFSecurity.

New in MSS Code Factory 2.9.13965 (Jun 14, 2017)

  • I need to decide what I'm going to do about migrating the Java array returns. Arrays aren't first class objects in C++ -- you can't return them.

New in MSS Code Factory 2.9.13963 (Jun 14, 2017)

  • The basic objects are now fully-fleshed and ready to use in standard C++14 containers.

New in MSS Code Factory 2.9.13962 (Jun 14, 2017)

  • The basic objects now have copy constructors. Once I add in some hash implementations, the base objects will be fully-fleshed.

New in MSS Code Factory 2.10.13959 Dev (Jun 13, 2017)

  • The warnings from the build have been cleaned up and toString() has been implemented for Buff and HBuff.

New in MSS Code Factory 2.9.13960 (Jun 13, 2017)

  • The assignment operator overloads have been corrected to return *this instead of void.

New in MSS Code Factory 2.10.13933 Dev (Jun 10, 2017)

  • All of the 2.10 projects have been remanufactured by MSS Code Factory 2.9.13932, rebuild using the latest CFCore 2.9 release, repackaged, and the archives updated to include the not-building-yet C++14 source code to date.

New in MSS Code Factory 2.10.13916 Dev (Jun 6, 2017)

  • Behold the first manufacturing run of C++14 code for MSS Code Factory...

New in MSS Code Factory 2.9.13915 (Jun 6, 2017)

  • There is an initial migration of the Java 8 rule base to a C++14 interface header file specification. I'll embed the method implementations in the header for now, then split them off into C++14 implementation files later.
  • Next I need to do an initial migration of the Java 8 SchemaObj files to C++14 interface header files.

New in MSS Code Factory 2.9.13827 (Apr 10, 2017)

  • There was still a lowercase table name being used by the delete scripts in the ClearDep implemenation. This has been corrected, and verified through painful testing with the Mark II Chatbot.

New in MSS Code Factory 2.9.13820 (Mar 19, 2017)

  • It turns out that commons logging doesn't seem to like Log4J 2.x.

New in MSS Code Factory 2.9.13817 (Mar 10, 2017)

  • The JavaXxxTableImport specifications are now included by the rules for the various database layer tables, producing code that has been verified for Mark II, which required imports to build its custom ServerProc.

New in MSS Code Factory 2.10.13814 Dev (Mar 5, 2017)

  • The MySQL connector has been upgraded, and all of the relevent scripts in the 2.10 bin path have been updated to reference the new jars, as have the build.xml scripts.

New in MSS Code Factory 2.9.13812 (Mar 5, 2017)

  • MySQL 5.7 syntax is now supported and has been verified under Ubuntu 16.10.
  • The DelDep relationship chain can now terminate with a self-referencing relation, so that you can build trees of nodes. I don't think it will work with subclass hierarchies, though, only flat tables.

New in MSS Code Factory 2.10.13775 Dev (Nov 9, 2016)

  • The packaging scripts have been corrected, and the builds repackaged. The naming of the HTTP jars had changed.

New in MSS Code Factory 2.9.13776 (Nov 9, 2016)

  • Forgot to update the version string for the 2.9.13776 packaging. Plus I wanted a "777" release.

New in MSS Code Factory 2.10.13775 (Nov 9, 2016)

  • The packaging scripts have been corrected, and the builds repackaged. The naming of the HTTP jars had changed.

New in MSS Code Factory 2.10.13758 Dev (Sep 27, 2016)

  • All of the third party libraries have been updated to the latest versions as delivered/supported by Ubuntu 16.04 LTS.

New in MSS Code Factory 2.9.13757 SP4 (Sep 27, 2016)

  • Service Pack 4 adds no new functionality, but it brings the use of the Log4J facilities up to the new "version 2" release, improving compatability with many application environments. Note that the manufactured code does change to allow for the use of Log4J 2.

New in MSS Code Factory 2.9.13747 (Jul 11, 2016)

  • The regression tests have passed successfully for running MSS Code Factory over an Oracle Jave 8 JDK installation instead of an OpenJDK 8 installation for Debian "Jessie" AMD 64-bit.

New in MSS Code Factory 2.10.13722 Dev (Apr 26, 2016)

  • There was an occurance of a reference to the 2.7 CFBam schema in the CFBam Editor's save/export code. This has been corrected to reference the 2.10 version of the schema.

New in MSS Code Factory 2.9.13725 (Apr 26, 2016)

  • The propagation of the focus to the EltTabPane of a ViewEditPane has to be conditional on the existence of the EltTabPane.

New in MSS Code Factory 2.8.13506 Dev (Mar 15, 2016)

  • All of the database creation scripts for MySql and PostgreSQL have been tested, which uncovered some issues for MySql support. MySql only supports numbers with a maximum of 65 digits, so the maximum used in all of the models for 2.7 and 2.6 have been reduced from 100 to 65, and the support limitation set by the CFLib implementations has also been reduced accordingly.
  • Issues with the CFAcc model were uncovered as a result of the MySql testing. With the corrections that have been applied, you won't be able to delete data from a RAM database for CFAcc. But as that application is intended to run against an RDBMS, that is a non-issue.

New in MSS Code Factory 2.6.13341 Dev (Mar 1, 2016)

  • The CFReferenceEditor.setCustomDisable() method does not disable the whole pane of the custom widget, but only the Pick button. You should always be able to View the selected object and be able to select-copy-paste the text of the selected object's name.

New in MSS Code Factory 2.5.13309 (Feb 24, 2016)

  • I forgot to remove the old Memo.Memo attribute, but that has been cleaned up and both the model and the custom code for CFCrm 2.6 are now complete. All three of the core projects are now as done as I intend to make them for now. I have some optimization ideas for the CFInternet hierarchy brower, but for now it works and that is good enough to set it aside for now.

New in MSS Code Factory 2.5.13307 (Feb 24, 2016)

  • The DelDeps had to be specified for the new objects, as otherwise there are constraint violations from the database when deleting Attachments or Memos.

New in MSS Code Factory 2.5.13306 (Feb 24, 2016)

  • The AttachmentData and MemoData objects contain 1GB BLOB and TEXT attributes respectively. Custom forms will be used in the CFCrm application code to ensure that these objects are only loaded by the JavaFX GUI on an as-needed basis in order to improve performance, reduce network traffic, and reduce the memory footprint of the client.
  • See the 2.6 Programmers Notes for CFCrm logged today for details.

New in MSS Code Factory 2.5.13304 (Feb 24, 2016)

  • The CFCrm model neglected to reference the Attachments from a Contact.

New in MSS Code Factory 2.6.13266 Dev (Feb 19, 2016)

  • The resize and placement issues for the JavaFX Finder and Picker forms have finally been corrected.
  • The enable states for the ListPane buttons have also been updated and now properly reflect the edit mode of the containing window, whether the list is displaying an add menu, and whether a row is selected.
  • The selection of rows in the Finder panes now properly update the enable states of their buttons as well.

New in MSS Code Factory 2.6.13264 Dev (Feb 19, 2016)

  • The JavaFX ...FinderPane.java code has been consolidated into the corresponding ...FinderForm.java code. The minimum window size has been set to 800x480 in order to consume the entire screen of a Raspberry Pi. Unfortunately, the Pi exhibits the same sizing and placement issues for the Picker and Finder forms as OpenJFX on Linux does. It is a shame there isn't an Oracle implementation of JavaFX for the Pi to go with the JDK 8 release -- that would have allowed comparison between different implementations to determine if the bug is in OpenJFX or not. Both the Pi and Linux use OpenJFX, though.

New in MSS Code Factory 2.6.13263 Dev (Feb 19, 2016)

  • The JavaFX ...FinderPane.java code has been consolidated into the corresponding ...FinderForm.java code.

New in MSS Code Factory 2.6.13261 Dev (Feb 19, 2016)

  • The picker forms were generating exceptions because they were trying to reference the data table before it was instantiated. This has been corrected and the picker windows now function correctly.

New in MSS Code Factory 2.6.13259 Dev (Feb 19, 2016)

  • Support for the ISOCurrency.FracSymbol attribute has been removed. The population data for the ISOCurrency, ISOCountry, ISOCountryCurrency, and ISOTimezone are now complete and ready for deployment.

New in MSS Code Factory 2.6.13254 Dev (Feb 19, 2016)

  • I was able to find data for populating the currency symbols and fractional precisions for the ISOCurrency data. Where I couldn't find specific values, the default of a dollar sign has been used. I believe the fractional specifications are complete, though, even if the symbol set is not.

New in MSS Code Factory 2.6.13253 Dev (Feb 18, 2016)

  • The ISO lookup initialization data has been fleshed out with data gleaned from the relevant ISO standards for ISOCurrency, ISOTimezone, ISOCountry, and ISOCountryCurrency.
  • Some day I'll deal with ISOLanguage and ISOCountryLanguage, but I don't need it right now so I'm putting off the work. There is a lot of manual effort to converting the tables from the internet to the XML files needed for the imports.
  • Note that most of the currency symbols and fractional specifications have been defaulted to a dollar and cent sign with two fractional digits for change. I haven't found a comprehensive list of those values yet, so I could only implement proper values for the currencies I know about.

New in MSS Code Factory 2.6.13250 Dev (Feb 17, 2016)

  • It turns out you can debug more than one runtime at once with Eclipse, so there is no need to keep the custom code separate from the main project. I've decided that I'm going to resume working on fleshing out the CFAcc project into an actual application, whether it turns out to be too limited for real use or not. We'll just have to wait and see how it goes, won't we? :D

New in MSS Code Factory 2.6.13249 Dev (Feb 17, 2016)

  • The code produced by Service Pack 4 has been repackaged with CFLib 2.5.13247. This release of CFLib cleans up the production of validation exceptions by the various numeric JavaFX editors, and now provides more detailed information about the reason for the validation failure. This was purely an "optional" excercise for MSS Code Factory, but I thought I'd get it done rather than putting it off until later. Just for something to do this morning.

New in MSS Code Factory 2.6.13246 Dev (Feb 10, 2016)

  • Remanufacturing with MSS Code Factory 2.5.13242 Service Pack 4 and building with CFLib 2.5.13241 has resolved the remaining issues for field validation and logging to the CFConsole of the applications. This is as "done" as it is going to get for quite some time.
  • Remanufactured 2016.02.09 to sort the Add menus. This should have been done before the initial release of Service Pack 4.
  • There are 26,198,013 lines of code in the 2.6 projects, of which only a small fraction is hand written (far less than 1% of the total.)

New in MSS Code Factory 2.5.13245 Service Pack 4 (Feb 10, 2016)

  • MSS Code Factory 2.5.13245 Service Pack 4 adds the capturing and logging of validation and processing exceptions to the new CFConsole widget which replaces the place holder TextEdits that had been used by the application code up until now. This addresses the need of the Raspberry Pi to explicitly log exceptions, and also tidies up the performance of the applications for other platforms as you no longer have to keep an eye on the system console for tracebacks printed by the default exception handlers.
  • The release was repackaged to include sorting of the Add menus on 2016.02.09. This trivial change should have been implemented before the initial 2016.02.08 release.
  • There are 16,280,390 lines of source code in the 2.5 projects that comprise MSS Code Factory itself, of which roughly 750,000 lines are hand-written.
  • There are 26,198,013 lines of code in the 2.6 projects, of which only a small fraction is hand written (far less than 1% of the total.)
  • That is a total of 42,748,403 lines of code delivered over the course of 18 years. An average of 6,465 lines of debugged code per day, if you presume I had worked every single day (which, of course, I came no where near doing, as I had an actual job to attend to for most of those years.)

New in MSS Code Factory 2.5.13230 (Feb 8, 2016)

  • The JavaFX buttons now all have a minimum width of 200 pixels and the enable state has been adjusted to disable the main menu buttons while an Add sub-menu is displayed.

New in MSS Code Factory 2.6.13229 Development (Feb 8, 2016)

  • Service Pack 3 brings support for small-resolution displays such as the 7-inch LCD screen of the Raspberry Pi 2B+, which is only an 800x480 display. With these changes, you should now be able to deploy the clients to any smartphone or tablet which supports JDK 8 and the OpenJFX packages, which should include the iOS and Android ports by Gluon.

New in MSS Code Factory 2.6.13208 Development (Jan 30, 2016)

  • The hierarchy browser and custom code have been promoted from CFDbTest, and the Finder windows for a CFBam model have been wired to the navigation forms.

New in MSS Code Factory 2.6.13207 Development (Jan 30, 2016)

  • The sub-element list views accessed by CFDbTest's forms incorporate add menus for class hierarchies of schema types and table columns. There was a mistaken reference to buttonAdd that needed to be buttonCancelAdd, which has been corrected. CFDbTest's hierarchy browser is now ready to be propagated to CFBam.

New in MSS Code Factory 2.6.13205 Development (Jan 30, 2016)

  • View/Edit forms cannot support instance deletion without causing problems for synchronization through the callbacks to the invoking form, so the functionality has been removed. You'll have to use the Finder, Picker, and sub-element lists to delete instances, or the hierarchy browsers.
  • The enhancements to support SchemaDef nodes in the CFDbTest 2.6 hierarchy browser have been coded, but not tested yet. I realized I needed to remove the delete functionality in order to ensure that the hierarchy browser remains properly synchronized with its nodes.
  • Once the CFDbTest enhancements have been tested, I'll propagate the custom code from CFDbTest to CFBam, and wire any Finder windows that CFBam defines to the propagated code. Then I can shift back to the form customizations required by CFDbTest, as I don't want those in the way when propagating code to CFBam.

New in MSS Code Factory 2.6.13203 Development (Jan 28, 2016)

  • The changes I had to make to the CFDbTest custom schema for JavaFX have been propagated to the other projects. The only project that still doesn't have a custom JavaFX client of some kind is CFBam. I'll by copy-paste-editing the code from CFDbTest for that one after I've wired the SchemaDef to the hierarchy browser.

New in MSS Code Factory 2.6.13193 Development (Jan 22, 2016)

  • The View/Edit panes and forms have been modified to omit the EltTabPane if there are no sub-objects of the viewed/edited object. This was done to clean up the user interface.

New in MSS Code Factory 2.5.13192 (Jan 22, 2016)

  • The View/Edit panes and forms have been modified to omit the EltTabPane if there are no sub-objects of the viewed/edited object. This is done primarily to clean up the user interface, and doesn't really affect all that many objects, but I felt it should be done before I could forget about it again.

New in MSS Code Factory 2.5.13190 (Jan 22, 2016)

  • The FormClosed and Deleted callbacks for JavaFX now pass the affected and (stale) deleted objects as arguments. This allows more intelligent refreshing of the user interface, improving performance.
  • This is particularly important for tree views, as it allows them to add or remove the individual objects from the tree instead of rebuilding the whole node tree, which can be a time-consuming process

New in MSS Code Factory 2.5.13189 (Jan 22, 2016)

  • The build and packaging of the CFCore code has been refreshed just to make sure it is up to date with the latest OpenJDK 8 shipped by Debian Jessie.

New in MSS Code Factory 2.5.13171 (Jan 22, 2016)

  • The JavaFX Add forms do not display sub-instances or lists of elements. Only the new instance currently being edited is visible. You can not Delete the new instance, only Save or Cancel your edits.

New in MSS Code Factory 2.5.13168 (Jan 22, 2016)

  • The table factories for JavaFX now provide for newAddPane() and newAddForm() interfaces and implementations. The AddPane is based on a ViewEditPane, but with the EltTabPane removed. Currently there is a lot of dead code in the AddPane implementation -- an EltTabPane class gets defined even though it is no longer instantiated.
  • The new AddForm implemenations are used when Adding an object instance instead of the ViewEditForm that had been previously used. You should not be trying to add sub-element instances until you have persisted the newly added object

New in MSS Code Factory 2.5.13164 (Jan 22, 2016)

  • I've decided to release the current code as Service Pack 1 because I have had no problems working with the JavaFX implementations to date, having resolved the build problems that were plaguing some applications.
  • I will continue working on the custom code and will release updates to the 2.6 projects for the foreseeable future, but I am comfortable that MSS Code Factory 2.5 itself is ready for a Service Pack release.

New in MSS Code Factory 2.5.13162 (Jan 22, 2016)

  • The JavaFX build issues have been corrected. The test project I've been helping a friend with now builds successfully and completely.
  • As it turns out, sometimes "import javafx.*;" is accepted by the compiler and sometimes it isn't. It just so happened that it was accepted for the MSS Code Factory 2.6 sub-projects, but not for my friend's project. However, there is nothing in the code that requires "import javafx.*;" for a successful build, so once I removed those statements from the rule base, remanufactured the code, and recompiled, everything worked fine.

New in MSS Code Factory 2.5.13160 (Jan 22, 2016)

  • The security initialization data files were incorrectly specifying "xsd:schemaLocation" instead of "xsi:schemaLocation".

New in MSS Code Factory 2.5.13159 (Jan 22, 2016)

  • The XSDs weren't being properly packaged by the installer.

New in MSS Code Factory 2.5.13157 (Jan 22, 2016)

  • I've shifted back to Debian "Jessie" so I'm rebuilding all of the projects and jars.

New in MSS Code Factory 1.11.12629 (Dec 6, 2014)

  • Each of the databases needs to allow for a JavaXxxSchemaObjImport element.

New in MSS Code Factory 1.11.12623 (Dec 6, 2014)

  • The missing attribute has been added to the model.

New in MSS Code Factory 1.11.12604 (Dec 6, 2014)

  • The Java* attributes of the SchemaDef and Table specifications have been renamed J* so that they don't collide with the custom verbs in MSS Code Factory 2.0.

New in MSS Code Factory 1.11.12598 (Dec 6, 2014)

  • The manufactured bindings were not properly overloading getValueObject(), which was causing the formatters to fail at runtime for MSS Code Factory 2.0. This has been corrected, and MSS Code Factory 2.0 now processes the CFSecurity 2.1 model without throwing exceptions or displaying error messages to the console. That's not to say the code produced is valid yet, but it runs properly for the migrated Java rules.

New in MSS Code Factory 1.11.12595 (Dec 6, 2014)

  • There was a bug with creating contexts in CFCore 1.11.12399 which has been corrected by CFCore 1.11.12594.

New in MSS Code Factory 1.11.12594 (Dec 6, 2014)

  • The genDef wasn't getting properly set when building a reference context under one condition that apparently has never been encountered in the 1.11 code, but which has cropped up in the 2.0 code.

New in MSS Code Factory 1.11.12588 (Nov 24, 2014)

  • The CFUniverse 2.0 code was too big to build again, so the schema references to CFAsterisk and CFFreeswitch have been removed. I'm seriously considering dropping the CFUniverse 2.0 project entirely due to the limitations imposed by Java itself. Were I using C++ on a 64-bit platform, I wouldn't be encountering 32-bit address space limitations (even with 64-bit JVMs, the Java specs use 32-bit sizing on things like the string constant spaces.)

New in MSS Code Factory 1.11.12585 (Nov 24, 2014)

  • It turned out I had two XSD component relationships from the SchemaDef to the Table and Atom specifications, which was resulting in two sets of the elements being produced for the XSD. I've decided to not only eliminate the duplicates, but to rename them. I'll have to modify the 2.0 parser accordingly after I've manufactured the code -- I don't like duplicate functionality of using more than one method set for accessing an element list. Fortunately, it's not a problem with the engine, so the other models aren't affected by this nasty little bug.
  • There will, of course, be old code elements for CFBam 2.0 that need to be removed after the manufacturing run is complete.

New in MSS Code Factory 1.11.12582 (Nov 24, 2014)

  • The MSS Code Factory 2.0 CLI now successfully parses the CFDbTest 2.1 model, so the parser for 2.0 is done until I need to add new features or discover bugs that need to be fixed. Instead of the parser, I'll now be focusing on migrating the Java rules to 2.0, and migrating any custom verbs from 1.11 that I can't emulate through GEL rules.
  • The changes to the rule base will be dramatic and widespread -- 2.0 is emphatically not compatible with 1.11, even though the same XML format and GEL syntax are used.

New in MSS Code Factory 1.11.12581 (Nov 24, 2014)

  • There were a couple of minor tweaks to the CFBam 2.0 model required by the testing of the SchemaRef processing in MSS Code Factory 2.0, and I also decided to make the SchemaDef.PublishURI attribute required.

New in MSS Code Factory 1.11.12577 (Nov 24, 2014)

  • The new CLI for MSS Code Factory 2.0 now builds with all of the features migrated (but untested) from 1.11. There might be some additional changes required in the future, but for now I don't expect to be making any further modifications to CFBam 2.0's model.

New in MSS Code Factory 1.11.12574 (Nov 24, 2014)

  • There were some missing Java* attributes for the SchemaDef, as well as other modelling corrections that had to be made throughout the day. With this update, I believe that I'll have a version of the new parser that will accept the entire CFSecurity 2.1 model.

New in MSS Code Factory 1.11.12570 (Nov 24, 2014)

  • The CFBam 2.0 model has been tweaked and enhanced a little bit more. At this point, it's objects are being successfully parsed by CFCli 2.0 up to the TableRelations specification. Rather than create variations on TableRelations for each of the object types that can be added to a table, I think I'll rename that artificial element TableAddendums and cluster all of the possible additional elements underneath it.
  • There is no *functional* change since SP7; only modelling changes have been made.

New in MSS Code Factory 1.11.12567 (Nov 24, 2014)

  • The CFBam 2.0 model mistakenly specified that SchemaDef.PublishURI was required, but did not provide an initial value. The attribute has been made optional.
  • Things are going well with the 2.0 model parser -- I've parsed down to the SchemaDef failing because of this bug. The general structure of the new MSSBam XSD has been sketched out and matched to the pruned version of the SAX Parser. I'll need to re-migrate the SchemaDef handler once the remanufacturing is done, but that's no big deal.
  • Note that I'm only going to manufacture the layers I need for the parser work at this time (java and java+msscf), so I won't be publishing a CFBam 2.0 update until I have the parser working and it's worthwhile to invest the time in doing a full manufacturing run.

New in MSS Code Factory 1.11.12565 (Nov 24, 2014)

  • The CFBam 2.0 model has been enhanced to support a couple of features that had been added to 1.11 but not brought forward to 2.0 (specifically, the LoaderBehaviour object and attributes. I've also eliminated the "Author" and "User" constructs in favour of specifying a CopyrightHolder as an attribute of a SchemaDef.
  • CFCli 2.0 is the 2.0 version of MSS Code Factory's command line interface and engine. At this point, it's only an untested shell, but it does bring together the CFBam jars, CFLib, CFCore, and the beginnings of what will be a heavily customized version of the CFBam parser (for MSSBam 2.0 models.)

New in MSS Code Factory 1.11.12562 (Nov 24, 2014)

  • The only thing I could think of that needed any more work in SP6 was the support for date-time-timestamp values and their timezone-attributed variants. I waited a day or two to think about what else I might have forgotten to take care of, came up with nothing, so here is the fixed version of the date handling for all of the databases.
  • Most of the changes actually happened in the CFLib 1.11.12561 update release, but there are code changes to the JDBC layers and to the X(ml)Msg layer that need to be remanufactured. You do not need to remanufacture your database scripts, though you should recreate and reload your database information after refreshing your project build.
  • It's worth noting that with the fixes to the TZTime handling, MySQL now passes all of the CFDbTest 2.0 tests. Part of the fixes applied including making the "zero point" of TZTime values 2000.01.01 instead of 0001.01.01. If you're only referencing the time attributes of the resulting Calendar values (as you should be), no changes should be required to your code. But if you've been accessing the date attributes, you'll need to adjust your code accordingly.
  • I do not expect to release any further MSS Code Factory updates in the foreseeable future. If I work on anything, it will be fleshing out one of the 2.0 projects to turn it into a "real application" in order to discover what limitations and constraints I may have neglected to consider and need to address. But at this point, I've implemented everything I originally intended to 18 years ago and an awful lot more.
  • Note that login security was always intended to be handled by an external agent; therefore the implementations of the Swing prototype GUI just let you choose a user identification without providing any form of security other than the database login password. You should replace those screens and functionality with appropriate security checks, and then invoke the "security" login functions to assign that authenticated user to an appropriate Cluster/Tenant/SecUser identity for runtime processing.
  • With this update, I pronounce 1.11 "done". I can't think of a single thing to work on that isn't a wishlist-extra-nice-to-have-bonus.

New in MSS Code Factory 1.11.12499 (Oct 23, 2014)

  • The client cache was not getting properly flushed when deleting by an index. The code to correct this has been implemented and clean-builds, but has not been tested. Download and use at your own risk. If there are problems, you'll have to revert to SP4 because I'm embarking on the Chain support from here on in so it'll be a long time before there is another usable build for the public, though I'll be posting updates as I go along for those who want to keep track of my progress on Chain support.

New in MSS Code Factory 1.11.12460 (Oct 17, 2014)

  • The cached sub-objects are now forgotten when an object is deleted, keeping the cache in sync with the cascading deletes that are performed by the stored procedures. This is a low-priority fix, as it only corrects a memory leak rather than altering the essential functionality of the code.
  • Note that forget() methods of the objects and the table objects have been overloaded to accept an optional boolean "forgetSubObjects" parameter, which is only set to true by the table object's "delete" implementation. As this is isolated to "internal use only" code, no changes should be required for application level custom code.

New in MSS Code Factory 1.11.12458 (Oct 17, 2014)

  • Service Pack 3 deals with refreshing the data as cached by the Obj layer of the manufactured code. All of the Obj.getRelation(), Obj.read(), and TableObj.read() methods have been overloaded with a new signature taking a "forceRead" boolean parameter. If this parameter is true, the cached information is refreshed from the database backing store. If false, the data is only read from the backing store if it's not already in the cache.
  • The original methods that did not have this extra argument have been modified to simply call the new variations with a forceRead value of false.
  • The Swing prototype GUI has been updated so that reads are forced when you open a Finder window or a ViewEdit window, including all component objects displayed by the element tab of the ViewEdit. In the unlikely event that an object is deleted by another user, the ViewEdit window will come up with blank fields. In that case, you should close the ViewEdit, the window that was used to bring it up, and re-open the window that was used to launch the ViewEdit. The parent of the ViewEdit will refresh itself from the database when launched, and you'll no longer have visible references to the stale data, although the instance will probably still exist in the cache.
  • Stale cache data can also occur when deleting complex objects, because the hierarchy chasing is done entirely at the database end, so the subobjects aren't forgotten by the client-side cache when the main container object is deleted, although the reference to the container itself will be forgotten after the delete. However, with the forced read of sub-elements when displaying other objects that used to refer to the stale data, those objects are refreshed and the stale references are not used. So while this results in some memory leakage, the user interface should behave properly.

New in MSS Code Factory 1.11.12456 (Oct 17, 2014)

  • Service Pack 2B upgrades the support for SAP/Sybase ASE from 15.7 to 16.0. The testing of the upgrade exposed an error in the CFSecurity 2.0 model, which has been corrected.
  • The database scripts for all of the projects are being remanufactured to capture the CFSecurity correction, but there will be no changes to the Java or JDBC code as a result of the correction -- it was a DelDep error that only affects the stored procedures.
  • SAP/Sybase ASE 16.0 still exhibits problems with checking Delete permissions on object tables, and does not properly execute the "Replace Complex Objects" test in CFDbTest 2.0, indicating that the sp_delete procedures are not being executed properly. However, it does not return any errors to the JDBC layer so I'm at a loss as to how to debug the problem.

New in MSS Code Factory 1.11.12455 (Oct 17, 2014)

  • With the shift to ASE 16.0 from ASE 15.7, the Sybase rules had to be changed to leverage case-sensitive naming. There were only a few cases in the DelDep rules that weren't already using case-sensitive names, fortunately.
  • Unfortunately, installing to ASE 16.0 also highlighted another error in the CFSecurity 2.0 model, which has been corrected. All of the projects will have to have their database layers remanufactured to correct the error. While they accepted the erroneous scripts when installing CFDbTest 2.0, it is entirely possible that they would generate runtime errors trying to process those invalid join statements when deleting a Cluster.
  • The most regrettable thing is that the ASE problems with Delete permissions and with the sp_delete() not working properly for the Replace Complex Objects test remain. As I've mentioned before, the problem is not with the Transact-SQL code -- migrated to Microsoft SQL Server, virtually identical code runs just fine (there are some differences in the specific syntax for the cursor fetch loops, but that's about the only difference between the two.)
  • The corrections to SAP/Sybase ASE have been propagated to MS SQL Server as well.

New in MSS Code Factory 1.11.12452 (Oct 17, 2014)

  • Service Pack 2A does not modify any of the rules used by SP2, but it corrects some defects in the CFBam model that were causing it's build to fail, and removes CFGui from the support list. Aside from the fact that I didn't see any real future for CFGui, the inclusion of that model by CFUniverse was causing the CFUniverse build to blow Java-imposed limits on the number of constants in any one class (the main X(ml)Msg Request parser.)

New in MSS Code Factory 1.11.12451 (Oct 10, 2014)

  • There turned out to be build errors in the CFBam and CFUniverse models that I hadn't caught. Seeing as I have to remanufacture those projects, I also made a couple of other changes, such as tying the Chains into the DelDeps.

New in MSS Code Factory 1.11.12450 (Oct 10, 2014)

  • The CFGui 2.0 project has been removed from the support list and will no longer be manufactured. Nor is it included by CFUniverse 2.0 any more. I'd delete the GIT repository for the project, but I can't see any way of doing so. Apparently it's a create-and-update-only service, which is fine by me.
  • I'll be remanufacturing CFUniverse 2.0 without CFGui, rebuilding, and repackaging it over the next couple of days. CFUniverse had to shrink anyhow -- it's blowing Java limits on the number of constants supported by any one class, and I've already "trimmed" the class in question as much as I can to deal with previous build issues caused by blowing Java limits.

New in MSS Code Factory 1.11.12448 (Oct 10, 2014)

  • Service Pack 2 addresses a critical area of functionality: being able to control the order in which objects are deleted. This is particularly important for objects which maintain complex relationships throughout their hierarchy, such as defined by CFBam 2.0 and CFDbTest 2.0.
  • The way I've chosen to address the issue is to introduce the concept of a "DelDep" element of a table definition (they can be specified as part of TableRelations virtual elements in the model as well, allowing you to specify them at the end of a model when all the relationships have already been defined.) Other than a Name, a DelDep has a "DelDepChain" attribute which allows you to specify up to four relationships to be "chased" in order to resolve the objects to be deleted. In practice, this turns into up to a 5-way table join to select the primary keys of the deleted objects, which are iterated through invoking their stored procedures for deletion in order to ensure that the history of the objects is maintained.
  • At some point in the future I'll probably add an explicit check as to whether the deletion target HasHistory, and perform an optimal delete-join instead of iterating, but for now most of the data I worry about has history so I'm dealing with that as being the general case. It's slower, but it *does* work.
  • Service Pack 2 also adds the concept of a PopDepChain to relationship specifications, which specifies up to 4 relationships to be chased in order to locate the selection set used by the Picker window for a widget that expresses the relationship in the GUI. There are no database or object side changes for PopDepChains -- they only affect the prototype GUI. But I needed them in order to properly do things like present the user with a list of index columns to pick from for the ToIndex of a Relation while creating the RelationCol elements. The variation on the concept I tried in Service Pack 1 was only able to deal with relationships that chained up the inheritance hierarchy of the object; PopDepChain is a more general solution and therefore more powerful.
  • There are also a number of errors corrected for the database creation scripts. It turns out I was not looking for errors in the Microsoft SQL Server and Sybase ASE logs correctly, so there were a number of unresolved errors in Service Pack 1. Both of those databases now install cleanly for CFDbTest 2.0. In addition, I made a couple of boo-boos while editing the .bash script rules for PostgreSQL with Service Pack 1 that I only discovered recently while doing some regression testing. While the errors were easily corrected manually, it's far better to download this latest release and have the scripts manufactured *correctly* in the first place.

New in MSS Code Factory 1.11.12447 (Oct 8, 2014)

  • The PopDeps now work for all models, including CFUniverse.

New in MSS Code Factory 1.11.12446 (Oct 8, 2014)

  • The DelDep and PopDep imports have been debugged and now function as they were designed to do. The models have all been refreshed to implement the DelDep specifications such that you should no longer rely on implicit deletion of components, children, or details in your models -- you should explicitly use DelDeps to control the sequence of deletion as appropriate for your model.
  • This is a candidate for Service Pack 2. It depends on how testing goes as to what changes might be needed before SP2 is released. But the bulk of the work has been accomplished.

New in MSS Code Factory 1.11.12445 (Oct 8, 2014)

  • I've realized that switching wholesale to DelDeps won't fix the problem. The CRM model, for example, is imported before the Accounting model is defined, so the rules for DelDeps would be in place for the CRM objects under the Tenant first. As a result, the Tenant deletion would try to delete the CRM objects that Accounting relies on *first*, resulting in tracebacks.
  • I had to modify both the engine and the models to reverse the order in which DelDep rules are specified and interpreted. So when manufacturing code, the Engine now navigates through the *newest* DelDeps first, and the models need to specify the *top* objects before the dependant ones, so that they process correctly when evaluated by the engine.
  • I have yet to modify the remaining models to support DelDeps. I won't be ready to release Service Pack 2 until that's done and the code has all been refreshed, built cleanly, and ready for check-in from the Windows laptop after the manufacturing runs. But I'm getting close -- I can see light at the end of the tunnel now. I sure hope it's not a train. :P
  • Yeah. I'm pretty sure that will fix the problem.

New in MSS Code Factory 1.11.12443 (Oct 8, 2014)

  • The CFBam 2.0 and CFAcc 2.0 models have been reworked to rely on DelDeps and PopDep specifications. However, while working on the CFAcc 2.0 model I realized I may have to switch wholesale to DelDep specifications, because in order to delete an Account you need to be able to delete all the references to it, which means that during a Tenant deletion it needs to obey the sub-element deletion rules for an Account, whereas currently that wouldn't happen and it would fail to delete the Tenant.
  • I *might* take the time to make those changes before Service Pack 2 is released; for now I'm doing a test manufacturing of CFAcc, CFGCash, CFBam, and CFUniverse as they are all affected by the changes I made today. Note that full remanufacturings are required because everything changes right down to the database when using DelDeps.

New in MSS Code Factory 1.11.12441 (Oct 8, 2014)

  • There were more fixes required to correct late-night mis-edits I'd made to the PostgreSQL rule base, thinking I was editing MySQL or SQL Server files. :P
  • I also updated the Complex Object tests to use the new attributes I added. I had to remove the RelationCol specifications because those don't load properly for some reason and I don't feel like debugging it right now.

New in MSS Code Factory 1.11.12439 (Oct 8, 2014)

  • Apparently I got overzealous replacing dollar signs with percent signs in the rules while working on DOS script support for Windows. Sorry 'bout that.

New in MSS Code Factory 1.11.12437 (Oct 8, 2014)

  • The CFDbTest 2.0 model has been enhanced with a full set of inter-object relationships, DelDeps, and PopDeps as the complex schema objects will require for the CFBam 2.0 model. This was done with CFDbTest 2.0 first as a test. Now that I know I can make all the changes I need to, I'll proceed with modifying the CFBam 2.0 model. I didn't want to tackle that one straight off because of how long it takes to manufacture it.

New in MSS Code Factory 1.11.12435 (Oct 8, 2014)

  • SQL Server shares the problem with Delete$TableName$ group membership checks, but passes all other tests for CFDbTest 2.0. It does take quite a long time to install the database -- about as long as it takes to manufacture it.
  • But to me, it indicates that the problem with the Sybase ASE instance is the Sybase back-end server, not the code's logic. There are newer releases of Sybase ASE out commercially, but I don't believe they've posted a developer's release of the latest installers for Sybase ASE yet.
  • Now to flesh out the other 2.0 models to use the DelDep and PopDep specifications. While the core objects need to be free to have additional components, children, and details dangling from them and remove them via the Cascade support, the internal objects of each subject area should specify their dependencies explicitly.
  • Just don't add DelDeps and PopDeps to the core objects defined by CFSecurity, CFInternet, or CFCrm.

New in MSS Code Factory 1.11.12433 (Oct 8, 2014)

  • The Sybase ASE changes have been made for the crsp_delete_$dbtablename$.isql scripts, but at run time it seems the deletes aren't doing their job the same way that they do on other platforms. I'm not sure I can remember how to debug a stored procedure in Sybase, so I'm just going to leave it as is for now.
  • At least I fixed the other installation errors I hadn't noticed before spotting the error messages during a detailed scan of the .log file.
  • The CFDbTest 2.0 evaluation of the "Replace Complex Objects" test FAILS.
  • Next up: Microsoft SQL Server gets bootstrapped with a copy of the Sybase ASE installation changes. There usually aren't any significant differences, as far as I can recall, because both rely on TransactSQL interpreters and shells.

New in MSS Code Factory 1.11.12431 (Oct 8, 2014)

  • The MySQL crsp_delete_$dbtablename$.mysql scripts now support DelDep the same way that PostgreSQL does, except that it has to rely on local variables instead of a record cursor construct. The CFDbTest 2.0 evaluation of the "Replace Complex Objects" test now passes for MySQL.
  • Next up: Sybase ASE and then Microsoft SQL Server gets bootstrapped with a copy of the ASE installation changes. There usually aren't any significant differences, as far as I can recall, because both rely on TransactSQL interpreters and shells.

New in MSS Code Factory 1.11.12429 (Oct 8, 2014)

  • Oracle crdl_$dbtablename$.plsql scripts now support DelDep the same way that PostgreSQL does. The CFDbTest 2.0 evaluation of the "Replace Complex Objects" test now passes for Oracle.

New in MSS Code Factory 1.11.12427 (Oct 8, 2014)

  • The code was not merging the DelDeps and PopDeps when applying a resolved schema reference. It's been coded, but is completely untested. It should work, though. I probably won't know until I enhance the CFBam 2.0 model with DelDeps and PopDeps and end up importing that to CFUniverse 2.0. It's the only project where I really *must* have those constructs working to proceed much further.
  • Remember, the overall goal is 2.1. At least for the foreseeable future.

New in MSS Code Factory 1.11.12425 (Oct 8, 2014)

  • DB/2 LUW sp_delete_$dbtablename$.sql scripts now support DelDep the same way that PostgreSQL does. The "Replace Complex Objects" test from CFDbTest 2.0 now passes for DB/2 LUW.

New in MSS Code Factory 1.11.12423 (Oct 8, 2014)

  • The "Replace Complex Objects" test for CFDbTest 2.0 works again for PostgreSQL. Now that I've proven in the initial code for implementing deletion dependencies, the changes can be propagated to the other databases.
  • DelDep specifications are *not* inherited. You need to explicitly state them for each table in a hierarchy if you use them. This allows subclasses to "tune" the cascading deletes that are produced. Also, if a table specifies DelDep specifications, the old cascading delete code for component/detail/child objects is *not* produced. So if you are using DelDep specifications to circumvent a problem with the default cascading delete behaviour, you must replicate and enhance the DelDep specifications for every subclass table of the table which was originally causing a problem.
  • It is also worth noting that the DelDep implementation is not as efficient as cascading deletes, because it invokes the delete-by-primary-key stored procedure for the target of the dependancy, which adds an extra stored procedure call compared to the way cascading deletes are implemented. On the other hand, cascading deletes repeatedly invoke the whole delete tree of stored procedures, so there could be cases where it's actually more efficient to specify DelDeps.
  • I hope to avoid implementing DelDeps for the three core models (CFSecurity, CFInternet, and CFCrm) because if any of the tables in those models specify DelDeps, it would force importers of those definitions to specify additional DelDeps for "hook" objects like the Cluster and Tenant.

New in MSS Code Factory 1.11.12422 (Oct 3, 2014)

  • Samples of the DelPop usage have been added to the CFDbTest 2.0 model and used to exercise the SAX Parser. Unfortunately there were a couple of minor defects in the code that were causing crashes, but it loads the specifications correctly now.
  • You can't expect further releases until I manage to get the PostgreSQL stored procedures for deletes reworked to rely on the DelPop specifications. In doing so, I may have to modify the specificatons of the three core models (CFSecurity, CFInternet, and CFCrm) such that the DelPop specifications take over for the implied deletions entirely. I am leaning in that general direction, but first I want to get some core coding and testing done to see if I can get the "Replace Complex Objects" test working without resorting to extreme model changes.
  • Then again, maybe I *will* just "bite the bullet" and get 'er done before the next release. You'll probably know about the same time I do.

New in MSS Code Factory 1.11.12420 (Oct 3, 2014)

  • The population of the Swing prototype GUI Picker windows has been reworked and tested with CFDbTest 2.0 to rely on the new Relation.PopDepChain specifications. In practice, this means that you can now define relationships and populations such that as presenting a list of appropriate Province/State entries after a Country has been selected, complete with the requirement to select a Country before allowing the Picker to be displayed for the Province/State. See the configuration of the "Relation" object in CFDbTest 2.0 for examples.
  • In addition, the selection of a Picker value now populates both the invoking window's CFJReference widget and the focused edit object, so that the values used to present the sub-selection Picker window is properly dependant on the most recently edited values rather than the value(s) which were originally present in the focused object. So in the Country-Province example, if you change the Country, the list of Provinces will be changed when you next select a Province Picker. However, the values are not forced to depend on each other, so changing the Country does *not* automatically clear the Province or select any sort of default that might be appropriate. It's up to the user to make sure they select values for both fields.
  • Maybe some day I'll deal with niceties like automatically clearing dependant values, but I'm not even sure how I could go about chasing the dependencies with the current BAM data. It certainly wouldn't be easy -- I'd need some way of identifying the selecting value reference as affecting a particular secondary reference based on the PopDepChain specified for the secondary reference. While mathematically possible, wiring such a construct into the GEL syntax would be "challenging" to say the least.

New in MSS Code Factory 1.11.12419 (Oct 3, 2014)

  • The attributes Table.DelDepChain and Relation.PopDepChain have been added to the 1.11 BAM specification, and the obsolete PickerPop attributes removed from the Relation specifications. The engine itself has been tested to load the new specifications through an updated version of the CFDbTest 2.0 model, but the rules have not been updated to implement the code for these new attributes yet.
  • In fact, if you try manufacturing CFDbTest 2.0 at this point, you will get errors in the resulting code (if not tracebacks during the manufacturing process) because the rules still rely on the removed PickerPop GEL verbs.
  • Do not download and use this release. It is a snapshot of work in progress and is intended for internal use only.

New in MSS Code Factory 2.0.12312 Test (Aug 20, 2014)

  • CFLib 1.11.12311 replaces the text edit version of CFJBoolEditor with a custom widget. Because the class hierarchy of that widget was changed, the Swing GUI package for CFDbTest 2.0 has been rebuilt. I'm pleased -- it only took about an hour to debug the custom widget. The old dog hasn't lost his widget coding skills yet!

New in MSS Code Factory 1.11.12294 (Jul 28, 2014)

  • The CFAcc model had to be corrected before it would build it's Swing GUI layer. That model affects CFGCash and CFUniverse as well. So it's going to be quite some time before CFUniverse 2.0 is ready for check in.

New in MSS Code Factory 2.0.12276 Test (Jul 28, 2014)

  • A total of 5 new files and 2,293 lines of code were created to handle the logins and logouts for CFDbTest 2.0.
  • The bugs in the XMsg Loaders have been corrected and both the GUI and the XMsg Loaders now function correctly.

New in MSS Code Factory 1.11.12277 (Jul 26, 2014)

  • An error in readAllBuff() has been corrected for DB/2 LUW, PostgreSQL, and Sybase ASE.
  • The Swing GUI now enables and disables the menu items of the main window according to the login state of the client application.
  • The finder windows retrieve their data from the database, although they do not display it yet (of course not -- I haven't even instantiated the list box, much less bound it to the data.)

New in MSS Code Factory 1.11.12243 (Jul 11, 2014)

  • The widgets in CFLib 1.11.12242 now implement calculation of maximum and minimum sizing. The maximum sizes are respected by the manufactured code, so the numeric fields (for example) no longer take up the full width of the attribute panels. However, because the attribute panels are embedded in a scrollable panel, they don't seem to get told to doLayout() when the scrollable panel is stretched wider or taller than the viewed panel.

New in MSS Code Factory 1.11.12242 (Jul 11, 2014)

  • The widgets now estimate minimum and maximum sizes for fixed-format fields like numerics, and a calculated minimum in the case of text fields, though no maximum is configured for text fields. The fixed format date-time fields also are constrained.
  • The layout of the CFJReference widget has been completely redone based on what I learned laying out the attribute panels for the GUI prototype. It should deal with resizing properly, and display the two buttons on the right of the text field that is used to display the name of the referenced object.

New in MSS Code Factory 1.11.12238 (Jul 10, 2014)

  • The manufactured code for the desktop of the Swing application now has the actions wired to launch instances of the find windows. I think I want to restrict the find windows to a single instance, though, and just do a show() on any existing instances instead of creating multiples of these core user interfaces.

New in MSS Code Factory 1.11.12230 (Jul 9, 2014)

  • The method connect( username, password ) has been added throughout the interfaces and implementations of the Java layers. This method is meant to be used to establish client-server logins, where the database connection provides the identification of a user and restricts their table access.

New in MSS Code Factory 1.11.12225 (Jul 8, 2014)

  • The entire build of 1.11 has been remanufactured and refreshed using 1.10 and then rebuilt and repackaged using the refreshed CFLib/CFCore 1.11.12225. The code is now in guaranteed to be in sync with the git repositories.

New in MSS Code Factory 1.11.12222 (Jul 7, 2014)

  • Git doesn't provide versioning numbers the way that Subversion does, so I'm artificially adding up 10800 initial releases plus 1420 current releases, give or take a fudge factor.

New in MSS Code Factory 1.11.1420 (Jul 4, 2014)

  • With CFLib 1.11.1418, the Date, Time, Timestamp, TZDate, TZTime, TZTimestamp, String, Token, NmToken, and NmTokens text fields have been fleshed out with value getters and setters, validators, and so on.

New in MSS Code Factory 2.0.1407 Test (Jul 3, 2014)

  • CFDbTest 2.0 was used as a test bed for building against the latest widgets in CFLib 1.11.1408 because it exercises all of the data types. There were changes that had to be made to allow for the new constructor signature for CFJNumberTextField.

New in MSS Code Factory 1.11.1411 (Jul 3, 2014)

  • The latest version of CFLib modified the constructor interface for CFJNumberTextField to incorporate the digits and precision, which are required to determine the values for the field formatting and min/max defaults based on those arguments. The rules for the Swing support have been updated accordingly by this release, which has also been rebuilt using the latest CFLib 1.11.1408.

New in MSS Code Factory 1.11.1408 (Jul 3, 2014)

  • The formatted fields for the various numeric data types have been fleshed out and should do appropriate formatting, validation, and range checking (though, of course, none of the code has been tested yet.)
  • The alignments have been specified for the other data types.
  • The date-time types will format their displays, but they don't have getters and setters yet, just formatter initializations.

New in MSS Code Factory 1.11.1390 (Jul 1, 2014)

  • The widget hierarchy for the Swing panels produced for displaying the attributes of an object have been reworked and now incorporate the new TextField specializations provided by CFLib 1.11.1375.
  • While there is no "meat", this provides the inheritance framework that will be fleshed out to implement behaviours like error highlighting, range checking, field formatting, text alignment within the field, and so on.
  • Some of the new widgets will never be used for editing, only display of a preview of the value, such as the Text and Blob specializations. You really shouldn't use a JTextField for editing multi-line Text, but this is a work in progress and I haven't decided how I'm going to deal with text fields yet (i.e. Do I embed a multi-line editor or pop a field editor window for the text, and only display a preview of the first line in a normal text field with a button for bringing up the editor?)

New in MSS Code Factory 1.11.1333 (Jun 30, 2014)

  • That's it for the application-specific windowing objects that need to be organized into an MDI Swing GUI. There are still some supporting GUI objects to be added, including login/logout and console log internal frames, but at this point I haven't decided whether they're going to go in CFLib or be manufactured. We'll see how things go as I start fleshing out this sketch of code.
  • Still, this is a good point for remanufacturing the 2.0 projects and bringing them up to date.

New in MSS Code Factory 1.11.1295 (Jun 26, 2014)

  • The tool has been rebuilt to use CFLib 1.11.1275, which adds a Swing package and a placeholder implementation of a CFJReference widget. The rules for Swing support have been updated to incorporate this new package, and to use it instead of a TextEdit for displaying reference objects.

New in MSS Code Factory 1.11.1264 (Jun 23, 2014)

  • The PostgreSQL rules were not properly specifying range constraints for NumberDef entries if they were referenced by a TableCol such as with the CFAcc.ACMoney type.
  • Added CFAcc.AccountContact which optionally binds a CFAcc.Account to a CFCrm.Contact and CFCrm.ContactList. (ContactList is only there because of the way contacts are resolved by name -- not including this parent object results in name resolution errors.)

New in MSS Code Factory 1.11.1245 (Jun 23, 2014)

  • Add CFAcc.AccountConfig with the required lookup attribute DefaultCurrency which defaults to CAD, and the optional lookups Cust(omer)ContactList, Emp(loyee)ContactList, and Vend(or)ContactList as required to limit the display and access of the appropriate lists within the manufactured accounting GUI.
  • As a general concept, I'll want to add ACLs to the contact lists at some point because there should be finer-grained security control of the tenant's contact lists than merely to decide an all-or-nothing table access.

New in MSS Code Factory 1.11.1234 (Jun 23, 2014)

  • The new objects added to the CFAcc and CFGCash 2.0 projects now build properly.

New in MSS Code Factory 2.0.1211 Test (Jun 19, 2014)

  • CFUniverse 2.0 is only released as source; all other 2.0 projects have been rebuilt and their installers repackaged.

New in MSS Code Factory 1.11.1211 (Jun 19, 2014)

  • The CFDbTest 2.0 test suite now incorporates fragments of code for the complex object tests (the addition of a DataCol to the IndexCol specifications) which exercises the named lookup resolutions with qualified names. The named lookups themselves have been debugged while testing this code.
  • Note the Tenant objects only probe the Tld sub-object when doing qualified name resolution. The whole purpose of the named resolutions was to deal with internet-aware data locations, so only internet data addresses are searched within a Tenant. Note that there is also an underlying assumption that a name will be unique amongst all subobjects of a given scope, but the code does not enforce that restriction so you could easily create data models and structures that don't respond to qualified name searches properly.

New in MSS Code Factory 2.0.1198 Test (Jun 18, 2014)

  • The test suite has been enhanced with a DataCol reference added to the IndexCol, and appropriate test data added to the CreateComplexObjects test. The test suite has been exercised using the code manufactured by MSS Code Factory 1.11.1195 and passed.

New in MSS Code Factory 1.11.1201 (Jun 18, 2014)

  • The CFDbTest 2.0 test suite now incorporates fragments of code for the complex object tests (the addition of a DataCol to the IndexCol specifications) which exercises the named lookup resolutions with qualified names. The named lookups themselves have been debugged while testing this code.
  • Note the Tenant objects only probe the Tld sub-object when doing qualified name resolution. The whole purpose of the named resolutions was to deal with internet-aware data locations, so only internet data addresses are searched within a Tenant. Note that there is also an underlying assumption that a name will be unique amongst all subobjects of a given scope, but the code does not enforce that restriction so you could easily create data models and structures that don't respond to qualified name searches properly.

New in MSS Code Factory 1.11.1180 (Jun 17, 2014)

  • The new methods for getting the qualified and full names of objects would have entered infinite loops because they were not navigating the object scope hierarchy properly. If you are planning on using those new APIs, you should download this build and remanufacture your code.
  • Be aware the CFDbTest 2.0 does not build with the code produced by this release because it's my work-in-progress for adding some new features to the lookup resolutions for the manufactured structured XML SAX parsers (the ones which are used for loading test or initialization data as opposed to client-server communications handled by the X(ml)Msg layers.)

New in MSS Code Factory 1.11.1163 (Jun 17, 2014)

  • The Index definition in a CFBam model was referencing the SchemaDef. While this is nice to have from a programming standpoint, it's unresolvable because the Index has no idea what it's containing Schema's scope object is, and you need to know the scope object in order to be able to resolve the name.
  • Previously I'd had a hack in place that resolved the Schema name from the Tenant scope, but that was always a hack and should never have been done. What can I say -- at the time I just wanted to build errors to go away and wasn't putting much thought into the root cause of the error.
  • I'll have to restart the manufacturing for CFBam and CFUniverse again. Perhaps tomorrow I'll have a good build of CFBam -- there were only 8 errors left in the build, all of them in the SAX XML Parser file for the Index objects.

New in MSS Code Factory 1.11.1158 (Jun 14, 2014)

  • The SchemaDefUNameIdx for both the CFBam and CFDbTest models was not including the container's DomainId in the key, resulting in build time problems for the new name resolution code which presumes that a LookupIndex has the same initial key attributes as the container's primary key, followed by the name of the object.
  • All other 2.0 projects compiled successfully. Once the CFBam, CFDbTest, and CFUniverse projects have been remanufactured and built, I'll push the whole series to distribution.

New in MSS Code Factory 1.11.1112 (Jun 14, 2014)

  • The accessor verb "DefaultVisibility", the object attributes and accessors, XSD changes, SAX parser changes, and everything else I can think of that gets affected by adding an attribute has been updated. DefaultVisilibility defaults to true if not specified, and will be used to configure the initial widget visibility in the Swing layer.
  • The attribute applies to all column types deriving from Value, as well as Table, Index, Relationship, IndexCol, RelationCol, and Chain. These are all the objects which map directly to potentially visible widgets. Not *quite* all of them, so I didn't add it to the Any definition (I'm trying to get away from using Any as a quick and dirty cheat. There certainly was no shortage of work adding this attribute, especially a lot of copy-paste code for the SAX business application model parser.)

New in MSS Code Factory 1.11.1095 (Jun 13, 2014)

  • The schema documents referenced by including a schema reference in a project are now loaded by the SAX parsers, and the root document parsers have been modified to recognize the various document names inferred from the referenced schemas.
  • In other words, you should be able to import a CFSecurity 2.0 compatible structured document containing lookup initialization data by running the SAX Loader for any project which references CFSecurity 2.0, including CFDbTest 2.0 (which I'll use to test this theory of mine about what the code should be capable of now.)
  • To be actually useful, the X(ml)Msg Rqst/Rspn parsers need to coordinate a bit better, extract the document name from the root element, and use that extracted name to populate the header and document tags prepared by the request parser as responses to the client. In other words, if a parser sees a CFSecurityRqst document, it should process the request and tag the response as a CFSecurityRspn document instead of, say, a CFCrmRspn document.
  • This will allow custom applications to be written serving a vertical model slice/market and have those custom clients run successfully with any project that references the schema definition used by the custom client to implement it's base code.

New in MSS Code Factory 1.11.918 (Jun 10, 2014)

  • The various JPanels and JTabbedPanes of the user interface now all implement ISchemaTableJPanelCommon for their data spaces.

New in MSS Code Factory 1.11.883 (Jun 10, 2014)

  • The sub-object JPanels of the EltJTabbedPane are now instantiated and wired as tabs of the JTabbedPane when it is constructed. You should now be able to see the referenced objects and object lists getting constructed and displayed in the ViewEditJPanel.

New in MSS Code Factory 1.11.779 (May 23, 2014)

  • he skeleton of the java+swing layer has been sketched out, though all of the conceptual objects of the GUI do not exist yet, much less are the details of the panels fleshed out. But it compiles properly, so I figured I'd stick with the good old "release early, release often" philosophy that I've followed to date.
  • Add the ListJPanel, which displays the attribute values of list of object elements which derive from TableObj. The Container, if present, is listed as the first data column. Then a group of the Parents, a group of the Masters, the object's optional name attribute, and then the raw type data attributes, and finally the Lookups in the rightmost columns. For each of the relationship types that are embedded as columns, an ellipses button is displayed to the right of the optional name for the referenced object which brings up a view of the referenced object.
  • The row header cell of each listed object displays an ellipses button which is used to bring up a view window over the object.
  • If a ListPanel is a subelement of a window which is in edit mode, then the JPanel containing the list of elements also displays buttons for adding new objects in the home cell of the list (0,0), and adds sheet-of-paper-with-pen edit buttons to the row headers of the listed objects. The ellipses buttons for the Parents, Masters, and Lookups are joined by binocular buttons which are used to bring up object chooser dialogues.
  • Double-clicking on a data cell outside of an action button brings up the view window for the object associated with the row.

New in MSS Code Factory 2.0.707 Test (May 19, 2014)

  • All CF* 2.0 projects save for CFBam and CFUniverse have been refreshed by MSS Code Factory 1.11.702 and rebuilt with CFLib/CFCore 1.11.688. CFBam and CFUniverse will be done much later today (it's 02h10 right now, and I don't expect them to be done manufacturing until noon at earliest.)

New in MSS Code Factory 1.11.644 (May 17, 2014)

  • PostgreSQL and Sybase database installs ran cleanly, but Oracle had issues with the constraint name lengths and MySQL had issues with some reserved words (Precision and Interval.) SQL Server Express won't let you connect while running under a Cygwin bash script anymore, so I switched that database over to using .bat scripts like Sybase ASE does. I saw no point with testing DB/2 LUW at this point as it's probably going to have issues with the same reserved words as MySQL (my guess is MySQL has them for compatability. But that's just a guess.) MySQL also gripes about indexes having keys that are too long (over 700-odd bytes -- several of my keys use strings in the 1-2 KB range), but there is nothing I'm willing to do about that, so those tables will just have to use table scans instead of indexes for MySQL joins and queries.
  • Rework the SQL Server .bash scripts as .bat scripts because one of the Microsoft patches/updates since I last used SQL Server Express 2012 has broken the ability to run it under a Cygwin bash script. It just freezes up trying to connect to the database. The scripts have been tested.
  • Changed the names of the Precision and Interval attributes in CFFreeswitch, CFSecurity, and CFBam because those are reserved words for MySQL.
  • Broke up the construcion of the SAX document element handler for XMsgRqstParser because it was blowing the 64K function binary limit imposed by Java. At some point in the future it might be a good idea to do the same for the XmlParser and the XMsgRspnParser, but seeing as it's working ok for now I'm not going to futz with it. This code has been test-manufactured but not built; there is no reason for it not to build.

New in MSS Code Factory 1.11.373 (May 9, 2014)

  • The verb ColumnInContainerOrNamedLookupRelation was not properly considering Lookup relationships in it's candidate set of inherited relationships.
  • This may bring out another bug elsewhere, in which case I'll have to spin off a new verb, ColumnInContainerRelationship and use that in the areas that exhibit the new bug. i.e. I may have removed the Lookups from the candidate set intentionally at some point, not considering the side effects that would cause.

New in MSS Code Factory 2.0.50 Test (May 7, 2014)

  • JDK 7u55 has been released for Debian, so MSS Code Factory CFDbTest 2.0 has been rebuilt and repackaged using that release.
  • The update to the JDK seems to have corrected the problem with resolving "localhost" network names, so you no longer are required to use IP addresses in the .cf*rc configuration files for the loaders.

New in MSS Code Factory 1.11.268 (May 7, 2014)

  • Open JDK 7u55 has been released for Debian, so MSS Code Factory has been rebuilt and repackaged with it.

New in MSS Code Factory 2.0.263 Test (May 2, 2014)

  • The remanufactured database schema creation scripts now make consistent use of the TLDId attributes, as do the java layers.
  • The jar trees for the remaining databases have been added for the XMsg loaders.

New in MSS Code Factory 2.0.194 Test (May 1, 2014)

  • With the exception of CFBam and CFUniverse, all CF* 2.0 projects have been updated with MSS Code Factory 1.11.42. That includes CFAsterisk, CFCore, CFCrm, CFEnSyntax, CFFreeSwitch, CFGCash, CFGui, CFInternet, and CFSecurity.
  • CFDbTest 2.0.50 was already in sync with 1.11.42.

New in MSS Code Factory 1.11.210 (May 1, 2014)

  • MSS Code Factory 1.11.210 has been repackaged with CFLib/CFCore 1.11.207, which corrects the formatting of output TZ values by adding the missing ":" between the hour and minute components of the timezone offset.

New in MSS Code Factory 1.11.207 (May 1, 2014)

  • Parsing the TZ values formatted by CFLibXmlUtil was causing exceptions due to the missing ":" between the hour and minute components of the timezone offset. The error in the formatters has been corrected.

New in MSS Code Factory 1.11.39 (May 1, 2014)

  • The source code for CFLib and CFCore have been restored to the subversion repository, which resets the revisions. There has been no change to the code since the last release, but this version is resynced with the current subversion repository.

New in MSS Code Factory 1.11.10800 (Apr 25, 2014)

  • The first four CFDbTest 2.0 X(ml)Msg tests now run successfully. There are a lot of problems with the remaining tests, some trivial, some not so much. But I got a lot accomplished for today so I'm calling it a night, and will pick up the debugging at some point in the future.

New in MSS Code Factory 2.0.10801 Test (Apr 25, 2014)

  • The first four CFDbTest 2.0 X(ml)Msg tests now run successfully. There are a lot of problems with the remaining tests, some trivial, some not so much. But I got a lot accomplished for today so I'm calling it a night, and will pick up the debugging at some point in the future.

New in MSS Code Factory 2.0.10757 Test (Apr 23, 2014)

  • The latest code manufactured by 1.11.10754 incorporates a new executable for CFDbTest. The appropriate run-scripts have been created, and I'm ready to begin testing the implementation. But perhaps not today. Let me enjoy a day of do-nothing before I dive into testing. Or maybe a few days. Perhaps even the end of the month. We shall see.

New in MSS Code Factory 1.11.10754 (Apr 23, 2014)

  • The PostgreSQL-persisted implementation of a direct-invocation of the request handler by an XMsg Client implementation has been coded.
  • A persistet PostgreSQL store is made the backing store of a caching layer. That caching layer is stitched to a XMsgRequestHandler as it's back end storage provider.
  • This back end handler is wired to a direct request invoker, which implements an XMsgClient by directly invoking the XMsgRequestHandler from the sendReceive() method that the client uses to send requests, receive responses, and then process those responses. That invoker is then bound to a client-side caching layer, such that any DbIO requests go through the XML serialization/deserialization process with automatically managed per-request commits and rollbacks.

New in MSS Code Factory 2.0.20743 Test (Apr 22, 2014)

  • The code base is now in sync. Note that the binaries for CFDbTest 2.0 have been refreshed as well. This rebuild adds over 400,000 lines of code to CFUniverse.

New in MSS Code Factory 2.0.10726 Test (Apr 22, 2014)

  • Just a few tweaks and cleanups, really. But it touches a lot of header comments.

New in MSS Code Factory 2.0.10713 Test (Apr 22, 2014)

  • This clean-compiling version of CFDbTest has an almost-complete implementation of the request/response partner pairs. I just need to stitch together a simple direct-invocation version of the sendReceive() method to bind together a general database persistence layer with a Client layer invoking the persistence layer via a request parser's parseStringContents() method.
  • There is now enough functionality in the Client layer that it will be worthwhile to detour into creating a test framework for the new code now.

New in MSS Code Factory 2.0.10692 Test (Apr 22, 2014)

  • The response processors need to be wired next. The list responses have been properly handled, but not the unique key references.

New in MSS Code Factory 2.0.10673 Test (Apr 22, 2014)

  • The wiring of the response processors and result evaluations is far from complete. I haven't even sketched it out for one case completely yet; I've been focused on providing the core code to use for the parser implementations.

New in MSS Code Factory 1.11.10724 (Apr 22, 2014)

  • The code has been rebuilt and repackaged with the recreated source tree. The Linux dev box and the SourceForge servers are now in sync for MSS Code Factory 1.11.

New in MSS Code Factory 1.11.10722 (Apr 22, 2014)

  • Seeing as the net-sourceforge-MSSCodeFactory-1-11 source tree was corrupted in Subversion, I renamed it to -old, then created an empty directory, checked it out, and have just finished adding all the source tree and setting the file properties for the source code files.
  • This should resolve the problem with Subversion, although it means all of the code history is now only available in the corrupt -old tree.

New in MSS Code Factory 1.11.10717 (Apr 22, 2014)

  • The first cut of the integration test layer java+xmsg+pgsql has been wired to the rule sets and scripts and will now get manufactured by the system. That's not to say that it's valid code yet... just that it's been hooked up for manufacturing. Client implementation.

New in MSS Code Factory 1.11.10712 (Apr 22, 2014)

  • I think that's a complete implementation of the XMsgClient relying on the Parser overriding the implementation of sendReceive() to provide actual communications.
  • I need to wire up a test implementaton that persists data using PostgreSQL, via an XMsgRqst handler whose parseStringContents() are invoked directly by the Client. The sendReceive() will simply pass the sent string to the parseStringContents() of the request handler bound to the specialization, which will in turn leverage the PostgreSQL persistence implementation to respond to the requests and formulate appropriate response messages for processing by the XMsgRspn parser instantiated by the XMsgClient implementation.

New in MSS Code Factory 1.11.10691 (Apr 22, 2014)

  • The request and response handlers are getting closer and closer to done. But I still need to tease out the last object to be manipulated by the response parser, and use it to clobber the parameter buffer where such was passed into a database method.

New in MSS Code Factory 1.11.10672 (Apr 22, 2014)

  • The code produced for CFDbTest 2.0 clean compiles with this release. There are still some enhancements needed to apply the response buffers to the pass-back arguments and instances in the object hierarchy. (The XMsgClient layer, specifically.)

New in MSS Code Factory 1.11.10656 (Apr 22, 2014)

  • The state of the rules is unknown at this point in time; they probably don't manufacture clean code right now.

New in MSS Code Factory 1.11.10652 (Apr 22, 2014)

  • The CFLib exceptions can now be factoried with a single string argument. This signature is used to map a SchemaXMsgRspnException response message to an appropriate exception implementation on the receiving client's end.

New in MSS Code Factory 2.0.10649 Test (Apr 18, 2014)

  • CFDbTest 2.0 has been remanufactured by MSS Code Factory 1.11.10648 and rebuilt with CFLib and CFCore 1.11.10626. This enabled the addition of a parseStringContents() method for the base implementation of the CFLib SAX Parser and subsequent overloads by the XML SAX Loader, XMsgRqstHandler, and XMsgRspnHandler parser implementations.

New in MSS Code Factory 1.11.10648 (Apr 18, 2014)

  • The unwrapping of the results of the parse into the return values to be passed as responses of the various database I/O methods has yet to be implemented. But the responses are properly parsed into their conglomerate attributes by the structure of the parse.

New in MSS Code Factory 1.11.10628 (Apr 18, 2014)

  • A number of enhancements have been made to the functionality of the various XML and SAX parser layers in order to support the newly added parseStringContent() method of a basic SAX parser implementation as expressed by CFLib/CFCore 1.11.10626.
  • Wire constructors that take the SchemaObj that is to be used as the persistent storage implementor by the request and response parser processing.
  • The XMsgClientSchema constructors have also been enhanced with SchemaObj argument variations.
  • This form of XML Parser construction will become the preferred version as opposed to explicitly invoking setResponseHandlerSchemaObj() after constructing an instance. I think it makes for a clearer understanding of what the arguments are to establish a realizable
  • Added the sendReceive() method to the XMsgClientSchema, and made use of it and the XMsgTableFormatter implementations to prepare the request message and issue it to the server.
  • Now I need to take a step back and figure out how to pass a string into the SAX XML parser -- I've always been parsing files until now. I'm sure there must be a method for doing it short of creating a virtual File implementation.

New in MSS Code Factory 2.0.10597 Test (Apr 17, 2014)

  • CFDbTest 2.0 has been remanufactured by MSS Code Factory 1.11.10595 and rebuilt with CFLib and CFCore 1.11.10572.

New in MSS Code Factory 2.0.10547 Test (Apr 17, 2014)

  • The SAX request response formatting has been added to all of the 2.0 projects.
  • During the refresh, CFUniverse 2.0 grew by 96,836 lines of code.

New in MSS Code Factory 1.11.10595 (Apr 17, 2014)

  • The commented source now clean compiles.

New in MSS Code Factory 1.11.10587 (Apr 17, 2014)

  • The core Schema code base implementation interfaces and the Programmer's SchemaObj interfaces have been documented. Most of the remaining undocumented interfaces are intended for internal use only, save for the ISchemaSchema accessor methods. But those are so obvious I decided not to document them.

New in MSS Code Factory 1.11.10575 (Apr 17, 2014)

  • The manufactured code for the XMsgClient layer now uses the CFLibNotSupportedException to identify methods which are not supported for direct client-side invocations.

New in MSS Code Factory 1.11.10572 (Apr 17, 2014)

  • CFLibNotSupportedException is thrown by client-side implementations if the operation is not available to client layers, but only server layers. For example, id generators cannot be invoked by the client layer, because clients are supposed to instantiate new object instances, edit them, and invoke the object's "create" method to generate the id in the server layer and pass it back to the client.

New in MSS Code Factory 1.11.10570 (Apr 17, 2014)

  • The XMsg Client will prepare XMsg request messages and issue them through an easily-overloaded call to the client schema. It will then use the client schema's XMsgRspnHandler parser to analyze the response string received from the invocation, and apply the resulting data to the client cache.
  • All of the database layers had a redaction notice, I realized. It's been removed. Until redaction is implemented, just don't use MSS Code Factory for implementing access to protected/private data without a custom client access layer that implements redaction and obfuscation.

New in MSS Code Factory 2.0.10536 Test (Apr 3, 2014)

  • With the remanufacturing of CFDbTest, the initial coding of the XML message request parser is complete and ready for integration with a communications protocol.

New in MSS Code Factory 1.11.10534 (Apr 3, 2014)

  • The response message formatters have been fleshed out and wired to the request parser. You should now be able to parse a valid request, have it processed, and see the request parser prepare a response XML buffer, which is stuffed into the getResponse() accessor of the request parser.
  • Next I need to code the XMsgClient, which will implement the database I/Os as XMsg request/response processing from the client side. At this point, the server side code just needs to be wired in to a valid communications protocol.
  • I'm ambivalent about making the XMsgClient specific to a protocol; I'm leaning towards it being generic and then adding another subclass layer to specifically implement the web client implementation. That way you should be able to easily reuse the XMsgClient code with something like an MQSeries server as well, by simply redefining send/receive interfaces instead of having to muck with redefining the protocol and it's parsers.

New in MSS Code Factory 1.11.10485 (Mar 31, 2014)

  • The parsers and formatters produced for the three XMsg layers now properly implement the formatting and parsing of the Revision and Audit attributes.

New in MSS Code Factory 1.11.10459 (Mar 31, 2014)

  • This version produces a clean compiling implementation of the CFDbTest 2.0 code. It is ready for use in remanufacturing the entire project set to complete the refactoring from IMssCFAnyObj to ICFLibAnyObj.

New in MSS Code Factory 1.11.10434 (Mar 31, 2014)

  • The CFCore 2.0 model can not extend CFCore because it *is* CFCore.

New in MSS Code Factory 1.11.10429 (Mar 31, 2014)

  • This version of the latest CFLib and CFCore support actually runs.

New in MSS Code Factory 1.11.10408 (Mar 31, 2014)

  • CFLib and CFCore have been updated to refactor all IMssCFAnyObj references as ICFLibAnyObj references.

New in MSS Code Factory 1.11.10361 (Mar 31, 2014)

  • The CFAsterisk, CFCrm, CFEnSyntax, CFFreeSwitch, CFGui, CFGCash, CFInternet, CFSecurity, and CFUniverse projects are no longer defined to depend on CFCore. That means you are no longer required to link those projects to any GPLv3 libraries to use their code. However, you do need a commercial license if your project is not GPLv3 compatible. But you are not required to be GPLv3 compatible with a commercial license, hence the removal of the jar/library dependency.

New in MSS Code Factory 1.11.10353 (Mar 31, 2014)

  • CFLib added support for the missing Uuid XML formatters.
  • The factory has been rebuilt to use the latest CFLib and CFCore.

New in MSS Code Factory 1.11.10334 (Mar 31, 2014)

  • The code factory has been rebuilt and repackaged with the latest version of CFLib and CFCore.

New in MSS Code Factory 1.11.10327 (Mar 31, 2014)

  • In order to simplify the manufactured code, the logic for deciding whether to apply separators and attribute emissions have been centralized in CFLibXmlUtil.format[Optional/Required][Type]() routines.
  • Both packages have been recompiled with the changes in place to ensure that all code remains in sync.

New in MSS Code Factory 1.11.10325 (Mar 27, 2014)

  • MSS Code Factory has been refreshed, recompiled, and repackaged.
  • CFLibXmlUtil.formatBlob() has been added to the XML formatting/encoding repetoire.

New in MSS Code Factory 1.11.10318 (Mar 27, 2014)

  • CFLibXmlUtil.formatBlob() has been added to the XML formatting/encoding repetoire.

New in MSS Code Factory 1.11.10314 (Mar 27, 2014)

  • MSS Code Factory has been rebuilt and repackaged using the latest versions of CFLib and CFCore.
  • The formatting functions for outputting XML-encoded attributes have been added to CFLibXmlUtil.

New in MSS Code Factory 1.11.10312 (Mar 27, 2014)

  • The formatting functions for outputting XML-encoded attributes have been added to CFLibXmlUtil.
  • Both CFLib and CFCore have been rebuilt and repackag

New in MSS Code Factory 1.11.10289 (Mar 27, 2014)

  • The XMsgRqst and XMsgRspn packages have been updated to correctly parse the grammars defined by their XSDs, found in the xsd directory of the Java source tree for the package, and shipped as a resource of the parser. There is no need to publish the schema to the internet; it is carried by the code itself. The XSDs have been validated by Eclipse.

New in MSS Code Factory 1.11.10264 (Mar 27, 2014)

  • The XSD specification files have been updated and fleshed out, and now properly express the intended grammar as validated by the Eclipse XSD validation tool.

New in MSS Code Factory 1.11.10241 (Mar 27, 2014)

  • The X(ml)Msg layer has been split into seperate request and response packages because although I like to do peer-to-peer coding, client-server is also very popular and there is no point bogging down a client with server/request parsing code.

New in MSS Code Factory 1.11.10219 (Mar 27, 2014)

  • The NoDataFound and Exception responses are now on a per-schema basis instead of per-table. Also, sketches of their element definitions have been added to the response XSD. The request and response XSDs have had their attribute lists corrected as well; they were still carrying some hidden attribute cruft from the original structured XSD code.

New in MSS Code Factory 1.11.10205 (Mar 27, 2014)

  • The exception factory has been enhanced to allow the X(ml)Msg response processing to recreate an exception on the client side based on an exception element parse.
  • CFCore and MSSCodeFactory itself have been recompiled to use the enhanced library, and they have all been pushed to the SourceForge site for distribution.

New in MSS Code Factory 1.11.10199 (Mar 27, 2014)

  • The attributes and accessors for LastObjectProcessed and SortedMapOfObjects have been added to the response parser, and are now used by the element processing of the response parser to pass back results to whoever invoked the parse.
  • Next I need to flesh out the Exception responses and parse them. On the way to doing so, I'm going to consolidate the Exception and NoDataFound messages to single definitions instead of one-per-table.

New in MSS Code Factory 1.11.10190 (Mar 27, 2014)

  • The X(ml)Msg production had only beeen enabled for CFDbTest20Work projects up until now as I developed the initial code. There is enough of it in place and clean compiling for me to turn it on for the other projects as well, so I've done so.

New in MSS Code Factory 1.11.10187 (Mar 27, 2014)

  • The X(ml)Msg response parsers have been largely coded, though they're not done yet. I need to work out how I'm going to let the invoker of the parse retrieve the data that was created/passed back by the parsing.

New in MSS Code Factory 1.11.10164 (Mar 12, 2014)

  • The X(ml)Msg request parser has been enhanced to support the delete-by-index requests. All of the requests are now coded to perform their duties, though they do not package up a response message as they'll need to in the future.
  • As long as you begin a transaction before applying the parser to a file, and handle exceptions to roll back or commit the transaction accordingly, you should be able to apply a request message to the databa

New in MSS Code Factory 1.11.10145 (Mar 12, 2014)

  • The request parsing and application code for ReadByIndex and ReadAll have been coded and clean compile. All that remains to be fleshed out to this degree is the DeleteByIndex processing.
  • Note that the responses are not prepared yet by the request parser. So while you could apply a set of requests conforming to the request document schema to this parser and have those requests applied against the database, you wouldn't get any responses back to let you know what the results were.

New in MSS Code Factory 1.11.10136 (Mar 12, 2014)

  • The XMsg request parsers for Create and Update now parse out their attributes, apply them, and perform the requested operation.
  • Results aren't prepared/formatted yet, of course.

New in MSS Code Factory 1.11.10100 (Mar 12, 2014)

  • CFDbTest 2.0 clean compiles it's XMsg library. Just a little more work done. There's a long way to go. Right now I'm putting the calls and processing in place for the request processing, littering the place with comments about formatting response messages.

New in MSS Code Factory 1.11.10089 (Mar 12, 2014)

  • The code doesn't even come close to being complete or working, but it clean compiles so that's a good release point.

New in MSS Code Factory 1.11.10050 RC2 (Mar 12, 2014)

  • The DB/2 LUW implementation has been modified to store Blob data as Base64-encoded CLOBs. This means that DB/2 LUW can't store full-sized objects as Blobs, because it's losing out on the ratio between Base64-encoded character streams and octal bytes.
  • In compensations, DB/2 LUW now implements all of it's operations as stored procedures with no client-side logic. This improves overall performance, especially in conjunction with the prepared statements used to access stored procedures.
  • Subject to the limited size constraints at runtime, DB/2 LUW now passes all CFDbTest 2.0 exercises correctly, and joins the ranks of PostgreSQL and Oracle as a complete implementation.

New in MSS Code Factory 1.11.10037 (Mar 12, 2014)

  • I'm working on switching over the DB/2 LUW implementation of Blob persistence from using BLOB columns to using CLOBs of Base64-encoded data. This allows the implementation of the stored procedures for create and update, which improves the performance of a deployed system at the expense of having to encode and decode byte arrays as Base64 strings in the JDBC layer.
  • Along the way, I discovered an error in the DB/2 LUW scripts caused by an old coding bug/error that treated MaxLen as an optional attribute of a BlobDef. MaxLen is required for BlobDef.
  • Do not download if you're using the manufactured DB/2 LUW code -- it's broken right now.

New in MSS Code Factory 1.11.10023 (Mar 12, 2014)

  • The request parsers are sketched out and clean compile. They won't actually do anything yet as the code is incomplete, but the general structure is in place for them. The responses aren't complete yet -- there are many missing classes.

New in MSS Code Factory 1.11.9999 (Mar 12, 2014)

  • It's the last of the four digit releases. I've been working away at the X(ml)Msg layer, but it's not fully coded and doesn't clean compile. But it's a lot closer than it was this morning and yesterday.

New in MSS Code Factory 1.11.9936 (Mar 12, 2014)

  • The X(ml)Msg layer provides for request and response parsers so that a node can participate as a peer in the network.
  • The request and response messaging XSDs have been drafted, the parsers have been sketched out, and a couple of the element parsers thrown together crudely. There is a lot of work to do yet.
  • If you download this release, I do not recommend including the $schemaname$xmsg$release$ Java package in your build just yet -- it has many errors due to undefined types, so I haven't even tried to test build it yet. The XSDs should be ok, though.

New in MSS Code Factory 1.11.9876 RC1 (Mar 12, 2014)

  • There are three known bugs with the code produced by the release candidate:
  • DB/2 LUW will periodically throw SQLCODE 204 exceptions for no reason that I can fathom. Sometimes the code works, sometimes it doesn't. The manuals have been notoriously unhelpful, as they indicate that it means an object isn't defined that is being referenced, yet all the tables and columns exist that are being accessed, as are the stored procedures that are being called. The one common feature when the bug occurs is that the table being manipulated has BLOB columns.
  • Sybase ASE will allow you to delete data when you don't have an entry in the security tables allowing you to do so. Other permissions are validated properly, so I'm baffled as to why this particular issue remains.
  • SQL Server will also allow you to delete data when you don't have permission to do so.

New in MSS Code Factory 1.11.9859 (Mar 12, 2014)

  • The database schema names are now entirely dynamic so that you can point an application at any business application database which referenced this application's schema model. This will allow the construction of common "utility" programs for layers such as the security system to be used with all applications produced by the system instead of having to create custom versions for each referencing application.

New in MSS Code Factory 1.11.9823 (Mar 12, 2014)

  • There was an occurance of "oracle" where "Oracle" was required, and thus things were going boom...

New in MSS Code Factory 1.11.9820 (Mar 12, 2014)

  • I had to rename CFParseEN to CFEnSyntax, due to some weird bug in Java/MSS Code Factory which flat out did not like the CFParseEN name for no reason that I can fathom. Regardless, renaming the project fixed the problem, so good enough.
  • CFUniverse now includes all the projects it should.
  • There are still bugs with Sybase ASE and SQL Server to address.

New in MSS Code Factory 1.11.9811 (Mar 12, 2014)

  • There was one last remaining issue with the schema merges being exposed by referencing CFCrm. It turned out to be a fluke of the data that exposed a significant defect in the way I'd written the code. I was just lucky it wasn't a more common problem.
  • CFCrm has been added to CFUniverse now.

New in MSS Code Factory 1.11.9805 (Mar 12, 2014)

  • CFGui manufactures properly now, so it's been wired to CFUniverse as well. CFUniverse now contains everything except CFCore, CFParseEN, and CFCrm. There is a problem importing the CRM model for some reason. I'll need to fix that.

New in MSS Code Factory 1.11.9792 (Mar 12, 2014)

  • I noticed a problem while watching CFDbTest 2.0 produce it's files. There were multiple "Tenant" relationship objects being produced for projects. The duplicate entries have been purged.
  • Everything needs to be remanufactured to clean up from the mistake.

New in MSS Code Factory 1.11.9786 (Mar 12, 2014)

  • There is now an msscf project created similar in scope to the ram project, to which the MssCF Java packages have been moved. This means that the core package produced for a project will no longer include the MssCF support by default; you'll have to specify the jar/library explicitly.
  • Hey, look, at least I finally caught up to Intel's release schedule with a '786.

New in MSS Code Factory 1.11.9769 (Mar 12, 2014)

  • I forgot to upgrade CFDbTest 2.0's model to reference the containing DomainBase object instead of a ProjectBase object.

New in MSS Code Factory 1.11.9764 (Mar 12, 2014)

  • That's not to say that the CFBam 2.0 code has been test compiled or packaged, just that the manufacturing run will now proceed without any errors from the CFEngine.
  • I need to remanufacture and repackage the projects CFInternet, CFCrm, CFBam, CFFreeSwitch, and CFAsterisk, as they all depend on the changes made to CFInternet.

New in MSS Code Factory 1.11.9749 (Mar 12, 2014)

  • There is still a problem with the SchemaDef manufacturing for the CFBam 2.0 SAX XML Parser code layer, but everything else has been tweaked and updated to fix the issues encountered to date.
  • I had to make some model changes to CFBam 2.0, though, so I need to start a full manufacturing run and call it a night.

New in MSS Code Factory 1.11.9739 (Mar 12, 2014)

  • There was a reference being followed, but it's optional, not mandatory, so there were problems with the CFBam 2.0 manufacturing. The new verb HasNarrowedRelationDef in conjunction with it's use in the rule base should resolve the problem.

New in MSS Code Factory 1.11.9734 (Mar 12, 2014)

  • You can now manufacture CFUniverse.
  • The only project remaining to be fixed is CFParseEN. Once that's fixed and added to CFUniverse, I'll have brought all the projects up to date with the new syntax, as well as having added several.

New in MSS Code Factory 1.11.9729 (Mar 12, 2014)

  • The CFBam and CFUniverse models have had some corrections applied, resulting in more obsolete code to be pruned from CFBam.
  • Now that I've merged the Token types and columns, the CFUniverse model should build/manufacture.

New in MSS Code Factory 1.11.9723 (Mar 12, 2014)

  • The license headers of the Dual GPLv3/Commercial licensed projects have been updated to reflect the references to CFSecurity, CFInternet, and CFCrm by application code instead of the old conglomerate CFSme project.

New in MSS Code Factory 1.11.9682 (Mar 12, 2014)

  • The CFIso objects could not be compiled without the CFSecurity objects, so they've been merged into one model and CFIso has been purged from the system.

New in MSS Code Factory 1.11.9665 Beta (Mar 12, 2014)

  • The schema name is now dynamically set by PostgreSQL based on the database name specified in the configuration file. Thus you can point any applications that were built using CFDbTest 2.0's code base to any schema that was manufactured with a reference to CFDbTest 2.0, and the custom CFDbTest 2.0 client code would run because all of the stored procedures and signatures should match.
  • After all, there is no way to add extra columns to a table after the table has been defined, which prevents anyone from changing the signature of the stored procedures associated with a referenced/imported table.
  • PostgreSQL regression tests have passed.
  • Apologies. Beta 21 should never have been issued. This release fixes all the problems Beta 21 had.

New in MSS Code Factory 1.11.9654 (Mar 12, 2014)

  • The PostgreSQL JDBC interface is now entirely dynamic with respect to the use of SchemaDbName in all prepared SQL statements and dynamic SQL invocations.
  • The code is now ready for regression testing.

New in MSS Code Factory 1.11.9645 (Mar 12, 2014)

  • The "Parent" lookup hack is now part of production. Unlike I'd hoped, restoring the Table.Lookup references to the lookup indexes did *not* correct the problem with the XML SAX parser code. The old syntax/undefined function invocation error resurfaced.
  • So the hack is back, and here to stay.
  • This version is finally good enough for a release. There is still more work to do on the PostgreSQL layer, but as long as you're not changing the value of setSchemaDbName() (which you wouldn't be because it's a new API), the PostgreSQL code should *work*; it's just not fully dynamic yet.
  • And for that reason I'm going to postpone the next beta until I have that new functionality fully implemented and regression-tested for PostgreSQL.

New in MSS Code Factory 1.11.9642 (Mar 12, 2014)

  • The Lookup indexes weren't being properly resolved by the merge process, so I've done that and backed out the check for "Parent" relationships because the ones in question should have been identified as named lookups. Now that the lookups are properly wired, that code should function as *originally* intended instead of requiring the recent workaround/patch.

New in MSS Code Factory 1.11.9638 (Mar 12, 2014)

  • And after a couple days of wrasslin', we're back to producing clean compiling (but not regression tested) code.
  • Use at your own risk.

New in MSS Code Factory 1.11.9629 Experimental (Mar 12, 2014)

  • This may resolve my bad XML problem

New in MSS Code Factory 1.11.9627 Dev Release (Mar 12, 2014)

  • There are still problems with the manufactured SAX XML Parsers producing invalid code, but I'll get that figured out in due time. I know what I want to do to resolve the issue, and I think the pieces of the engine I'm thinking of using already exist.

New in MSS Code Factory 1.11.9614 Dev Release (Mar 12, 2014)

  • The iterator SchemaDef.SchemaRef has been added to the repetoire of the engine's integration with the business application model (CFBam).
  • This is a development release. It does not produce functional code.

New in MSS Code Factory 1.11.9580 Dev Release (Mar 12, 2014)

  • Yhe implementations must now be updated so that any final strings which depend on the expansion of the runtime dbSchemaName can no longer be implemented as final values at runtime, because the expansion has to be interpreted at runtime so that the SQL interface adapts to the global environment variable configuration.

New in MSS Code Factory 1.11.9562 (Mar 12, 2014)

  • The CFSme 2.0 project is now distributed under an Apache 2.0 license, and referenced by the other CF* 2.0 projects, which give credit to the underlying Apache 2.0 code in compliance with a reasonable interpretation of the Apache license, as it does not specify that anything needs to be retained from the original license header when extending the code. CFCrm, or CFInternet (recommended) into your projects.
  • The CFBam model is published under a Dual GPLv3/Commercial license, not the Apache license. The same goes for the CFGui model.
  • The projects included by CFSme 2.0 are all published under the Apache 2.0 license, including CFIso, CFSecurity, CFCrm, and CFInternet.
  • Under the Dual GPLv3/Commercial license are CFUniverse, CFBam, CFGui, CFParseEN, and CFCore..
  • If you want to see code bloat made flesh, import the CFUniverse project, which includes everything that manufactures code cleanly to date. It's the kitchen sink project, under GPLv3/Commercial licensing.
  • All of the databases now have their full primary feature sets implemented. The most important bugs are that SQL Server 2012 doesn't seem to perform cascading object deletion properly, resulting in duplicate key errors during the "Replace Complex Objects" test. All of the other databases no longer have a problem where they permit users with Update permissions to Delete data that they shouldn't be allowed to. Only Sybase ASE 15.7 and SQL Server 2012 still have those particular bugs left to be fixed before the production release.

New in MSS Code Factory 1.11.9551 (Mar 12, 2014)

  • The EnumTag children of an imported schema are now properly integrated with the destination schema.

New in MSS Code Factory 1.11.9502 (Feb 1, 2014)

  • The CFSme 2.0 project is now distributed under an Apache 2.0 license, and referenced by the other CF* 2.0 projects, which give credit to the underlying Apache 2.0 code in compliance with a reasonable interpretation of the Apache license, as it does not specify that anything needs to be retained from the original license header when extending the code.

New in MSS Code Factory 1.11.9457 (Jan 25, 2014)

  • Working on being able to import schema references as part of the 1.11 model syntax. The first step is to wire in the new attributes that are required by the object, which was done by simply updating the 1.10 model for the MSSBam 1.11 specification.
  • Add in a SchemaRef object that is a component of a SchemaDef, which is used to bind/import schema defintions to the current schema.
  • Also wire a DefSchema element and relationship to the AnyObj, so that the parser can be modified to process the schema include relationships.
  • The idea is simple. When an import reference is parsed, the parser tries to locate that schema and load it instead. The resolved schema object is then scanned, and it's contents are bound to the current schema. For any elements of the referenced schema with null DefSchema specifications, the imported element is specified as being defined by the imported schema. For elements with non-null references, the reference is propagated to the cloned object in the current schema.
  • So as far as the main code manufacturing process goes, it'll still see a fully defined and qualified schema specification. It's just that some of the elements will have been defined by an external schema instead of the current one. A null DefSchema means that it was defined by the containing schema.
  • The definitions above a SchemaDef will have to be modified to allow for the fact that their definitions may already exist, and if so, simply reuse the existing definition rather than re-defining it.
  • Licenses are going to be fun to modify, too. I'll want to add a RefLicense body block to the license text parser, so that when you are manufacturing a Table that specifies a DefSchema, you use the RefLicense from that schema definition as well as the License body from this SchemaDef. That will allow for incorporating BSD code into GPL projects. The presumption, of course, is that your project's license is compatible with the requirements of the RefLicense.

New in MSS Code Factory 2.0.9448 Test (Jan 11, 2014)

  • There is one test for DB/2 LUW 10.5 which fails at the command line -- Replace OptFullRange. However, the create() and update() methods that are used by this test have already *passed* their testing in earlier tests; the only thing this test does differently is a delete and re-insert, using the same insertion code that had already worked! Furthermore, the bug does not occur under Eclipse.
  • So I just have to chalk it up to IBM being inconsistent in some form or fashion with their driver; there is nothing I can do to fix the problem. All other tests run successfully for DB/2 LUW 10.5.

New in MSS Code Factory 1.11.9444 (Jan 11, 2014)

  • DB/2 LUW 10.5 requires the use of the NUMERIC type when setting null values, rather than the DECIMAL type.
  • There is still a bug in one of the tests where an SQLCODE -103 is being thrown when running the CFDbTest 2.0 test suite from the command line, but when running the failing test (Replace OptFullRange) under the Eclipse debugger, the error does *not* occur. This had been a problem with the previous release of DB/2 LUW as well (10.2.)
  • If I can't replicate a problem, I can't very will fix it. Aside from that, both the insert and the update code work for earlier tests on the same data object, yet fail for this particular test, even though the same values are being inserted!

New in MSS Code Factory 2.0.9430 Test (Dec 30, 2013)

  • The CFDbTest 2.0 test suite has been refreshed and packaged for MSS Code Factory 1.11.9420.

New in MSS Code Factory 2.0.9425 Test (Dec 30, 2013)

  • This is the updated core/shared code snapshot for 1.11.9420, which is published under a BSD license. Because all application models derive from an SME model to start with, they include the objects it defines. Rather than restrict such code to a GPL license, it is released under BSD so all you have to do is credit the CFSme 2.0 project in your license header for your application, and you're free to use it in combination with any license you choose for your code.
  • That's over 1.4 million lines of free code for you to start your project with.

New in MSS Code Factory 2.0.9370 Test (Dec 30, 2013)

  • The updated snapshot of the core BSD code on which everything gets built and extended has been released.

New in MSS Code Factory 2.0.9361 Test (Dec 30, 2013)

  • The CFDbTest 2.0 regression test suite for MSS Code Factory 1.11.9359 Beta 19 is now available.

New in MSS Code Factory 2.0.9351 Test (Dec 30, 2013)

  • The complex object replacement is still failing; I suspect a problem with the delete stored procs. However, all the other tests are passing now.

New in MSS Code Factory 2.0.9310 Test (Dec 30, 2013)

  • The Sybase ASE 15.7 SAX Loader command line interface has been upgraded to support the extra security arguments needed for permissions testing later on in the test cycle. First off, it will be necessary to upgrade the arguments passed into the CLI to match those provided for the PostgreSQL runtime tests.

New in MSS Code Factory 2.0.9301 Test (Dec 30, 2013)

  • The JDBC enhancements for the Sybase ASE 15.7 binding layer have been coded and are ready to be integrated and tested. There are some changes to the SaxSybaseLoader implementation that need to be brought over from the PostgreSQL implementation of the same layer in order to drive the enhancements that will be made to the test invocation scripts for Sybase. The extra arguments are needed to allow for security constraint tests at runtime.

New in MSS Code Factory 2.0.9285 Test (Dec 30, 2013)

  • The Sybase ASE 15.7 implementation is ready for testing, save for auditing of tables incorporating BLOB data. Those get updated without auditing by the client side code, so they may error out in practice. Basically, BLOBs are NOT SUPPORTED by this build.

New in MSS Code Factory 2.0.9218 Test (Dec 30, 2013)

  • Some of the other databases were not properly invoking the specialized delete methods for subclass objects/tables, which could have been a problem for more complex data structures. This has been corrected, and the updated Oracle creation scripts are shipped with this installer. I believe DB/2 LUW, PostgreSQL and MySQL were ok, but you should download the 1.11.9215 installer and make sure you're up to date, because it was a rather serious bug.
  • The Sybase ASE 15.7 scripts install clean (save for warnings about undefined functions during the load/install process), but the JDBC layer has not been brought in sync with the new function signatures, so you can't run any of the Sybase tests at this time.

New in MSS Code Factory 2.0.9102 Test (Dec 30, 2013)

  • The changes to the Sybase database creation and stored procedure scripts are complete and are ready to begin test installations to a database server.

New in MSS Code Factory 2.0.8957 Test (Dec 6, 2013)

  • The BSD-licensed CFSme 2.0 code has been refreshed by Beta 18, adding roughly 75,000 lines of code.

New in MSS Code Factory 2.0.8954 Test (Dec 6, 2013)

  • The integration test suite for 1.11.8954 passes the tests for Oracle 11gR2, DB/2 LUW 10.1, MySQL 5.5, and PostgreSQL 9.1.

New in MSS Code Factory 2.0.8694 Test (Dec 6, 2013)

  • There were a number of errors being reported by the BLOB support for the DB/2 LUW tests. However, there is nothing in the requirements of testing the permissions that requires the use of a client-side BLOB object for the testing, so I switched it over to using a "regular" object without BLOB columns.
  • Now DB/2 LUW 10.1 passes all tests save for the ones involving BLOB columns, and even those tests run successfully under Eclipse.

New in MSS Code Factory 1.11.9099 (Dec 6, 2013)

  • The changes to the Sybase database creation and stored procedure scripts are complete and are ready to begin test installations to a database server.

New in MSS Code Factory 1.11.9017 (Dec 6, 2013)

  • The implementation of the sp_create_$dbtablename$() implementations has had a number of syntax errors and formatting tweaks applied. It should be closer to a clean install when the time comes.
  • sp_delete_$dbtablename$() has been updated and now implements audit columns and history insertions.

New in MSS Code Factory 1.11.9007 (Dec 6, 2013)

  • The implementation of the crsp_create_$dbtablename$.isql code has been updated and refreshed to implement auditing and history.
  • The implemementations of crsp_delete_by_$index$.isql code has been updated and refreshed to properly implement iterative invocations of sp_delete_$dbtablename$() according to the class codes of the derived object. The implementation of sp_delete_$dbtablename$() itself has not been updated yet.
  • The code has not been test-installed yet -- I won't do that until I'm done refreshing all of the stored procedure implementations.
  • The sp_lock(), sp_update(), sp_read(), and sp_read_by_index() implementations all return result sets with the audit columns now, but they have not been updated with the security enhancements yet.
  • sp_lock() will also see the addition of a new implicit base column, forcerecsync, which will be a bigint not null, initial value 0. The implementation of the locking code in all of the updating stored procs will attempt to increment this column as part of their data locking procedures. If you already have an update lock on the record at runtime, this will proceed properly. If you do not have the lock and someone else has updated the lock flag, you are thread-blocked at the database until the locking transaction completes. You will probably get a data collision detected exception in this situation when you resume execution.

New in MSS Code Factory 1.11.8917 (Dec 6, 2013)

  • The Oracle JDBC and XML parser mainline enhancements have been coded and clean compiled. I'm ready to begin testing the integration of the new stored procs and the new JDBC layer.
  • I'm a pessimist; I expect it'll be a couple of days at least before it works. But if you're impatient, you can download this release and give it a go. Personally I'd check back in a day or few, or wait for the Beta 18 installer, when the code will have been tested and debugged

New in MSS Code Factory 1.11.8888 (Oct 18, 2013)

  • The Oracle 11gR2 database install scripts run clean again. This is a non-functional release because the JDBC hasn't been updated to match the stored procedure signatures, but if you're using the stored procedures from other languages you might find this development release useful.
  • PostgreSQL, MySQL, and DB/2 LUW support is unchanged and still works.

New in MSS Code Factory 1.11.8813 (Oct 17, 2013)

  • The Oracle DDL for creating the tables, indexes, relationships, and history tables have all been tested.
  • The creating of the history table indexes has not been tested yet. The stored procedures are rife with install bugs at this point in time.

New in MSS Code Factory 1.11.8768 (Oct 17, 2013)

  • The Oracle database scripts and stored procedures have all been refreshed and updated with the functionality available under PostgreSQL, MySQL, and DB/2 LUW.
  • The scripts and procedures have not been installed to a database instance yet. I expect a long cycle of lonely installs, bug fixes, typos, long object name issues, and other such problems before I have a clean install of CFDbTest 2.0 for Oracle.

New in MSS Code Factory 1.11.8736 (Oct 17, 2013)

  • The Oracle DDL should be in sync with PostgreSQL, MySQL, and DB/2 LUW now. The stored procedures have not even been migrated yet, though, much less had their functionality incorporated by the existing Oracle stored procedures. I'm not sure if I implemented the "hack" for dealing with option index columns in queries, either. That might not get refreshed until later.
  • Regardless, this is definitely untested and non-functional code for Oracle, though the other databases still work, of course.

New in MSS Code Factory 1.11.8712 (Oct 14, 2013)

  • I've invested the time in the CFBam 2.0 model to get it to manufacture properly again. I don't know how good a job I did of merging the CFDbTest and CFBam models for BAM's, but it should be close.
  • Along the way I encountered and fixed a bug that affects all of the database manufacturing layers. If a given table has too many data columns, prior releases of MSS Code Factory will produce an exception about a switch limb being too long, because each data column was appending a "yes" to the evaluation value. Now the rules append empty strings or a "no" if there are no data columns, so the exception should no longer happen.

New in MSS Code Factory 2.0.8635 Test (Oct 10, 2013)

  • PostgreSQL and MySQL pass; DB/2 LUW is passing about half it's tests.

New in MSS Code Factory 2.0.8625 Test (Oct 10, 2013)

  • The CFSme 2.0 project is released under a BSD license, not GPLv3 like most of the factory itself. This is a freely available code base that you can pick and choose from when implementing an enterprise-focused system with auditing and history logging requirements. With or without relying on MSS Code Factory to produce customized version of the code (easiest), of if you want to go with the old fashioned manual copy-paste-edit approach from the Files download net-sourceforge-MSSCodeFactory-CFSme-2.0.8625-BSD-src.zip

New in MSS Code Factory 1.11.8635 (Oct 10, 2013)

  • There still is a problem with client-side data manipulation due to issues with the bindings and invocations of the id generators. I know how to fix it (I think), but I'm not going to deal with it right now. It's been a long day, and I've made tremendous progress from a starting point of no runnable code this morning to half of it passing the tests this evening.

New in MSS Code Factory 2.0.8620 Test (Oct 10, 2013)

  • PostgreSQL and MySQL support work. DB/2 LUW is a work in progress.
  • It fall down for now.

New in MSS Code Factory 1.11.8620 (Oct 10, 2013)

  • This is a work-in-progress release. DB/2 LUW doesn't work yet, but it clean compiles, installs, and tries to run the appropriate sp_read() routines, which I've tested by hand using the db2 command integration.
  • The good news is the stored procedures seem to work ok.
  • The bad news is they're not working ok from the code, and I need to figure out why. Most likely I missed some critical detail in copying over the initial data setup/handshake that happens during the creation and registration of the command line arguments in the CLI code.
  • Yeah. That makes the most sense right now. I'll look into that next.
  • Creating a DB/2 instance and running the tests is straight forward. I run the following steps over and over, stopping when something errors out, fixing it in the rules, and repeating as necessary.
  • It takes a long time to create a DB/2 LUW instance compared to PostgreSQL 9.1 or MySQL 5.5 on the same OS and hardware. But the runtime performance is good, so suck it up, cupcake. This is a database that really benefits from prepared statements, with performance improving by as much as 50% when using prepared statements instead of dynamic SQL invocations.
  • developer> cd ~/msscodefactory/net-sourceforge-MSSCodeFactory-CFDbTest-2-0/dbcreate/cfdbtst20/db2luw
  • developer> su -l db2inst1
  • db2inst1> db2 drop database db2inst2;
  • db2inst1> db2 create databse db2inst2;
  • db2inst1> exit
  • developer> db2 connect to db2inst2 user db2inst1 using mypasswordisspecial
  • developer> db2 create tablespace msidata1;
  • developer> db2 create schema cfdbtst20
  • developer> . ./crdb_cfdbtst20.bash
  • developer> db2 connect reset
  • developer> CFDbTestRunDb2LUWTests

New in MSS Code Factory 1.11.8594 (Oct 10, 2013)

  • Both the PostgreSQL 9.1 and MySQL 5.5 regression testing via CFDbTest 2.0 has been successfully completed.
  • This release is worth downloading, as it incorporates several new details for enforcement of security and data isolation as well as tweaks to the auditing implementation.

New in MSS Code Factory 2.0.8596 Test (Oct 10, 2013)

  • Both the MySQL 5.5 and PostgreSQL 9.1 implementations for Ubuntu 13.04 have passed their regression tests with the code produced by MSS Code Factory 1.11.8594.

New in MSS Code Factory 1.11.8589 (Oct 10, 2013)

  • I had made some copy-paste changes from the DB/2 LUW implementation for the indexes on the history tables. There were some changes that had to be made to comply with MySQL naming conventions and case sensitivity.
  • But it's working again. Now on to testing the JDBC layer.

New in MSS Code Factory 1.11.8572 (Oct 9, 2013)

  • The PostgreSQL 9.1 implementation and testing with the new features backported from the DB/2 LUW efforts and the MySQL efforts have been integrated and tested with CFDbTest 2.0.
  • That's one ready for the next beta release.

New in MSS Code Factory 1.11.8489 (Oct 8, 2013)

  • The PostgreSQL JDBC enhancements clean compile, but I won't be able to run regression tests until my laptop finishes remanufacturing the XML layers to support the new objects. There are stale references caused by the object model changes that are resulting in errors compiling the old XML code, so I can't do a quick-and-dirty test right now. Give it a few hours.

New in MSS Code Factory 1.11.8481 (Oct 8, 2013)

  • Note that the JDBC layers for PostgreSQL and DB/2 LUW are not in sync with the stored procedures for those databases, so this release does not produce functional code.
  • It is a work-in-progress release in case you are depending on the PostgreSQL stored procedures for integration with another language or interface toolkit.

New in MSS Code Factory 1.11.8452 (Oct 8, 2013)

  • This version of CFDbTest 2.0 and the SME template have been modified to eliminate self-referencing objects, which imply recursion, which DB/2 LUW does not support.
  • Instead of infinitely deep project and domain trees, you are now limited to TLD.TopDomain.Domain.SubDomain and Project.SubProject.

New in MSS Code Factory 1.11.8436 (Oct 8, 2013)

  • I've resolved as many of the installation issues as possible for DB/2 LUW 10.1. There are still two errors being reported by the installation process, caused by circular invocations of a function by itself (i.e. recursion. Apparently DB/2 does not like recursion, and there is no way to work around that being needed for certain delete implementations, such as self-referential object hierarchies.)
  • I'm going to shift over to PostgreSQL for a bit, and get that code in shape with the idea of consistent arguments, and fleshing out the read restrictions to match those implemented for DB/2 LUW.
  • 2013-10-07 06.10.33 create or replace procedure sp_delete_domdef(
  • 2013-10-07 06.10.34 DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:
  • 2013-10-07 06.10.34 SQL20481N The creation or revalidation of object "DB2INST1.SQL131007061034100" would result in an invalid direct or indirect self-reference. LINE NUMBER=136. SQLSTATE=429C3
  • 2013-10-07 06.11.38 create or replace procedure sp_delete_sprjdef(
  • 2013-10-07 06.11.39 DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:
  • 2013-10-07 06.11.39 SQL20481N The creation or revalidation of object "DB2INST1.SQL131007061139200" would result in an invalid direct or indirect self-reference. LINE NUMBER=157. SQLSTATE=429C3

New in MSS Code Factory 2.0.8246 Test (Oct 4, 2013)

  • Both MySQL and PostgreSQL for Ubuntu 13.04 have been tested with support for the new audit attributes of the Buff objects. There are no unexpected issues with this release of code; everything "just works."

New in MSS Code Factory 1.11.8205 (Oct 3, 2013)

  • The newly created SchemaHPKey, SchemaTableHPKey, and SchemaTableHBuff objects now clean compile. The refresh of the SchemaTablePKey and SchemaTableBuff objects to support comparisons and equality with the new objects also clean compiles.
  • The objects are now in place for implementing queries of object histories from the history tables in the JDBC layers. Once coded, their accessors will be brought forward to the standard interfaces.
  • Eventually I'll add some fancy interfaces like getComponentHistory(), which will get not only the history for the object itself, but it's components and their sub-components all the way down to the lowest level of composed objects in the hierarchy spawned by this object.
  • That particular little function is likely to be a rather expensive operation, as it may probe the database for a rather large number of individual objects before merging those results into the larger result sets formed during the call invocation hierarchy/walk of the objects.

New in MSS Code Factory 1.11.8165 (Oct 3, 2013)

  • I haven't fully fleshed out the HPKey and HBuff objects yet, but this variant work-in-progress clean compiles for now, and begins to show the gist of what the objects will look like.
  • Note the implementations of toString(), which conveniently convert history objects to XML instance strings, regardless of the object involved. This will make it very easy to serialize a collection of history objects resolved under a given instance (by chaining the object containership hierarchy and creating a unified set of all the changes for all of the objects in the hierarchy.)
  • Wire in new HPKey objects, switch focus to generic Java for now while I add these in. Also going to add in the auditing attributes for the base table buffers, in preparation for being able to populate that data from the database where specified.
  • Before I switch focus to DB/2 LUW, I want to get this done and in place for MySQL 5.5 and Postgres 9.2+.

New in MSS Code Factory 1.11.8099 (Oct 3, 2013)

  • Most of the CFDbTest 2.0 regression test suite now executes successfully for MySQL. Once I've nailed down the remaining bugs (most notably an incorrectly formatted or parsed time string issue, likely in the audit code), and have the regression suite running as is, I'll add in the new tests that are executed by PostgreSQL to exercise the security layers.
  • I've already had to debug the security layers, but I want the explicit testing to be in the test suite for MySQL 5.5 under Ubuntu 13.04.

New in MSS Code Factory 1.11.8086 (Oct 3, 2013)

  • In all seriousness, most of the MySQL tests now run successfully, though update interfacing is still broken.

New in MSS Code Factory 1.11.8072 (Oct 3, 2013)

  • The MySQL 5.5 support is installing cleanly again. Time to remanufacture the JDBC layer, update the builds, and run some more tests.
  • First up is to verify that is_system_user(), is_cluster_user(), and is_tenant_user() operate cleanly and efficiently. They're the core of system security, so they have to work before anything else will.

New in MSS Code Factory 1.11.8048 (Oct 3, 2013)

  • The enhancements to the MySQL JDBC layer now clean compile.
  • I did a quick test run, but I'm seeing exceptions being thrown by the JDBC driver when no records are returned. This is a change of interface, and not something I've seen with any other database.
  • Hopefully it's a trivial matter of setting some pragma or option when connecting to the database to disable this behaviour.

New in MSS Code Factory 1.11.8033 (Oct 3, 2013)

  • The CLI now takes a third optional argument which specifies the single toolset layer to be manufactured. This will save a lot of time for development, as the java and mysql layers won't have to be manufactured in order to get java+mysql manufactured.

New in MSS Code Factory 1.11.8025 (Oct 3, 2013)

  • The complete set of MySQL stored procedures has been updated and refreshed to support auditing, automatic history logging, and to enforce security restrictions. The stored procedures install successfully for CFDbTest 2.0 under Ubuntu 13.04.
  • Next up: Refreshing the JDBC implementation to support the new audit and security arguments.

New in MSS Code Factory 1.11.8007 (Oct 3, 2013)

  • The sp_update_table() implementations have been enhanced and installed for CFDbTest 2.0. They now implement automatic setting of the audit columns and automatic insertion of history table entries after the update has been processed.

New in MSS Code Factory 1.11.7999 (Oct 3, 2013)

  • The MySQL enhancements for the delete and delete-by-index implementations have been refreshed with support for auditing, history logging, and cascading delete-by-index of owned sub-objects.
  • Added sqlstate error code usage with detailed exception messaging to sp_create_table() and sp_delete_table() implementations, where sqlstate codes are mapped as follows:
  • 45001 - Permission denied, not identified as system user
  • 45002 - Permission denied, not authorized for current cluster
  • 45003 - Permission denied, not authorized for current tenant
  • The specifications for sp_create_table() have been updated to throw the appropriate exception sqlstate values, and now use the messaging exception syntax provided by MySQL to provide relevant security feedback.

New in MSS Code Factory 1.11.7978 (Oct 3, 2013)

  • The specification of sp_create_table() has been enhanced with the audit arguments, support for audit columns in the tables, and support for history logging of instance creations.
  • CFDbTest 2.0 installs cleanly with the enhanced stored procedure code.

New in MSS Code Factory 1.11.7873 (Oct 3, 2013)

  • Enable the indexing of the history data for PostgreSQL as well. I didn't realize I had that code still disabled for edit only. It should be good to go. I'll test it some other time.
  • The MySQL tables now get instantiated properly. I'm doing final integration test against MySQL 5.5 under Ubuntu 13.04 at this point in time. It's almost ready to package for a release.

New in MSS Code Factory 1.11.7847 (Oct 3, 2013)

  • Implement the wiring of the new security scripts sp_bootstrap(), sp_is_system_user(), sp_is_cluster_user(), and sp_is_tenant_user().

New in MSS Code Factory 1.11.7836 (Oct 3, 2013)

  • Implement the JDBC bindings for all of the extended read and delete functions which are now implemented in the MySQL stored procedure layer.

New in MSS Code Factory 2.0.7817 Test (Sep 27, 2013)

  • This regression test suite for the latest PostgreSQL changes to support read and delete by optional indexes through stored procedures has been passed.

New in MSS Code Factory 1.11.7826 (Sep 27, 2013)

  • All of the stored procedures to date for all of the databases have been modified to support read and delete by optional index as applicable. The JDBC has only been updated to support these changes for PostgreSQL so far, though.
  • The work focus will now shift to MySQL to bring it up to par with the PostgreSQL implementation.

New in MSS Code Factory 1.11.7749 (Aug 2, 2013)

  • The performance tuning isn't really performance tuning in the end, as this version takes about 3 minutes longer to run than the old code did. However, it fixes a number of issues with the way the code worked (there were unknown bugs discovered during testing), and it's more flexible than interim versions of the code were (no more restrictions on duplicate names between cartridges / toolsets), so this is the version that will be retained
  • It uses TreeMaps throughout instead of HashMaps. I must admit I'm disappointed that HashMaps suffer more from the performance penalty of calculating hashCode() values than it gains from "fast" queries
  • This version runs the "work" job for CFDbTest 2.0 in 1h17m vs. 1h14m for the old code before I started all the work

New in MSS Code Factory 1.11.7742 (Aug 2, 2013)

  • Try using a TreeMap instead of HashMap

New in MSS Code Factory 1.11.7672 (Jul 27, 2013)

  • Rebuilt and repackaged with JDK 7 libraries

New in MSS Code Factory 1.11.7664 Beta 12 (Jul 26, 2013)

  • PostgreSQL security enforcement completed

New in MSS Code Factory 1.11.7658 (Jul 26, 2013)

  • Security code exercised

New in MSS Code Factory 1.11.7632 (Jul 25, 2013)

  • Closed SQL injection attack vector for PostgreSQL

New in MSS Code Factory 1.11.7599 (Jul 24, 2013)

  • First cut of PostgreSQL security implementation

New in MSS Code Factory 1.11.7558 (Jul 20, 2013)

  • Ready to begin wiring the use of the group security stored procs

New in MSS Code Factory 1.11.7525 (Jul 12, 2013)

  • Working version of PostgreSQL with audit column foreign keys

New in MSS Code Factory 1.11.7499 (Jul 11, 2013)

  • PostgreSQL now has a stored procedure, sp_bootstrap, which is used to bypass the table accessor procedures in order to populate the initial system data. This allows the system to enable audit columns and history tables for everything save the AuditAction and SecSession tables. The only downside to this approach is that the UUIDs for the initial system SecUser and SecSession are constant across installations, making them *very* easy to guess.

New in MSS Code Factory 1.11.7471 (Jul 11, 2013)

  • Added modelling attribute Table.SecurityScope with GEL accessors

New in MSS Code Factory 2.0.7361 Beta (Jul 3, 2013)

  • PostgreSQL audit code test build

New in MSS Code Factory 1.11.7380 (Jul 2, 2013)

  • Most of CFDbTest 2.0 runs successfully

New in MSS Code Factory 1.11.7345 (Jul 1, 2013)

  • Clean compile of current PostgreSQL JDBC

New in MSS Code Factory 1.11.7264 (Jun 29, 2013)

  • Refactoring of CFDbTest and SME prototype complete

New in MSS Code Factory 1.11.7250 (Jun 28, 2013)

  • Modify PostgreSQL JDBC client-side update code for BLOBs to implement population of audit columns.
  • Apply PostgreSQL JDBC result set change to populate audit attributes of read Buffers.
  • But I've added the following in to this work-in-progress update. Note that this build does not produce working PostgreSQL code yet. It probably doesn't even clean compile.
  • Modify PostgreSQL types to incorporate audit columns.
  • Modify CFDbTest 2.0 model to incorporate EnumDef, NmTokenDef, NmTokensDef, UInt[16|32|64]Def, FloatDef, DoubleDef, and NumberDef.
  • Try to get rid of the X509 certificates that were going to be an alternate key for sessions. We'll rely on the cluster-allocated UUID instead. Every application that references the system session now establishes a new session in the database history during it's initialization.
  • Modify PostgreSQL JDBC unpack code to accept read of audit columns.
  • Modify PostgreSQL JDBC client-side read statement fragments to implement selection of audit columns. Used by read-by-nullable-key dynamic SQL code.
  • Modify PostgreSQL JDBC client-side create code for BLOBs to implement population of audit columns.

New in MSS Code Factory 1.11.7219 (Jun 28, 2013)

  • Implemented the basic Java enhancements for audit columns

New in MSS Code Factory 1.11.7199 (Jun 27, 2013)

  • PostgreSQL database creation support for audit columns coded *broken code integration, will not run*

New in MSS Code Factory 2.0.7149 Beta (Jun 22, 2013)

  • PostgreSQL validation suite

New in MSS Code Factory 1.11.7120 (Jun 21, 2013)

  • Most of the CFDbTest 2.0 validation suite runs for PostgreSQL

New in MSS Code Factory 1.11.7100 (Jun 18, 2013)

  • CFDbTest 2.0 should clean compile now

New in MSS Code Factory 2.0.7008 Beta (Jun 17, 2013)

  • PostgreSQL test case build

New in MSS Code Factory 1.11.7042 (Jun 17, 2013)

  • Java expansions are now "active"

New in MSS Code Factory 1.11.6963 (Jun 15, 2013)

  • PostgreSQL stored procedures ready for testing

New in MSS Code Factory 2.0.6918 Beta (Jun 13, 2013)

  • PostgreSQL history tables tested

New in MSS Code Factory 1.11.6916 (Jun 13, 2013)

  • PostgreSQL History Tables instantiate cleanly now

New in MSS Code Factory 2.0.6900 Beta (Jun 12, 2013)

  • Ready to test new history table creation for PostgreSQL

New in MSS Code Factory 1.11.6903 (Jun 12, 2013)

  • Propagated HasHistory="true" flags from CFDbTest to all SME-derived models

New in MSS Code Factory 1.11.6830 (May 25, 2013)

  • Rework MySQL 5.5 delete-by-optional-index where all columns are specified

New in MSS Code Factory 1.11.6799 (May 13, 2013)

  • DB/2 LUW cascading deletes coded and tested

New in MSS Code Factory 1.11.6757 (May 11, 2013)

  • PostgreSQL cascading deletes tested

New in MSS Code Factory 1.11.6700 (Apr 15, 2013)

  • MySQL 5.5 JDBC bindings coded, clean compile, and ready for testing

New in MSS Code Factory 1.11.6548 (Apr 8, 2013)

  • That should be the last of the bugs from removing BL code

New in MSS Code Factory 1.11.6507 (Apr 6, 2013)

  • There are now SchemaObj code bindings for the different layers of the architecture (Db2LUW, MSSql, MySql, Oracle, PgSql, Ram, and Sybase.) Now I really am ready to purge the BL layers.

New in MSS Code Factory 2.0.6466 Beta (Apr 3, 2013)

  • Test suite for table/class hierarchy creation and update

New in MSS Code Factory 1.11.6436 (Apr 2, 2013)

  • Complex inheritance tree insertion tested for 4/6 layers

New in MSS Code Factory 1.11.6413 (Mar 25, 2013)

  • CFDbTest 2.0 is ready for another round of testing

New in MSS Code Factory 1.11.6406 (Mar 23, 2013)

  • SAX parsers finally structured properly

New in MSS Code Factory 1.11.6389 (Mar 22, 2013)

  • Correct Superclass parser

New in MSS Code Factory 2.0.6364 Beta (Mar 21, 2013)

  • Model updated and ready to test

New in MSS Code Factory 1.11.6351 (Mar 20, 2013)

  • Rebuilt and repackaged with OpenJDK 7

New in MSS Code Factory 1.11.6331 (Mar 19, 2013)

  • Repackage with updated CFDbTest 2.0 model

New in MSS Code Factory 1.11.6311 (Mar 18, 2013)

  • CFCore 2.0 PostgreSQL JDBC code clean compiles

New in MSS Code Factory 1.11.6277 (Mar 16, 2013)

  • Update all the rules to use the current object namings without relying on translation from the old naming conventions (largely an elimination of any use of a "Def" suffix unless it was required by the resulting compiled code.)
  • Correct typo in the manufactured where clause fragment of SQL caused by the shift to the use of string-returning fragments of code for binding the arguments to the dynamic SQL.

New in MSS Code Factory 1.11.6260 (Mar 16, 2013)

  • PostgreSQL dynamic SQL delete stored procs work in progress

New in MSS Code Factory 1.11.6225 (Mar 2, 2013)

  • RAM deletes fleshed out to support object hierarchy deletions

New in MSS Code Factory 1.11.6199 (Mar 1, 2013)

  • CFCore and CFBam both specify object hierarchies. The new methods didn't have the right signatures because I hadn't considered being nested into the hierarchy of classes during the rule expansions.
  • The changes have been applied and propagated to all of the layers.

New in MSS Code Factory 1.11.6188 (Mar 1, 2013)

  • New delete-by-suffix APIs sketched out with NotImplementedYet stubs

New in MSS Code Factory 1.11.6149 (Feb 22, 2013)

  • Rework of table id generators ready to begin testing

New in MSS Code Factory 1.11.6122 (Feb 18, 2013)

  • CFSme 2.0 clean compiles again

New in MSS Code Factory 1.11.6008 Beta 5 (Feb 12, 2013)

  • SQL Server 2012 Express Advanced Edition passes CFDbTest 2.0

New in MSS Code Factory 2.0.6003 Test (Feb 11, 2013)

  • Work-in-progress SQL Server 2012 test suite added

New in MSS Code Factory 1.11.5961 (Feb 8, 2013)

  • MS SQL Server 2012 Express Advanced Edition installs cleanly

New in MSS Code Factory 1.11.5883 Beta 4 (Feb 6, 2013)

  • The Sybase ASE 15.7 regression tests for CFDbTest 2.0 run successfully.

New in MSS Code Factory 1.11.5874 (Feb 5, 2013)

  • All but three Sybase ASE 15.7 tests run successfully

New in MSS Code Factory 1.11.5856 (Feb 4, 2013)

  • A few Sybase ASE 15.7 tests run successfully

New in MSS Code Factory 1.11.5812 (Feb 1, 2013)

  • Implemented CopyrightPeriod verb

New in MSS Code Factory 1.11.5768 (Jan 25, 2013)

  • Sybase database creation runs clean

New in MSS Code Factory 1.11.5703 (Jan 21, 2013)

  • First cut of Sybase stored procs

New in MSS Code Factory 1.11.5676 (Jan 16, 2013)

  • Repack with latest jar files due to reported virus

New in MSS Code Factory 1.11.5661 Beta 3 (Jan 12, 2013)

  • Oracle Stored Procedure Support

New in MSS Code Factory 1.11.5647 (Jan 5, 2013)

  • CFDbTest 2.0 passes 27 of 33 tests for Oracle

New in MSS Code Factory 1.11.5635 (Jan 3, 2013)

  • CFDbTest passes 16 of 33 tests for Oracle, including 4 critical ones

New in MSS Code Factory 1.11.5543 Beta 2 (Dec 20, 2012)

  • DB/2 LUW stored procedure tuning

New in MSS Code Factory 1.11.5513 (Dec 19, 2012)

  • Only one DB/2 LUW test is still failing; 32 tests passed

New in MSS Code Factory 1.11.5482 (Dec 17, 2012)

  • JDBC cleaned up for CFBam 2.0

New in MSS Code Factory 1.11.5450 (Dec 14, 2012)

  • DB/2 LUW stored procs clean for CFBam as well

New in MSS Code Factory 1.11.5409 (Dec 12, 2012)

  • DB/2 LUW stored procs clean compile

New in MSS Code Factory 1.11.5397 (Dec 10, 2012)

  • First cut of DB/2 LUW stored procedures

New in MSS Code Factory 1.11.5365 Beta 1 (Dec 8, 2012)

  • PostgreSQL tuning complete

New in MSS Code Factory 1.11.5344 (Dec 3, 2012)

  • Only 6 PostgreSQL tests are still failing

New in MSS Code Factory 1.11.5284 (Nov 30, 2012)

  • Several PostgreSQL tests now run successfully

New in MSS Code Factory 1.11.5271 (Nov 29, 2012)

  • PostgreSQL stored proc signatures now match

New in MSS Code Factory 1.11.5235 (Nov 27, 2012)

  • PostgreSQL stored procs install clean

New in MSS Code Factory 1.11.5212 (Nov 15, 2012)

  • CFDbTest 2.0 clean compiles

New in MSS Code Factory 1.11.5179 (Nov 14, 2012)

  • PostgreSQL "update" JDBC now uses stored procs

New in MSS Code Factory 1.11.5163 (Nov 13, 2012)

  • PostgreSQL "delete" JDBC cleaned up

New in MSS Code Factory 1.11.5145 (Nov 12, 2012)

  • PostgreSQL really does clean compile now

New in MSS Code Factory 1.11.5126 (Nov 10, 2012)

  • New distribution packaging

New in MSS Code Factory 1.11.5105 (Nov 7, 2012)

  • PostgreSQL create stored procs in use

New in MSS Code Factory 1.11.5084 (Nov 5, 2012)

  • First cut of using PostgreSQL stored procs

New in MSS Code Factory 1.11.5074 (Nov 3, 2012)

  • Added PostgreSQL "lock" stored procedures

New in MSS Code Factory 1.11.5067 (Nov 2, 2012)

  • Pruned PostgreSQL primary index read stored procs

New in MSS Code Factory 1.11.5054 (Nov 1, 2012)

  • DB/2 LUW 10.1 integration tests complete and passed

New in MSS Code Factory 1.11.5041 (Oct 31, 2012)

  • MySql 5.5 testing complete and passed

New in MSS Code Factory 1.11.5039 (Oct 30, 2012)

  • MySql 5.5 testing complete and passed

New in MSS Code Factory 1.11.5027 (Oct 29, 2012)

  • MySql 5.5 database integration clean compiles?

New in MSS Code Factory 1.11.5008 (Oct 27, 2012)

  • MySql 5.5 code template complete

New in MSS Code Factory 1.11.5000 (Oct 26, 2012)

  • Initial MySql 5.5 support release

New in MSS Code Factory 1.11.4974 (Oct 24, 2012)

  • PostgreSQL "update" stored procs coded

New in MSS Code Factory 1.11.4967 (Oct 22, 2012)

  • PostgreSQL create stored procs coded

New in MSS Code Factory 1.11.4937 (Oct 15, 2012)

  • Some DB/2 LUW regression tests passed

New in MSS Code Factory 1.11.4911 (Oct 13, 2012)

  • DB/2 LUW support refactored and fleshed out

New in MSS Code Factory 1.11.4899 (Oct 12, 2012)

  • DB/2 LUW support refactored and fleshed out

New in MSS Code Factory 1.11.4822 (Sep 27, 2012)

  • Updated Oracle schema creation scripts

New in MSS Code Factory 1.11.4815 (Sep 26, 2012)

  • Propagated prepared statement support to Oracle and DB/2 UDB

New in MSS Code Factory 1.11.4811 (Sep 24, 2012)

  • Timezone support passes PostgreSQL regression tests

New in MSS Code Factory 1.11.4781 (Sep 22, 2012)

  • PostgreSQL passes database tests

New in MSS Code Factory 1.11.4768 (Sep 20, 2012)

  • TZ types partially supported now

New in MSS Code Factory 1.11.4754 (Sep 19, 2012)

  • PostgreSQL basic types passed SAX Loader testing

New in MSS Code Factory 1.11.4740 Alpha 7 (Sep 18, 2012)

  • Corrected most PostgreSQL JDBC binding errors

New in MSS Code Factory 1.11.4734 (Sep 17, 2012)

  • CFDbTest 2.0 clean compiles

New in MSS Code Factory 1.11.4635 (Sep 8, 2012)

  • Implemented formatting

New in MSS Code Factory 1.11.4625 (Sep 7, 2012)

  • Corrected Min/Max values for Number

New in MSS Code Factory 1.11.4601 (Sep 5, 2012)

  • Recompile with latest JDK 1.6

New in MSS Code Factory 1.11.4570 (Aug 30, 2012)

  • Validating parsers working

New in MSS Code Factory 1.11.4559 (Aug 24, 2012)

  • Working on parser command line errors

New in MSS Code Factory 1.11.4546 (Aug 21, 2012)

  • Models corrected, XSD specification tweaked

New in MSS Code Factory 1.11.4517 (Aug 20, 2012)

  • Addressed several TODOs

New in MSS Code Factory 1.11.4509 (Aug 14, 2012)

  • Test 0004-TestNamedLookup.xml runs successfully

New in MSS Code Factory 1.11.4499 (Aug 11, 2012)

  • Test 0002 should run now

New in MSS Code Factory 1.11.4484 (Aug 10, 2012)

  • Fixed NMTOKEN[S] typo in .xsds

New in MSS Code Factory 1.11.4468 (Aug 9, 2012)

  • Hack to get SaxLoader parsing properly

New in MSS Code Factory 1.11.4443 (Aug 6, 2012)

  • First cut of IBM DB/2 UDB 10.1 Java 6 support.

New in MSS Code Factory 1.11.4416 (Aug 4, 2012)

  • Oracle framework complete

New in MSS Code Factory 1.11.4401 (Aug 3, 2012)

  • Initial Oracle release

New in MSS Code Factory 1.11.4391 (Aug 2, 2012)

  • Refactoring of 2.0 complete

New in MSS Code Factory 1.11.4346 (Aug 1, 2012)

  • Resurrected MssCFMessageLogWrapper

New in MSS Code Factory 1.11.4343 (Jul 31, 2012)

  • Repackaged by Oracle stack

New in MSS Code Factory 1.11.4321 (Jul 28, 2012)

  • Moved MssCFMessageLogWrapper to CFLibMessageLogWrapper

New in MSS Code Factory 1.11.4316 (Jul 17, 2012)

  • Loaders run now

New in MSS Code Factory 1.11.4302 Alpha 6 (Jul 16, 2012)

  • PostgreSQL conversion to PreparedStatements complete

New in MSS Code Factory 1.11.4278 (Jul 12, 2012)

  • PostgreSQL all primary keyed methods use PreparedStatements

New in MSS Code Factory 1.11.4265 (Jul 9, 2012)

  • PostgresSQL readBuff() now uses PreparedStatements

New in MSS Code Factory 1.11.4245 (Jul 7, 2012)

  • Added GEL binding Index.AllColumnsRequired

New in MSS Code Factory 1.11.4232 (Jul 4, 2012)

  • Cleaned up remaining version stamps in file headers

New in MSS Code Factory 1.11.4216 (Jul 3, 2012)

  • Removed MSS Code Factory version tag from manufactured code

New in MSS Code Factory 1.11.4191 (Jul 2, 2012)

  • Added PostgreSQL CLI driver for SAX Loader

New in MSS Code Factory 1.11.4122 (Jun 16, 2012)

  • Structured XSD coded

New in MSS Code Factory 1.11.4103 (Jun 15, 2012)

  • Added GEL iterator EnumTags

New in MSS Code Factory 1.11.4088 (Jun 14, 2012)

  • First cut of AlternateIndex support

New in MSS Code Factory 1.11.4068 (Jun 7, 2012)

  • Time for a code review

New in MSS Code Factory 1.11.4052 (Jun 5, 2012)

  • Corrected major Chain specification defect

New in MSS Code Factory 1.11.4035 (Jun 4, 2012)

  • S1DbTest20 clean compiles

New in MSS Code Factory 1.11.4008 (Jun 2, 2012)

  • Corrected errors in evaluation of Inherited Owner and Container relations

New in MSS Code Factory 1.11.3942 (May 31, 2012)

  • Rework affects named lookup relations calculation

New in MSS Code Factory 1.11.3929 (May 30, 2012)

  • S1DbTest20 clean compiles

New in MSS Code Factory 1.11.3914 (May 29, 2012)

  • XML Loader now converts XML Date, Time, Timestamp fields

New in MSS Code Factory 1.11.3899 (May 26, 2012)

  • Fixed GEL Compiler bug

New in MSS Code Factory 1.11.3872 (May 14, 2012)

  • S1Bam 2.0 Corrected

New in MSS Code Factory 1.11.3855 (May 12, 2012)

  • Added GEL RelationDef and OwnerContainerOrNamedLookupRelationCol

New in MSS Code Factory 1.11.3850 (May 11, 2012)

  • Owner relations implemented

New in MSS Code Factory 1.11.3838 (May 10, 2012)

  • Add Owner relations

New in MSS Code Factory 1.11.3824 (May 5, 2012)

  • Corrected Several 2.0 Relations

New in MSS Code Factory 1.11.3805 (May 4, 2012)

  • S1Bam20 initial refactoring complete

New in MSS Code Factory 1.11.3771 (May 2, 2012)

  • Renamed Pg8 to PgSql

New in MSS Code Factory 1.11.3740 (Apr 20, 2012)

  • Use LookupIndex in models and rules

New in MSS Code Factory 1.11.3729 (Apr 19, 2012)

  • Added LookupIndexName and LookupIndexId to Table

New in MSS Code Factory 1.11.3707 (Apr 17, 2012)

  • Refactor SaxParser as SaxLoader

New in MSS Code Factory 1.11.3684 (Apr 13, 2012)

  • GEL Table binding for LoaderBehaviour wired

New in MSS Code Factory 1.11.3682 (Apr 12, 2012)

  • Wired init and parse of Table.LoaderBehaviour

New in MSS Code Factory 1.11.3669 (Apr 11, 2012)

  • Added GEL binding IsColumnInContainerOrNamedLookupRelation

New in MSS Code Factory 1.11.3642 (Apr 10, 2012)

  • Corrected typo in CFLib Exception Factory

New in MSS Code Factory 1.11.3632 Alpha 4 (Apr 5, 2012)

  • Corrected defects in PostgreSQL support

New in MSS Code Factory 1.11.3623 (Apr 4, 2012)

  • Singleton relation setters corrected

New in MSS Code Factory 1.11.3614 (Apr 3, 2012)

  • Reworked PostgreSQL code for returning buffer arrays

New in MSS Code Factory 1.11.3592 (Apr 2, 2012)

  • Corrected PostgreSQL UUID bindings

New in MSS Code Factory 1.11.3557 (Mar 31, 2012)

  • Corrected table id generator scripts

New in MSS Code Factory 1.11.3534 (Mar 30, 2012)

  • Corrected BAM XSD specification

New in MSS Code Factory 1.11.3527 (Mar 29, 2012)

  • Extended Business Application Model

New in MSS Code Factory 1.11.3519 (Mar 28, 2012)

  • Corrected Oracle stored proc creation

New in MSS Code Factory 1.11.3515 (Mar 27, 2012)

  • Ready to test Oracle database creation scripts

New in MSS Code Factory 1.11.3496 Alpha 2 (Mar 24, 2012)

  • Corrected Min/Max Float and Double values

New in MSS Code Factory 1.11.3494 (Mar 23, 2012)

  • Full S1DbTest20 clean-compiles

New in MSS Code Factory 1.11.3466 (Mar 21, 2012)

  • Added ManufactureToolSet object

New in MSS Code Factory 1.11.3432 (Mar 16, 2012)

  • ShortDescription added to BAM parser and GEL syntax

New in MSS Code Factory 1.11.3430 (Mar 14, 2012)

  • GEL Support for TableChains, Suffix, PrevRelation, and NextRelation added

New in MSS Code Factory 1.11.3427 (Mar 13, 2012)

  • S1Bam XSD and XML parser support TableChains

New in MSS Code Factory 1.11.3422 (Mar 12, 2012)

  • Wired new attribute GEL bindings

New in MSS Code Factory 1.11.3408 (Mar 10, 2012)

  • Running version supports new attributes

New in MSS Code Factory 1.11.3404 (Mar 9, 2012)

  • MSSBam XSD brought forward and updated

New in MSS Code Factory 1.11.3387 (Mar 8, 2012)

  • Remanufactured with corrected PostgreSQL scripts

New in MSS Code Factory 1.11.3373 (Mar 7, 2012)

  • XML parser errors now include location information

New in MSS Code Factory 1.11.3362 (Mar 5, 2012)

  • Respect SQL 2000 byte standard

New in MSS Code Factory 1.10.3346 (Feb 27, 2012)

  • Primed rulebase with 1.9 snapshot

New in MSS Code Factory 1.10.3315 (Feb 25, 2012)

  • Regression tests passed

New in MSS Code Factory 1.9.3277 (Feb 24, 2012)

  • Down to 90 errors in 1.10

New in MSS Code Factory 1.9.3273 (Feb 22, 2012)

  • New data types supported for PostgreSQL 8.4

New in MSS Code Factory 1.9.3255 (Feb 20, 2012)

  • Implemented and tested parsing of EnumDef and EnumTag elements

New in MSS Code Factory 1.9.3211 (Feb 17, 2012)

  • There were some bugs in the rules caught by the GEL compiler, so those were fixed as well as doing a straight forward migration. The resulting code has not been test compiled, though, so this is not being promoted as a default download.

New in MSS Code Factory 1.9.3708 (Feb 17, 2012)

  • The S1Core and S1Bam models have been coordinated with the new 1.9 BAM XSD syntax. However, some of the work on S1Bam was lost because I wanted to make sure I caught everything from the 1.9 model rather than preserving what I'd done on 2.0.

New in MSS Code Factory 1.9.3205 (Feb 17, 2012)

  • Removed dead code MSSBamMssCFBindHasTenantCluster.java
  • Cleaned up exception throws in BAM Parser
  • Added XML element parser for SecForm objects
  • Added XML element parser for SecGroup
  • Added XML element parser for SecGroupForm objects. Because the FullDomainName of a cluster includes dots, the JEEMount and the JEEServlet components of a form reference need to be of the form JEEMount/JEEServlet, not JEEMount.JEEServlet
  • Added XML element parser for SecGroupInclude objects
  • Added XML element parser for SecGroupMember objects
  • Added XML element parser for SecSession objects
  • Added XML element parser for SecUser objects
  • And that's it. All the new elements now have untested parsers coded. But XML parsing is pretty straight forward, so I really only expect to possibly encounter some data instantiation errors
  • Time for some regression testing
  • Added ShowLines to Token, NmToken, and NmTokens definitions, defaulting to 1 as with String and Text

New in MSS Code Factory 1.9.3193 (Feb 17, 2012)

  • Added XML element parser for ContactList objects.
  • ContactURL.URLProtocol is required, not optional.
  • Added XML element parser for ContactURL objects.
  • Added XML element parsers for EnumDef and EnumTag.
  • Added XML element parser for HostNode objects.
  • Corrected XML element parser for License objects.
  • Added XML element parser for Memo objects.
  • Added XML element parser for MimeType objects.
  • Added XML element parser for Phone objects.
  • Added XML element parser for SecApp objects.
  • Cleaned up some dead code in MSSBamMssCF.
  • Service.ContainerHost is a mandatory relationship, not optional.
  • Added XML element parser for Service objects.
  • Added XML element parser for Tag objects.
  • Tenant.Cluster relationship is mandatory, not optional.
  • Added XML element parser for Tenant objects.
  • Added XML element parser for URLProtocol objects.
  • That leaves the Sec objects to be implemented yet.

New in MSS Code Factory 1.9.3178 (Feb 17, 2012)

  • Added XML element parse for Chain objects.
  • Added XML Element parse for Cluster objects.
  • Added attribute Contact.MiddleName.
  • Added missing relation Contact.ISOTimezone.
  • Added XML Element parse for Contact objects.

New in MSS Code Factory 1.9.3075 (Feb 17, 2012)

  • Rebuilt with CFLib 1.9.3070

New in MSS Code Factory 1.9.3070 (Feb 17, 2012)

  • Added UnrecognizedAttributeException for XML Parsers

New in MSS Code Factory 1.9.3160 (Feb 17, 2012)

  • Refactor Address.Zip as PostalCode. Only the US calls it a Zip code; the rest of the English speaking world calls it a Postal code. Majority rules.
  • Coded the XML parser fragment for the Address object.
  • Added AttachmentTag XML parser support. Propagated AttachmentTag implementation for XxxTag parsers for the different objects.
  • Started a bit of work on shifting over from assertions to proper CFLib default exception factory throws instead. There is a lot of old-style code to be fixed, but the existing code works, so this change is not a high priority and will be done when I feel like spending some time on grunt code.

New in MSS Code Factory 1.9.3154 (Feb 17, 2012)

  • This still isn't a clean-compiling subversion release, so there is nothing to download from the SourceForge "Files" page. But things are coming along nicely, and by Monday 2012.02.13 I should have a clean compiling and testable version of 1.9 again.
  • There are still about two dozen objects that need to be properly parsed, but the BAM XML parser is finally fleshed out to the point where all the XML elements have at least a stub of a parser coded for them. I'm guessing it will take about another 2-3 days to finish implementing the element parsers and have a clean, testable compile again.
  • UuidDef and UuidGenDef element parsers have been fully implemented -- I've been waiting to learn how to use UUIDs in Java, and I must admit it's very easy to do so. It only took me about 15 minutes to implement the UUID attribute parsers.
  • EnumTags need to have their order explicitly specified by the user, so Prev/Next links have been added.
  • The Prev/Next links I've been adding to data that needs to be ordered by the sequence specified by the user or business application model is the reason I've decided to add a Chain definition to 1.9. My intent is to automate the production of container getXxxHead() and getXxxTail() methods that rely on the fact that a null value for Prev/Next indicates the ends of the ordered list.
  • I had considered using sequence numbers, but my experience has been that although sequence numbers make for easy order-by queries for custom SQL reporting, they have horrible performance when the user is resequencing data through a user interface. So I opted to maintain the quality of the user interface experience over the lesser need for simple, easy reporting.

New in MSS Code Factory 1.9.3145 (Feb 17, 2012)

  • Stubs have been added for the SME objects in the model, but they have compile errors and are just placeholders at this point. I need to map their attributes to value setters next; right now I just wired the parser framework for the SME objects.

New in MSS Code Factory 1.8.2745 (Dec 12, 2011)

  • The MssCF manufactured bindings, iterators, and references with their consolidating MssCFEngine instance are now properly constructed, populated, and ready for testing.
  • This means the engine can now produce an adaptation of itself tuned to storing knowledge about a new business application model and processing that knowledge into generic text files of transformed information. It's not a mere artificial intelligence, but a genetic life form with it's DNA defined by the business application model.

New in MSS Code Factory 1.8.2543 (Nov 18, 2011)

  • Correct the L suffixes in Java 6 for Int64 types.
  • Corrected the implementation of the leadlower directive, which was incorrect in both the 1.8 Java 6 and 1.7 C#/.Net 3.5 implementations.

New in MSS Code Factory 1.7.2099 (Oct 5, 2011)

  • PostgreSQL inserts have been debugged for the most common column data types and work properly.
  • Reads are partially tested, but not as thoroughly as I'd like yet.
  • Updates and deletes have not been tested yet.

New in MSS Code Factory 1.7.2080 (Oct 5, 2011)

  • The 1.8 Java 6 executable testing now successfully loads the complete knowledge base. There are some XML warnings being produced due to remaining errors in the knowledge base XML files, but that's ok for now.
  • This version not only clean compiles, it can successfully instantiate and persist objects to the Ram database implementation.
  • This is actually code you could do something with.

New in MSS Code Factory 1.7.2066 (Oct 5, 2011)

  • Found another bug in the Ram creates. PKey generated values should only be generated during insertion to the base table; subclasses should just use the value that was saved by the base table insert to the buffer.

New in MSS Code Factory 1.7.2058 (Oct 5, 2011)

  • More debugging. The basics now run pretty good for the Ram layer. I'm spending more time debugging XML parsers than I am manufactured code.

New in MSS Code Factory 1.7.2045 (Oct 5, 2011)

  • This is a festival of debugging. You can now instantiate a Java Ram database behind a BLObj schema, and use it to create, update, and read objects from the in-memory store. Deletes haven't been tested, but they're pretty straight-forward and should work ok.

New in MSS Code Factory 1.7.2015 (Oct 5, 2011)

  • Another significant refactoring. The object interface now returns BLObj interfaces, so that application programmers don't have to keep casting objects to the business logic layer. This makes application code a lot cleaner.

New in MSS Code Factory 1.7.2011 (Oct 5, 2011)

  • There were still some errors in the rules that were exposed by the MSSBam 1.8 model.
  • I also fixed some bugs in the integrity checking performed by the Ram implementation.
  • All projects now clean compile.

New in MSS Code Factory 1.7.2000 (Oct 5, 2011)

  • Interesting that this should be a symbolic build number of 2000...
  • This major update completes the refactoring from Rec-based storage to more efficient Buff-based storage. Everything clean compiles, but is untested.
  • Please delete all *Rec.java, *KeyData.java, and *Data.java files from your projects.
  • The database readDerived methods retrieve anything which derives from this table class. The readBuff methods only return objects which are specifically instances of the table class.

New in MSS Code Factory 1.7.1991 (Oct 5, 2011)

  • Clean compile, including Ram implementation. However, the Ram implementation is not functional yet.
  • The old reader APIs need to be reworked as Derived APIs for indexes attached to the table being expanded. For inherited indexes, the table implementing the index is readDerived, and the results need to be filtered for instances derived from this particular subclass.
  • The Buff methods for the indexes attached to a leaf table just invoke their corresponding Derived APIs and return the results. For tables that have subclasses, the Derived set has to be filtered for instances of this particular subclass (by checking the ClassCode, as the subclasses do implement their inherited interfaces, so you can't use instanceof.)
  • For inherited Buff readers, the implementing table's readDerived set will be filtered for instances of this particular subclass.

New in MSS Code Factory 1.7.1985 (Oct 5, 2011)

  • Next on the plate: Reworking the Ram implementation.
  • The *Rec, *KeyData, and *Data Java objects have been refactored out of existence, and replaced by the *Buff implementations.
  • The way that the *EditObj and DbIO implementations interact has been cleaned up as well. Instead of relying on the Obj inheritance to trigger a hierarchical invocation of the DbIO methods, the DbIO implementation now performs the cascading operations for object IOs.
  • The *EditObj layer now just overrides the implementation of create(), update(), and delete() to invoke the appropriately specialized buffer IO implementation.
  • DbIO implementations for inheritance queries has been completely reworked to minimize the number of trips to the database. Performance should now be roughly linear on the number of sub-classes to be probed rather than linear on the number of objects retrieved.