allow interceptors to be registered via properties
This commit is contained in:
18
src/test/java/some/custom/pkg1/CustomBean.java
Normal file
18
src/test/java/some/custom/pkg1/CustomBean.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package some.custom.pkg1;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class CustomBean {
|
||||
|
||||
private String initFlag;
|
||||
|
||||
public CustomBean() {
|
||||
initFlag = "I am alive";
|
||||
}
|
||||
|
||||
public String getInitFlag() {
|
||||
return initFlag;
|
||||
}
|
||||
|
||||
}
|
||||
31
src/test/java/some/custom/pkg1/CustomInterceptorBean.java
Normal file
31
src/test/java/some/custom/pkg1/CustomInterceptorBean.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package some.custom.pkg1;
|
||||
|
||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||
import org.hl7.fhir.r4.model.Extension;
|
||||
import org.hl7.fhir.r4.model.Patient;
|
||||
import org.hl7.fhir.r4.model.StringType;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import ca.uhn.fhir.interceptor.api.Hook;
|
||||
import ca.uhn.fhir.interceptor.api.Interceptor;
|
||||
import ca.uhn.fhir.interceptor.api.Pointcut;
|
||||
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
|
||||
import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails;
|
||||
|
||||
@Interceptor
|
||||
@Component
|
||||
public class CustomInterceptorBean {
|
||||
|
||||
@Hook(Pointcut.SERVER_INCOMING_REQUEST_PRE_HANDLED)
|
||||
void preHandleResource(ServletRequestDetails servletRequestDetails, RestOperationTypeEnum opType) {
|
||||
IBaseResource resource = servletRequestDetails.getResource();
|
||||
|
||||
// add an extension before saving the resource to mark it
|
||||
if (opType == RestOperationTypeEnum.CREATE && resource instanceof Patient) {
|
||||
Patient pat = (Patient) resource;
|
||||
Extension ext = pat.addExtension();
|
||||
ext.setUrl("http://some.custom.pkg1/CustomInterceptorBean");
|
||||
ext.setValue(new StringType("CustomInterceptorBean wuz here"));
|
||||
}
|
||||
}
|
||||
}
|
||||
26
src/test/java/some/custom/pkg1/CustomInterceptorPojo.java
Normal file
26
src/test/java/some/custom/pkg1/CustomInterceptorPojo.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package some.custom.pkg1;
|
||||
|
||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||
import org.hl7.fhir.r4.model.Extension;
|
||||
import org.hl7.fhir.r4.model.Patient;
|
||||
import org.hl7.fhir.r4.model.StringType;
|
||||
import ca.uhn.fhir.interceptor.api.Hook;
|
||||
import ca.uhn.fhir.interceptor.api.Pointcut;
|
||||
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
|
||||
import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails;
|
||||
|
||||
public class CustomInterceptorPojo {
|
||||
|
||||
@Hook(Pointcut.SERVER_INCOMING_REQUEST_PRE_HANDLED)
|
||||
void preHandleResource(ServletRequestDetails servletRequestDetails, RestOperationTypeEnum opType) {
|
||||
IBaseResource resource = servletRequestDetails.getResource();
|
||||
|
||||
// add an extension before saving the resource to mark it
|
||||
if (opType == RestOperationTypeEnum.CREATE && resource instanceof Patient) {
|
||||
Patient pat = (Patient) resource;
|
||||
Extension ext = pat.addExtension();
|
||||
ext.setUrl("http://some.custom.pkg1/CustomInterceptorPojo");
|
||||
ext.setValue(new StringType("CustomInterceptorPojo wuz here"));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user