Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider removing dependency on pureconfig for shared modules #275

Open
migesok opened this issue Jul 14, 2021 · 2 comments
Open

Consider removing dependency on pureconfig for shared modules #275

migesok opened this issue Jul 14, 2021 · 2 comments

Comments

@migesok
Copy link
Contributor

migesok commented Jul 14, 2021

pureconfig at the current stage doesn't guarantee binary compatibility and is known to break it.
For instance if you try to use pureconfig 0.14.1 together with the current kafka-journal persistence plugin which is built against 0.12.3 you get this error in runtime:

java.lang.NoClassDefFoundError: pureconfig/generic/MapShapedReader$WithDefaults
at com.evolutiongaming.kafka.journal.JournalConfig$HeadCache$anon$lazy$macro$15$1.inst$macro$1$lzycompute(JournalConfig.scala:30)
at com.evolutiongaming.kafka.journal.JournalConfig$HeadCache$anon$lazy$macro$15$1.inst$macro$1(JournalConfig.scala:30)
at com.evolutiongaming.kafka.journal.JournalConfig$HeadCache$.<clinit>(JournalConfig.scala:30)
at com.evolutiongaming.kafka.journal.JournalConfig$.apply$default$3(JournalConfig.scala:12)
at com.evolutiongaming.kafka.journal.JournalConfig$.<clinit>(JournalConfig.scala:16)
at akka.persistence.kafka.journal.KafkaJournalConfig$.apply$default$1(KafkaJournalConfig.scala:12)
at akka.persistence.kafka.journal.KafkaJournalConfig$.<clinit>(KafkaJournalConfig.scala:22)
at akka.persistence.kafka.journal.KafkaJournal.kafkaJournalConfig(KafkaJournal.scala:63)
at akka.persistence.kafka.journal.KafkaJournal.$anonfun$adapterIO$1(KafkaJournal.scala:134)

This makes it hard to combine kafka-journal persistence plugin with other code which uses pureconfig.

At the same time the dependency on it looks easily replaceable with handwritten config reader methods.

@arixmkii
Copy link

Will not be that simple. It is a transitive one from https://github.com/evolution-gaming/scassandra as well... 😞

@arixmkii
Copy link

arixmkii commented May 12, 2022

Shaded versions for both projects (ce2 flavors):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants