Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Commit 5a7252a

Browse files
committed
Merge branch 'release/0.4.0' into main
2 parents 770dc1e + ce3dd0f commit 5a7252a

161 files changed

Lines changed: 4715 additions & 2744 deletions

File tree

Some content is hidden

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

.gitignore

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,15 @@ codex-processes-ap1-test-data-generator/rsa/*.pem
2626
###
2727
# codex-processes-ap1-docker-test-setup ignores
2828
###
29-
codex-processes-ap1-docker-test-setup/**/bpe/app/conf/*.pem
30-
codex-processes-ap1-docker-test-setup/**/bpe/app/conf/*.p12
31-
codex-processes-ap1-docker-test-setup/**/bpe/app/log/*.log
32-
codex-processes-ap1-docker-test-setup/**/bpe/app/log/*.log.gz
33-
codex-processes-ap1-docker-test-setup/**/bpe/app/last_event/time.file
34-
codex-processes-ap1-docker-test-setup/**/bpe/app/plugin/*.jar
35-
codex-processes-ap1-docker-test-setup/**/bpe/app/process/*.jar
36-
codex-processes-ap1-docker-test-setup/**/bpe/proxy/ssl/*.pem
37-
38-
codex-processes-ap1-docker-test-setup/**/fhir/app/conf/*.p12
39-
codex-processes-ap1-docker-test-setup/**/fhir/app/log/*.log
40-
codex-processes-ap1-docker-test-setup/**/fhir/app/log/*.log.gz
41-
codex-processes-ap1-docker-test-setup/**/fhir/app/conf/bundle.xml
42-
codex-processes-ap1-docker-test-setup/**/fhir/app/conf/config.properties
43-
codex-processes-ap1-docker-test-setup/**/fhir/proxy/ssl/*.pem
29+
codex-processes-ap1-docker-test-setup/**/bpe/log/*.log
30+
codex-processes-ap1-docker-test-setup/**/bpe/log/*.log.gz
31+
codex-processes-ap1-docker-test-setup/**/bpe/last_event/time.file
32+
codex-processes-ap1-docker-test-setup/**/bpe/plugin/*.jar
33+
codex-processes-ap1-docker-test-setup/**/bpe/process/*.jar
34+
35+
codex-processes-ap1-docker-test-setup/**/fhir/conf/bundle.xml
36+
codex-processes-ap1-docker-test-setup/**/fhir/log/*.log
37+
codex-processes-ap1-docker-test-setup/**/fhir/log/*.log.gz
38+
39+
codex-processes-ap1-docker-test-setup/secrets/*.pem
40+
codex-processes-ap1-docker-test-setup/.env

codex-process-data-transfer/pom.xml

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<parent>
99
<groupId>de.netzwerk-universitaetsmedizin.codex</groupId>
1010
<artifactId>codex-processes-ap1</artifactId>
11-
<version>0.3.4</version>
11+
<version>0.4.0</version>
1212
</parent>
1313

1414
<properties>
@@ -59,7 +59,7 @@
5959
<version>${project.version}</version>
6060
</artifactItem>
6161
</artifactItems>
62-
<outputDirectory>../codex-processes-ap1-docker-test-setup/crr/bpe/app/process</outputDirectory>
62+
<outputDirectory>../codex-processes-ap1-docker-test-setup/crr/bpe/process</outputDirectory>
6363
</configuration>
6464
</execution>
6565
<execution>
@@ -76,7 +76,7 @@
7676
<version>${hapi.version}</version>
7777
</artifactItem>
7878
</artifactItems>
79-
<outputDirectory>../codex-processes-ap1-docker-test-setup/crr/bpe/app/plugin</outputDirectory>
79+
<outputDirectory>../codex-processes-ap1-docker-test-setup/crr/bpe/plugin</outputDirectory>
8080
</configuration>
8181
</execution>
8282
<execution>
@@ -93,7 +93,7 @@
9393
<version>${project.version}</version>
9494
</artifactItem>
9595
</artifactItems>
96-
<outputDirectory>../codex-processes-ap1-docker-test-setup/dic/bpe/app/process</outputDirectory>
96+
<outputDirectory>../codex-processes-ap1-docker-test-setup/dic/bpe/process</outputDirectory>
9797
</configuration>
9898
</execution>
9999
<execution>
@@ -110,7 +110,7 @@
110110
<version>${hapi.version}</version>
111111
</artifactItem>
112112
</artifactItems>
113-
<outputDirectory>../codex-processes-ap1-docker-test-setup/dic/bpe/app/plugin</outputDirectory>
113+
<outputDirectory>../codex-processes-ap1-docker-test-setup/dic/bpe/plugin</outputDirectory>
114114
</configuration>
115115
</execution>
116116
<execution>
@@ -127,7 +127,24 @@
127127
<version>${project.version}</version>
128128
</artifactItem>
129129
</artifactItems>
130-
<outputDirectory>../codex-processes-ap1-docker-test-setup/gth/bpe/app/process</outputDirectory>
130+
<outputDirectory>../codex-processes-ap1-docker-test-setup/gth/bpe/process</outputDirectory>
131+
</configuration>
132+
</execution>
133+
<execution>
134+
<id>copy-hapi-fhir-client/gth</id>
135+
<phase>package</phase>
136+
<goals>
137+
<goal>copy</goal>
138+
</goals>
139+
<configuration>
140+
<artifactItems>
141+
<artifactItem>
142+
<groupId>ca.uhn.hapi.fhir</groupId>
143+
<artifactId>hapi-fhir-client</artifactId>
144+
<version>${hapi.version}</version>
145+
</artifactItem>
146+
</artifactItems>
147+
<outputDirectory>../codex-processes-ap1-docker-test-setup/gth/bpe/plugin</outputDirectory>
131148
</configuration>
132149
</execution>
133150
</executions>
@@ -138,40 +155,47 @@
138155
<configuration>
139156
<filesets>
140157
<fileset>
141-
<directory>../codex-processes-ap1-docker-test-setup/crr/bpe/app/process</directory>
158+
<directory>../codex-processes-ap1-docker-test-setup/crr/bpe/process</directory>
142159
<includes>
143160
<include>${project.artifactId}-${project.version}.jar</include>
144161
</includes>
145162
<followSymlinks>false</followSymlinks>
146163
</fileset>
147164
<fileset>
148-
<directory>../codex-processes-ap1-docker-test-setup/crr/bpe/app/plugin</directory>
165+
<directory>../codex-processes-ap1-docker-test-setup/crr/bpe/plugin</directory>
149166
<includes>
150167
<include>hapi-fhir-client-${hapi.version}.jar</include>
151168
</includes>
152169
<followSymlinks>false</followSymlinks>
153170
</fileset>
154171
<fileset>
155-
<directory>../codex-processes-ap1-docker-test-setup/dic/bpe/app/process</directory>
172+
<directory>../codex-processes-ap1-docker-test-setup/dic/bpe/process</directory>
156173
<includes>
157174
<include>${project.artifactId}-${project.version}.jar</include>
158175
</includes>
159176
<followSymlinks>false</followSymlinks>
160177
</fileset>
161178
<fileset>
162-
<directory>../codex-processes-ap1-docker-test-setup/dic/bpe/app/plugin</directory>
179+
<directory>../codex-processes-ap1-docker-test-setup/dic/bpe/plugin</directory>
163180
<includes>
164181
<include>hapi-fhir-client-${hapi.version}.jar</include>
165182
</includes>
166183
<followSymlinks>false</followSymlinks>
167184
</fileset>
168185
<fileset>
169-
<directory>../codex-processes-ap1-docker-test-setup/gth/bpe/app/process</directory>
186+
<directory>../codex-processes-ap1-docker-test-setup/gth/bpe/process</directory>
170187
<includes>
171188
<include>${project.artifactId}-${project.version}.jar</include>
172189
</includes>
173190
<followSymlinks>false</followSymlinks>
174191
</fileset>
192+
<fileset>
193+
<directory>../codex-processes-ap1-docker-test-setup/gth/bpe/plugin</directory>
194+
<includes>
195+
<include>hapi-fhir-client-${hapi.version}.jar</include>
196+
</includes>
197+
<followSymlinks>false</followSymlinks>
198+
</fileset>
175199
</filesets>
176200
</configuration>
177201
</plugin>

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/ConstantsDataTransfer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,26 @@ public interface ConstantsDataTransfer
3232

3333
String PROFILE_NUM_CODEX_TASK_START_DATA_TRIGGER = "http://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/task-start-data-trigger";
3434
String PROFILE_NUM_CODEX_TASK_STOP_DATA_TRIGGER = "http://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/task-stop-data-trigger";
35-
String PROFILE_NUM_CODEX_TASK_DATA_TRIGGER_PROCESS_URI = "http://highmed.org/bpe/Process/dataTrigger/";
35+
String PROFILE_NUM_CODEX_TASK_DATA_TRIGGER_PROCESS_URI = "http://www.netzwerk-universitaetsmedizin.de/bpe/Process/dataTrigger/";
3636
String PROFILE_NUM_CODEX_TASK_DATA_TRIGGER_PROCESS_URI_AND_LATEST_VERSION = PROFILE_NUM_CODEX_TASK_DATA_TRIGGER_PROCESS_URI
3737
+ VERSION;
3838
String PROFILE_NUM_CODEX_TASK_START_DATA_TRIGGER_MESSAGE_NAME = "startDataTrigger";
3939
String PROFILE_NUM_CODEX_TASK_STOP_DATA_TRIGGER_MESSAGE_NAME = "stopDataTrigger";
4040

4141
String PROFILE_NUM_CODEX_TASK_START_DATA_SEND = "http://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/task-start-data-send";
42-
String PROFILE_NUM_CODEX_TASK_DATA_SEND_PROCESS_URI = "http://highmed.org/bpe/Process/dataSend/";
42+
String PROFILE_NUM_CODEX_TASK_DATA_SEND_PROCESS_URI = "http://www.netzwerk-universitaetsmedizin.de/bpe/Process/dataSend/";
4343
String PROFILE_NUM_CODEX_TASK_DATA_SEND_PROCESS_URI_AND_LATEST_VERSION = PROFILE_NUM_CODEX_TASK_DATA_SEND_PROCESS_URI
4444
+ VERSION;
4545
String PROFILE_NUM_CODEX_TASK_START_DATA_SEND_MESSAGE_NAME = "startDataSend";
4646

4747
String PROFILE_NUM_CODEX_TASK_START_DATA_TRANSLATE = "http://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/task-start-data-translate";
48-
String PROFILE_NUM_CODEX_TASK_DATA_TRANSLATE_PROCESS_URI = "http://highmed.org/bpe/Process/dataTranslate/";
48+
String PROFILE_NUM_CODEX_TASK_DATA_TRANSLATE_PROCESS_URI = "http://www.netzwerk-universitaetsmedizin.de/bpe/Process/dataTranslate/";
4949
String PROFILE_NUM_CODEX_TASK_DATA_TRANSLATE_PROCESS_URI_AND_LATEST_VERSION = PROFILE_NUM_CODEX_TASK_DATA_TRANSLATE_PROCESS_URI
5050
+ VERSION;
5151
String PROFILE_NUM_CODEX_TASK_START_DATA_TRANSLATE_MESSAGE_NAME = "startDataTranslate";
5252

5353
String PROFILE_NUM_CODEX_TASK_START_DATA_RECEIVE = "http://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/task-start-data-receive";
54-
String PROFILE_NUM_CODEX_TASK_DATA_RECEIVE_PROCESS_URI = "http://highmed.org/bpe/Process/dataReceive/";
54+
String PROFILE_NUM_CODEX_TASK_DATA_RECEIVE_PROCESS_URI = "http://www.netzwerk-universitaetsmedizin.de/bpe/Process/dataReceive/";
5555
String PROFILE_NUM_CODEX_TASK_DATA_RECEIVE_PROCESS_URI_AND_LATEST_VERSION = PROFILE_NUM_CODEX_TASK_DATA_RECEIVE_PROCESS_URI
5656
+ VERSION;
5757
String PROFILE_NUM_CODEX_TASK_START_DATA_RECEIVE_MESSAGE_NAME = "startDataReceive";

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/DataTransferProcessPluginDefinition.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@
1313
import org.highmed.dsf.fhir.resources.ResourceProvider;
1414
import org.highmed.dsf.fhir.resources.StructureDefinitionResource;
1515
import org.highmed.dsf.fhir.resources.ValueSetResource;
16+
import org.springframework.core.env.PropertyResolver;
1617

1718
import ca.uhn.fhir.context.FhirContext;
1819
import de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.spring.config.TransferDataConfig;
1920
import de.netzwerk_universitaetsmedizin.codex.processes.data_transfer.spring.config.TransferDataSerializerConfig;
2021

2122
public class DataTransferProcessPluginDefinition implements ProcessPluginDefinition
2223
{
23-
public static final String VERSION = "0.3.4";
24+
public static final String VERSION = "0.4.0";
2425

2526
@Override
2627
public String getName()
@@ -47,7 +48,8 @@ public Stream<Class<?>> getSpringConfigClasses()
4748
}
4849

4950
@Override
50-
public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader classLoader)
51+
public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader classLoader,
52+
PropertyResolver propertyResolver)
5153
{
5254
var aTri = ActivityDefinitionResource.file("fhir/ActivityDefinition/num-codex-data-trigger.xml");
5355
var aSen = ActivityDefinitionResource.file("fhir/ActivityDefinition/num-codex-data-send.xml");
@@ -73,12 +75,16 @@ public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader
7375
var vD = ValueSetResource.file("fhir/ValueSet/num-codex-data-transfer.xml");
7476

7577
Map<String, List<AbstractResource>> resourcesByProcessKeyAndVersion = Map.of( //
76-
"dataTrigger/" + VERSION, Arrays.asList(aTri, cD, nD, sTstaDtri, sTstoDtri, vD), //
77-
"dataSend/" + VERSION, Arrays.asList(aSen, cD, nD, nB, sTstaDsen, vD), //
78-
"dataTranslate/" + VERSION, Arrays.asList(aTra, cD, nD, nC, sTstaDtra, vD), //
79-
"dataReceive/" + VERSION, Arrays.asList(aRec, cD, nC, sTstaDrec, vD));
78+
"wwwnetzwerk-universitaetsmedizinde_dataTrigger/" + VERSION,
79+
Arrays.asList(aTri, cD, nD, sTstaDtri, sTstoDtri, vD), //
80+
"wwwnetzwerk-universitaetsmedizinde_dataSend/" + VERSION,
81+
Arrays.asList(aSen, cD, nD, nB, sTstaDsen, vD), //
82+
"wwwnetzwerk-universitaetsmedizinde_dataTranslate/" + VERSION,
83+
Arrays.asList(aTra, cD, nD, nC, sTstaDtra, vD), //
84+
"wwwnetzwerk-universitaetsmedizinde_dataReceive/" + VERSION,
85+
Arrays.asList(aRec, cD, nC, sTstaDrec, vD));
8086

8187
return ResourceProvider.read(VERSION, () -> fhirContext.newXmlParser().setStripVersionsFromReferences(false),
82-
classLoader, resourcesByProcessKeyAndVersion);
88+
classLoader, propertyResolver, resourcesByProcessKeyAndVersion);
8389
}
8490
}

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/client/ApacheRestfulClientFactoryWithTlsConfig.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.security.KeyStoreException;
66
import java.security.NoSuchAlgorithmException;
77
import java.security.UnrecoverableKeyException;
8+
import java.util.HashMap;
89
import java.util.List;
910
import java.util.Map;
1011
import java.util.concurrent.TimeUnit;
@@ -28,6 +29,7 @@
2829
import org.apache.http.impl.client.HttpClients;
2930
import org.apache.http.impl.client.ProxyAuthenticationStrategy;
3031
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
32+
import org.apache.http.ssl.SSLContextBuilder;
3133
import org.apache.http.ssl.SSLContexts;
3234
import org.slf4j.Logger;
3335
import org.slf4j.LoggerFactory;
@@ -50,6 +52,8 @@ public class ApacheRestfulClientFactoryWithTlsConfig extends RestfulClientFactor
5052
private final KeyStore keyStore;
5153
private final char[] keyStorePassword;
5254

55+
private final Map<String, ApacheHttpClient> clientByServerBase = new HashMap<>();
56+
5357
public ApacheRestfulClientFactoryWithTlsConfig(FhirContext fhirContext, KeyStore trustStore, KeyStore keyStore,
5458
char[] keyStorePassword)
5559
{
@@ -61,11 +65,21 @@ public ApacheRestfulClientFactoryWithTlsConfig(FhirContext fhirContext, KeyStore
6165
}
6266

6367
@Override
64-
protected synchronized ApacheHttpClient getHttpClient(String theServerBase)
68+
protected synchronized ApacheHttpClient getHttpClient(String serverBase)
6569
{
66-
logger.info("Returning new ApacheHttpClient for ServerBase {}", theServerBase);
67-
68-
return new ApacheHttpClient(getNativeHttpClient(), new StringBuilder(theServerBase), null, null, null, null);
70+
if (clientByServerBase.containsKey(serverBase))
71+
{
72+
logger.debug("Reusing ApacheHttpClient for ServerBase {}", serverBase);
73+
return clientByServerBase.get(serverBase);
74+
}
75+
else
76+
{
77+
logger.debug("Returning new ApacheHttpClient for ServerBase {}", serverBase);
78+
ApacheHttpClient client = new ApacheHttpClient(getNativeHttpClient(), new StringBuilder(serverBase), null,
79+
null, null, null);
80+
clientByServerBase.put(serverBase, client);
81+
return client;
82+
}
6983
}
7084

7185
@Override
@@ -119,8 +133,14 @@ protected SSLContext getSslContext()
119133
{
120134
try
121135
{
122-
return SSLContexts.custom().loadTrustMaterial(trustStore, null).loadKeyMaterial(keyStore, keyStorePassword)
123-
.build();
136+
SSLContextBuilder custom = SSLContexts.custom();
137+
138+
if (trustStore != null)
139+
custom = custom.loadTrustMaterial(trustStore, null);
140+
if (keyStore != null && keyStorePassword != null)
141+
custom = custom.loadKeyMaterial(keyStore, keyStorePassword);
142+
143+
return custom.build();
124144
}
125145
catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException | UnrecoverableKeyException e)
126146
{

0 commit comments

Comments
 (0)