Skip to content
Draft
Show file tree
Hide file tree
Changes from 6 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
28 changes: 28 additions & 0 deletions hivemq-edge/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -605,3 +605,31 @@ artifacts {
add(releaseJar.name, tasks.shadowJar)
add(thirdPartyLicenses.name, tasks.updateThirdPartyLicenses.flatMap { it.outputDirectory })
}

/* ******************** XSD Generation ******************** */

val generateXsd by tasks.registering(JavaExec::class) {
group = "build"
description = "Generates XSD schema from JAXB-annotated configuration entity classes"

dependsOn(tasks.testClasses)

mainClass.set("com.hivemq.configuration.GenSchemaMain")
classpath = sourceSets.test.get().runtimeClasspath

val outputDir = layout.buildDirectory.dir("generated-resources/xsd")
val outputFile = outputDir.map { it.file("config.xsd") }
args(outputFile.get().asFile.absolutePath)

outputs.dir(outputDir)

doFirst {
outputDir.get().asFile.mkdirs()
}
}

// Include the generated XSD in the jar (runs after test compilation)
tasks.jar {
dependsOn(generateXsd)
from(generateXsd.map { it.outputs.files })
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,16 @@
import org.jetbrains.annotations.Nullable;

import jakarta.xml.bind.ValidationEvent;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

@XmlRootElement(name = "instruction")
@XmlAccessorType(XmlAccessType.NONE)
public class InstructionEntity implements EntityValidatable {

@JsonProperty("source")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,18 @@
import org.jetbrains.annotations.Nullable;

import jakarta.xml.bind.ValidationEvent;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElementWrapper;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;


@XmlRootElement(name = "data-combiner")
@XmlAccessorType(XmlAccessType.NONE)
public class DataCombinerEntity {
@JsonProperty(value = "id", required = true)
@XmlElement(name = "id", required = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,17 @@
package com.hivemq.configuration.entity.combining;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Objects;

@XmlRootElement(name = "destination")
@XmlAccessorType(XmlAccessType.NONE)
public class DataCombiningDestinationEntity {

@JsonProperty(value = "assetId")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,19 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElementWrapper;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;


// JAXB can not handle records ... :-(
@XmlRootElement(name = "data-combining")
@XmlAccessorType(XmlAccessType.NONE)
public class DataCombiningEntity {

@JsonProperty(value = "id", required = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,18 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElementWrapper;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;


@XmlRootElement(name = "sources")
@XmlAccessorType(XmlAccessType.NONE)
public class DataCombiningSourcesEntity {

@JsonProperty("primaryReference")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,15 @@
import org.jetbrains.annotations.NotNull;

import jakarta.xml.bind.ValidationEvent;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
import java.util.Objects;

@XmlRootElement(name = "primary-reference")
@XmlAccessorType(XmlAccessType.NONE)
public class DataIdentifierReferenceEntity implements EntityValidatable {

@JsonProperty("id")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,14 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.Objects;

@XmlRootElement(name = "entity-reference")
@XmlAccessorType(XmlAccessType.NONE)
public class EntityReferenceEntity {

@JsonProperty(value = "type", required = true)
Expand Down
Loading
Loading