Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
key: gradle-cache
restore-keys: gradle-cache
- name: Publish to Maven Central
run: ./gradlew assemble publishAggregatedPublicationToCentralPortal
run: ./gradlew assemble nmcpPublishAggregatedPublicationToCentralPortal
env:
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
Expand Down
51 changes: 51 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Changelog

## 2.0.0 - 2026-08-30

- Updated Kotlin from 1.9.x to 2.4.10
- Updated Spring Boot from 3.2.3 to 4.1.1
- Updated Gradle from 8.4 to 9.7.1
- Updated Dokka from 1.9.20 to 2.2.0
- Updated Detekt from 1.23.6 to 2.0.0-alpha.6
- Updated SonarQube plugin from 4.4.1.3373 to 7.4.0.8496
- Updated NMCP from 0.0.7 to 1.6.1
- Updated Foojay Toolchain Resolver from 0.5.0 to 1.0.0
- Updated JUnit from 5.10.2 to 5.14.4
- Updated MockK from 1.13.10 to 1.14.11
- Updated Jakarta Persistence API from 3.1.0 to 3.2.0
- Updated ANTLR from 4.13.1 to 4.13.2
- Updated Spring Dependency Management from 1.1.4 to 1.1.7
- Added standalone Hibernate example application

### Breaking changes

- New requirements:
- Java 17+
- Kotlin 2.x (K2 compiler) if your project is using Kotlin
- Spring Boot 4.x if your project is using Spring Boot
- Contract/API changes:
- `DynamicQueryRepository<T>` now has a `T : Any` bound (nullable type arguments are no longer allowed)
- `DynamicQuerySpecificationAdapter<T>` now has a `T : Any` bound
- `ScopeDownSupplier<T>` now has a `T : Any` bound
- Removed `DynamicQueryRepository.delete(DynamicQuerySpecification?)` and
`delete(DynamicQuerySpecification?, ScopeDownSupplier<T>)` (Spring Data API changes no longer allows a Dynamic Query
to be used in a delete and/or update operation)

## 1.1.0 - 2024-02-25

- Improved Maven publication metadata
- Minor fixes

## 1.0.0 - 2024-02-25

- Initial release
- DSL grammar and parser (ANTLR-based)
- JPA Specification APIs
- Spring Boot autoconfiguration, Data JPA, and Web modules
- Detekt and SonarQube integration
- Maven Central publication support
- GitHub Actions CI/CD
- Attribute references and transformation operations in DSL
- Path conversion APIs
- Enum type value parsing
- Spring Boot example application
62 changes: 28 additions & 34 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
import org.jetbrains.dokka.gradle.DokkaTask

plugins {
val kotlinVersion = "1.9.23"
val dokkaVersion = "1.9.20"
val sonarqubeVersion = "4.4.1.3373"
val detektVersion = "1.23.6"
val nmcpVersion = "0.0.7"
val springBootVersion = "3.2.3"
val springDependencyManagementVersion = "1.1.4"
val kotlinVersion = "2.4.10"
val dokkaVersion = "2.2.0"
val sonarqubeVersion = "7.4.0.8496"
val detektVersion = "2.0.0-alpha.6"
val nmcpVersion = "1.6.1"
val springBootVersion = "4.1.1"
val springDependencyManagementVersion = "1.1.7"

`maven-publish`
`java-library`
jacoco
signing

kotlin("jvm") version "1.9.10"
kotlin("jvm") version kotlinVersion
kotlin("plugin.spring") version kotlinVersion apply false
kotlin("plugin.jpa") version kotlinVersion apply false

id("org.sonarqube") version sonarqubeVersion
id("io.gitlab.arturbosch.detekt") version detektVersion
id("dev.detekt") version detektVersion
id("com.gradleup.nmcp") version nmcpVersion
id("com.gradleup.nmcp.aggregation") version nmcpVersion
id("org.jetbrains.dokka") version dokkaVersion apply false
id("org.springframework.boot") version springBootVersion apply false
id("io.spring.dependency-management") version springDependencyManagementVersion apply false
}

allprojects {
group = "br.com.dillmann.dynamicquery"
version = "1.1.0"
version = "2.0.0"

repositories {
mavenCentral()
Expand All @@ -43,17 +42,17 @@ allprojects {
}
}

gradle.rootProject {
nmcp {
publishAggregation {
subprojects.forEach {
project(":${it.name}")
}
nmcpAggregation {
centralPortal {
username = providers.environmentVariable("MAVEN_CENTRAL_USERNAME")
password = providers.environmentVariable("MAVEN_CENTRAL_PASSWORD")
publishingType = "USER_MANAGED"
}
}

username = providers.environmentVariable("MAVEN_CENTRAL_USERNAME")
password = providers.environmentVariable("MAVEN_CENTRAL_PASSWORD")
publicationType = "USER_MANAGED"
}
dependencies {
subprojects.forEach {
nmcpAggregation(project(":${it.name}"))
}
}

Expand All @@ -63,7 +62,7 @@ subprojects {
apply(plugin = "java-library")
apply(plugin = "signing")
apply(plugin = "jacoco")
apply(plugin = "io.gitlab.arturbosch.detekt")
apply(plugin = "dev.detekt")
apply(plugin = "org.sonarqube")
apply(plugin = "org.jetbrains.dokka")
apply(plugin = "com.gradleup.nmcp")
Expand All @@ -73,11 +72,11 @@ subprojects {
testImplementation("org.jetbrains.kotlin:kotlin-test")

// MockK
val mockkVersion: String by project
val mockkVersion = project.property("mockkVersion")
testImplementation("io.mockk:mockk:$mockkVersion")

// JUnit
val junitVersion: String by project
val junitVersion = project.property("junitVersion")
testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
Expand All @@ -98,12 +97,11 @@ subprojects {
}
}

create<Jar>("dokkaJavadocJar") {
val dokkaJavadoc = getByName("dokkaJavadoc") as DokkaTask
dependsOn(dokkaJavadoc)
register<Jar>("dokkaJavadocJar") {
dependsOn("dokkaGenerate")

archiveClassifier = "javadoc"
from(dokkaJavadoc.outputDirectory)
from(rootProject.layout.buildDirectory.dir("dokka/javadoc"))
}

afterEvaluate {
Expand All @@ -122,18 +120,14 @@ subprojects {
kotlin {
jvmToolchain(17)
compilerOptions {
freeCompilerArgs.add("-Xjvm-default=all")
freeCompilerArgs.add("-jvm-default=no-compatibility")
}
}

java {
withSourcesJar()
}

nmcp {
publishAllPublications {}
}

signing {
val signingKey = providers.environmentVariable("MAVEN_CENTRAL_SIGNING_KEY")
val signingSecret = providers.environmentVariable("MAVEN_CENTRAL_SIGNING_SECRET")
Expand Down
Loading
Loading