From c04d2dd2f40adb560eea02776d89ab13769b779e Mon Sep 17 00:00:00 2001 From: Niklas Roth <36939232+Nirostar@users.noreply.github.com> Date: Thu, 20 Apr 2023 09:50:51 +0200 Subject: [PATCH 1/5] Increase version number --- README.MD | 10 +++++----- .../publisher/TypeddicomPublisherPlugin.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.MD b/README.MD index bbaaeac..8a56b76 100644 --- a/README.MD +++ b/README.MD @@ -25,7 +25,7 @@ repositories { ```groovy dependencies { - implementation 'org.dcm4che:dcm4che-typeddicom-lib-std:0.5.0' + implementation 'org.dcm4che:dcm4che-typeddicom-lib-std:0.5.1-SNAPSHOT' } ``` @@ -41,7 +41,7 @@ repositories { ```kotlin dependencies { - implementation("org.dcm4che:dcm4che-typeddicom-lib-std:0.5.0") + implementation("org.dcm4che:dcm4che-typeddicom-lib-std:0.5.1-SNAPSHOT") } ``` @@ -60,7 +60,7 @@ dependencies { org.dcm4che dcm4che-typeddicom - 0.5.0 + 0.5.1-SNAPSHOT ``` ### Use private tags with the gradle plugin @@ -69,7 +69,7 @@ In the ```build.gradle``` put: ```groovy plugins { id 'java-library' - id 'org.dcm4che.typeddicom-java-generator' version '0.5.0' + id 'org.dcm4che.typeddicom-java-generator' version '0.5.1-SNAPSHOT' } generateTypeddicomJavaSources { @@ -81,7 +81,7 @@ or put this into ```build.gradle.kts```: ```kotlin plugins { id("java-library") - id("org.dcm4che.typeddicom-java-generator") version "0.5.0" + id("org.dcm4che.typeddicom-java-generator") version "0.5.1-SNAPSHOT" } generateTypeddicomJavaSources { privateDicomMetamodelYamlDirectory.set(layout.projectDirectory.dir("src/main/resources")) // default - so this is optional when using this directory diff --git a/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java b/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java index 6c9c476..0cceb46 100644 --- a/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java +++ b/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java @@ -17,7 +17,7 @@ public class TypeddicomPublisherPlugin implements Plugin { private static final String TYPEDDICOM_GROUP = "org.dcm4che"; - private static final String TYPEDDICOM_VERSION = "0.5.0"; + private static final String TYPEDDICOM_VERSION = "0.5.1-SNAPSHOT"; private static final String STANDARD_PUBLICATION_NAME = "mavenJava"; private static final String GRADLE_PLUGIN_PUBLICATION_NAME = "pluginMaven"; From fbdad24ae1931a2a086398c73ce5f8496f025f42 Mon Sep 17 00:00:00 2001 From: Niklas Roth <36939232+Nirostar@users.noreply.github.com> Date: Thu, 20 Apr 2023 17:35:43 +0200 Subject: [PATCH 2/5] Make generated sources detected as such if the idea plugin is applied to the generator plugin's target --- .../gradleplugin/TypeddicomJavaGeneratorPlugin.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dcm4che-typeddicom-generator/dcm4che-typeddicom-java-generator-gradleplugin/src/main/java/org/dcm4che/typeddicom/generator/gradleplugin/TypeddicomJavaGeneratorPlugin.java b/dcm4che-typeddicom-generator/dcm4che-typeddicom-java-generator-gradleplugin/src/main/java/org/dcm4che/typeddicom/generator/gradleplugin/TypeddicomJavaGeneratorPlugin.java index 80b7c18..c42b1ec 100644 --- a/dcm4che-typeddicom-generator/dcm4che-typeddicom-java-generator-gradleplugin/src/main/java/org/dcm4che/typeddicom/generator/gradleplugin/TypeddicomJavaGeneratorPlugin.java +++ b/dcm4che-typeddicom-generator/dcm4che-typeddicom-java-generator-gradleplugin/src/main/java/org/dcm4che/typeddicom/generator/gradleplugin/TypeddicomJavaGeneratorPlugin.java @@ -4,6 +4,7 @@ import org.gradle.api.Project; import org.gradle.api.tasks.SourceSetContainer; import org.gradle.api.tasks.TaskProvider; +import org.gradle.plugins.ide.idea.model.IdeaModel; public class TypeddicomJavaGeneratorPlugin implements Plugin { public void apply(final Project target) { @@ -16,6 +17,7 @@ public void apply(final Project target) { task.getPrivateDicomMetamodelYamlDirectory().set(extension.getPrivateDicomMetamodelYamlDirectory()); task.getGeneratedJavaOutputDirectory().set(extension.getGeneratedJavaOutputDirectory()); }); + target.getPluginManager().withPlugin("java-library", javaPlugin -> { SourceSetContainer sourceSets = target.getExtensions().getByType(SourceSetContainer.class); sourceSets.named("main", sourceSet -> sourceSet.getJava().srcDir(generateJavaSourcesFileTaskProvider)); @@ -23,5 +25,10 @@ public void apply(final Project target) { target.getDependencies().add("api", "org.dcm4che:dcm4che-typeddicom-skeleton:" + version); target.getDependencies().add("implementation", "org.dcm4che:dcm4che-core"); }); + + target.getPluginManager().withPlugin("idea", ideaPlugin -> { + IdeaModel ideaModel = target.getExtensions().getByType(IdeaModel.class); + ideaModel.getModule().getGeneratedSourceDirs().add(extension.getGeneratedJavaOutputDirectory().getAsFile().get()); + }); } } From 7ddea29f102bc64cf69a09ae05937940b8420c2a Mon Sep 17 00:00:00 2001 From: Niklas Roth <36939232+Nirostar@users.noreply.github.com> Date: Thu, 20 Apr 2023 17:40:10 +0200 Subject: [PATCH 3/5] Add plugin repository to README.MD --- README.MD | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.MD b/README.MD index 8a56b76..fe0b306 100644 --- a/README.MD +++ b/README.MD @@ -67,6 +67,15 @@ dependencies { In the ```build.gradle``` put: ```groovy +buildscript { + repositories { + // Add dicom4che repository + maven { + url "https://www.dcm4che.org/maven2/" + } + } +} + plugins { id 'java-library' id 'org.dcm4che.typeddicom-java-generator' version '0.5.1-SNAPSHOT' @@ -79,10 +88,20 @@ generateTypeddicomJavaSources { ``` or put this into ```build.gradle.kts```: ```kotlin +buildscript { + repositories { + // Add dicom4che repository + maven { + url = uri("https://www.dcm4che.org/maven2/") + } + } +} + plugins { id("java-library") id("org.dcm4che.typeddicom-java-generator") version "0.5.1-SNAPSHOT" } + generateTypeddicomJavaSources { privateDicomMetamodelYamlDirectory.set(layout.projectDirectory.dir("src/main/resources")) // default - so this is optional when using this directory generatedJavaOutputDirectory.set(layout.buildDirectory.dir("typeddicom")) // default - so this is optional when using this directory From 024bd026a3dccc7ffeb64663eb51ed72281fcf38 Mon Sep 17 00:00:00 2001 From: Niklas Roth <36939232+Nirostar@users.noreply.github.com> Date: Wed, 26 Apr 2023 15:16:32 +0200 Subject: [PATCH 4/5] Make Bundle-Version OSGi conform and add OSGi manifest to skeleton --- .../build.gradle.kts | 14 ++++++++++---- dcm4che-typeddicom-skeleton/build.gradle.kts | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/dcm4che-typeddicom-lib/dcm4che-typeddicom-lib-std/build.gradle.kts b/dcm4che-typeddicom-lib/dcm4che-typeddicom-lib-std/build.gradle.kts index 75437d2..b7ed5b0 100644 --- a/dcm4che-typeddicom-lib/dcm4che-typeddicom-lib-std/build.gradle.kts +++ b/dcm4che-typeddicom-lib/dcm4che-typeddicom-lib-std/build.gradle.kts @@ -39,18 +39,24 @@ tasks.test { useJUnitPlatform() } +// Remove non-numeric version info for Bundle version +val bundleVersion = "$version".replace(Regex(".*(\\d+\\.\\d+\\.\\d+).*"), "$1") + tasks.withType { manifest { attributes["Manifest-Version"] = "1.0" attributes["Bundle-ManifestVersion"] = "2" - attributes["Bundle-Name"] = "org.dcm4che.typeddicom" - attributes["Bundle-SymbolicName"] = "org.dcm4che.typeddicom;singleton:=true" - attributes["Bundle-Version"] = version + attributes["Bundle-Name"] = "org.dcm4che.dcm4che-typeddicom-lib-std" + attributes["Bundle-SymbolicName"] = "org.dcm4che.dcm4che-typeddicom-lib-std;singleton:=true" + attributes["Bundle-Version"] = bundleVersion attributes["Bundle-Vendor"] = "dcm4che" attributes["Bundle-ClassPath"] = "." attributes["Bundle-ActivationPolicy"] = "lazy" + attributes["Require-Bundle"] = + "org.dcm4che.dcm4che-typeddicom-skeleton; bundle-version=\"${bundleVersion}\"; visibility:=reexport" attributes["Export-Package"] = - "org.dcm4che.typeddicom, org.dcm4che.typeddicom.dataelements, org.dcm4che.typeddicom.iods, org.dcm4che.typeddicom.modules, org.dcm4che.typeddicom.valuerepresentations" + "org.dcm4che.typeddicom, org.dcm4che.typeddicom.dataelements, org.dcm4che.typeddicom.iods, " + + "org.dcm4che.typeddicom.modules, org.dcm4che.typeddicom.valuerepresentations" attributes["Import-Package"] = "org.dcm4che3.data" } } diff --git a/dcm4che-typeddicom-skeleton/build.gradle.kts b/dcm4che-typeddicom-skeleton/build.gradle.kts index b820404..7474798 100644 --- a/dcm4che-typeddicom-skeleton/build.gradle.kts +++ b/dcm4che-typeddicom-skeleton/build.gradle.kts @@ -28,6 +28,25 @@ tasks.getByName("test") { useJUnitPlatform() } +// Remove non-numeric version info for Bundle version +val bundleVersion = "$version".replace(Regex(".*(\\d+\\.\\d+\\.\\d+).*"), "$1") + +tasks.withType { + manifest { + attributes["Manifest-Version"] = "1.0" + attributes["Bundle-ManifestVersion"] = "2" + attributes["Bundle-Name"] = "org.dcm4che.dcm4che-typeddicom-skeleton" + attributes["Bundle-SymbolicName"] = "org.dcm4che.dcm4che-typeddicom-skeleton;singleton:=true" + attributes["Bundle-Version"] = bundleVersion + attributes["Bundle-Vendor"] = "dcm4che" + attributes["Bundle-ClassPath"] = "." + attributes["Bundle-ActivationPolicy"] = "lazy" + attributes["Export-Package"] = + "org.dcm4che.typeddicom, org.dcm4che.typeddicom.valuerepresentations" + attributes["Import-Package"] = "org.dcm4che3.data" + } +} + java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 From 5ad65be39d4eb0205b5fe5f5deb38e6f71f2a948 Mon Sep 17 00:00:00 2001 From: Niklas Roth <36939232+Nirostar@users.noreply.github.com> Date: Wed, 26 Apr 2023 15:20:53 +0200 Subject: [PATCH 5/5] Set to release version number --- README.MD | 10 +++++----- .../publisher/TypeddicomPublisherPlugin.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.MD b/README.MD index fe0b306..c753fad 100644 --- a/README.MD +++ b/README.MD @@ -25,7 +25,7 @@ repositories { ```groovy dependencies { - implementation 'org.dcm4che:dcm4che-typeddicom-lib-std:0.5.1-SNAPSHOT' + implementation 'org.dcm4che:dcm4che-typeddicom-lib-std:0.5.1' } ``` @@ -41,7 +41,7 @@ repositories { ```kotlin dependencies { - implementation("org.dcm4che:dcm4che-typeddicom-lib-std:0.5.1-SNAPSHOT") + implementation("org.dcm4che:dcm4che-typeddicom-lib-std:0.5.1") } ``` @@ -60,7 +60,7 @@ dependencies { org.dcm4che dcm4che-typeddicom - 0.5.1-SNAPSHOT + 0.5.1 ``` ### Use private tags with the gradle plugin @@ -78,7 +78,7 @@ buildscript { plugins { id 'java-library' - id 'org.dcm4che.typeddicom-java-generator' version '0.5.1-SNAPSHOT' + id 'org.dcm4che.typeddicom-java-generator' version '0.5.1' } generateTypeddicomJavaSources { @@ -99,7 +99,7 @@ buildscript { plugins { id("java-library") - id("org.dcm4che.typeddicom-java-generator") version "0.5.1-SNAPSHOT" + id("org.dcm4che.typeddicom-java-generator") version "0.5.1" } generateTypeddicomJavaSources { diff --git a/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java b/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java index 0cceb46..9b4c7b8 100644 --- a/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java +++ b/dcm4che-typeddicom-publisher/src/main/java/org/dcm4che/typeddicom/publisher/TypeddicomPublisherPlugin.java @@ -17,7 +17,7 @@ public class TypeddicomPublisherPlugin implements Plugin { private static final String TYPEDDICOM_GROUP = "org.dcm4che"; - private static final String TYPEDDICOM_VERSION = "0.5.1-SNAPSHOT"; + private static final String TYPEDDICOM_VERSION = "0.5.1"; private static final String STANDARD_PUBLICATION_NAME = "mavenJava"; private static final String GRADLE_PLUGIN_PUBLICATION_NAME = "pluginMaven";