## Release 1.0.0 RC B:

Much has been added and improved in Jaxer 1.0 — too much to capture in these release notes.

For more information on what has changed, and for guidelines on migrating applications based on the Jaxer beta (0.9.x) APIs to Jaxer 1.0 APIs, please refer to http://www.aptana.com/docs/index.php/Migrating_from_Jaxer_beta.

## Release 0.9.7:

- Added informative error messages to DB.MySQL, using whatever information MySQL gave about the error (JXR-153)
- Added a removeAll() method to the Jaxer.Container prototype so you can now clear out your session, sessionPage, page, or application containers (JXR-166)
- Addressed threading issues in JaxerManager running on some operating systems (JXR-176)
- Added a Jaxer.Util.isEmptyObject(obj) to determine whether an object has no (enumerable) properties
- createDB (and hence also Jaxer.DB.createDB) now returns a connection object (JXR-168)
- Improvements to scriptdoc (and hence to content assist and help docs)
- Use th elatest recommended optimization options from Mozilla (http://mxr.mozilla.org/mozilla/source/tools/tinderbox-configs/firefox/win32/mozconfig)
- Fixed GTK issue that caused a problem when using the canvas element on some operating systems (JXR-102)

## Release 0.9.6:

- We now allow the value of the proxy attribute on a function to be anything that is equivalent to true or false, not just specifically true or false, when deciding whether to proxy it. (JXR-156)
- Fixed an important bug where we did not mark the document as having been touched by Jaxer when the only changes to it were done by an externally-src'ed JavaScript file (JXR-162)
- Improve the performance when loading in externally-src'ed JavaScript scripts by using new Core-level functionality to detect when functions are created, for later tagging with the script tag's runat value (JXR-111)
- Allow for Unicode path for the log file (JXR-110)
- Check more robustly whether a connection from the web server to Jaxer has succeeded. This allows restarting Jaxer independently of the web server, which previously only worked correctly on Windows. Note that this required a protocol change, so the web server and JaxerManager/Jaxer need to be using this same new protocol (JXR-160)
- Fix issues related to running on 64bit Linux versions, such as Ubuntu 64bit (JXR-158 and others)
- Fixed bug in the default local_jaxer/configRoutes.js and added a warning if we encounter a non-function item in the Config.routes array
- Fixed Jaxer.DB.lastInsertRowIdand related (JXR-167)
- Fix some Linux build issues

## Release 0.9.5:

- Updated Mozilla base to same as Firefox3 beta 3 ("FF3b3"), which introduces numerous improvements. Made changes to Jaxer for compatibility
- Added the ability to compile scripts into bytecode, and execute compilde bytecode
- Changed the callback environment such that callbacks use the regular (window) global object
- Created the autoload attribute on script blocks to automatically load a library JS file into both regular page requests and callbacks in that page. Added Jaxer.Config.RELOAD_AUTOLOADS_EVERY_PAGE_REQUEST for easier development/debugging cycles
- We no longer inline externally-sourced scripts that run on the server, for a much better intuitive server-side experience
- By default, Jaxer now does not embed clientFramework inline in all outgoing pages, instead it embeds an externally-sourced script tag. In Studio we continue to use the inlined clientFramework
- Clean up the way we do callbacks, in particular making sure that a page will only ever call its own callbacks, even if another page has identical callbacks
- Changed the (character) socket code to be compatible with FF3b3 (JXR-140, JXR-143, and others)
- For Mac OSX, added MySQL support, and allow starting and stopping Jaxer and Apache independently of the main Start All button
- Added Jaxer.Util.Stopwatch functionality for timing
- Allow multiple prepared statement parameters to not be wrapped in an Array (JXR-99)
- Now we can build and run on Solaris!
- For Windows, add MSVC runtime DLLs that are needed for Jaxer built with MSVC 2005.
- Added more static methods to Jaxer.File and Jaxer.Dir, and fixed Jaxer.File.chmod
- Fixed bug in prepared statement support for MySQL
- JaxerManager can now read settings from a cfg file (JXR-107)
- Improvements (mainly robustness and monitoring) to Jaxer startup scripts, JaxerManager, and interprocess communications
- Fixed mod_jaxer to be compatible with gzipped contents
- Enhancements to Jaxer.request
- Minor JS and scriptdoc bug fixes
- File I/O unit tests now use tmp folder
- Fixed issue when running within Studio on Vista SP1 when you're not an administrator. For some reason it was having a problem with the length of the log file path. We now use different build flags when building JaxerManager (JXR-101)

## Release 0.9.4:

- Added support for MySQL on Linux (JXR-48)
- Document Jaxer.Request.FileInfo to better explain how to work with uploaded files (JXR-79)
- Added the implementation and version properties to the MySQL and SQLite connections' APIs (JXR-45 and JXR-46)
- Added extra information about ports to StartServers.bat and StartJaxer.bat (Windows) (JXR-30)
- Explicitly check for the loading of the required Jaxer prefs file (JXR-47)
- Fixed some API docs (JXR-63, JXR-77)
- Add content-type-based filter setting for Jaxer handling of requests (JXR-76)
- Try to use same or similar failure codes for MySQL as SQLite in MYSQL COM interfaces (JXR-57)
- Ignore invalid command line args instead of crashing JaxerManager (JXR-56)
- Fix and improve some issues related to starting up new Jaxer processes automatically (JXR-70)
- Decode incoming data as UTF-8 (JXR-38)

## Release 0.9.3:

- Removed a scriptdoc tag that is not yet supported and that prevented some API documentation from being generated.
- Fixed Linux build system problem that prevented inclusion of API documentation in the Linux release package.
- Added the isOpen property and the test() method to the APIs for Jaxer.DB.MySQL.Connection and Jaxer.DB.SQLite.Connection.
- Changed the release notes from text to html.
- Resolved the MOZILLA_FIVE_HOME issue on Linux (JXR-60).
- Significant speed improvement: we were scanning the entire global context at the end of page processing to look for global functions with a runat property, to catch those not picked up in script block parsing. We now added a setter to the Function prototype to automatically register any functions that have runat properties set, so we can just refer to this registry.
- Added Jaxer.Dir.grep(path, options) and Jaxer.Dir.map(path, options, fn) for easier walking/processing of folder hierarchies.
- Modified the jQuery tests to skip tests with exceptions and display them as skipped in the results. This increased the number of tests passed from 538 to 581, leaving 42 tests still to fix.
- JXR-52: Do not check content type if page extension is already configured for Jaxer filter, just pass it to Jaxer. This allows processing of more document types by Jaxer (e.g. XHTML) but some issues, such as JXR-53 and JXR-54, remain.
- JXR-51: Do not use a type attribute on script blocks that Jaxer generates and emits, nor on ones created by the developer that have a runat of server-only and that are sent to the client because they contain proxies. This allows using advanced type attributes on the server without sending them to clients (like IE) that don't support them.

## Release 0.9.2:

- Switch to static builds of Jaxer/Mozilla and clean up some previously-built pieces that are not needed. This reduces load time and decreases Jaxer release size.
- Enable integration with COM system on Windows builds
- Fix bug that would cause crashes when protocol dumping was turned on, and make protocol dumping more robust (flush when needed)
- Improved performance by not firing unnecessary events from Jaxer Core into the Jaxer framework
- Added parameter validation for database connections (JXR-37)
- Significant progress towards Linux builds (now they work on some distros)
- Make tellJaxerManager cross-platform
- Add support for including 3rd-party libraries when running Jaxer unit tests (to see whether those libraries break Jaxer)
- Added the Google Gears database resultset API to Jaxer.DB.ResultSet, and fix Jaxer.DB.ResultSet.prototype.toHTML() (JXR-39 and JXR-40)
- Add to the Jaxer DB API two synonymous properties: lastInsertId and lastInsertRowId. These work for both dynamic connections (ones the developer creates and manages) as well as the Jaxer.DB managed connections, and for both SQLite and MySQL.
- When XMLHttpRequests are used server-side, call onreadystatechange after calling send() and getting the response. This allows supporting Ajax libraries that rely on this event.
- More robustness for jaxermanager on non-Windows platforms, and for Jaxer's (Mozilla's) registration process on all platforms.
- Enabled Mozilla's sql and canvas libraries; fix the gfx module's initialization for canvas off-screen surface; enable ODBC
- Fix JXR-41: when you try to use a File object with a directory's path or a Dir object with a file's path, throw an error.

## Release 0.9.1:

- Build in more Mozilla extensions that could be useful on the server, such as webservices SOA support and WebDAV.
- Improved error handling and reporting in XMLHttpRequests, especially when returning XML documents
- Removed some cross-site XHR issues that prevented making certain SOAP and other remote requests server-side.
- Allow for SSL requests by handling certificates and allowing storage (in the temp folder) of profile data
- When you use SendOptions.contentType in XMLHttpRequests, the value will be used to set the Content-Type header even if there is no content (e.g. in a GET request) - important for AJAX .NET callbacks.
- Allow setting any Mozilla preference by adding it to Config.MOZ_PREFS in config.js, e.g. to enable HTTP proxying if your network requires it.
- Don't rely on the Referer being present as a header during callbacks (thereby supporting some really old browsers).
- Eliminate silent failures due to not having the right error message file. We now include en-US.jar.
- Any premature exits/failures of the framework before page processing is complete will result in a 500 Server error being returned to the browser, instead of the partially-processed server content that could occasionally have been returned to the browser previously.
- Trap errors in URL parsing during construction of Jaxer.request, so they lead to request errors rather than fatal errors.
- Fixed link to the embedded API documentation, and make some scriptdoc corrections. Properly show "advanced" items when clicking on the item in the tree, and show "static" items as static.
- Changed default JaxerManager ports to IANA-approved 4327 and 4328.
- Eliminated a possible initialization race condition in which two Jaxer processes could have tried to initialize some Mozilla filesystem data at the same time.
- Some cleanups and improvements to JaxerManager Command Line Interface (CLI). See http://www.aptana.com/node/194 for details.

## Release 0.9.0:

- This is the first public release of Jaxer: beta version 0.9.0. For more information, please go to http://www.aptana.com/jaxer/faq.