Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

This is an implementation of the 0-8 version of AMQP for AS3.

branch: master
README
AS3-AMQP Library
==========================================================================


This library provides a high level and a low level AMQP interface for AS3.

Note that you cannot just compile this library using Flash Builder! You need to use the provided
Apache Ant build script to generate classes first.

If you're new to Ant, here's how you do this:

1. Download and install Apache Ant. (These instructions are being written using Ant version 1.7.1.)

2. Ensure that the ANT_HOME/bin directory is on your PATH.

3. Edit the build.properties file to specify the Flex SDK directory to use.

4. Run the build script by typing ant in the main directory of this project. You will see messages like this:

$ ant
Buildfile: build.xml

properties:

codegen:
    [mkdir] Created dir: /some_directory_name/as3-amqp/build
     [copy] Copying 4 files to /some_directory_name/as3-amqp/build
    [javac] Compiling 5 source files to /some_directory_name/as3-amqp/build

lib:
     [java] Loading configuration file /Applications/Adobe Flash Builder Beta 2/sdks/3.4.1/frameworks/flex-config.xml
     [java] /some_directory_name/as3-amqp/bin/amqp.swc (291129 bytes)

BUILD SUCCESSFUL
Total time: 8 seconds

5. With this completed, you can use the project by either using the .swc file or by building the generated code in Flash Builder if you prefer.


High Level Interfaces:
----------------------
org.amqp.patterns.PublishClient
org.amqp.patterns.SubscribeClient
org.amqp.patterns.RpcClient
org.amqp.patterns.RpcServer

TODO / Further exploration:
---------------------------

- The shutdown handling is probably not inline with the protocol.
  (Look into the LifecycleTest to see how the connection is being closed)

- Optimize the file size of overall library to decrease its 304kb
weight down to something reasonable. For one, I noticed the core
library depends on flexunit.swc, which weighs in at 400kb itself.
Perhaps looking at removing that dependency will cut some fat, in
particular the ArrayList class is used and should be substituted with
something already available.
|--> Update: the dependency is now removed - the build script just needs modification

- Remove the dependency on ericfeminella's HashMap

- Make the TLS bundling optional

- Add the Flexunit Test Suite to the build.xml so that it can be run from
the command line

- Consider ignoring all messages that are sent from the same application

to a subscribed topic (BasicProperties, userid argument might work)

- Remove binding for a specific routing key when unsubscribing

- Wildcard topics still require some testing

Known Issues:
-------------

- The code generator should produce logging code that can dump the contents of each method
Something went wrong with that request. Please try again.