Hi,

This seems to me like these dependencies are being added to the wrong classpath 
somehow. Are you sure they should go to the buildscript dependencies?

Here's what we have, but as mentioned, we have our codegen running somewhat 
differently (in a separate Gradle configuration/source set). Also note that we 
are using jOOQ Pro in our case; IIRC the artifact names have to be edited if 
you're using jOOQ Open Source (but the Gradle plugin probably takes care of the 
jOOQ stuff anyway in your case).

dependencies {​
    // for running DB-based codegen in isolated Docker container
    codegenImplementation( 
"org.testcontainers:testcontainers:${testcontainersVersion}" ) {
        exclude group: 'javax.xml.bind', module: 'jaxb-api'
    }

    codegenImplementation( 
"org.testcontainers:postgresql:${testcontainersVersion}" ) {
        exclude group: 'javax.xml.bind', module: 'jaxb-api'
    }

    codegenImplementation "org.postgresql:postgresql:${postgresqlJdbcVersion}"
    codegenImplementation "${jooqGroupId}:jooq:${jooqVersion}"
    codegenImplementation "${jooqGroupId}:jooq-codegen:${jooqVersion}"
}

Best regards,
Per
________________________________
From: [email protected] <[email protected]> on behalf of 
Pasha Finkelshtein <[email protected]>
Sent: Thursday, February 22, 2024 12:08
To: jOOQ User Group <[email protected]>
Subject: Re: jOOQ+Liquibase+docker

This is what I have:

buildscript {
    dependencies {
        classpath("org.testcontainers:testcontainers:1.19.5")
        classpath("org.testcontainers:postgresql:1.19.5")
    }
    repositories {
        mavenCentral()
    }

}
....

val testContainer = 
org.testcontainers.containers.PostgreSQLContainer(DockerImageName.parse("paradedb/paradedb:latest").asCompatibleSubstituteFor("postgres"))

val startContainer by tasks.registering {
    testContainer.start()
}

Hypothetically, it should to the trick - when I call gradlew startContainer or 
when Liquibase's update tsk depends on it and I call update - it should spin up 
the container and stop it only when the gradle is done.
Or, for example, if I will put jooqCodegen.finalizedBy(stopContainer) - the 
same should happen. However, I got the following error in the very beginning:

Can't instantiate a strategy from 
org.testcontainers.dockerclient.UnixSocketClientProviderStrategy 
(ClassNotFoundException). This probably means that cached configuration refers 
to a client provider class that is not available in this version of 
Testcontainers. Other strategies will be tried instead.
Could not find a valid Docker environment. Please check configuration. 
Attempted configurations were:
As no valid configuration was found, execution cannot continue.

I am not sure what is the issue here. Obviously, testcontainers work on my 
machine; I have native Docker installed. I have a dependency on testcontainers 
on my script's classpath. At this point I do not know what I am doing wrong :(
On Thursday 22 February 2024 at 10:31:34 UTC+1 Lukas Eder wrote:
Well, what did you try?

On Thu, Feb 22, 2024 at 10:19 AM Pasha Finkelshtein <[email protected]> 
wrote:
This obviously SHOULD work, but it doesn't. And I was hoping to get a concrete 
example to understand what I'm doing wrong.

It seems to me that test containers just don't work during the gradle build, 
but maybe I'm wrong. And since nobody in the Testcontainers slack answer I 
thought that maybe here somebody has a working example.

Sorry for bothering you

--
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jooq-user/c6de4831-14e6-4d64-b558-34b73b45a2ben%40googlegroups.com<https://groups.google.com/d/msgid/jooq-user/c6de4831-14e6-4d64-b558-34b73b45a2ben%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jooq-user/VI0PR08MB104480DC7AB6E0340D566C0A2EA562%40VI0PR08MB10448.eurprd08.prod.outlook.com.

Reply via email to