longkerdandy / mithqtt

MQTT Message Broker with Scalability written in Java
https://mithqtt.readme.io/
Apache License 2.0
41 stars 24 forks source link

Creating a diff for you to review #42

Closed guilt closed 8 years ago

guilt commented 8 years ago

Major Changes:

I know, there are some minor changes which you would have to discard, such as artifact version information. Please ignore those when merging. If you do get to merge these changes in master, I will remove my fork.

longkerdandy commented 8 years ago

Thanks for the pull request and sorry for the late response. I've go through your code and I merged some of them in 1.1 branch. Basically the PR can be divided into several parts:

  1. Remove Netty codec

I didn't merge this because I need to keep the codec. I'm trying to re-use codec class as Mithqtt internal transfer format. This has been done in version 1.1.

  1. Move redis storage as a standard storage interface.

I didn't merge this because at the moment the implmentation is so tightly bind to redis and I don't think people can create an alternative storage based on this interface.

  1. Fixed the zero length id bug

This has been merged.

  1. Update dependencies.

This has been merged, most dependencies like Netty is up to date. But I didn't change the jackson back to the old version, I can't see why.

  1. Improve the lock logic

The lock logic is re-written in version 1.1, it's in fact a lock free style now. The lock is used to sync client state in distributed environment, it has been re-implemented bu using redis ttl function.

So I will close this PR for now.

guilt commented 8 years ago

Oh, this is perfect. I'll pull out the 1.1 branch, but the keeping it loosely coupled to Redis is something I would do, to make it provider based.