[jira] Created: (AMQNET-205) Add support for Message Body Compression and Decompression

View: New views
10 Messages — Rating Filter:   Alert me  

[jira] Created: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Add support for Message Body Compression and Decompression
----------------------------------------------------------

                 Key: AMQNET-205
                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
             Project: ActiveMQ .Net
          Issue Type: Improvement
    Affects Versions: 1.1.0
            Reporter: Timothy Bish
            Assignee: Jim Gomes
            Priority: Minor
             Fix For: 1.2.0


Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.

The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  

.Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  



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


[jira] Assigned: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish reassigned AMQNET-205:
-----------------------------------

    Assignee: Timothy Bish  (was: Jim Gomes)

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Commented: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55276#action_55276 ]

Jim Gomes commented on AMQNET-205:
----------------------------------

Tim, I found the following on MSDN:

"The GZipStream class uses the gzip data format, which includes a cyclic redundancy check value for detecting data corruption. The gzip data format uses the same compression algorithm as the DeflateStream class."

What do you think about using GZipStream instead of DeflateStream class?

Reference: http://msdn.microsoft.com/en-us/library/system.io.compression.deflatestream.aspx

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Commented: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55277#action_55277 ]

Timothy Bish commented on AMQNET-205:
-------------------------------------

Either one could be used, although given the issues associated with each it would be better in the end to use something like the DotNetZip library: http://www.codeplex.com/DotNetZip which supports proper Zlib compression which would allow a client to trade data with the Java clients in compressed form.  The built in classes in .NET have well documented issues with producing results larger that the original data, which makes them unattractive for any real world use.  

I haven't had time to get back to this issue, if you have any suggestions I'd be happy to hear them.  I was thinking about adding a policy type object to the NMS.ActiveMQ connection / connect factory classes so the user can set a policy that defines what is created for compression and decompression streams.  We could of course default to one that uses the GZipStream.

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Commented: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55280#action_55280 ]

Mark Pollack commented on AMQNET-205:
-------------------------------------

Hi,
I've used this library http://www.icsharpcode.net/OpenSource/SharpZipLib/  in the past to compress messages between Java and .NET but using TIBCO EMS.   Here is an very old code snippit - feel free to use parts of it under whatever license you wish.  The non obvoius bit in the API at the time was to set the compression level, which required a subclass.

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Commented: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55281#action_55281 ]

Mark Pollack commented on AMQNET-205:
-------------------------------------

afaik, this compression library is still being actively used in production systems.

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>         Attachments: DefaultCompressionService.cs
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Updated: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Pollack updated AMQNET-205:
--------------------------------

    Attachment: DefaultCompressionService.cs

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>         Attachments: DefaultCompressionService.cs
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Commented: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55321#action_55321 ]

Timothy Bish commented on AMQNET-205:
-------------------------------------

I've added ICompressionPolicy and a default implementation to the NMS.ActiveMQ project as well as modifying the Message commands to use that for their compression streams.  

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>         Attachments: DefaultCompressionService.cs
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Updated: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jim Gomes updated AMQNET-205:
-----------------------------

    Component/s: ActiveMQ

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>          Components: ActiveMQ
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>         Attachments: DefaultCompressionService.cs
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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


[jira] Resolved: (AMQNET-205) Add support for Message Body Compression and Decompression

by JIRA jira+amqnet@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


     [ https://issues.apache.org/activemq/browse/AMQNET-205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish resolved AMQNET-205.
---------------------------------

    Resolution: Fixed

Working in Trunk, since no other comments received we will go with this implementation for now.

> Add support for Message Body Compression and Decompression
> ----------------------------------------------------------
>
>                 Key: AMQNET-205
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-205
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>          Components: ActiveMQ
>    Affects Versions: 1.1.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.2.0
>
>         Attachments: DefaultCompressionService.cs
>
>
> Add the framework in NMS.ActiveMQ to deal with Messages that are tagged as Compressed, as well as allowing messages to be sent with Compression.
> The Java based ActiveMQ client's ConnectionFactory allows a user to turn on Compression for the Connections it creates, this causes the client to send messages with the message body compressed using a Zlib compression algorithm.  The client can uncompress messages that it receives that have the Openwire Compressed field set to true.  
> .Net doesn't have support for Zlib compression / decompression built in but there are third-party libraries that can do this.  

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