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

Quarkus 3.0.0.Alpha1 #89

Merged
merged 1 commit into from
Nov 18, 2022
Merged

Quarkus 3.0.0.Alpha1 #89

merged 1 commit into from
Nov 18, 2022

Conversation

vsevel
Copy link
Contributor

@vsevel vsevel commented Nov 4, 2022

move to quarkus 3.0.0.Alpha1

@vsevel vsevel changed the title Feature/3 0 0 Quarkus 3.0.0.Alpha1 Nov 4, 2022
@vsevel vsevel force-pushed the feature/3_0_0 branch 2 times, most recently from 30ac306 to e77e4a0 Compare November 4, 2022 18:05
@vsevel
Copy link
Contributor Author

vsevel commented Nov 4, 2022

hello @gastaldi
I have change everything to go along 3.0.0.Alpha1.
IT fail on testcontainers because of:

Error:  Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 46.67 s <<< FAILURE! - in io.quarkus.vault.VaultClientTokenWrapITCase
Error:  io.quarkus.vault.VaultClientTokenWrapITCase  Time elapsed: 46.669 s  <<< ERROR!
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: javax/servlet/DispatcherType
Caused by: java.lang.NoClassDefFoundError: javax/servlet/DispatcherType
Caused by: java.lang.ClassNotFoundException: javax.servlet.DispatcherType

I see that @gsmet added javax.xml.bind:jaxb-api and javax.annotation:javax.annotation-api exclusions back in 2019 on the org.tescontainers:postgresql back in 2019.
do you know if something needs to be done for javax.servlet as well?
cc @maxandersen

@gastaldi
Copy link
Member

gastaldi commented Nov 4, 2022

@vsevel I have no idea TBH, someone would need to debug and find where this class is used

@vsevel
Copy link
Contributor Author

vsevel commented Nov 5, 2022

needed to add:

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${javax.servlet-api.version}</version>
        </dependency>

since it is on the test-framework module, it does not leak into runtime or deployment.
not sure why testcontainers needs it.

@vsevel
Copy link
Contributor Author

vsevel commented Nov 5, 2022

the issue is actually with wiremock:

java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: javax/servlet/DispatcherType
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
        at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/DispatcherType
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:375)
        at com.github.tomakehurst.wiremock.jetty9.JettyHttpServerFactory.getServerConstructor(JettyHttpServerFactory.java:37)
        at com.github.tomakehurst.wiremock.jetty9.JettyHttpServerFactory.<clinit>(JettyHttpServerFactory.java:30)
        at com.github.tomakehurst.wiremock.core.WireMockConfiguration.<init>(WireMockConfiguration.java:93)
        at com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig(WireMockConfiguration.java:130)
        at io.quarkus.vault.WiremockVault.start(WiremockVault.java:23)
        at io.quarkus.test.common.TestResourceManager$TestResourceEntryRunnable.run(TestResourceManager.java:471)
        at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
        ... 3 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.DispatcherType
        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)
        ... 12 more

@gsmet
Copy link
Member

gsmet commented Nov 5, 2022

@vsevel I solved it in the Quarkus build by using wiremock-standalone: https://search.maven.org/artifact/com.github.tomakehurst/wiremock-standalone/2.27.2/jar

@vsevel
Copy link
Contributor Author

vsevel commented Nov 7, 2022

thanks for the tip @gsmet - this worked well. and I was even able to remove the old exclusions that we had on wiremock.
I checked the javax dependencies again, and all I see is:

[INFO] +- io.quarkus:quarkus-junit5:jar:3.0.0.Alpha1:test
[INFO] |  +- io.quarkus:quarkus-test-common:jar:3.0.0.Alpha1:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-maven-resolver:jar:3.0.0.Alpha1:test
[INFO] |  |  |  +- org.apache.maven:maven-embedder:jar:3.8.6:test
[INFO] |  |  |  |  +- javax.inject:javax.inject:jar:1:test
[INFO] |  |  |  |  +- javax.annotation:javax.annotation-api:jar:1.3.2:test

I am assuming this is known, and we can't do anything about it.

@kdubb would you be able to do the review?

@vsevel
Copy link
Contributor Author

vsevel commented Nov 10, 2022

hi @sberyozkin can you help me with the review? or would you suggest somebody else?

Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks nearly good, except for the import formatting that we tried to improve in quarkiverse-parent 11. See my comment inline.

<groupId>org.jboss.spec.javax.xml.bind</groupId>
<artifactId>jboss-jaxb-api_2.3_spec</artifactId>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that's exactly what you should do.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ia3andy I wonder if we should add a recipe adjusting these dependencies. Most people won't use them directly but that might be worth it anyway. The ones that got adjusted this way are JAX-RS and JAXB.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gsmet isn't quarkus providing that dependency?

@vsevel
Copy link
Contributor Author

vsevel commented Nov 17, 2022

@gsmet thanks for the review. I rebased and re-sorted the imports. everything is ok now.
@gastaldi I applied your changes in .github/workflows/quarkus-snapshot.yaml regarding uses: actions/...@v3.
if nothing else, I will squash and merge in main, and create an Alpha release at some point.
@maxandersen is there a timeline for producing Alpha releases for all extensions?

@vsevel vsevel merged commit 41adf6d into main Nov 18, 2022
@vsevel vsevel deleted the feature/3_0_0 branch November 18, 2022 15:12
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

Successfully merging this pull request may close these issues.

4 participants