diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/interceptor/BanUnsupprtedHttpMethodsInterceptor.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/interceptor/BanUnsupprtedHttpMethodsInterceptor.java
index 5bbf589b0fe..7fbbb0b58e4 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/interceptor/BanUnsupprtedHttpMethodsInterceptor.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/interceptor/BanUnsupprtedHttpMethodsInterceptor.java
@@ -1,5 +1,25 @@
package ca.uhn.fhir.rest.server.interceptor;
+/*
+ * #%L
+ * HAPI FHIR - Core Library
+ * %%
+ * Copyright (C) 2014 - 2016 University Health Network
+ * %%
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * #L%
+ */
+
import java.util.HashSet;
import java.util.Set;
diff --git a/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/FooMessageHeader.java b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/FooMessageHeader.java
index 752f2e0293a..e5231995338 100644
--- a/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/FooMessageHeader.java
+++ b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/FooMessageHeader.java
@@ -3,7 +3,6 @@ package ca.uhn.fhir.parser;
import org.hl7.fhir.dstu3.exceptions.FHIRException;
import org.hl7.fhir.dstu3.model.Identifier;
import org.hl7.fhir.dstu3.model.MessageHeader;
-import org.hl7.fhir.dstu3.model.MessageHeader.MessageSourceComponent;
import ca.uhn.fhir.model.api.annotation.Block;
import ca.uhn.fhir.model.api.annotation.Child;
@@ -11,7 +10,7 @@ import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.api.annotation.Extension;
import ca.uhn.fhir.model.api.annotation.ResourceDef;
-@ResourceDef(name = "FooMessageHeader")
+@ResourceDef(name = "MessageHeader")
public class FooMessageHeader extends MessageHeader {
private static final long serialVersionUID = 1L;
diff --git a/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/JsonParserDstu3Test.java b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/JsonParserDstu3Test.java
index 0d818b025ff..d79a96cf30c 100644
--- a/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/JsonParserDstu3Test.java
+++ b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/parser/JsonParserDstu3Test.java
@@ -4,17 +4,13 @@ import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.stringContainsInOrder;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.UUID;
@@ -22,6 +18,7 @@ import java.util.UUID;
import org.apache.commons.io.IOUtils;
import org.hamcrest.Matchers;
import org.hamcrest.core.StringContains;
+import org.hl7.fhir.dstu3.exceptions.FHIRException;
import org.hl7.fhir.dstu3.model.Address.AddressUse;
import org.hl7.fhir.dstu3.model.Address.AddressUseEnumFactory;
import org.hl7.fhir.dstu3.model.Attachment;
@@ -78,6 +75,8 @@ import ca.uhn.fhir.narrative.DefaultThymeleafNarrativeGenerator;
import ca.uhn.fhir.parser.PatientWithExtendedContactDstu3.CustomContactComponent;
import ca.uhn.fhir.rest.server.Constants;
import ca.uhn.fhir.util.TestUtil;
+import ca.uhn.fhir.validation.FhirValidator;
+import ca.uhn.fhir.validation.ValidationResult;
import net.sf.json.JSON;
import net.sf.json.JSONSerializer;
import net.sf.json.JsonConfig;
@@ -112,30 +111,51 @@ public class JsonParserDstu3Test {
ourLog.info(output);
assertThat(output, containsString("\"div\": \"
VALUE
\""));
}
-
+
+ @Test
+ public void testValidateCustomStructure() throws Exception {
+
+ FooMessageHeader.FooMessageSourceComponent source = new FooMessageHeader.FooMessageSourceComponent();
+ source.getMessageHeaderApplicationId().setValue("APPID");
+ source.setName("NAME");
+ source.setEndpoint("http://foo");
+
+ FooMessageHeader header = new FooMessageHeader();
+ header.setTimestamp(new Date());
+ header.getEvent().setSystem("http://system").setCode("value");
+ header.setSource(source);
+
+ FhirValidator val = ourCtx.newValidator();
+ val.setValidateAgainstStandardSchema(true);
+ val.setValidateAgainstStandardSchematron(true);
+
+ ValidationResult result = val.validateWithResult(header);
+
+ ourLog.info(ourCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(result.toOperationOutcome()));
+ assertTrue(result.isSuccessful());
+ }
@Test
public void testEncodeUndeclaredBlock() throws Exception {
FooMessageHeader.FooMessageSourceComponent source = new FooMessageHeader.FooMessageSourceComponent();
source.getMessageHeaderApplicationId().setValue("APPID");
source.setName("NAME");
-
+
FooMessageHeader header = new FooMessageHeader();
header.setSource(source);
-
+
Bundle bundle = new Bundle();
bundle.addEntry().setResource(header);
-
- IParser p = ourCtx.newJsonParser();
- p.setPrettyPrint(true);
- String encode = p.encodeResourceToString(bundle);
- ourLog.info(encode);
-
- assertThat(encode, containsString("\"value\": \"APPID\""));
+ IParser p = ourCtx.newJsonParser();
+ p.setPrettyPrint(true);
+
+ String encode = p.encodeResourceToString(bundle);
+ ourLog.info(encode);
+
+ assertThat(encode, containsString("\"value\": \"APPID\""));
}
-
/**
* See #344
*/
@@ -727,8 +747,8 @@ public class JsonParserDstu3Test {
ourLog.info(encoded);
assertThat(encoded, containsString("Patient"));
- assertThat(encoded,
- stringContainsInOrder("\"tag\"", "\"system\": \"foo\",", "\"code\": \"bar\"", "\"system\": \"" + Constants.TAG_SUBSETTED_SYSTEM + "\"", "\"code\": \"" + Constants.TAG_SUBSETTED_CODE + "\""));
+ assertThat(encoded, stringContainsInOrder("\"tag\"", "\"system\": \"foo\",", "\"code\": \"bar\"", "\"system\": \"" + Constants.TAG_SUBSETTED_SYSTEM + "\"",
+ "\"code\": \"" + Constants.TAG_SUBSETTED_CODE + "\""));
assertThat(encoded, not(containsString("THE DIV")));
assertThat(encoded, containsString("family"));
assertThat(encoded, not(containsString("maritalStatus")));
@@ -801,7 +821,7 @@ public class JsonParserDstu3Test {
PatientWithExtendedContactDstu3 patient = new PatientWithExtendedContactDstu3();
patient.setId("123");
-
+
CustomContactComponent customContactComponent = new CustomContactComponent();
customContactComponent.getEyeColour().setValue("EYE");
customContactComponent.getName().addFamily("FAMILY");
@@ -809,8 +829,10 @@ public class JsonParserDstu3Test {
String val = parser.encodeResourceToString(patient);
ourLog.info(val);
-
- assertEquals("{\"resourceType\":\"Patient\",\"id\":\"123\",\"contact\":[{\"extension\":[{\"url\":\"http://foo.com/contact-eyecolour\",\"valueIdentifier\":{\"value\":\"EYE\"}}],\"name\":{\"family\":[\"FAMILY\"]}}]}", val);
+
+ assertEquals(
+ "{\"resourceType\":\"Patient\",\"id\":\"123\",\"contact\":[{\"extension\":[{\"url\":\"http://foo.com/contact-eyecolour\",\"valueIdentifier\":{\"value\":\"EYE\"}}],\"name\":{\"family\":[\"FAMILY\"]}}]}",
+ val);
FhirContext newCtx = FhirContext.forDstu3();
PatientWithExtendedContactDstu3 actual = newCtx.newJsonParser().parseResource(PatientWithExtendedContactDstu3.class, val);
@@ -941,7 +963,7 @@ public class JsonParserDstu3Test {
" }\n" +
"}";
//@formatter:on
-
+
ExplanationOfBenefit eob = ourCtx.newJsonParser().parseResource(ExplanationOfBenefit.class, input);
assertEquals(Reference.class, eob.getCoverage().getCoverage().getClass());
@@ -1046,7 +1068,6 @@ public class JsonParserDstu3Test {
assertThat(ourCtx.newJsonParser().setOmitResourceId(true).encodeResourceToString(p), not(containsString("123")));
}
-
@Test
@Ignore
public void testParseAndEncodeBundle() throws Exception {
@@ -1264,7 +1285,6 @@ public class JsonParserDstu3Test {
assertEquals(StringType.class, comm.getPayload().get(2).getContent().getClass());
}
-
@Test
public void testParseAndEncodeComments() throws IOException {
//@formatter:off
@@ -1417,10 +1437,9 @@ public class JsonParserDstu3Test {
} catch (DataFormatException e) {
assertEquals("Failed to parse JSON content, error was: Content does not appear to be FHIR JSON, first non-whitespace character was: '[' (must be '{')", e.getMessage());
}
-
-
+
assertEquals(Bundle.class, ourCtx.newJsonParser().parseResource(" {\"resourceType\" : \"Bundle\"}").getClass());
-
+
}
@Test
@@ -1486,7 +1505,7 @@ public class JsonParserDstu3Test {
}
- @Test(expected=DataFormatException.class)
+ @Test(expected = DataFormatException.class)
public void testParseWithTrailingContent() throws Exception {
//@formatter:off
String bundle = "{\n" +
@@ -1497,7 +1516,7 @@ public class JsonParserDstu3Test {
Bundle b = ourCtx.newJsonParser().parseResource(Bundle.class, bundle);
}
-
+
/**
* See #163
*/
diff --git a/hapi-fhir-testpage-overlay/pom.xml b/hapi-fhir-testpage-overlay/pom.xml
index 00247fadcf5..21cb7c1c0f1 100644
--- a/hapi-fhir-testpage-overlay/pom.xml
+++ b/hapi-fhir-testpage-overlay/pom.xml
@@ -33,6 +33,7 @@
ca.uhn.hapi.fhir
hapi-fhir-jpaserver-base
2.0-SNAPSHOT
+ test
ca.uhn.hapi.fhir
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index a6867fe28b6..34b1b000237 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -78,6 +78,12 @@
DSTU2 HL7org structures with the JAX-RS module. Thanks to Carlo Mion
for the pull request!
+
+ hapi-fhir-testpage-overlay project contained an unneccesary
+ dependency on hapi-fhir-jpaserver-base module, which resulted in
+ projects using the overlay having a large number of unnneded
+ JARs included
+