From 77f4fcba343bdf98159f39b7d4b20607157c7e17 Mon Sep 17 00:00:00 2001 From: jvi Date: Thu, 11 Feb 2021 11:17:48 +0100 Subject: [PATCH] Adjusted according to review --- .../ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java | 10 +++++----- .../IRepositoryValidationInterceptorFactory.java | 9 +++++++++ .../RepositoryValidationInterceptorFactoryDstu3.java | 2 +- .../RepositoryValidationInterceptorFactoryR4.java | 4 +++- .../RepositoryValidationInterceptorFactoryR5.java | 2 +- 5 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 src/main/java/ca/uhn/fhir/jpa/starter/IRepositoryValidationInterceptorFactory.java diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java b/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java index aba299b..8a12b87 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java @@ -98,7 +98,7 @@ public class BaseJpaRestfulServer extends RestfulServer { ApplicationContext myApplicationContext; @Autowired(required = false) - RepositoryValidationInterceptorFactoryR4 factory; + IRepositoryValidationInterceptorFactory factory; public BaseJpaRestfulServer() { @@ -354,7 +354,7 @@ public class BaseJpaRestfulServer extends RestfulServer { if (appProperties.getImplementationGuides() != null) { Map guides = appProperties.getImplementationGuides(); for (Map.Entry guide : guides.entrySet()) { - PackageInstallOutcomeJson outcome = packageInstallerSvc.install(new PackageInstallationSpec() + packageInstallerSvc.install(new PackageInstallationSpec() .setPackageUrl(guide.getValue().getUrl()) .setName(guide.getValue().getName()) .setVersion(guide.getValue().getVersion()) @@ -363,9 +363,9 @@ public class BaseJpaRestfulServer extends RestfulServer { } } - if(factory != null) - interceptorService.registerInterceptor(factory.buildUsingStoredStructureDefinitions()); - + if(factory != null) { + interceptorService.registerInterceptor(factory.buildUsingStoredStructureDefinitions()); + } if (appProperties.getLastn_enabled()) { diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/IRepositoryValidationInterceptorFactory.java b/src/main/java/ca/uhn/fhir/jpa/starter/IRepositoryValidationInterceptorFactory.java new file mode 100644 index 0000000..13262a1 --- /dev/null +++ b/src/main/java/ca/uhn/fhir/jpa/starter/IRepositoryValidationInterceptorFactory.java @@ -0,0 +1,9 @@ +package ca.uhn.fhir.jpa.starter; + +import ca.uhn.fhir.jpa.interceptor.validation.RepositoryValidatingInterceptor; + +public interface IRepositoryValidationInterceptorFactory { + RepositoryValidatingInterceptor buildUsingStoredStructureDefinitions(); + + RepositoryValidatingInterceptor build(); +} diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryDstu3.java b/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryDstu3.java index 79ed691..a68ae3e 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryDstu3.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryDstu3.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; @ConditionalOnProperty(prefix = "hapi.fhir", name = "enable_repository_validating_interceptor", havingValue = "true") @Configuration @Conditional(OnDSTU3Condition.class) -public class RepositoryValidationInterceptorFactoryDstu3 { +public class RepositoryValidationInterceptorFactoryDstu3 implements IRepositoryValidationInterceptorFactory { private final FhirContext fhirContext; private final RepositoryValidatingRuleBuilder repositoryValidatingRuleBuilder; diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR4.java b/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR4.java index 2a053dc..a563d3c 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR4.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR4.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; @ConditionalOnProperty(prefix = "hapi.fhir", name = "enable_repository_validating_interceptor", havingValue = "true") @Configuration @Conditional(OnR4Condition.class) -public class RepositoryValidationInterceptorFactoryR4 { +public class RepositoryValidationInterceptorFactoryR4 implements IRepositoryValidationInterceptorFactory { private final FhirContext fhirContext; private final RepositoryValidatingRuleBuilder repositoryValidatingRuleBuilder; @@ -42,6 +42,7 @@ public class RepositoryValidationInterceptorFactoryR4 { } + @Override public RepositoryValidatingInterceptor buildUsingStoredStructureDefinitions() { IBundleProvider results = structureDefinitionResourceProvider.search(new SearchParameterMap().add(StructureDefinition.SP_KIND, new TokenParam("resource"))); @@ -60,6 +61,7 @@ public class RepositoryValidationInterceptorFactoryR4 { return new RepositoryValidatingInterceptor(fhirContext, rules); } + @Override public RepositoryValidatingInterceptor build() { // Customize the ruleBuilder here to have the rules you want! We will give a simple example diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR5.java b/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR5.java index 0ddcc96..7702ef0 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR5.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/RepositoryValidationInterceptorFactoryR5.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; @ConditionalOnProperty(prefix = "hapi.fhir", name = "enable_repository_validating_interceptor", havingValue = "true") @Configuration @Conditional(OnR5Condition.class) -public class RepositoryValidationInterceptorFactoryR5 { +public class RepositoryValidationInterceptorFactoryR5 implements IRepositoryValidationInterceptorFactory { private final FhirContext fhirContext; private final RepositoryValidatingRuleBuilder repositoryValidatingRuleBuilder;