Class AbstractProcessPluginDefinition
java.lang.Object
dev.dsf.bpe.v2.AbstractProcessPluginDefinition
- All Implemented Interfaces:
ProcessPluginDefinition
public abstract class AbstractProcessPluginDefinition
extends Object
implements ProcessPluginDefinition
Implements
getName(), getVersion(), getReleaseDate(), getTitle(),
getPublisher() and getPublisherEmail() based on properties defined in a "plugin.properties"
file. The UTF-8 encoded file needs to contain property entries for "name",
"version" (suffixes like -SNAPSHOT will be removed from the value, regex:
-.*$) and "release-date" (value formated as a ISO-8601 timestamp, see
ZonedDateTime.parse(CharSequence)). The properties "title", "publisher" and
"publisher-email" are optional, with the corresponding get-methods returning null if
not specified.
Using maven the file should be located at src/main/resources/plugin.properties with the following
content:
release-date=${project.build.outputTimestamp}
version=${project.version}
name=${project.artifactId}
title=${project.description}
publisher=${project.organization.name}
publisher-email=mail@test.com
The maven pom.xml file needs to define the project.build.outputTimestamp property (also needed for
reproducible builds) and enable resource filtering for the plugin.properties file:
<project>
<properties>
<project.build.outputTimestamp>2025-07-22T16:45:00Z</project.build.outputTimestamp>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>plugin.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>plugin.properties</include>
</includes>
</resource>
</resources>
</build>
</project>
-
Nested Class Summary
Nested classes/interfaces inherited from interface ProcessPluginDefinition
ProcessPluginDefinition.License -
Field Summary
Fields inherited from interface ProcessPluginDefinition
PLUGIN_VERSION_PATTERN, PLUGIN_VERSION_PATTERN_STRING, RESOURCE_VERSION_PATTERN_STRING -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ProcessPluginDefinition
getConfigurationFile, getDescriptionFile, getFhirResourcesByProcessId, getLicense, getLicenseFile, getProcessModels, getResourceReleaseDate, getResourceVersion, getSpringConfigurations
-
Constructor Details
-
AbstractProcessPluginDefinition
public AbstractProcessPluginDefinition()
-
-
Method Details
-
getName
- Specified by:
getNamein interfaceProcessPluginDefinition- Returns:
- process plugin name, same as jar name excluding suffix
-<version>.jar, same as "artifactId" when using maven
-
getVersion
- Specified by:
getVersionin interfaceProcessPluginDefinition- Returns:
- version of the process plugin, must match "(?<pluginVersion>(?<resourceVersion>\\d+\\.\\d+)\\.\\d+\\.\\d+)"
-
getReleaseDate
- Specified by:
getReleaseDatein interfaceProcessPluginDefinition- Returns:
- the release date of the process plugin
-
getTitle
- Specified by:
getTitlein interfaceProcessPluginDefinition- Returns:
- process plugin human readable name,
nullby default
-
getPublisher
- Specified by:
getPublisherin interfaceProcessPluginDefinition- Returns:
- process plugin publisher name,
nullby default
-
getPublisherEmail
- Specified by:
getPublisherEmailin interfaceProcessPluginDefinition- Returns:
- process plugin publisher e-mail,
nullby default
-