Skip to content

Commit 61a0766

Browse files
committed
Merge remote-tracking branch 'origin/develop_2' into issue/205_mimetype-service
* origin/develop_2: (111 commits) replace spaces with tab combine collapse-button css add Library.content html view API v1 dsf client config fix fixed log message abstract get name, version, release date impl using properties file removes dsf-fhir-validation from the excluded artifacts list removes dsf-common-documentation compile dependency added javadoc and source jar goals to publish-to-maven-central profile Added DocumentReference to default bookmarks removed not needed import add DocumentReference HTML view added maven project names for maven central deployment via sonatype adds missing not null check logo fix, current date org.hl7.fhir to 6.5.18 (version used by hapi 8.2.0) added "Binary" to default bookmarks removed not needed dependency from api v1, api v2 dependency upgrades empty cert directories for IDE dev-setup camunda version upgrade 7.22 -> 7.23 ...
2 parents c090892 + 3028e82 commit 61a0766

File tree

395 files changed

+12920
-5703
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

395 files changed

+12920
-5703
lines changed

.github/workflows/codeql.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
name: Java 21 CodeQL
1+
name: DSF 2.x CodeQL
22

33
on:
44
push:
5-
branches: develop_2
5+
branches: [ "develop_2", "hotfix/2*", "release/2*" ]
66
pull_request:
7-
branches: develop_2
7+
branches: [ "develop_2", "hotfix/2*", "release/2*" ]
8+
schedule:
9+
- cron: '11 15 * * 0' # Sundays, 15:11
810

911
jobs:
1012
analyze:
@@ -39,7 +41,7 @@ jobs:
3941

4042
- name: Compile with Maven
4143
if: ${{ matrix.language == 'java-kotlin' }}
42-
run: mvn --batch-mode --fail-at-end --threads 1C -Dmaven.javadoc.skip=true -Dimpsort.skip=true -Dformatter.skip=true -Dgpg.skip -Denforcer.skip -Dmaven.buildNumber.skip=true -Dexec.skip=true -DskipTests clean package
44+
run: mvn --batch-mode --fail-at-end --threads 1C -Dimpsort.skip=true -Dformatter.skip=true -Denforcer.skip -Dmaven.buildNumber.skip=true -Dexec.skip=true -DskipTests -DskipShadePlugin=true -P!generate-source-and-javadoc-jars clean package
4345

4446
- name: Perform CodeQL Analysis
4547
uses: github/codeql-action/analyze@v3

.github/workflows/maven-build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
name: Java 21 CI Build with Maven
1+
name: DSF 2.x Java CI Build with Maven
22

3-
on:
3+
on:
44
pull_request:
55
branches: develop_2
66

@@ -18,4 +18,4 @@ jobs:
1818
java-version: 21
1919
cache: 'maven'
2020
- name: Build with Maven
21-
run: mvn --batch-mode --fail-at-end -DforkCount=2 -Dgpg.skip clean verify
21+
run: mvn --batch-mode --fail-at-end -DforkCount=2 clean verify

.github/workflows/maven-publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Java 21 CI Publish with Maven
1+
name: DSF 2.x Java CI Publish with Maven
22

33
on:
44
pull_request:
@@ -25,4 +25,4 @@ jobs:
2525
- name: Publish with Maven
2626
env:
2727
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28-
run: mvn --batch-mode --fail-at-end -DforkCount=2 -Dgpg.skip clean deploy
28+
run: mvn --batch-mode --fail-at-end -DforkCount=2 clean deploy

.gitignore

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@
99

1010
**/*.iml
1111

12+
## dev setup cert folder and files, folder and files generated by dsf-maven-plugin
13+
cert
14+
cert/**
15+
1216
###
1317
# dsf-bpe ignores
1418
###
19+
dsf-bpe/dsf-bpe-server-jetty/cert/*.crt
20+
dsf-bpe/dsf-bpe-server-jetty/cert/*.key
1521
dsf-bpe/dsf-bpe-server-jetty/conf/config.properties
1622
dsf-bpe/dsf-bpe-server-jetty/docker/api/v1/*.jar
1723
dsf-bpe/dsf-bpe-server-jetty/docker/api/v2/*.jar
@@ -74,10 +80,10 @@ dsf-docker-test-setup-3dic-ttp/secrets/dic2.key
7480
dsf-docker-test-setup-3dic-ttp/secrets/dic3.crt
7581
dsf-docker-test-setup-3dic-ttp/secrets/dic3.key
7682
dsf-docker-test-setup-3dic-ttp/secrets/issuing_ca.crt
77-
dsf-docker-test-setup-3dic-ttp/secrets/keycloak.crt
83+
dsf-docker-test-setup-3dic-ttp/secrets/keycloak.chain.crt
7884
dsf-docker-test-setup-3dic-ttp/secrets/keycloak.key.plain
7985
dsf-docker-test-setup-3dic-ttp/secrets/keycloak_trust_store.jks
80-
dsf-docker-test-setup-3dic-ttp/secrets/localhost.crt
86+
dsf-docker-test-setup-3dic-ttp/secrets/localhost.chain.crt
8187
dsf-docker-test-setup-3dic-ttp/secrets/localhost.key.plain
8288
dsf-docker-test-setup-3dic-ttp/secrets/root_ca.crt
8389
dsf-docker-test-setup-3dic-ttp/secrets/ttp.crt
@@ -88,6 +94,8 @@ dsf-docker-test-setup-3dic-ttp/docker-compose.override.yml
8894
###
8995
# dsf-fhir ignores
9096
###
97+
dsf-fhir/dsf-fhir-server-jetty/cert/*.crt
98+
dsf-fhir/dsf-fhir-server-jetty/cert/*.key
9199
dsf-fhir/dsf-fhir-server-jetty/conf/bundle.xml
92100
dsf-fhir/dsf-fhir-server-jetty/conf/config.properties
93101
dsf-fhir/dsf-fhir-server-jetty/docker/ca/*.pem

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ preferred-citation:
2525
type: proceedings
2626
title: "Data Sharing Framework (DSF)"
2727
version: 2.0.0
28-
date-released: 2025-01-22
28+
date-released: 2025-05-31
2929
url: https://dsf.dev
3030
repository-code: https://github.com/datasharingframework/dsf
3131
repository-artifact: https://github.com/datasharingframework/dsf/releases

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![Data Sharing Framework (DSF) logo.](dsf-fhir/dsf-fhir-server/src/main/resources/static/logo.svg)
1+
![Data Sharing Framework (DSF) logo.](dsf-fhir/dsf-fhir-server/src/main/resources/fhir/static/logo.svg)
22

33
The Data Sharing Framework (DSF) implements a distributed process engine based on the BPMN 2.0 and FHIR R4 standards. The DSF is used to support biomedical research with real-world data. Every participating site runs a FHIR endpoint (dsf-fhir) accessible by other sites and a business process engine (dsf-bpe) in the local secured network. Authentication between sites is handled using X.509 client/server certificates. The process engines execute BPMN processes in order to coordinate local and remote steps necessary to enable cross-site data sharing and feasibility analyses. This includes access to local data repositories, use-and-access-committee decision support, consent filtering, and privacy preserving record-linkage and pseudonymization.
44

dsf-bpe/dsf-bpe-process-api-v1-impl/pom.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
<version>2.0.0-SNAPSHOT</version>
1010
</parent>
1111

12+
<name>DSF BPE Process API v1 Implementation</name>
13+
1214
<dependencies>
1315
<dependency>
1416
<groupId>dev.dsf</groupId>
@@ -59,7 +61,7 @@
5961
<scope>test</scope>
6062
</dependency>
6163
</dependencies>
62-
64+
6365
<build>
6466
<plugins>
6567
<plugin>
@@ -138,10 +140,10 @@
138140
<artifactId>xpp3_xpath</artifactId>
139141
<version>1.1.4c</version>
140142
</artifactItem>-->
141-
<artifactItem>
143+
<!--<artifactItem>
142144
<groupId>org.apache.commons</groupId>
143145
<artifactId>commons-compress</artifactId>
144-
</artifactItem>
146+
</artifactItem>-->
145147
<artifactItem>
146148
<groupId>org.fhir</groupId>
147149
<artifactId>ucum</artifactId>

dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import ca.uhn.fhir.context.FhirContext;
4545
import ca.uhn.fhir.parser.IParser;
4646
import dev.dsf.bpe.api.plugin.AbstractProcessPlugin;
47+
import dev.dsf.bpe.api.plugin.FhirResourceModifier;
4748
import dev.dsf.bpe.api.plugin.ProcessPlugin;
4849
import dev.dsf.bpe.api.plugin.ProcessPluginDeploymentListener;
4950
import dev.dsf.bpe.api.plugin.ProcessPluginFhirConfig;
@@ -162,13 +163,19 @@ else if (filename.endsWith(XML_SUFFIX))
162163
&& BpmnMessage.Codes.MESSAGE_NAME.equals(c.getCode())))
163164
.count() == 1;
164165

166+
Function<StructureDefinition, Optional<String>> getStructureDefinitionBaseDefinition = s -> s
167+
.hasBaseDefinitionElement() && s.getBaseDefinitionElement().hasValue()
168+
? Optional.of(s.getBaseDefinitionElement().getValue())
169+
: Optional.empty();
170+
165171
return new ProcessPluginFhirConfig<>(ActivityDefinition.class, CodeSystem.class, Library.class, Measure.class,
166172
NamingSystem.class, Questionnaire.class, StructureDefinition.class, Task.class, ValueSet.class,
167173
OrganizationIdentifier.SID, TaskIdentifier.SID, TaskStatus.DRAFT.toCode(), BpmnMessage.URL,
168174
BpmnMessage.Codes.MESSAGE_NAME, parseResource, encodeResource, getResourceName, hasMetadataResourceUrl,
169175
hasMetadataResourceVersion, getMetadataResourceVersion, getActivityDefinitionUrl, NamingSystem::hasName,
170176
getTaskInstantiatesCanonical, getTaskIdentifierValue, isTaskStatusDraft, getRequester, getRecipient,
171-
Task::hasInput, hasTaskInputMessageName, Task::hasOutput);
177+
Task::hasInput, hasTaskInputMessageName, Task::hasOutput, getStructureDefinitionBaseDefinition,
178+
StructureDefinition::setBaseDefinition);
172179
}
173180

174181
private IParser newXmlParser()
@@ -328,4 +335,10 @@ public TaskListener getTaskListener(String className, List<FieldDeclaration> fie
328335
{
329336
return get(TaskListener.class, className, fieldDeclarations);
330337
}
338+
339+
@Override
340+
public FhirResourceModifier getFhirResourceModifier()
341+
{
342+
return FhirResourceModifier.identity();
343+
}
331344
}

dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/spring/ApiServiceConfig.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,9 @@ public FhirWebserviceClientProvider clientProvider()
101101
dsfClientConfig.getLocalConfig().getConnectTimeout(),
102102
dsfClientConfig.getLocalConfig().isDebugLoggingEnabled(), dsfClientConfig.getTrustStore(),
103103
dsfClientConfig.getKeyStore(), dsfClientConfig.getKeyStorePassword(),
104-
dsfClientConfig.getLocalConfig().getReadTimeout(), dsfClientConfig.getLocalConfig().getConnectTimeout(),
105-
dsfClientConfig.getLocalConfig().isDebugLoggingEnabled(), proxyConfig, buildInfoProvider);
104+
dsfClientConfig.getRemoteConfig().getReadTimeout(),
105+
dsfClientConfig.getRemoteConfig().getConnectTimeout(),
106+
dsfClientConfig.getRemoteConfig().isDebugLoggingEnabled(), proxyConfig, buildInfoProvider);
106107
}
107108

108109
@Bean

dsf-bpe/dsf-bpe-process-api-v1-impl/src/test/java/dev/dsf/bpe/v1/plugin/ProcessPluginImplTest.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -280,14 +280,7 @@ public void testInitializeAndValidateResourcesNotExistingFhirResources() throws
280280
ProcessPluginImpl plugin = createPlugin(definition, false);
281281

282282
assertFalse(plugin.initializeAndValidateResources(null));
283-
try
284-
{
285-
plugin.getApplicationContext();
286-
fail("IllegalStateException expected");
287-
}
288-
catch (IllegalStateException e)
289-
{
290-
}
283+
assertNotNull(plugin.getApplicationContext());
291284

292285
try
293286
{
@@ -323,7 +316,7 @@ public void testInitializeAndValidateResources() throws Exception
323316
List<BpmnFileAndModel> models = plugin.getProcessModels();
324317
assertEquals(1, models.size());
325318
BpmnFileAndModel bpmnFileAndModel = models.get(0);
326-
BpmnModelInstance model = bpmnFileAndModel.getModel();
319+
BpmnModelInstance model = bpmnFileAndModel.model();
327320
assertNotNull(model);
328321

329322
Collection<Process> processes = model.getModelElementsByType(Process.class);

0 commit comments

Comments
 (0)