Revision history for Perl extension GJ.
1.986 XXX Nov XX 2025
    - Load Apache2::Upload
    - Fix Template's IFNOT handling
    - Add GJModule::Config method to gjperl interpreter
1.985 Fri Feb 21 2025
    - Add ApiKey handling
    - Some SSL fixes
    - Missing SessionHash isn't SERVER_ERROR any more, unless noblame
    - Configurable Session expired exception
1.984 Sun Dec 01 2024
    - Add Parse to Engine
    - Add Authen::SASL to Ldap.pm
    - Cleaned CSGJF
1.983 Sat Nov 14 2024
    - More portability fixes
    - This should build from el9 to fc41
    - Add GJ::Vite (WIP)
1.980 Wed Oct 30 2024
    THIS IS A TEST RELEASE, NEW DOCUMENTATION TO BE WRITED!
    - Ported to mod_perl2 adding directives to Apache
    - Now depends of system httpd and mod_perl
    - Tested in Fedora40
    - Dont build PHPBridge nor JavaScript, needs to be ported
1.976 Fri Nov 02 2018
    - Add waitForMe hook to gjframework and preserve start time query
    - add switchToMain method to GJ in gjframework
    - Add application_resources template
    - Add CORS support and Framework's config options
    - Add json payload support for Session login
    - Fix UTF8 handling in GJ::EvalFile
1.975 Tue Jan 30 2018
    - Use async loader more in gjframework and add 'parsed' in Request
    - Accumulated minor fixes
    - Add gjperl for CLI
    - Enable Framework_Include for extra sources
1.974 Fri Nov 26 2016
    - Add FWConfig file, and MCServers parameter
    - DB can generate "schema-free" models
    - Fix somehow breakage in source filters, so WEB2 works again
    - Modernized Libs with current jquery among others
    - Accumulated minor fixes
1.973 Unreleased
    - Move VFS seal verification to registry time
    - Add off-server gjperl wrapper (Need to document it)
1.972 Unreleased
    - Add AD support for LDAP auth
    - Add FWS::AfterRequest hook
    - Allow Session parameters override via LDAP_ prefixed Params
    - BS 0.998 replaces IO::String with IO::GJ and add Preproc filtering
    - Replace "ExPasses" with "Include", that works in GJVFSs via BS's Preproc
    - Set URLBase environment variable per request
    - Internal cleanup and accumulated fixes.
1.971 Mon Jan 19 2015
    - Fix CurrServerId at start time.
1.970 Wed Jan 14 2015
    - Add basic mobile device detection and handling via meta in templates
    - Add HTML5 Doctypes to Templates
    - Add Template's 'js' resources handler
    - Add an AMD loader and lodash to client-side framework, now only modern
      browsers are supported
    - Allow alternate main entry point via _start
    - Remove IO::String dependency
    - Fixed and cleaner Persistence services, now a proper Service
    - Deprecate lowercase 'error', should use 'Error' in JSON responses
    - Add _ping and _echo to JSON extension
    - Add Session::LDAP::AuthBinded with SSL proxy auth support
    - JSON now check for empty bodies
1.966 Fri Jul 12 2013
    - Revamped DB services: Generic CRUD handling.
    - Lot of work in WEB2 front
    - Accumulated fixes
1.965 Fri Nov 25 2011 rev 2
    - Some fixes in Framework and Session services
1.965 Fri Nov 18 2011
    - Add generic callbacks services via OnCallback and AddCallback
    - Add Apache::__ChildSlot
    - Add optional second argument to ModuleLoaded to request specific version
    - Add template override support via meta's allow:override
    - Complete GJM (signed binary PAR) loader
    - Released ModMan, gjservice and gjtar utilities.
    - SDK engine moved from 0008 to 0004
1.964 Tue Jul 05 2011
    - Add GJ::Session::Ldap::Always persistent helper
    - Modules can request import from FWServices
    - Add FWServices::Start for worker services
    - Add 'inform' to Done handling.
    - Numeric return values now propagate properly.
    - Fixes for JSBridge.
    - Allow per class OnLibDir
    - Fix Secure's lastModTime handling.
    - Add GJ::VFS->ByKey
    - VFS URIs are now proper URLs
    - Add PerRequest's Args shortcut, move Error constructor to FWServices
    - Cleaner RequestParser: deprecate StockParser add ParserAttrubutes{I18N}
    - Patch libapreq to return DECLINED when handling different Content-Type
    - Add JSON's JSData and SendJSON to Modules. SendJSON imply Done.
1.963 Wed Apr 20 2011
    - Fix double error reporting
    - DIEONERR only for real Errors
    - Use a less stricter Bootstrap
1.962 Sun Apr 10 2011
    - Fix Group membership authentication in Session::Ldap
    - Use merged apache and mod_ssl, both orphaned upstream.
    - Add a JSPL based bridge for SpiderMonkey, Engine 0012. GJ now has server-side JS!
    - Add Web2 for ExtJS-3 server-side support. Engine 0020
    - Reorganize engines.
    - Factorized low level common services
    - Now uses an in house modified JSON::XS for transparent encoding.
    - Support for RGecko browser.
    - Fixed multiple initialization in Storage for Module level.
    - Fixed cache handling in _enter for IE8.
    - Add Expand method for tpl
    - Add optional third argument to Session::Ldap::Authenticate
1.961 Tue Aug 18 2009
    - Use MP v1.31
    - Fix UTF8 handling in VFS and manifest handling utilities
    - Require a minimum version for Net::LDAP and YAML::Tiny
    - Add a workaround for olds JSON::XS
    - Start of SDK engine
1.960 Sun Nov 30 2008
    - Add a bridge for proper support PHP, GJ now is multilingual!
    - Split template Engine, now with proper template loading API
    - VFS also used by modules
    - Modules should use a manifest, so add some utilities
    - Dynaconf for private (user) servers
    - Add gjctl command to control daemon
    - Use proper TARGET at compile time
    - Use Net::LDAP for LDAP Authenticator
    - Change Session struct to multiserver
    - Add ExtJS support via Widget
    - Major cleaning in spec file
1.957 Sat Nov 08 2008
    - Uses a secure VFS to ship main engine
    - Uses PKCS to sign and verify the VFS
    - Add a ZIP based VFS
    - Add internal and modules integrity checks
    - Simplify and factorize doctype handling in Template
    - Add a tiny GJFramework emulator for PHP
    - Fix JSON emiter and hanling in JSFramework
    - Add getElementsByClassName in JSFramework
    - Minor fixes in calendar widget.
    - Handle UTF8 in LDAP Authenticator
    - Fix IF handling in Templates
    - Check for already loaded modules in FrameworkConfig
    - Trim values in Dynaconf
    - Validate LogLevel in Dynaconf
1.956 Fri May 25 2007
    - All reserved words in templates allow anyCase
    - Fix many layout bugs for IE
    - Fix HTMLBasic loader for IE
    - Fix an important bug in AddActionHandlers
    - Fix _start for IE!
    - Fix Gecko hack!
    - Clean all templates
    - Deprecate 'mytop' and 'styles', now uses 'application_main.html'
      and 'application_styles.html' for INCLUDE
    - Deprecate 'applicaction' for INCLUDE, now 'gjf_appconnect'
    - Revamp Template for complete context handling
    - Add Template's especial variables 'gjf_{page|frame}header'
    - Fix a corner case in Session authentication handling
    - Now uses JSON::XS
    - Now uses Apache::Request::I18N, can be configured via
      ParserAttributes in Framework config and overrided in RequestParser
    - Add UriParserHook
    - Multi flag in Framework config now preserve Fixer
1.955 Sun Mar 31 2007
    - Change all related to 'Pass' to be 'Action':
      passHandler to actionHandler
      $Module->Pass to $Module->Action
      $Module->AddPassHandlers to $Module->AddActionHandlers
      And rename all var names to reflect the change
    - Fix $Module->Log('debug',...) atempt to show file and line number
    - All magic actions (passes) now start with underscore
    - Small fixes in gjframework.js
    - Unify starter template
    - Add Features to Template config
    - Add asJS as a Template value marker
    - Implement $object->valuer in Template evaluator
    - Implement AddAttributed and AddPassHandlers methods to $Module
    - Use constants as indexes in _attributed list
1.954 Mon Mar 19 2007
    - Add ServerFileSelect Widget
    - Fixes for a not serialized StorageModule
    - Use HTMLBasic as return type for text/html in GJ.Request
1.953 Thu Feb 02 2006
    - First usable GJJSF
    - Use contentFrame as main window in GJJSF
1.952 Fri Jan 13 2006
    - Factorize GenericSend with GJ custom tags support
    - Initial client side framework
    - Start of JSON generators extention
    - Initial suport of XML data
1.951 Thu Oct 27 2005
    - Include DataBase in MANIFEST
    - Fix lasttpl to remember the main template, not last
    - Fix UTF-8 handling in Session/Ldap
    - Add mimetype of xhtml in Template
    - Add SRMagic to DataBase extention
    - Include charset (UTF-8) in all Template generated text/html
    - Some minor cleanup
1.950 Tue Sep 27 2005
    - Fix small typo in StorageUserInit
    - Add StorageInit for stand alone use
    - Start of DataBase extention
    - Refactoring Template's FOR handling
    - Add _ctx key in Template's FOR for CODE refs
    - Add support for SSL based authentication in Session
    - Allow multiple authentication in Session
    - Some fixes in Template
    - Add Template->getframe
1.949 Thu Jun 30 2005
    - Fix ELSE in FOR's CODE refs
1.948 Fri Jun 25 2005
    - Fix INCLUDE in templates for CODE refs
1.947 Thu Jun 24 2005
    - Fix GJ::Template::fetch for binary length count
    - Fix some conditional debug to use proper package GJ::Framework::DEBUG
    - Clean error handling in Dispatcher
    - Change return semantics of SendStatic and SendTemplate
    - Avoid double compiling of attributes parameters regexps
1.946
    - Fix dynamic generated Directory handling in per virtual host modules
    - some cleaning in Dynaconf
1.945
    - Make GJ's modules can work on a per virtual host basis
1.944 Thu Jun 16 2005
    - Make sure that CODE attributes are parsed before initialize extentions.
    - Clean templateVar handling for ${FOR VAR}
    - Add ${_key} in ${FOR HASH}
1.943 Tue Jun 14 2005
    - Fix Attended method.
1.942
    - Implement a generic API for CODE attributes for Framework derived modules
    - use attribute "passHandler" to mark pass handlers methods.
    - use attribure "templateVar" to mark magic Template's variables methods.
    - remove the special Work method for modules, all passes are handler by
      "passHandler" methods.
1.941 Wen Jun  1 2005
    - Separate Storage from Session and factorize it.
    - Fix inheritance of Framework derived modules.
    - General cleanup
1.940 Fri May 20 2005
    - Rename Extender -> Framework, to better describe the abstraction level
1.933 Fri Nov 19 2004
    - Better handler for unexpected close (new destroy pass)
1.932 Wen Nov 17 2004
    - Fixes for template handling
1.910 Fri Apr 09 2004
    - Begin the move to Unicode
    - Fix @INC to handle 5.8.X madnes
1.904 Mon Dec 08 2003
    - Require Tie::IxHash to try to handle Virtual Hosts
    - Dynaconf:
	s/nobody/apache/ as user and group
    - First build for FC
1.903
    - Fix LDAP Session Authenticator for OpLDAP
    - First build in RH9
1.902 Thu Jun 20 2002
    - First release for RH7x
1.900
    - GJ its now a proper perl module
