-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Qute extension conflict Redis-cache extension cause Deployment build time failed #35680
Comments
/cc @cescoffier (redis), @gsmet (redis), @gwenneg (cache), @machi1990 (redis), @mkouba (qute) |
Exclusion can't solve <dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-mailer</artifactId>
<exclusions>
<exclusion>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-qute</artifactId>
</exclusion>
</exclusions>
</dependency> 2023-09-01 18:12:23,728 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.NoClassDefFoundError: io/quarkus/qute/i18n/MessageBundle
at io.quarkus.qute.deployment.Names.<clinit>(Names.java:31)
at io.quarkus.qute.deployment.QuteProcessor.<clinit>(QuteProcessor.java:155)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at io.quarkus.deployment.util.ServiceUtil.classesNamedIn(ServiceUtil.java:29)
at io.quarkus.deployment.ExtensionLoader.loadStepsFrom(ExtensionLoader.java:170)
at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:107)
at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:332)
at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:253)
at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:60)
at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:82)
at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:423)
at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:55)
at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:138)
at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:93)
at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:131)
at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:62)
Caused by: java.lang.ClassNotFoundException: io.quarkus.qute.i18n.MessageBundle
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:516)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:466)
... 17 more
|
Just a wild guess (I have zero knowledge of the redis extension) - you can try to specify the default value type for the |
If that is indeed the solution, we should probably set it automatically when qute and redis-cache are used. But we might also want to not use the cache in Qute in this case... |
Well, in general any extension can produce an
I'd like to know the details about this redis requirement - the cache SPI does not seem to define any... Maybe we should enhance the SPI instead? |
It's true that it's not a Qute specific problem, and we should indeed augment the SPI. Essentially what this does is enable the Redis cache extension to know the type of data that is going to be exchanged with the server which in turn is used in order to marshall and unmarshall the data over the wire. |
How does it handle serialization? |
Ah, so it wouldn't work anyway as there's probably no working codec for the |
Yeah, that's probably a good option. |
It can be successfully compiled when setting value: quarkus.cache.redis."qute-cache".value-type = io.quarkus.qute.ResultNode But i am not sure Qute is working and it shouldn't choose redis cache if both caffeine and redis exist. |
I don't think it is.
But only one cache implementation can be present, right? We need to enhance the SPI so that it's possible to detect the cache impl... |
Right, only one impl is allowed |
I'll have to think of this a little |
For Qute specifically, is caching templates on a remote server a good thing or would it hurt performance? |
I don't think it's a good idea. So the SPI should at least provide a way to detect the type of the cache (in-memory/remote). |
That's what I thought, thanks! |
#35817 should take care of it |
Closes: quarkusio#35680 (cherry picked from commit 8ffe29d)
Closes: quarkusio#35680 (cherry picked from commit 8ffe29d)
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Most of the tests are reused from caffeine module anshould cover similar scenarios as spring che and caffeine cache.
Describe the bug
Mailer extension include Qute extension library that raise Build step failed
pom.xml
Expected behavior
How set set the value or RedisCacheProcessor automatically skip it ?
'quarkus.cache.redis.qute-cache.value-type'
Actual behavior
https://quarkus.io/guides/qute-reference#cached-section
howt to resolve it ?
How to Reproduce?
No response
Output of
uname -a
orver
No response
Output of
java -version
JDK 17.0.4.1
GraalVM version (if different from Java)
No response
Quarkus version or git rev
3.2.4.Final
Build tool (ie. output of
mvnw --version
orgradlew --version
)No response
Additional information
"qute-cache" from io.quarkus.qute.cache.QuteCache.java
The text was updated successfully, but these errors were encountered: