Skip to content

Commit

Permalink
feat: add code generation for oBDS v3 (#101)
Browse files Browse the repository at this point in the history
* feat: codegen for oBDS 3.0.2

* test: add some basic content assertions

* refactor: change package of generated code
  • Loading branch information
pcvolkmer authored and chgl committed Oct 23, 2024
1 parent e338f6b commit aa199c8
Show file tree
Hide file tree
Showing 5 changed files with 5,929 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,6 @@ package-lock.json
tests/k8s/**/charts

node_modules/

# generated code
src/generated/
33 changes: 33 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ configurations {
compileOnly {
extendsFrom annotationProcessor
}
xsd2java
}

repositories {
Expand All @@ -25,6 +26,15 @@ repositories {
ext {
set('springCloudVersion', "2023.0.3")
set('hapiVersion', "7.4.0")
jaxbTargetDir = file("src/generated/java")
}

sourceSets {
main {
java {
srcDirs jaxbTargetDir
}
}
}

dependencies {
Expand All @@ -44,7 +54,11 @@ dependencies {
// Jackson v3 supports Optional out-of-the-box but isn't yet provided by Spring Boot by default
// <https://github.com/FasterXML/jackson-modules-java8>
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
implementation 'com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations'

// JAXB code generation
xsd2java "com.sun.xml.bind:jaxb-xjc:4.0.5"
xsd2java "com.sun.xml.bind:jaxb-impl:4.0.5"

annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"

Expand Down Expand Up @@ -88,3 +102,22 @@ jacocoTestReport {
jar {
enabled = false
}

tasks.register('xsd2java') {

doLast {
jaxbTargetDir.mkdirs()

ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.xsd2java.asPath)
ant.jaxbTargetDir = jaxbTargetDir


ant.xjc(
destdir: '${jaxbTargetDir}',
package: 'de.basisdatensatz.obds.v3',
schema: 'src/main/resources/schema/oBDS_v3.0.2.xsd'
)

}
}
compileJava.dependsOn xsd2java
Loading

0 comments on commit aa199c8

Please sign in to comment.