Allow customizing the list of supported resources

This commit is contained in:
James Agnew
2019-07-04 09:48:40 -04:00
parent bea5b0947f
commit 3c6343e20d
3 changed files with 34 additions and 0 deletions

View File

@@ -8,7 +8,12 @@ import com.google.common.annotations.VisibleForTesting;
import java.io.InputStream; import java.io.InputStream;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.util.Arrays;
import java.util.Properties; import java.util.Properties;
import java.util.Set;
import java.util.stream.Collectors;
import static org.apache.commons.lang3.StringUtils.*;
public class HapiProperties { public class HapiProperties {
static final String ALLOW_EXTERNAL_REFERENCES = "allow_external_references"; static final String ALLOW_EXTERNAL_REFERENCES = "allow_external_references";
@@ -268,6 +273,14 @@ public class HapiProperties {
return HapiProperties.getProperty(CORS_ALLOWED_ORIGIN, "*"); return HapiProperties.getProperty(CORS_ALLOWED_ORIGIN, "*");
} }
public static Set<String> getSupportedResourceTypes() {
String[] types = defaultString(getProperty("supported_resource_types")).split(",");
return Arrays.stream(types)
.map(t->trim(t))
.filter(t->isNotBlank(t))
.collect(Collectors.toSet());
}
public static String getServerName() { public static String getServerName() {
return HapiProperties.getProperty(SERVER_NAME, "Local Tester"); return HapiProperties.getProperty(SERVER_NAME, "Local Tester");
} }

View File

@@ -35,6 +35,7 @@ import org.springframework.web.cors.CorsConfiguration;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Set;
public class JpaRestfulServer extends RestfulServer { public class JpaRestfulServer extends RestfulServer {
@@ -51,6 +52,13 @@ public class JpaRestfulServer extends RestfulServer {
*/ */
ApplicationContext appCtx = (ApplicationContext) getServletContext().getAttribute("org.springframework.web.context.WebApplicationContext.ROOT"); ApplicationContext appCtx = (ApplicationContext) getServletContext().getAttribute("org.springframework.web.context.WebApplicationContext.ROOT");
// Customize supported resource types
Set<String> supportedResourceTypes = HapiProperties.getSupportedResourceTypes();
if (!supportedResourceTypes.isEmpty()) {
DaoRegistry daoRegistry = appCtx.getBean(DaoRegistry.class);
daoRegistry.setSupportedResourceTypes(supportedResourceTypes);
}
/* /*
* ResourceProviders are fetched from the Spring context * ResourceProviders are fetched from the Spring context
*/ */

View File

@@ -38,6 +38,15 @@ datasource.password=
server.name=Local Tester server.name=Local Tester
server.id=home server.id=home
test.port= test.port=
# Enable the following property if you want to customize the
# list of resources that is supported by the server (i.e. to
# disable specific resources)
#supported_resource_types=Patient,Observation,Encounter
###################################################
# Database Settings
###################################################
hibernate.dialect=ca.uhn.fhir.jpa.util.DerbyTenSevenHapiFhirDialect hibernate.dialect=ca.uhn.fhir.jpa.util.DerbyTenSevenHapiFhirDialect
hibernate.search.model_mapping=ca.uhn.fhir.jpa.search.LuceneSearchMappingFactory hibernate.search.model_mapping=ca.uhn.fhir.jpa.search.LuceneSearchMappingFactory
hibernate.format_sql=false hibernate.format_sql=false
@@ -52,6 +61,10 @@ hibernate.search.default.directory_provider=filesystem
hibernate.search.default.indexBase=target/lucenefiles hibernate.search.default.indexBase=target/lucenefiles
hibernate.search.lucene_version=LUCENE_CURRENT hibernate.search.lucene_version=LUCENE_CURRENT
tester.config.refuse_to_fetch_third_party_urls=false tester.config.refuse_to_fetch_third_party_urls=false
##################################################
# CORS Settings
##################################################
cors.enabled=true cors.enabled=true
cors.allowed_origin=* cors.allowed_origin=*