Jaxer Release Notes
Release 1.0.2:
-
Add onsslcerterror support to the Jaxer Sandbox, to support working with SSL connections
that may not have proper certificates. This was already implemented for Jaxer.XHR.
-
Add Jaxer.Util.createObject to support creating objects from their constructor names
and an arbitrary (not known in advance) number of parameters. Also enhanced
Jaxer.Util.findInGlobalContext to support namespaced names.
-
Add Jaxer.Util.DOM.insertHTML to allow injection of any HTML content in the DOM.
It is the HTML equivalent of Jaxer.load, and the programmatic equivalent of
the <jaxer:include> element (but with a bit more control).
-
Support addEventListener for the serverload event, and even for onload (controllable
through Jaxer.Config.ONLOAD_ENABLED and per-request via Jaxer.onloadEnabled).
Similarly for the afterprocesscallbacks event.
(JXR-91)
-
Build into Jaxer Core (i.e. Mozilla) support for __noSuchMethod__ on the anonymous global
object. It works exactly the same as, e.g., window.__noSuchMethod__ and allows
dealing with previously-undefined tokens.
(https://bugzilla.mozilla.org/show_bug.cgi?id=466239)
-
Fixed several issues with Jaxer.DB.ResultSet that occur when there are no rows (no data).
These arise in particular when trying to serialize (to JSON) a resultset with no rows.
-
Corrected an inconsistency in the API for Jaxer.DB.ResultSet. The result is that
the singleRow, firstRow, and finalRow properties now return the row as an object
with column-named properties rather than as an Array. Note that this may break
code that was relying on these (inconsistent) APIs!
Release 1.0.1:
-
Great simplified how developers can build Jaxer from source on their own
-
Jaxer Community Edition vs Jaxer Pro (same code, different licensing and support)
-
Fix bug in most of the Util.DOM methods that insert script tags:
discrepancy between how they were documented (correct) and the params they take (wrong).
-
Correct and improve when and how the type attribute of emitted script elements
is used (JXR-338)
-
Add new JaxerManager command line options to restrict the local network
interface on which it is listening: webinterfacelocalip and commandinterfacelocalip (JXR-395)
-
Added an onlocationchange event handler to Jaxer.Sandbox to detect, and optionally
cancel, the location (URL) of the Sandbox's content from being changed
-
Fixes to serviceDispatcher and rpcDispatcher:
interpret the findFile() method's first argument as a true (native OS) path on disk;
do not allow a path part of ".." (so you cannot go above the service root);
restrict looking for the .js file at or above the service root.
Release 1.0.0:
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 the latest 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.