[ 
https://issues.apache.org/jira/browse/QPID-1786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12696701#action_12696701
 ] 

Bryan Kearney commented on QPID-1786:
-------------------------------------

I am going to update a new set of patches (*2.patch) which replaces the older 
ones. The new patches provide the following enhancements:

* Events: Added the raiseEvent method for parity with the CPP agent.
* Thread Safety: You should be able to recieve messages and send events at the 
same time.
* Object return types which actually contain native types: This one is a bit 
tricky. I added the encoding for Objects (type 20) to also contain the real 
type. The use case is if I have a paraemeter which is marked as an obejct but 
is actually sent a native type (i.e. pass in a string). We could save space by 
encoding somethign interesting in the classname/packagename but until then I 
added the actual type.
* New annotations to say a class is an Event (@QMFEvent) and an annotation to 
hide certain behaviour (@QMFHide)



> Java QMF Agent with Support for Nonmanaged objects
> --------------------------------------------------
>
>                 Key: QPID-1786
>                 URL: https://issues.apache.org/jira/browse/QPID-1786
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Ant Build System, Java Tools, Python Client
>         Environment: Cross Platform
>            Reporter: Bryan Kearney
>            Assignee: Ted Ross
>             Fix For: 0.5
>
>         Attachments: javaAgent.patch, muppet.py, pythonConsole.patch
>
>
> The feature (with patches) is for a Java agent which supports the encoding 
> and decoding of complex object types. The patches provided are based off of 
> patches provided by Ted Ross (pythonConsole.pactch) and Rafael Schloming 
> (javaAgent.patch).
> The Java agent is an IOC friendly class which can be configured to connect to 
> an AMQP broker. It allows for classes to be bound to QMF either by 
> registering a managed object, or by directly registering the classes. Complex 
> input and output types (including custom objects, lists, enumerations) are 
> marshalled into and out of QMF Object types (type 20). Annotations can be 
> used to control the class and package naming of the objects.
> The python console has been extended to work with the java agent. The 
> supplied test program (muppet.py) exercises much of the functionality of the 
> Java Agent and complex object marshalling.
> Open issues right now with this initial patch include:
> - Type Inheritance: How to show in the schema that one type extends another 
> (See Pikelet and Crumpet)?
> - Do we allow operator overloading? (currently we do not). Right now a 
> managed object can only have a single method with a single name
> - Enumerations: Do we should the value values in the schema?
> - Do we show in the schema that one type is unmanaged?
> - If the Qpid deamon dies, the agent does not reconnect
> - Maps: The current ftables type only passes Native QPID types. Should a new 
> map be created which sends complex objects?

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


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to