activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jim Cook (JIRA)" <>
Subject [jira] Updated: (AMQ-1377) amq.js should not have a dependency on prototype.js
Date Tue, 04 Sep 2007 15:02:22 GMT


Jim Cook updated AMQ-1377:


I have included an attachment containing the changes this issue describes. 

The refactor is entirely client-side and the AjaxServlet and MessageListener Servlet have
not been modified. The refactor breaks out prototype's AJAX handling from the core _amq.js
file and replaces it with an adapter class. Also included is an adapter for jQuery. Here is
a description of changes in each major file.
h4. chat.html
- No longer uses amq.js that loads _amq.js, prototype.js and behavior.js. SImple add amq.js
which now contains the full client-side jms implementation that communicates with the AjaxServlet
on the server.
- Initialization code slightly different now. The chat event handlers and general initialization
is now purposeful instead of triggered by a quirky poll handler.

h4. amq.js
- This file is not quite different. It has been reorganized to support a namespace and private/pubic
properties and methods.
- The batch process has been refactored from its reference counter implementation to a simple
queue. I was experiencing bugs using the prior approach and this simpler approach seems to
offer the same capabilities, especially since only one AJAX POST can be made to the server
at a time. Please correct me if I am wrong or overlooked something.
- The AJAX and logging functionality has been externalized to an adapter class.
- Added some basic error recovery (reconnect), however this is an area where more improvement
is needed.
- Removed the pollHandler functionality although it is trivial to add back. It was being misused
(along with a 'first' boolean value and a jiggered timeout value) to initialize the chat.html

h4. amq_xxx_adapter.js
- These are the adapter files that externalize the AJAX call on behalf of the amq.js file.
- They also can externalize logging, however they just log to Firebug right now.

> amq.js should not have a dependency on prototype.js
> ---------------------------------------------------
>                 Key: AMQ-1377
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Improvement
>          Components: Broker
>    Affects Versions: 5.0.0
>            Reporter: Jim Cook
>         Attachments:
> amq.js uses a script loading technique to include behavior.js, prototype.js and _amq.js.
The Behavior library is included only for the purposes of the chat client and is only GUI
in nature, so that should go. Also, Prototype is included for its AJAX functionality, however
everyone has their favorite javascript library and although I cut my teeth on prototype, I
use jQuery now. I certainly don't want amq.js to include prototype when I have a perfectly
good AJAX library already included in jQuery.
> IMHO, amq.js should include only the functionality of client-side javascript-enabled
JMS. The page author should include her AJAX library of choice (prototype, dojo, jquery, mootools,
etc.) and an adapter class that allows amq.js to use the particular ajax library.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message