rabbitmq / rabbitmq-objc-client

RabbitMQ client for Objective-C and Swift
https://rabbitmq.com
Other
242 stars 84 forks source link

Access token connection #230

Closed aurban-iqmessenger closed 4 months ago

aurban-iqmessenger commented 4 months ago

Proposed Changes

This pull request aims to add an update-secret protocol extension to the client. It's already possible to connect to the server with an access token using a regular connect method but there is no possibility to update this token as it expires and this method achieves that. This feature is already present in the Java client.

Additionally, I've updated the Dockerfile to point to the current RabbitMQ image as provided in Installation guides. It's impossible to use an old Dockerfile because it points to the long time dead Bintray. Apt Bintray-related files are also removed.

On top of that, it's impossible to run the project on Apple Silicon arch. I've made necessary changes but only locally and haven't included those in this pr so as not to break Intel arch compatibility.

I haven't checked the last box in the checklist below. Both CocoaAsyncSocket and JKVValue as they are right now have too low minimal target for the current XCode. But it doesn't seem to me I can do a pr for them since there is no real activity in those projects, a lot of stale prs, including the ones trying to up the deployment target, and this situation is like that for years already. I guess people are just including them with CocoaPods and up the target using post installation script feature of pods. In order to run tests for this project I checked those two libs locally, upped their targets and pointed Carthage to these local projects.

Types of Changes

What types of changes does your code introduce to this project?

Checklist

aurban-iqmessenger commented 4 months ago

No, you're wrong about the changes being handcrafted, I've used the codegen and properly added changes to XML for it to generate needed classes. That's actually exactly why all of the licenses are changed -- as soon as I ran the codegen it changed all of the headers; it's not like I wished to mess with licenses myself. But now I see there actually was a way to run codegen without changing licenses. Just have rolled the licenses back.

michaelklishin commented 4 months ago

OK, thanks for confirming, indeed this client's code generator pre-dates the switch to MPL 2.