Fix CI issue
This commit is contained in:
parent
f20371c9c9
commit
e7804b881c
|
@ -959,6 +959,11 @@ public abstract class BaseHapiFhirDao<T extends IBaseResource> implements IDao,
|
|||
|
||||
@Override
|
||||
public void setApplicationContext(ApplicationContext theApplicationContext) throws BeansException {
|
||||
/*
|
||||
* We do a null check here because Smile's module system tries to
|
||||
* initialize the application context twice if two modules depend on
|
||||
* the persistence module. The second time sets the dependency's appctx.
|
||||
*/
|
||||
if (myApplicationContext == null) {
|
||||
myApplicationContext = theApplicationContext;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public interface IServerConformanceProvider<T extends IBaseResource> {
|
|||
*
|
||||
* See the class documentation for an important note if you are extending this class
|
||||
*/
|
||||
public abstract T getServerConformance(HttpServletRequest theRequest);
|
||||
T getServerConformance(HttpServletRequest theRequest);
|
||||
|
||||
/**
|
||||
* This setter is needed in implementation classes (along with
|
||||
|
@ -40,5 +40,5 @@ public interface IServerConformanceProvider<T extends IBaseResource> {
|
|||
*
|
||||
* @param theRestfulServer
|
||||
*/
|
||||
public void setRestfulServer(RestfulServer theRestfulServer);
|
||||
void setRestfulServer(RestfulServer theRestfulServer);
|
||||
}
|
||||
|
|
|
@ -9,9 +9,9 @@ package ca.uhn.fhir.rest.server;
|
|||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -26,6 +26,7 @@ import ca.uhn.fhir.context.ProvidedResourceScanner;
|
|||
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||
import ca.uhn.fhir.context.api.AddProfileTagEnum;
|
||||
import ca.uhn.fhir.context.api.BundleInclusionRule;
|
||||
import ca.uhn.fhir.model.primitive.InstantDt;
|
||||
import ca.uhn.fhir.parser.IParser;
|
||||
import ca.uhn.fhir.rest.annotation.Destroy;
|
||||
import ca.uhn.fhir.rest.annotation.IdParam;
|
||||
|
@ -125,6 +126,7 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
private boolean myUncompressIncomingContents = true;
|
||||
private boolean myUseBrowserFriendlyContentTypes;
|
||||
private ITenantIdentificationStrategy myTenantIdentificationStrategy;
|
||||
private Date myConformanceDate;
|
||||
|
||||
/**
|
||||
* Constructor. Note that if no {@link FhirContext} is passed in to the server (either through the constructor, or
|
||||
|
@ -194,19 +196,14 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
result.setServerName(getServerName());
|
||||
result.setFhirContext(getFhirContext());
|
||||
result.setServerAddressStrategy(myServerAddressStrategy);
|
||||
InputStream inputStream = null;
|
||||
try {
|
||||
inputStream = getClass().getResourceAsStream("/META-INF/MANIFEST.MF");
|
||||
try (InputStream inputStream = getClass().getResourceAsStream("/META-INF/MANIFEST.MF")) {
|
||||
if (inputStream != null) {
|
||||
Manifest manifest = new Manifest(inputStream);
|
||||
result.setConformanceDate(manifest.getMainAttributes().getValue("Build-Time"));
|
||||
String value = manifest.getMainAttributes().getValue("Build-Time");
|
||||
result.setConformanceDate(new InstantDt(value));
|
||||
}
|
||||
} catch (IOException e) {
|
||||
} catch (Exception e) {
|
||||
// fall through
|
||||
} finally {
|
||||
if (inputStream != null) {
|
||||
IOUtils.closeQuietly(inputStream);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -573,10 +570,10 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
*
|
||||
* @param theList The list of interceptors (may be null)
|
||||
*/
|
||||
public void setInterceptors(List<IServerInterceptor> theList) {
|
||||
public void setInterceptors(IServerInterceptor... theList) {
|
||||
myInterceptors.clear();
|
||||
if (theList != null) {
|
||||
myInterceptors.addAll(theList);
|
||||
myInterceptors.addAll(Arrays.asList(theList));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -606,8 +603,11 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
*
|
||||
* @see #setResourceProviders(Collection)
|
||||
*/
|
||||
public void setPlainProviders(Object... theProv) {
|
||||
setPlainProviders(Arrays.asList(theProv));
|
||||
public void setPlainProviders(Collection<Object> theProviders) {
|
||||
myPlainProviders.clear();
|
||||
if (theProviders != null) {
|
||||
myPlainProviders.addAll(theProviders);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -637,10 +637,10 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
/**
|
||||
* Sets the resource providers for this server
|
||||
*/
|
||||
public void setResourceProviders(IResourceProvider... theResourceProviders) {
|
||||
public void setResourceProviders(Collection<IResourceProvider> theResourceProviders) {
|
||||
myResourceProviders.clear();
|
||||
if (theResourceProviders != null) {
|
||||
myResourceProviders.addAll(Arrays.asList(theResourceProviders));
|
||||
myResourceProviders.addAll(theResourceProviders);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1518,10 +1518,10 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
*
|
||||
* @param theList The list of interceptors (may be null)
|
||||
*/
|
||||
public void setInterceptors(IServerInterceptor... theList) {
|
||||
public void setInterceptors(List<IServerInterceptor> theList) {
|
||||
myInterceptors.clear();
|
||||
if (theList != null) {
|
||||
myInterceptors.addAll(Arrays.asList(theList));
|
||||
myInterceptors.addAll(theList);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1530,11 +1530,8 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
*
|
||||
* @see #setResourceProviders(Collection)
|
||||
*/
|
||||
public void setPlainProviders(Collection<Object> theProviders) {
|
||||
myPlainProviders.clear();
|
||||
if (theProviders != null) {
|
||||
myPlainProviders.addAll(theProviders);
|
||||
}
|
||||
public void setPlainProviders(Object... theProv) {
|
||||
setPlainProviders(Arrays.asList(theProv));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1552,10 +1549,10 @@ public class RestfulServer extends HttpServlet implements IRestfulServer<Servlet
|
|||
/**
|
||||
* Sets the resource providers for this server
|
||||
*/
|
||||
public void setResourceProviders(Collection<IResourceProvider> theResourceProviders) {
|
||||
public void setResourceProviders(IResourceProvider... theResourceProviders) {
|
||||
myResourceProviders.clear();
|
||||
if (theResourceProviders != null) {
|
||||
myResourceProviders.addAll(theResourceProviders);
|
||||
myResourceProviders.addAll(Arrays.asList(theResourceProviders));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,11 +21,13 @@ package ca.uhn.fhir.rest.server;
|
|||
*/
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import ca.uhn.fhir.context.FhirContext;
|
||||
import ca.uhn.fhir.rest.server.method.BaseMethodBinding;
|
||||
import ca.uhn.fhir.util.VersionUtil;
|
||||
import org.hl7.fhir.instance.model.api.IPrimitiveType;
|
||||
|
||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
||||
|
||||
|
@ -38,7 +40,7 @@ public class RestulfulServerConfiguration {
|
|||
private String serverName = "HAPI FHIR";
|
||||
private FhirContext fhirContext;
|
||||
private IServerAddressStrategy serverAddressStrategy;
|
||||
private String conformanceDate;
|
||||
private IPrimitiveType<Date> myConformanceDate;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
@ -73,11 +75,10 @@ public class RestulfulServerConfiguration {
|
|||
}
|
||||
|
||||
/**
|
||||
* Set the serverBindings
|
||||
* @param serverBindings the serverBindings to set
|
||||
* Set the theServerBindings
|
||||
*/
|
||||
public RestulfulServerConfiguration setServerBindings(List<BaseMethodBinding<?>> serverBindings) {
|
||||
this.serverBindings = serverBindings;
|
||||
public RestulfulServerConfiguration setServerBindings(List<BaseMethodBinding<?>> theServerBindings) {
|
||||
this.serverBindings = theServerBindings;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -166,23 +167,25 @@ public class RestulfulServerConfiguration {
|
|||
*/
|
||||
public void setServerAddressStrategy(IServerAddressStrategy serverAddressStrategy) {
|
||||
this.serverAddressStrategy = serverAddressStrategy;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the conformanceDate
|
||||
* @return the conformanceDate
|
||||
*/
|
||||
public String getConformanceDate() {
|
||||
return conformanceDate;
|
||||
|
||||
/**
|
||||
* Get the date that will be specified in the conformance profile
|
||||
* exported by this server. Typically this would be populated with
|
||||
* an InstanceType.
|
||||
*/
|
||||
public IPrimitiveType<Date> getConformanceDate() {
|
||||
return myConformanceDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the conformanceDate
|
||||
* @param conformanceDate the conformanceDate to set
|
||||
* Set the date that will be specified in the conformance profile
|
||||
* exported by this server. Typically this would be populated with
|
||||
* an InstanceType.
|
||||
*/
|
||||
public void setConformanceDate(String conformanceDate) {
|
||||
this.conformanceDate = conformanceDate;
|
||||
public void setConformanceDate(IPrimitiveType<Date> theConformanceDate) {
|
||||
myConformanceDate = theConformanceDate;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.hl7.fhir.dstu3.model.OperationDefinition.OperationKind;
|
|||
import org.hl7.fhir.dstu3.model.OperationDefinition.OperationParameterUse;
|
||||
import org.hl7.fhir.exceptions.FHIRException;
|
||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||
import org.hl7.fhir.instance.model.api.IPrimitiveType;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
@ -76,7 +77,7 @@ public class ServerCapabilityStatementProvider implements IServerConformanceProv
|
|||
private Callable<RestulfulServerConfiguration> myServerConfiguration;
|
||||
|
||||
/**
|
||||
* No-arg constructor and seetter so that the ServerConfirmanceProvider can be Spring-wired with the RestfulService avoiding the potential reference cycle that would happen.
|
||||
* No-arg constructor and setter so that the ServerConformanceProvider can be Spring-wired with the RestfulService avoiding the potential reference cycle that would happen.
|
||||
*/
|
||||
public ServerCapabilityStatementProvider() {
|
||||
super();
|
||||
|
@ -139,10 +140,10 @@ public class ServerCapabilityStatementProvider implements IServerConformanceProv
|
|||
}
|
||||
|
||||
private DateTimeType conformanceDate() {
|
||||
String buildDate = getServerConfiguration().getConformanceDate();
|
||||
if (buildDate != null) {
|
||||
IPrimitiveType<Date> buildDate = getServerConfiguration().getConformanceDate();
|
||||
if (buildDate != null && buildDate.getValue() != null) {
|
||||
try {
|
||||
return new DateTimeType(buildDate);
|
||||
return new DateTimeType(buildDate.getValueAsString());
|
||||
} catch (DataFormatException e) {
|
||||
// fall through
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.util.*;
|
|||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import ca.uhn.fhir.model.primitive.InstantDt;
|
||||
import org.hl7.fhir.dstu3.model.*;
|
||||
import org.hl7.fhir.dstu3.model.CapabilityStatement.*;
|
||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||
|
@ -527,29 +528,42 @@ public class ServerCapabilityStatementProviderDstu3Test {
|
|||
@Test
|
||||
public void testSearchReferenceParameterWithList() throws Exception {
|
||||
|
||||
RestfulServer rsNoType = new RestfulServer(ourCtx);
|
||||
RestfulServer rsNoType = new RestfulServer(ourCtx){
|
||||
@Override
|
||||
public RestulfulServerConfiguration createConfiguration() {
|
||||
RestulfulServerConfiguration retVal = super.createConfiguration();
|
||||
retVal.setConformanceDate(new InstantDt("2011-02-22T11:22:33Z"));
|
||||
return retVal;
|
||||
}
|
||||
};
|
||||
rsNoType.registerProvider(new SearchProviderWithListNoType());
|
||||
ServerCapabilityStatementProvider scNoType = new ServerCapabilityStatementProvider(rsNoType);
|
||||
rsNoType.setServerConformanceProvider(scNoType);
|
||||
rsNoType.init(createServletConfig());
|
||||
scNoType.getServerConfiguration().setConformanceDate("2011-02-22T11:22:33Z");
|
||||
|
||||
|
||||
CapabilityStatement conformance = scNoType.getServerConformance(createHttpServletRequest());
|
||||
String confNoType = ourCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(conformance);
|
||||
ourLog.info(confNoType);
|
||||
|
||||
RestfulServer rsWithType = new RestfulServer(ourCtx);
|
||||
RestfulServer rsWithType = new RestfulServer(ourCtx){
|
||||
@Override
|
||||
public RestulfulServerConfiguration createConfiguration() {
|
||||
RestulfulServerConfiguration retVal = super.createConfiguration();
|
||||
retVal.setConformanceDate(new InstantDt("2011-02-22T11:22:33Z"));
|
||||
return retVal;
|
||||
}
|
||||
};
|
||||
rsWithType.registerProvider(new SearchProviderWithListWithType());
|
||||
ServerCapabilityStatementProvider scWithType = new ServerCapabilityStatementProvider(rsWithType);
|
||||
rsWithType.setServerConformanceProvider(scWithType);
|
||||
rsWithType.init(createServletConfig());
|
||||
scWithType.getServerConfiguration().setConformanceDate("2011-02-22T11:22:33Z");
|
||||
|
||||
CapabilityStatement conformanceWithType = scWithType.getServerConformance(createHttpServletRequest());
|
||||
String confWithType = ourCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(conformanceWithType);
|
||||
ourLog.info(confWithType);
|
||||
|
||||
assertEquals(confNoType, confWithType);
|
||||
assertThat(confNoType, containsString("<date value=\"2011-02-22T11:22:33Z\"/>"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue