Merge branch 'master' into rel_5_1_0

This commit is contained in:
jamesagnew
2020-06-15 18:22:06 -04:00
5 changed files with 170 additions and 3 deletions

View File

@@ -134,7 +134,14 @@ public class FhirServerConfigCommon {
@Bean
public PartitionSettings partitionSettings() {
return new PartitionSettings();
PartitionSettings retVal = new PartitionSettings();
// Partitioning
if (HapiProperties.getPartitioningMultitenancyEnabled()) {
retVal.setPartitioningEnabled(true);
}
return retVal;
}

View File

@@ -78,6 +78,8 @@ public class HapiProperties {
static final String BULK_EXPORT_ENABLED = "bulk.export.enabled";
static final String EXPIRE_SEARCH_RESULTS_AFTER_MINS = "retain_cached_searches_mins";
static final String MAX_BINARY_SIZE = "max_binary_size";
static final String PARTITIONING_MULTITENANCY_ENABLED = "partitioning.multitenancy.enabled";
private static Properties ourProperties;
public static boolean isElasticSearchEnabled() {
@@ -510,5 +512,9 @@ public class HapiProperties {
public static boolean isFhirPathFilterInterceptorEnabled() {
return HapiProperties.getBooleanProperty("fhirpath_interceptor.enabled", false);
}
public static boolean getPartitioningMultitenancyEnabled() {
return HapiProperties.getBooleanProperty(PARTITIONING_MULTITENANCY_ENABLED, false);
}
}

View File

@@ -37,6 +37,8 @@ import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor;
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
import ca.uhn.fhir.rest.server.interceptor.ResponseValidatingInterceptor;
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
import ca.uhn.fhir.rest.server.interceptor.partition.RequestTenantPartitionInterceptor;
import ca.uhn.fhir.rest.server.tenant.UrlBaseTenantIdentificationStrategy;
import ca.uhn.fhir.validation.IValidatorModule;
import ca.uhn.fhir.validation.ResultSeverityEnum;
import org.hl7.fhir.dstu3.model.Bundle;
@@ -327,6 +329,12 @@ public class JpaRestfulServer extends RestfulServer {
partitionSettings.setAllowReferencesAcrossPartitions(mode);
partitionSettings.setIncludePartitionInSearchHashes(HapiProperties.getIncludePartitionInSearchHashes());
registerProvider(appCtx.getBean(PartitionManagementProvider.class));
}
if (HapiProperties.getPartitioningMultitenancyEnabled()) {
registerInterceptor(new RequestTenantPartitionInterceptor());
setTenantIdentificationStrategy(new UrlBaseTenantIdentificationStrategy());
registerProviders(appCtx.getBean(PartitionManagementProvider.class));
}
}
}

View File

@@ -150,10 +150,16 @@ email.password=
# Enable Websocket Subscription Channel
subscription.websocket.enabled=false
###################################################
# EMPI
###################################################
empi.enabled=false
# Partitioning
###################################################
# Partitioning And Multitenancy
###################################################
partitioning.enabled=false
partitioning.cross_partition_reference_mode=NOT_ALLOWED
partitioning.partitioning_include_in_search_hashes=true
partitioning.multitenancy.enabled=false