Skip to content

Latest commit

 

History

History
30 lines (24 loc) · 2.09 KB

Migration-6_1-8.md

File metadata and controls

30 lines (24 loc) · 2.09 KB

Migration from 6.1.x to 8.0.x

Java API was COMPLETELY REMOVED and won't be supported anymore. Checkout version 7.x for the last version supporting Java API.


  1. API is fully effectful.
    • Init methods return cats.effect.Resource for easy resource management.
    • Declaration methods return F[Unit].
  2. Library could be configured with case classes - this is the default way. See RabbitMQConnection.make.
  3. Configuration from Lightbend Config was separated to pureconfig module. Please read the docs. It's behavior remained backward compatible with these exceptions:
    • SSL context is now passed explicitly and is ignored in Config (see more below).
    • You have to use import com.avast.clients.rabbitmq.pureconfig._ to be able to use fromConfig method!
    • Required structure of config has been changed - all consumers must be in consumers block, producers in producers and additional declarations in declarations blocks. See more info in pureconfig module docs.
    • It's required that the config doesn't contain anything else than configuration of the client. Presence of unknown keys will cause failure of configuration parsing.
  4. SSL is now configured explicitly in make/fromConfig method by passing Option[SSLContext]. Use Some(SSLContext.getDefault) for enabling SSL without custom (key|trust)store; it's now disabled by default (None)!
  5. You are now able to specify network recovery strategy.
  6. You are now able to specify timeout log level.
  7. Additional declarations: bindQueue now has more consistent API. The only change is bindArguments were renamed to arguments.
  8. You are now able to configure custom exchange for republishing.

The client now uses circe 0.13 (only extras-circe module), cactus 0.17 (only extras-cactus module), cats 2+ and cats-effect 2+ - it doesn't use Monix anymore!.