diff --git a/.circleci/config.yml b/.circleci/config.yml
index 1e9062e147..bb0ad683f8 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -16,7 +16,7 @@
executors:
java:
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
# common commands
commands:
@@ -38,6 +38,32 @@ commands:
when: always
- store_test_results:
path: ~/test-results
+ - run:
+ name: Codecov
+ command: |
+ set -x
+
+ curl -Os https://cli.codecov.io/latest/linux/codecov
+ chmod +x codecov
+
+ # Prepare extra arguments: include pull request number if set
+ EXTRA=""
+ if [ -n "$CIRCLE_PR_NUMBER" ]; then
+ EXTRA="--pull-request-number $CIRCLE_PR_NUMBER"
+ fi
+
+ # Build the set of common arguments.
+ COMMON_ARGS="--token $CODECOV_TOKEN --branch $CIRCLE_BRANCH --commit-sha $CIRCLE_SHA1 $EXTRA --recurse-submodules --git-service github"
+
+ ls -lha
+
+ ./codecov --version
+
+ # Upload the coverage report.
+ ./codecov upload-coverage $COMMON_ARGS
+
+ # Upload the test reports.
+ ./codecov do-upload --report-type test_results $COMMON_ARGS
configure-gpg:
steps:
@@ -80,13 +106,12 @@ jobs:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
steps:
- checkout
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- resolve-dependencies
- save_cache:
paths:
@@ -96,13 +121,12 @@ jobs:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
steps:
- checkout
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
@@ -119,7 +143,6 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
@@ -130,13 +153,12 @@ jobs:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-docker
+ - image: velo/toolchains-4-ci-builds:latest
steps:
- checkout
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Prepare environment'
command: |
@@ -144,7 +166,7 @@ jobs:
- run:
name: 'Build and test examples'
command: |
- ./mvnw -ntp -B verify -Pexamples -rf :querydsl-examples
+ ./mvnw -ntp -B install -Pexamples -rf :querydsl-examples
- save-test-results
buildQuarkusExample:
<<: *defaults
@@ -164,7 +186,7 @@ jobs:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-docker
+ - image: velo/toolchains-4-ci-builds:latest
steps:
- checkout
- run:
@@ -189,7 +211,7 @@ jobs:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
- image: mysql:5.6.38
environment:
- MYSQL_ROOT_PASSWORD=querydsl
@@ -201,17 +223,16 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
- ./mvnw -ntp -B package -Pci -Dgroups=com.querydsl.core.testutil.MySQL
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.MySQL
- save-test-results
testPostgreSQL:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
- image: postgis/postgis:16-3.4-alpine
environment:
- POSTGRES_USER=querydsl
@@ -222,17 +243,16 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
- ./mvnw -ntp -B package -Pci -Dgroups=com.querydsl.core.testutil.PostgreSQL
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.PostgreSQL
- save-test-results
testCUBRID:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
- image: cubrid/cubrid:11.3
environment:
- CUBRID_DB=demodb
@@ -241,17 +261,16 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
- ./mvnw -ntp -B package -Pci -Dgroups=com.querydsl.core.testutil.CUBRID
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.CUBRID
- save-test-results
testOracle:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
- image: gvenzl/oracle-xe:slim-faststart
environment:
- ORACLE_PASSWORD=querydsl
@@ -263,34 +282,32 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
- ./mvnw -ntp -B package -Pci -Dgroups=com.querydsl.core.testutil.Oracle
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.Oracle
- save-test-results
testMongo:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
- image: mongo:3.6.1
steps:
- checkout
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
- ./mvnw -ntp -B package -Pci -Dgroups=com.querydsl.core.testutil.MongoDB
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.MongoDB
- save-test-results
testFirebird:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
- image: jacobalberty/firebird:2.5.9-ss
environment:
- ISC_PASSWORD=masterkey
@@ -303,27 +320,75 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
- ./mvnw -ntp -B package -Pci -Dgroups=com.querydsl.core.testutil.Firebird
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.Firebird
- save-test-results
testEmbedded:
<<: *defaults
working_directory: ~/querydsl
docker:
- - image: velo/toolchains-4-ci-builds:with-21
+ - image: velo/toolchains-4-ci-builds:latest
steps:
- checkout
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- run:
name: 'Test'
command: |
- ./mvnw -ntp -B package -Pci -Dgroups=com.querydsl.core.testutil.EmbeddedDatabase
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.EmbeddedDatabase
+ - save-test-results
+ testDB2:
+ # Use the machine executor so we have full VM capabilities (e.g. docker running as admin)
+ machine: true
+ working_directory: ~/querydsl
+ environment:
+ # You can also set any DB2-specific environment variables here if needed
+ DB2INST1_PASSWORD: a3sd!fDj
+ steps:
+ - checkout
+ - restore_cache:
+ keys:
+ - querydsl-dependencies-{{ checksum "pom.xml" }}
+ # Start the DB2 container in detached mode
+ - run:
+ name: "Start DB2 container"
+ command: |
+ # Start the DB2 container with the same settings as your docker-compose file
+ docker run -d --privileged --name db2 \
+ -p 50000:50000 \
+ -e DB2INST1_PASSWORD=a3sd!fDj \
+ -e DB2INSTANCE=db2inst1 \
+ -e DBNAME=sample \
+ -e LICENSE=accept \
+ -e ARCHIVE_LOGS=false \
+ -e AUTOCONFIG=false \
+ ibmcom/db2:11.5.0.0
+
+ echo "Waiting for DB2 to initialize..."
+ # Basic health-check loop; replace with a more robust check if available
+ for i in {1..60}; do
+ if docker logs db2 2>&1 | grep -q "All databases are now active"; then
+ echo "DB2 appears to be up"
+ break
+ fi
+ echo "Waiting ($i/60)..."
+ sleep 10
+ done
+ docker ps
+
+ # Run your tests against DB2; adjust the Maven command according to your project
+ - run:
+ name: "Run DB2 tests"
+ command: |
+ ./mvnw -ntp -B install -Pci -Dgroups=com.querydsl.core.testutil.DB2 -Dtoolchain.skip=true
+ # Clean up the DB2 container once the tests are done
+ - run:
+ name: "Stop and remove DB2 container"
+ command: |
+ docker stop db2 && docker rm db2
- save-test-results
deploySnapshot:
@@ -335,7 +400,6 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- resolve-dependencies
- configure-gpg
- run:
@@ -352,7 +416,6 @@ jobs:
- restore_cache:
keys:
- querydsl-dependencies-{{ checksum "pom.xml" }}
- - querydsl-dependencies-
- resolve-dependencies
- configure-gpg
- run:
@@ -436,6 +499,12 @@ workflows:
- 'Resolve dependencies'
filters:
<<: *all-branches
+ - testDB2:
+ name: 'Test DB2'
+ requires:
+ - 'Resolve dependencies'
+ filters:
+ <<: *all-branches
snapshot:
jobs:
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
new file mode 100644
index 0000000000..e159a49b9c
--- /dev/null
+++ b/.mvn/extensions.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ com.marvinformatics.jacoco
+ easy-jacoco-maven-plugin
+ 0.1.3
+
+
diff --git a/README.md b/README.md
index 98e4d427aa..c7ee841b57 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+[](https://dl.circleci.com/status-badge/redirect/gh/OpenFeign/querydsl/tree/master) [](https://codecov.io/gh/OpenFeign/querydsl) 
+
## Querydsl
Querydsl is a framework which enables the construction of type-safe SQL-like queries for multiple backends including JPA, MongoDB and SQL in Java.
diff --git a/docker-compose.yml b/docker-compose.yml
index b273180080..494e786d38 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,4 +1,3 @@
-version: "2.4"
services:
# Provides an easy way to ensure slow-starting databases are ready when the tests run
block-until-healthy:
diff --git a/pom.xml b/pom.xml
index e956e8a0c5..5c47c9863c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -155,6 +155,7 @@
*
${osgi.import.package.root}
+ jacocoArgLine
@@ -363,7 +364,7 @@
maven-surefire-plugin
${surefire.version}
- --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED
+ ${jacocoArgLine} --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED
UTC
@@ -484,19 +485,7 @@
../target/dist
-
- org.jacoco
- jacoco-maven-plugin
- 0.8.13
-
-
- prepare-agent
-
- prepare-agent
-
-
-
-
+
org.apache.maven.plugins
maven-compiler-plugin
@@ -553,6 +542,47 @@
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.13
+
+
+ com/querydsl/**
+ io/github/openfeign/querydsl/**
+
+
+
+
+ com.marvinformatics.jacoco
+ easy-jacoco-maven-plugin
+ 0.1.3
+
+
+
+
+
+ INSTRUCTION
+ COVEREDRATIO
+ 0.70
+
+
+
+
+
+ true
+ true
+
+
+ com/querydsl/**
+ io/github/openfeign/querydsl/**
+
+
+ querydsl-scala
+
+
+
+
org.apache.maven.plugins
maven-scm-plugin
@@ -765,6 +795,7 @@
true
true
true
+ true
diff --git a/querydsl-libraries/querydsl-scala/pom.xml b/querydsl-libraries/querydsl-scala/pom.xml
index d830b2d6bf..5a75568082 100644
--- a/querydsl-libraries/querydsl-scala/pom.xml
+++ b/querydsl-libraries/querydsl-scala/pom.xml
@@ -155,8 +155,8 @@
scala-maven-plugin
4.9.5
- ${character.encoding}
${scala.version}
+
-encoding
${character.encoding}
diff --git a/querydsl-tooling/querydsl-codegen/src/main/java/com/querydsl/codegen/GeneratedAnnotationResolver.java b/querydsl-tooling/querydsl-codegen/src/main/java/com/querydsl/codegen/GeneratedAnnotationResolver.java
index 3bb2badb12..87e620f404 100644
--- a/querydsl-tooling/querydsl-codegen/src/main/java/com/querydsl/codegen/GeneratedAnnotationResolver.java
+++ b/querydsl-tooling/querydsl-codegen/src/main/java/com/querydsl/codegen/GeneratedAnnotationResolver.java
@@ -1,5 +1,6 @@
package com.querydsl.codegen;
+import com.querydsl.core.annotations.Generated;
import java.lang.annotation.Annotation;
import org.jetbrains.annotations.Nullable;
@@ -10,7 +11,7 @@
public final class GeneratedAnnotationResolver {
private static final Class extends Annotation> DEFAULT_GENERATED_ANNOTATION_CLASS =
- resolveJavaDefault();
+ Generated.class;
/**
* Use the {@code generatedAnnotationClass} or use the JDK one.
diff --git a/querydsl-tooling/querydsl-kotlin-codegen/src/test/kotlin/com/querydsl/kotlin/codegen/utils.kt b/querydsl-tooling/querydsl-kotlin-codegen/src/test/kotlin/com/querydsl/kotlin/codegen/utils.kt
index 4bf71bb64d..eba5eab4d5 100644
--- a/querydsl-tooling/querydsl-kotlin-codegen/src/test/kotlin/com/querydsl/kotlin/codegen/utils.kt
+++ b/querydsl-tooling/querydsl-kotlin-codegen/src/test/kotlin/com/querydsl/kotlin/codegen/utils.kt
@@ -2,4 +2,4 @@ package com.querydsl.kotlin.codegen
import com.querydsl.codegen.GeneratedAnnotationResolver
-val generatedAnnotationImport = GeneratedAnnotationResolver.resolveDefault().name.replace("annotation", "`annotation`")
\ No newline at end of file
+val generatedAnnotationImport = GeneratedAnnotationResolver.resolveDefault().name.replace("annotation", "`annotation`").replace("`annotation`s", "annotations")
\ No newline at end of file