From 0a93db572eb76b097dca8ed235d869fbee616536 Mon Sep 17 00:00:00 2001
From: Jens Kristian Villadsen
Date: Wed, 9 Nov 2016 11:37:00 +0100
Subject: [PATCH 01/31] Added new example
---
.../java/filters/CharsetResponseFilter.java | 24 --------------
.../main/java/filters/CorsResponseFilter.java | 33 -------------------
2 files changed, 57 deletions(-)
delete mode 100644 hapi-fhir-base-example-embedded-ws/src/main/java/filters/CharsetResponseFilter.java
delete mode 100644 hapi-fhir-base-example-embedded-ws/src/main/java/filters/CorsResponseFilter.java
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/filters/CharsetResponseFilter.java b/hapi-fhir-base-example-embedded-ws/src/main/java/filters/CharsetResponseFilter.java
deleted file mode 100644
index 656f7535578..00000000000
--- a/hapi-fhir-base-example-embedded-ws/src/main/java/filters/CharsetResponseFilter.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package filters;
-
-
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-
-import com.sun.jersey.spi.container.ContainerRequest;
-import com.sun.jersey.spi.container.ContainerResponse;
-import com.sun.jersey.spi.container.ContainerResponseFilter;
-
-public class CharsetResponseFilter implements ContainerResponseFilter {
-
- @Override
- public ContainerResponse filter(final ContainerRequest request,
- final ContainerResponse response) {
-
- final MediaType contentType = response.getMediaType();
- if (contentType != null) {
- response.getHttpHeaders().putSingle(HttpHeaders.CONTENT_TYPE,
- contentType.toString() + ";charset=UTF-8");
- }
- return response;
- }
-}
\ No newline at end of file
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/filters/CorsResponseFilter.java b/hapi-fhir-base-example-embedded-ws/src/main/java/filters/CorsResponseFilter.java
deleted file mode 100644
index cab06c28419..00000000000
--- a/hapi-fhir-base-example-embedded-ws/src/main/java/filters/CorsResponseFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package filters;
-
-
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
-
-import com.sun.jersey.spi.container.ContainerRequest;
-import com.sun.jersey.spi.container.ContainerResponse;
-import com.sun.jersey.spi.container.ContainerResponseFilter;
-
-public class CorsResponseFilter implements ContainerResponseFilter {
-
- @Override
- public ContainerResponse filter(final ContainerRequest req,
- final ContainerResponse contResp) {
-
- final ResponseBuilder resp = Response.fromResponse(contResp
- .getResponse());
- resp.header("Access-Control-Allow-Origin", "*").header(
- "Access-Control-Allow-Methods", "GET, POST, OPTIONS");
-
- final String reqHead = req
- .getHeaderValue("Access-Control-Request-Headers");
-
- if (null != reqHead && !reqHead.equals("")) {
- resp.header("Access-Control-Allow-Headers", reqHead);
- }
-
- contResp.setResponse(resp.build());
- return contResp;
- }
-
-}
\ No newline at end of file
From fab75f1add0bb64a39892af676079ecc8d0bd204 Mon Sep 17 00:00:00 2001
From: Jens Kristian Villadsen
Date: Wed, 9 Nov 2016 11:38:18 +0100
Subject: [PATCH 02/31] Added new example
---
hapi-fhir-base-example-embedded-ws/.classpath | 21 +++++
hapi-fhir-base-example-embedded-ws/.project | 16 +++-
hapi-fhir-base-example-embedded-ws/pom.xml | 17 ++--
.../main/java/embedded/ContextListener.java | 24 ++----
.../java/embedded/FhirRestfulServlet.java | 21 -----
.../src/main/java/embedded/ServerStartup.java | 9 ++-
.../.classpath | 21 +++++
hapi-fhir-standalone-overlay-example/.project | 31 ++++++++
.../org.eclipse.core.resources.prefs | 2 +
.../.settings/org.eclipse.m2e.core.prefs | 4 +
hapi-fhir-standalone-overlay-example/pom.xml | 79 +++++++++++++++++++
.../embedded/example/ContextListener.java | 51 ++++++++++++
.../embedded/example/FhirTesterConfig.java | 73 +++++++++++++++++
.../src/main/webapp/WEB-INF/web.xml | 22 ++++++
.../src/test/java/test/WarTester.java | 14 ++++
15 files changed, 357 insertions(+), 48 deletions(-)
create mode 100644 hapi-fhir-base-example-embedded-ws/.classpath
create mode 100644 hapi-fhir-standalone-overlay-example/.classpath
create mode 100644 hapi-fhir-standalone-overlay-example/.project
create mode 100644 hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs
create mode 100644 hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs
create mode 100644 hapi-fhir-standalone-overlay-example/pom.xml
create mode 100644 hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java
create mode 100644 hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java
create mode 100644 hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml
create mode 100644 hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java
diff --git a/hapi-fhir-base-example-embedded-ws/.classpath b/hapi-fhir-base-example-embedded-ws/.classpath
new file mode 100644
index 00000000000..9cbcd519d58
--- /dev/null
+++ b/hapi-fhir-base-example-embedded-ws/.classpath
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hapi-fhir-base-example-embedded-ws/.project b/hapi-fhir-base-example-embedded-ws/.project
index dfe12454643..350f75695ef 100644
--- a/hapi-fhir-base-example-embedded-ws/.project
+++ b/hapi-fhir-base-example-embedded-ws/.project
@@ -1,10 +1,20 @@
hapi-fhir-base-example-embedded-ws
-
+ NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
org.eclipse.m2e.core.maven2Builder
@@ -12,6 +22,10 @@
+ org.eclipse.jem.workbench.JavaEMFNature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
org.eclipse.m2e.core.maven2Nature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.wst.common.project.facet.core.nature
diff --git a/hapi-fhir-base-example-embedded-ws/pom.xml b/hapi-fhir-base-example-embedded-ws/pom.xml
index 189c558de0e..a9c68c05d86 100644
--- a/hapi-fhir-base-example-embedded-ws/pom.xml
+++ b/hapi-fhir-base-example-embedded-ws/pom.xml
@@ -26,25 +26,30 @@
com.google.inject
guice
- 3.0
+ 4.1.0
com.google.inject.extensions
guice-servlet
- 3.0
+ 4.1.0
com.sun.jersey.contribs
jersey-guice
- 1.18.1
+ 1.19.1
+
+
+ org.ebaysf.web
+ cors-filter
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 1.2
+ 2.1-SNAPSHOT
+
-
+
@@ -56,5 +61,5 @@
-
+
\ No newline at end of file
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java
index 02019b886cb..20cb9c43c7a 100644
--- a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java
+++ b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java
@@ -1,18 +1,14 @@
package embedded;
-import java.util.Map;
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableMap;
+import javax.inject.Singleton;
+
+import org.ebaysf.web.cors.CORSFilter;
+
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.servlet.GuiceServletContextListener;
-import com.sun.jersey.api.container.filter.GZIPContentEncodingFilter;
-import com.sun.jersey.api.core.ResourceConfig;
import com.sun.jersey.guice.JerseyServletModule;
-import filters.CharsetResponseFilter;
-import filters.CorsResponseFilter;
-
public class ContextListener extends GuiceServletContextListener {
@Override
@@ -22,15 +18,9 @@ public class ContextListener extends GuiceServletContextListener {
@Override
protected void configureServlets() {
- final Map params = ImmutableMap
- . builder()
- .put(ResourceConfig.PROPERTY_CONTAINER_RESPONSE_FILTERS,
- Joiner.on(";").join(
- CharsetResponseFilter.class.getName(),
- CorsResponseFilter.class.getName(),
- GZIPContentEncodingFilter.class
- .getName())).build();
- serve("/model/*").with(FhirRestfulServlet.class, params);
+ bind(CORSFilter.class).in(Singleton.class);
+ filter("/*").through(CORSFilter.class);
+ serve("/model/*").with(FhirRestfulServlet.class);
}
});
}
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java
index a7e082015b9..e197c62edda 100644
--- a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java
+++ b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java
@@ -6,8 +6,6 @@ import java.util.List;
import javax.inject.Singleton;
import ca.uhn.fhir.context.FhirContext;
-import ca.uhn.fhir.narrative.DefaultThymeleafNarrativeGenerator;
-import ca.uhn.fhir.narrative.INarrativeGenerator;
import ca.uhn.fhir.rest.server.IResourceProvider;
import ca.uhn.fhir.rest.server.RestfulServer;
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
@@ -29,29 +27,10 @@ public class FhirRestfulServlet extends RestfulServer {
*/
@Override
public void initialize() {
- /*
- * Two resource providers are defined. Each one handles a specific type
- * of resource.
- */
final List providers = new ArrayList();
providers.add(new SomeResourceProvider());
setResourceProviders(providers);
- /*
- * Use a narrative generator. This is a completely optional step, but
- * can be useful as it causes HAPI to generate narratives for resources
- * which don't otherwise have one.
- */
- final INarrativeGenerator narrativeGen = new DefaultThymeleafNarrativeGenerator();
- getFhirContext().setNarrativeGenerator(narrativeGen);
-
- /*
- * Tells HAPI to use content types which are not technically FHIR
- * compliant when a browser is detected as the requesting client. This
- * prevents browsers from trying to download resource responses instead
- * of displaying them inline which can be handy for troubleshooting.
- */
- setUseBrowserFriendlyContentTypes(true);
registerInterceptor(new ResponseHighlighterInterceptor());
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
index fb8dde91365..5cf844aad02 100644
--- a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
+++ b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
@@ -1,4 +1,5 @@
package embedded;
+
import java.util.EnumSet;
import javax.servlet.DispatcherType;
@@ -16,10 +17,12 @@ public class ServerStartup {
final Server server = new Server(9090);
final ServletContextHandler sch = new ServletContextHandler(server, "/");
sch.addEventListener(new ContextListener());
- sch.addFilter(GuiceFilter.class, "/*",
- EnumSet.of(DispatcherType.REQUEST));
+ sch.addFilter(GuiceFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
sch.addServlet(DefaultServlet.class, "/");
- server.start();
+ server.start();
+
+ // Service is now accessible through
+ // http://localhost:9090/model/Practitioner
}
}
diff --git a/hapi-fhir-standalone-overlay-example/.classpath b/hapi-fhir-standalone-overlay-example/.classpath
new file mode 100644
index 00000000000..9cbcd519d58
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/.classpath
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hapi-fhir-standalone-overlay-example/.project b/hapi-fhir-standalone-overlay-example/.project
new file mode 100644
index 00000000000..b1b0d3d01a3
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/.project
@@ -0,0 +1,31 @@
+
+
+ hapi-fhir-standalone-overlay-example
+ NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
+
+
+
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jem.workbench.JavaEMFNature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
+ org.eclipse.m2e.core.maven2Nature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.wst.common.project.facet.core.nature
+
+
diff --git a/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 00000000000..f897a7f1cb2
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/hapi-fhir-standalone-overlay-example/pom.xml b/hapi-fhir-standalone-overlay-example/pom.xml
new file mode 100644
index 00000000000..05efe37315f
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/pom.xml
@@ -0,0 +1,79 @@
+
+ 4.0.0
+
+ ca.uhn.hapi.fhir
+ hapi-fhir
+ 2.1-SNAPSHOT
+
+ hapi-fhir-standalone-overlay-example
+
+
+
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-testpage-overlay
+
+
+ fhirtester
+ true
+
+
+
+
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-testpage-overlay
+ 2.1-SNAPSHOT
+ war
+ provided
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-testpage-overlay
+ 2.1-SNAPSHOT
+ classes
+ provided
+
+
+ org.eclipse.jetty
+ jetty-servlet
+
+
+ org.eclipse.jetty
+ jetty-webapp
+
+
+ com.google.inject
+ guice
+ 4.1.0
+
+
+ com.google.inject.extensions
+ guice-servlet
+ 4.1.0
+
+
+ com.sun.jersey.contribs
+ jersey-guice
+ 1.19.1
+
+
+ org.ebaysf.web
+ cors-filter
+
+
+
+
diff --git a/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java b/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java
new file mode 100644
index 00000000000..ce89689f297
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java
@@ -0,0 +1,51 @@
+package embedded.example;
+
+import javax.inject.Singleton;
+import javax.servlet.ServletContextEvent;
+
+import org.ebaysf.web.cors.CORSFilter;
+import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
+import org.springframework.web.servlet.DispatcherServlet;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.servlet.GuiceServletContextListener;
+import com.sun.jersey.guice.JerseyServletModule;
+
+public class ContextListener extends GuiceServletContextListener {
+
+ static String username;
+ static String password;
+ static String serverAddress;
+
+ @Override
+ public void contextInitialized(ServletContextEvent servletContextEvent) {
+ super.contextInitialized(servletContextEvent);
+
+ username = servletContextEvent.getServletContext().getInitParameter("username") != null
+ ? servletContextEvent.getServletContext().getInitParameter("username")
+ : null;
+ password = servletContextEvent.getServletContext().getInitParameter("password") != null
+ ? servletContextEvent.getServletContext().getInitParameter("password")
+ : null;
+ serverAddress = servletContextEvent.getServletContext().getInitParameter("serverAddress") != null
+ ? servletContextEvent.getServletContext().getInitParameter("serverAddress")
+ : null;
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return Guice.createInjector(new JerseyServletModule() {
+
+ @Override
+ protected void configureServlets() {
+
+ AnnotationConfigWebApplicationContext webApp = new AnnotationConfigWebApplicationContext();
+ webApp.setConfigLocation(FhirTesterConfig.class.getName());
+ serve("/*").with(new DispatcherServlet(webApp));
+ bind(CORSFilter.class).in(Singleton.class);
+ filter("/*").through(CORSFilter.class);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java b/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java
new file mode 100644
index 00000000000..91a3e9f6b25
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java
@@ -0,0 +1,73 @@
+package embedded.example;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+import com.google.common.base.Strings;
+
+import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.context.FhirVersionEnum;
+import ca.uhn.fhir.rest.client.IGenericClient;
+import ca.uhn.fhir.rest.client.interceptor.BasicAuthInterceptor;
+import ca.uhn.fhir.to.FhirTesterMvcConfig;
+import ca.uhn.fhir.to.TesterConfig;
+import ca.uhn.fhir.util.ITestingUiClientFactory;
+
+//@formatter:off
+/**
+ * This spring config file configures the web testing module. It serves two
+ * purposes: 1. It imports FhirTesterMvcConfig, which is the spring config for
+ * the tester itself 2. It tells the tester which server(s) to talk to, via the
+ * testerConfig() method below
+ */
+@Configuration
+@Import(FhirTesterMvcConfig.class)
+public class FhirTesterConfig {
+
+ /**
+ * This bean tells the testing webpage which servers it should configure
+ * itself to communicate with. In this example we configure it to talk to
+ * the local server, as well as one public server. If you are creating a
+ * project to deploy somewhere else, you might choose to only put your own
+ * server's address here.
+ *
+ * Note the use of the ${serverBase} variable below. This will be replaced
+ * with the base URL as reported by the server itself. Often for a simple
+ * Tomcat (or other container) installation, this will end up being
+ * something like "http://localhost:8080/hapi-fhir-jpaserver-example". If
+ * you are deploying your server to a place with a fully qualified domain
+ * name, you might want to use that instead of using the variable.
+ */
+ @Bean
+ public TesterConfig testerConfig() {
+ final TesterConfig retVal = new TesterConfig();
+ retVal.addServer().withId("Test-Server").withFhirVersion(FhirVersionEnum.DSTU2)
+ .withBaseUrl(ContextListener.serverAddress).withName("FHIR Server Test Front End");
+
+ if (!Strings.isNullOrEmpty(ContextListener.username)) {
+ ITestingUiClientFactory clientFactory = new ITestingUiClientFactory() {
+
+ @Override
+ public IGenericClient newClient(FhirContext theFhirContext, HttpServletRequest theRequest,
+ String theServerBaseUrl) {
+ // Create a client
+ IGenericClient client = theFhirContext.newRestfulGenericClient(theServerBaseUrl);
+
+ // Register an interceptor which adds credentials
+ client.registerInterceptor(
+ new BasicAuthInterceptor(ContextListener.username, ContextListener.password));
+
+ return client;
+ }
+
+ };
+ retVal.setClientFactory(clientFactory);
+ }
+ return retVal;
+ }
+
+}
+// @formatter:on
\ No newline at end of file
diff --git a/hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml b/hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 00000000000..8c985e61d0c
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,22 @@
+
+
+
+ Guice Filter
+ com.google.inject.servlet.GuiceFilter
+
+
+ Guice Filter
+ /*
+
+
+ embedded.example.ContextListener
+
+
+
+
+ serverAddress
+ http://fhirtest.uhn.ca/baseDstu2
+
+
\ No newline at end of file
diff --git a/hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java b/hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java
new file mode 100644
index 00000000000..fffbc626c75
--- /dev/null
+++ b/hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java
@@ -0,0 +1,14 @@
+package test;
+
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.webapp.WebAppContext;
+
+public class WarTester {
+
+ public static void main(String[] args) throws Exception {
+ final Server server = new Server(8080);
+ server.setHandler(new WebAppContext("target/fhirtester.war", "/"));
+ server.start();
+ }
+
+}
From 6aba4610e6666a23326af5e3baa5108cb3051d3f Mon Sep 17 00:00:00 2001
From: Jens Kristian Villadsen
Date: Tue, 15 Nov 2016 13:41:13 +0100
Subject: [PATCH 03/31] Added initial lenient handling
---
hapi-fhir-base-example-embedded-ws/pom.xml | 11 +++++++++-
.../src/main/java/embedded/ServerStartup.java | 4 ++++
.../java/embedded/SomeResourceProvider.java | 7 +++++--
.../fhir/rest/method/SearchMethodBinding.java | 21 +++++++++++++++++--
.../fhir/rest/server/RestfulServerUtils.java | 3 +--
5 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/hapi-fhir-base-example-embedded-ws/pom.xml b/hapi-fhir-base-example-embedded-ws/pom.xml
index a9c68c05d86..12797c32c62 100644
--- a/hapi-fhir-base-example-embedded-ws/pom.xml
+++ b/hapi-fhir-base-example-embedded-ws/pom.xml
@@ -47,7 +47,16 @@
hapi-fhir-structures-dstu2
2.1-SNAPSHOT
-
+
+ org.slf4j
+ slf4j-simple
+ 1.7.21
+
+
+ org.slf4j
+ jul-to-slf4j
+ 1.7.21
+
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
index 5cf844aad02..984829826a2 100644
--- a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
+++ b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
@@ -7,6 +7,7 @@ import javax.servlet.DispatcherType;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.slf4j.bridge.SLF4JBridgeHandler;
import com.google.inject.servlet.GuiceFilter;
@@ -14,6 +15,9 @@ public class ServerStartup {
public static void main(final String[] args) throws Exception {
+ SLF4JBridgeHandler.removeHandlersForRootLogger();
+ SLF4JBridgeHandler.install();
+
final Server server = new Server(9090);
final ServletContextHandler sch = new ServletContextHandler(server, "/");
sch.addEventListener(new ContextListener());
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java
index aac9da8adb9..b1d9d80cbe0 100644
--- a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java
+++ b/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java
@@ -4,6 +4,8 @@ import java.util.List;
import org.hl7.fhir.instance.model.api.IBaseResource;
+import com.google.common.collect.Lists;
+
import ca.uhn.fhir.model.dstu2.resource.Practitioner;
import ca.uhn.fhir.model.primitive.StringDt;
import ca.uhn.fhir.rest.annotation.RequiredParam;
@@ -21,8 +23,9 @@ public class SomeResourceProvider implements IResourceProvider {
@Search()
public List findPractitionersByName(
@RequiredParam(name = Practitioner.SP_NAME) final StringDt theName) {
- throw new UnprocessableEntityException(
- "Please provide more than 4 characters for the name");
+// throw new UnprocessableEntityException(
+// "Please provide more than 4 characters for the name");
+ return Lists.newArrayList();
}
}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
index 984bdd978ab..67a952018c5 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
@@ -37,7 +37,6 @@ import org.hl7.fhir.instance.model.api.IBaseResource;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.FhirContext;
-import ca.uhn.fhir.context.FhirVersionEnum;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.model.primitive.IdDt;
import ca.uhn.fhir.model.valueset.BundleTypeEnum;
@@ -140,6 +139,21 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
@Override
public boolean incomingServerRequestMatchesMethod(RequestDetails theRequest) {
+
+ String clientPreference = theRequest.getHeader(Constants.HEADER_PREFER);
+ boolean lenientHandling = false;
+ if(clientPreference != null)
+ {
+ String[] preferences = clientPreference.split(";");
+ for( String p : preferences){
+ if("handling:lenient".equalsIgnoreCase(p))
+ {
+ lenientHandling = true;
+ break;
+ }
+ }
+ }
+
if (theRequest.getId() != null && myIdParamIndex == null) {
ourLog.trace("Method {} doesn't match because ID is not null: {}", theRequest.getId());
return false;
@@ -235,6 +249,9 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
}
}
Set keySet = theRequest.getParameters().keySet();
+ if(lenientHandling == true)
+ return true;
+
if (myAllowUnknownParams == false) {
for (String next : keySet) {
if (!methodParamsTemp.contains(next)) {
@@ -271,7 +288,7 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
}
@Override
- public IBundleProvider invokeServer(IRestfulServer theServer, RequestDetails theRequest, Object[] theMethodParams) throws InvalidRequestException, InternalErrorException {
+ public IBundleProvider invokeServer(IRestfulServer> theServer, RequestDetails theRequest, Object[] theMethodParams) throws InvalidRequestException, InternalErrorException {
if (myIdParamIndex != null) {
theMethodParams[myIdParamIndex] = theRequest.getId();
}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServerUtils.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServerUtils.java
index bf3b99d2c03..19e63ef2752 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServerUtils.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServerUtils.java
@@ -61,7 +61,6 @@ import ca.uhn.fhir.model.valueset.BundleTypeEnum;
import ca.uhn.fhir.parser.IParser;
import ca.uhn.fhir.rest.api.PreferReturnEnum;
import ca.uhn.fhir.rest.api.SummaryEnum;
-import ca.uhn.fhir.rest.client.apache.ApacheHttpRequest;
import ca.uhn.fhir.rest.client.api.IHttpRequest;
import ca.uhn.fhir.rest.method.ElementsParameter;
import ca.uhn.fhir.rest.method.RequestDetails;
@@ -378,7 +377,7 @@ public class RestfulServerUtils {
break;
}
} catch (IllegalArgumentException e) {
- ourLog.debug("Invalid {} parameger: {}", Constants.PARAM_NARRATIVE, narrative[0]);
+ ourLog.debug("Invalid {} parameter: {}", Constants.PARAM_NARRATIVE, narrative[0]);
}
}
}
From 07525db83fabad8d81b790c8624870fee93f9aaf Mon Sep 17 00:00:00 2001
From: "Waveren, Robbert van"
Date: Thu, 29 Dec 2016 12:16:32 +0100
Subject: [PATCH 04/31] correct ordering of codesystem dao types
---
.../ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoValueSetDstu3.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoValueSetDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoValueSetDstu3.java
index f2a579ad8a4..4c317e1d007 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoValueSetDstu3.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoValueSetDstu3.java
@@ -60,7 +60,7 @@ public class FhirResourceDaoValueSetDstu3 extends FhirResourceDaoDstu3
private IValidationSupport myValidationSupport;
@Autowired
- private IFhirResourceDaoCodeSystem myCodeSystemDao;
+ private IFhirResourceDaoCodeSystem myCodeSystemDao;
@Override
public ValueSet expand(IIdType theId, String theFilter, RequestDetails theRequestDetails) {
From a6a1416888514fef0e8d1a5ed3d94c589cf24cd0 Mon Sep 17 00:00:00 2001
From: "michael.i.calderero"
Date: Thu, 12 Jan 2017 14:21:30 -0600
Subject: [PATCH 05/31] Place empty values when splitting a parameter with a
certain char and here are at least two unescaped and consecutive variants of
the given char in the string.
This ensures that for example a QuantityParam with a param value of
"5.5||mg" the "mg" will not be treated as the 'system' but be treated
correctly as the 'unit' of the parameter object.
---
.../ca/uhn/fhir/rest/param/ParameterUtil.java | 4 +++-
.../fhir/rest/param/QuantityParamTest.java | 24 +++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/param/ParameterUtil.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/param/ParameterUtil.java
index 259d188cd91..1b63cfc9d2e 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/param/ParameterUtil.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/param/ParameterUtil.java
@@ -108,8 +108,10 @@ public class ParameterUtil {
} else {
if (b.length() > 0) {
retVal.add(b.toString());
- b.setLength(0);
+ } else {
+ retVal.add(null);
}
+ b.setLength(0);
}
}
} else {
diff --git a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/param/QuantityParamTest.java b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/param/QuantityParamTest.java
index bb31b06fcb0..0784dc19a0b 100644
--- a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/param/QuantityParamTest.java
+++ b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/param/QuantityParamTest.java
@@ -59,6 +59,30 @@ public class QuantityParamTest {
assertEquals("5.4||", p.getValueAsQueryToken(ourCtx));
}
+ @Test
+ public void testNoSystem() {
+ // http://hl7.org/fhir/2017Jan/search.html#quantity
+ // sample url: [baseurl]/Observation?value-quantity=5.5||mg
+ String query = "5.5||mg";
+ QuantityParam param = new QuantityParam();
+ param.setValueAsQueryToken(null, "value-quantity", null, query);
+ // Check parts. The 'mg' part should be put in the units not the system
+ // System.out.println(param);
+ assertEquals(null, param.getPrefix());
+ assertEquals("5.5", param.getValue().toPlainString());
+ assertEquals(null, param.getSystem());
+ assertEquals("mg", param.getUnits());
+
+ // Make sure we don't break on this one...
+ query = "5.5| |mg";
+ param = new QuantityParam();
+ param.setValueAsQueryToken(null, "value-quantity", null, query);
+ // System.out.println(param);
+ assertEquals(null, param.getPrefix());
+ assertEquals("5.5", param.getValue().toPlainString());
+ assertEquals(null, param.getSystem());
+ assertEquals("mg", param.getUnits());
+ }
@AfterClass
public static void afterClassClearContext() {
From c1e6f82385056ae433d3157025cf0effeca5ffe7 Mon Sep 17 00:00:00 2001
From: Jenni Syed
Date: Fri, 27 Jan 2017 17:43:07 -0600
Subject: [PATCH 06/31] Fix #546 CapturingInterceptor will now buffer response
if the entity is not repeatable.
---
.../interceptor/CapturingInterceptor.java | 24 ++-
.../rest/client/CapturingInterceptorTest.java | 147 ++++++++++++++++++
2 files changed, 169 insertions(+), 2 deletions(-)
create mode 100644 hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/client/CapturingInterceptorTest.java
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/client/interceptor/CapturingInterceptor.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/client/interceptor/CapturingInterceptor.java
index f7e9e949af8..a3e02c64ea2 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/client/interceptor/CapturingInterceptor.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/client/interceptor/CapturingInterceptor.java
@@ -23,6 +23,11 @@ package ca.uhn.fhir.rest.client.interceptor;
import ca.uhn.fhir.rest.client.IClientInterceptor;
import ca.uhn.fhir.rest.client.api.IHttpRequest;
import ca.uhn.fhir.rest.client.api.IHttpResponse;
+import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+
+import java.io.IOException;
/**
* Client interceptor which simply captures request and response objects and stores them so that they can be inspected after a client
@@ -55,8 +60,23 @@ public class CapturingInterceptor implements IClientInterceptor {
}
@Override
- public void interceptResponse(IHttpResponse theRequest) {
- myLastResponse = theRequest;
+ public void interceptResponse(IHttpResponse theResponse) {
+ //Buffer the reponse to avoid errors when content has already been read and the entity is not repeatable
+ try {
+ if(theResponse.getResponse() instanceof HttpResponse) {
+ HttpEntity entity = ((HttpResponse) theResponse.getResponse()).getEntity();
+ if( entity != null && !entity.isRepeatable()){
+ theResponse.bufferEntity();
+ }
+ } else {
+ theResponse.bufferEntity();
+ }
+ } catch (IOException e) {
+ throw new InternalErrorException("Unable to buffer the entity for capturing", e);
+ }
+
+
+ myLastResponse = theResponse;
}
}
diff --git a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/client/CapturingInterceptorTest.java b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/client/CapturingInterceptorTest.java
new file mode 100644
index 00000000000..7e297f7962a
--- /dev/null
+++ b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/client/CapturingInterceptorTest.java
@@ -0,0 +1,147 @@
+package ca.uhn.fhir.rest.client;
+
+import ca.uhn.fhir.rest.client.apache.ApacheHttpResponse;
+import ca.uhn.fhir.rest.client.api.IHttpRequest;
+import ca.uhn.fhir.rest.client.api.IHttpResponse;
+import ca.uhn.fhir.rest.client.interceptor.CapturingInterceptor;
+import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
+import org.apache.commons.io.IOUtils;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.HttpVersion;
+import org.apache.http.entity.BasicHttpEntity;
+import org.apache.http.entity.InputStreamEntity;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.message.BasicHttpResponse;
+import org.junit.After;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Spy;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.*;
+
+
+public class CapturingInterceptorTest {
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+
+ @Test
+ public void testRequest() {
+ IHttpRequest expectedRequest = mock(IHttpRequest.class);
+
+ CapturingInterceptor interceptor = new CapturingInterceptor();
+ interceptor.interceptRequest(expectedRequest);
+
+ assertEquals(expectedRequest, interceptor.getLastRequest());
+ }
+
+ @Test
+ public void testResponse() throws Exception {
+ IHttpResponse expectedResponse = mock(IHttpResponse.class);
+ doNothing().when(expectedResponse).bufferEntity();
+
+ CapturingInterceptor interceptor = new CapturingInterceptor();
+ interceptor.interceptResponse(expectedResponse);
+
+ assertEquals(expectedResponse, interceptor.getLastResponse());
+ verify(expectedResponse).bufferEntity();
+ }
+
+ @Test
+ public void testResponseException() throws Exception {
+ IHttpResponse response = mock(IHttpResponse.class);
+ IOException expectedCause = new IOException();
+ doThrow(expectedCause).when(response).bufferEntity();
+
+ thrown.expect(InternalErrorException.class);
+ thrown.expectMessage("Unable to buffer the entity for capturing");
+ thrown.expectCause(equalTo(expectedCause));
+
+ CapturingInterceptor interceptor = new CapturingInterceptor();
+ interceptor.interceptResponse(response);
+ }
+
+ @Test
+ public void testResponseBufferApache() throws Exception{
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
+ response.setEntity(new InputStreamEntity(IOUtils.toInputStream("Some content", Charset.defaultCharset())));
+ IHttpResponse expectedResponse = spy(new ApacheHttpResponse(response));
+
+ CapturingInterceptor interceptor = new CapturingInterceptor();
+ interceptor.interceptResponse(expectedResponse);
+ IHttpResponse actualResponse = interceptor.getLastResponse();
+
+ assertEquals(expectedResponse, actualResponse);
+ assertThat("Some content", equalTo(IOUtils.toString(actualResponse.createReader())));
+ verify(expectedResponse).bufferEntity();
+
+ //A second call should not throw an exception (InpuStreamEntity is not repeatable)
+ IOUtils.toString(actualResponse.createReader());
+ }
+
+ @Test
+ public void testResponseRepeatable() throws Exception{
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
+ response.setEntity(new StringEntity("Some content"));
+ IHttpResponse expectedResponse = spy(new ApacheHttpResponse(response));
+
+ CapturingInterceptor interceptor = new CapturingInterceptor();
+ interceptor.interceptResponse(expectedResponse);
+ IHttpResponse actualResponse = interceptor.getLastResponse();
+
+ assertEquals(expectedResponse, actualResponse);
+ assertThat("Some content", equalTo(IOUtils.toString(actualResponse.createReader())));
+ verify(expectedResponse, times(0)).bufferEntity();
+
+ //A second call should not throw an exception (StringEntity is repeatable)
+ IOUtils.toString(actualResponse.createReader());
+ }
+
+ @Test
+ public void testResponseBufferOther() throws Exception {
+ Object response = mock(Object.class);
+ IHttpResponse expectedResponse = mock(IHttpResponse.class);
+ when(expectedResponse.getResponse()).thenReturn(response);
+ doNothing().when(expectedResponse).bufferEntity();
+
+ CapturingInterceptor interceptor = new CapturingInterceptor();
+ interceptor.interceptResponse(expectedResponse);
+ IHttpResponse actualResponse = interceptor.getLastResponse();
+
+ assertEquals(expectedResponse, actualResponse);
+ verify(expectedResponse).bufferEntity();
+ }
+
+ @Test
+ public void testClear(){
+ IHttpRequest expectedRequest = mock(IHttpRequest.class);
+ IHttpResponse expectedResponse = mock(IHttpResponse.class);
+ Object response = mock(Object.class);
+ when(expectedResponse.getResponse()).thenReturn(response);
+
+ CapturingInterceptor interceptor = new CapturingInterceptor();
+ interceptor.interceptResponse(expectedResponse);
+ interceptor.interceptRequest(expectedRequest);
+
+ assertEquals(expectedRequest, interceptor.getLastRequest());
+ assertEquals(expectedResponse, interceptor.getLastResponse());
+
+ interceptor.clear();
+
+ assertNull(interceptor.getLastRequest());
+ assertNull(interceptor.getLastResponse());
+ }
+
+}
From 5550a07ec112ee875c9cdb30616cce142ab01911 Mon Sep 17 00:00:00 2001
From: sekaijin
Date: Sat, 28 Jan 2017 16:03:53 +0100
Subject: [PATCH 07/31] Update .gitignore
ignore eclipse hidden files and folders
---
.gitignore | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/.gitignore b/.gitignore
index 7c4ffb73ca9..09734b19d32 100644
--- a/.gitignore
+++ b/.gitignore
@@ -137,9 +137,11 @@ local.properties
.cproject
# JDT-specific (Eclipse Java Development Tools)
-#.project
-#.settings/
-#.classpath
+**/.settings
+**/.target
+**/.project
+**/.classpath
+
# PDT-specific
.buildpath
From 23784c1619dedf59aa590e1e94cbb5996936f4c9 Mon Sep 17 00:00:00 2001
From: sekaijin
Date: Sat, 28 Jan 2017 17:13:47 +0100
Subject: [PATCH 08/31] remove .settings .project .classpath file of eclipse
---
.classpath | 5 -
.project | 28 --
examples/.classpath | 27 --
examples/.project | 23 -
.../org.eclipse.core.resources.prefs | 3 -
examples/.settings/org.eclipse.jdt.core.prefs | 376 ----------------
examples/.settings/org.eclipse.jdt.ui.prefs | 3 -
examples/.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-deployable-pom/.project | 17 -
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-android/.classpath | 28 --
hapi-fhir-android/.project | 23 -
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-base-example-embedded-ws/.project | 17 -
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-base-test-mindeps-client/.classpath | 16 -
hapi-fhir-base-test-mindeps-client/.project | 23 -
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
hapi-fhir-base-test-mindeps-server/.classpath | 21 -
hapi-fhir-base-test-mindeps-server/.project | 29 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
hapi-fhir-base/.classpath | 37 --
hapi-fhir-base/.project | 31 --
.../org.eclipse.core.resources.prefs | 6 -
.../.settings/org.eclipse.jdt.core.prefs | 412 ------------------
.../.settings/org.eclipse.jdt.ui.prefs | 3 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 7 -
....eclipse.wst.common.project.facet.core.xml | 5 -
.../org.eclipse.wst.validation.prefs | 2 -
hapi-fhir-cli/.classpath | 9 -
hapi-fhir-cli/.project | 34 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 309 -------------
.../.settings/org.eclipse.jdt.ui.prefs | 3 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
.../org.eclipse.wst.validation.prefs | 2 -
hapi-fhir-cli/hapi-fhir-cli-app/.classpath | 37 --
hapi-fhir-cli/hapi-fhir-cli-app/.project | 29 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
.../hapi-fhir-cli-jpaserver/.project | 29 --
hapi-fhir-client-okhttp/.classpath | 32 --
hapi-fhir-client-okhttp/.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-dist/.project | 17 -
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-examples-uploader/.classpath | 22 -
hapi-fhir-examples-uploader/.project | 36 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
hapi-fhir-fhirpath/.classpath | 28 --
hapi-fhir-fhirpath/.project | 36 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
hapi-fhir-jacoco/.project | 17 -
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-jaxrsserver-base/.classpath | 28 --
hapi-fhir-jaxrsserver-base/.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-jaxrsserver-example/.classpath | 28 --
hapi-fhir-jaxrsserver-example/.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-jpaserver-base/.classpath | 35 --
hapi-fhir-jpaserver-base/.project | 32 --
.../org.eclipse.core.resources.prefs | 6 -
.../.settings/org.eclipse.core.runtime.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 101 -----
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 10 -
....eclipse.wst.common.project.facet.core.xml | 5 -
.../org.eclipse.wst.validation.prefs | 2 -
hapi-fhir-jpaserver-example/.classpath | 29 --
hapi-fhir-jpaserver-example/.project | 42 --
.../.settings/.jsdtscope | 13 -
.../org.eclipse.core.resources.prefs | 4 -
.../.settings/org.eclipse.jdt.core.prefs | 8 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 34 --
....eclipse.wst.common.project.facet.core.xml | 4 -
...rg.eclipse.wst.jsdt.ui.superType.container | 1 -
.../org.eclipse.wst.jsdt.ui.superType.name | 1 -
.../org.eclipse.wst.validation.prefs | 2 -
.../.classpath | 36 --
.../.gitignore | 128 ------
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-jpaserver-uhnfhirtest/.classpath | 41 --
hapi-fhir-jpaserver-uhnfhirtest/.project | 42 --
.../.settings/.jsdtscope | 13 -
.../org.eclipse.core.resources.prefs | 6 -
.../.settings/org.eclipse.jdt.core.prefs | 13 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 35 --
....eclipse.wst.common.project.facet.core.xml | 7 -
...rg.eclipse.wst.jsdt.ui.superType.container | 1 -
.../org.eclipse.wst.jsdt.ui.superType.name | 1 -
.../org.eclipse.wst.validation.prefs | 2 -
.../auth-server/.classpath | 26 --
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-narrativegenerator/.classpath | 33 --
hapi-fhir-narrativegenerator/.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-oauth2/.classpath | 27 --
hapi-fhir-oauth2/.project | 23 -
.../org.eclipse.core.resources.prefs | 5 -
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-osgi-core/.classpath | 33 --
hapi-fhir-osgi-core/.project | 39 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
hapi-fhir-structures-dstu/.classpath | 40 --
hapi-fhir-structures-dstu/.project | 31 --
.../org.eclipse.core.resources.prefs | 7 -
.../.settings/org.eclipse.jdt.core.prefs | 8 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 10 -
....eclipse.wst.common.project.facet.core.xml | 5 -
.../org.eclipse.wst.validation.prefs | 2 -
hapi-fhir-structures-dstu2.1/.classpath | 30 --
hapi-fhir-structures-dstu2.1/.project | 29 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
hapi-fhir-structures-dstu2/.classpath | 40 --
hapi-fhir-structures-dstu2/.project | 36 --
.../org.eclipse.core.resources.prefs | 6 -
.../.settings/org.eclipse.jdt.core.prefs | 8 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 9 -
....eclipse.wst.common.project.facet.core.xml | 5 -
.../org.eclipse.wst.validation.prefs | 2 -
hapi-fhir-structures-dstu3/.classpath | 30 --
hapi-fhir-structures-dstu3/.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 95 ----
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-structures-hl7org-dstu2/.classpath | 30 --
hapi-fhir-structures-hl7org-dstu2/.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 386 ----------------
.../.settings/org.eclipse.jdt.ui.prefs | 3 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 6 -
....eclipse.wst.common.project.facet.core.xml | 5 -
.../org.eclipse.wst.validation.prefs | 10 -
hapi-fhir-testpage-interceptor/.classpath | 26 --
hapi-fhir-testpage-interceptor/.project | 23 -
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-fhir-testpage-overlay/.classpath | 38 --
hapi-fhir-testpage-overlay/.project | 42 --
.../.settings/.jsdtscope | 13 -
.../org.eclipse.core.resources.prefs | 6 -
.../.settings/org.eclipse.jdt.core.prefs | 8 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 30 --
....eclipse.wst.common.project.facet.core.xml | 7 -
.../.settings/org.eclipse.wst.jsdt.core.prefs | 50 ---
...rg.eclipse.wst.jsdt.ui.superType.container | 1 -
.../org.eclipse.wst.jsdt.ui.superType.name | 1 -
.../org.eclipse.wst.validation.prefs | 2 -
.../jpaserver-example-with-custom/.classpath | 36 --
.../jpaserver-example-with-custom/.project | 23 -
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../simple-server/.settings/.jsdtscope | 13 -
.../org.eclipse.core.resources.prefs | 3 -
.../.settings/org.eclipse.jdt.core.prefs | 8 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 9 -
....eclipse.wst.common.project.facet.core.xml | 7 -
...rg.eclipse.wst.jsdt.ui.superType.container | 1 -
.../org.eclipse.wst.jsdt.ui.superType.name | 1 -
.../org.eclipse.wst.validation.prefs | 2 -
.../org.eclipse.core.resources.prefs | 3 -
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../.classpath | 10 -
.../.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../.classpath | 10 -
hapi-fhir-validation-resources-dstu2/.project | 31 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 5 -
....eclipse.wst.common.project.facet.core.xml | 5 -
.../.classpath | 33 --
hapi-fhir-validation-resources-dstu3/.project | 29 --
.../org.eclipse.core.resources.prefs | 2 -
.../.settings/org.eclipse.jdt.core.prefs | 7 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
....eclipse.wst.common.project.facet.core.xml | 4 -
hapi-tinder-plugin/.classpath | 40 --
hapi-tinder-plugin/.project | 36 --
.../org.eclipse.core.resources.prefs | 6 -
.../.settings/org.eclipse.jdt.core.prefs | 402 -----------------
.../.settings/org.eclipse.jdt.ui.prefs | 3 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
hapi-tinder-test/.classpath | 29 --
hapi-tinder-test/.project | 23 -
.../org.eclipse.core.resources.prefs | 5 -
.../.settings/org.eclipse.jdt.core.prefs | 13 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
restful-server-example-test/.classpath | 27 --
restful-server-example-test/.project | 23 -
.../org.eclipse.core.resources.prefs | 3 -
.../.settings/org.eclipse.jdt.core.prefs | 5 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
restful-server-example/.classpath | 41 --
restful-server-example/.settings/.jsdtscope | 13 -
.../org.eclipse.core.resources.prefs | 3 -
.../.settings/org.eclipse.jdt.core.prefs | 8 -
.../.settings/org.eclipse.m2e.core.prefs | 4 -
.../org.eclipse.wst.common.component | 21 -
....eclipse.wst.common.project.facet.core.xml | 7 -
...rg.eclipse.wst.jsdt.ui.superType.container | 1 -
.../org.eclipse.wst.jsdt.ui.superType.name | 1 -
.../org.eclipse.wst.validation.prefs | 2 -
251 files changed, 5264 deletions(-)
delete mode 100644 .classpath
delete mode 100644 .project
delete mode 100644 examples/.classpath
delete mode 100644 examples/.project
delete mode 100644 examples/.settings/org.eclipse.core.resources.prefs
delete mode 100644 examples/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 examples/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 examples/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-deployable-pom/.project
delete mode 100644 hapi-deployable-pom/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-deployable-pom/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-android/.classpath
delete mode 100644 hapi-fhir-android/.project
delete mode 100644 hapi-fhir-android/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-android/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-android/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-base-example-embedded-ws/.project
delete mode 100644 hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-base-test-mindeps-client/.classpath
delete mode 100644 hapi-fhir-base-test-mindeps-client/.project
delete mode 100644 hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-base-test-mindeps-server/.classpath
delete mode 100644 hapi-fhir-base-test-mindeps-server/.project
delete mode 100644 hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-base/.classpath
delete mode 100644 hapi-fhir-base/.project
delete mode 100644 hapi-fhir-base/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-base/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-base/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 hapi-fhir-base/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-base/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-base/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-base/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-cli/.classpath
delete mode 100644 hapi-fhir-cli/.project
delete mode 100644 hapi-fhir-cli/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-cli/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-cli/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 hapi-fhir-cli/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-cli/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-cli/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-cli/hapi-fhir-cli-app/.classpath
delete mode 100644 hapi-fhir-cli/hapi-fhir-cli-app/.project
delete mode 100644 hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-cli/hapi-fhir-cli-jpaserver/.project
delete mode 100644 hapi-fhir-client-okhttp/.classpath
delete mode 100644 hapi-fhir-client-okhttp/.project
delete mode 100644 hapi-fhir-client-okhttp/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-client-okhttp/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-dist/.project
delete mode 100644 hapi-fhir-dist/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-dist/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-examples-uploader/.classpath
delete mode 100644 hapi-fhir-examples-uploader/.project
delete mode 100644 hapi-fhir-examples-uploader/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-examples-uploader/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-examples-uploader/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-examples-uploader/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-fhirpath/.classpath
delete mode 100644 hapi-fhir-fhirpath/.project
delete mode 100644 hapi-fhir-fhirpath/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-fhirpath/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-fhirpath/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-fhirpath/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-jacoco/.project
delete mode 100644 hapi-fhir-jacoco/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-jacoco/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-jaxrsserver-base/.classpath
delete mode 100644 hapi-fhir-jaxrsserver-base/.project
delete mode 100644 hapi-fhir-jaxrsserver-base/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-jaxrsserver-base/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-jaxrsserver-example/.classpath
delete mode 100644 hapi-fhir-jaxrsserver-example/.project
delete mode 100644 hapi-fhir-jaxrsserver-example/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-jaxrsserver-example/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-jpaserver-base/.classpath
delete mode 100644 hapi-fhir-jpaserver-base/.project
delete mode 100644 hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-jpaserver-base/.settings/org.eclipse.core.runtime.prefs
delete mode 100644 hapi-fhir-jpaserver-base/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-jpaserver-base/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-jpaserver-example/.classpath
delete mode 100644 hapi-fhir-jpaserver-example/.project
delete mode 100644 hapi-fhir-jpaserver-example/.settings/.jsdtscope
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.container
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.name
delete mode 100644 hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.classpath
delete mode 100644 hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.gitignore
delete mode 100644 hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.classpath
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.project
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/.jsdtscope
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.container
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.name
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/auth-server/.classpath
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-narrativegenerator/.classpath
delete mode 100644 hapi-fhir-narrativegenerator/.project
delete mode 100644 hapi-fhir-narrativegenerator/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-narrativegenerator/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-oauth2/.classpath
delete mode 100644 hapi-fhir-oauth2/.project
delete mode 100644 hapi-fhir-oauth2/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-oauth2/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-oauth2/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-osgi-core/.classpath
delete mode 100644 hapi-fhir-osgi-core/.project
delete mode 100644 hapi-fhir-osgi-core/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-osgi-core/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-osgi-core/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-osgi-core/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-structures-dstu/.classpath
delete mode 100644 hapi-fhir-structures-dstu/.project
delete mode 100644 hapi-fhir-structures-dstu/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-structures-dstu/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-structures-dstu/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-structures-dstu/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-structures-dstu2.1/.classpath
delete mode 100644 hapi-fhir-structures-dstu2.1/.project
delete mode 100644 hapi-fhir-structures-dstu2.1/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-structures-dstu2.1/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-structures-dstu2.1/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-structures-dstu2.1/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-structures-dstu2/.classpath
delete mode 100644 hapi-fhir-structures-dstu2/.project
delete mode 100644 hapi-fhir-structures-dstu2/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-structures-dstu2/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-structures-dstu2/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-structures-dstu3/.classpath
delete mode 100644 hapi-fhir-structures-dstu3/.project
delete mode 100644 hapi-fhir-structures-dstu3/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-structures-dstu3/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-structures-dstu3/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.classpath
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.project
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-testpage-interceptor/.classpath
delete mode 100644 hapi-fhir-testpage-interceptor/.project
delete mode 100644 hapi-fhir-testpage-interceptor/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-testpage-interceptor/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-testpage-interceptor/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-testpage-overlay/.classpath
delete mode 100644 hapi-fhir-testpage-overlay/.project
delete mode 100644 hapi-fhir-testpage-overlay/.settings/.jsdtscope
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.core.prefs
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.container
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.name
delete mode 100644 hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-tutorial/jpaserver-example-with-custom/.classpath
delete mode 100644 hapi-fhir-tutorial/jpaserver-example-with-custom/.project
delete mode 100644 hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/.jsdtscope
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.container
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.name
delete mode 100644 hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.validation.prefs
delete mode 100644 hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu2.1/.classpath
delete mode 100644 hapi-fhir-validation-resources-dstu2.1/.project
delete mode 100644 hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu2/.classpath
delete mode 100644 hapi-fhir-validation-resources-dstu2/.project
delete mode 100644 hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.component
delete mode 100644 hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-fhir-validation-resources-dstu3/.classpath
delete mode 100644 hapi-fhir-validation-resources-dstu3/.project
delete mode 100644 hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 hapi-tinder-plugin/.classpath
delete mode 100644 hapi-tinder-plugin/.project
delete mode 100644 hapi-tinder-plugin/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-tinder-plugin/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-tinder-plugin/.settings/org.eclipse.jdt.ui.prefs
delete mode 100644 hapi-tinder-plugin/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 hapi-tinder-test/.classpath
delete mode 100644 hapi-tinder-test/.project
delete mode 100644 hapi-tinder-test/.settings/org.eclipse.core.resources.prefs
delete mode 100644 hapi-tinder-test/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 hapi-tinder-test/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 restful-server-example-test/.classpath
delete mode 100644 restful-server-example-test/.project
delete mode 100644 restful-server-example-test/.settings/org.eclipse.core.resources.prefs
delete mode 100644 restful-server-example-test/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 restful-server-example-test/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 restful-server-example/.classpath
delete mode 100644 restful-server-example/.settings/.jsdtscope
delete mode 100644 restful-server-example/.settings/org.eclipse.core.resources.prefs
delete mode 100644 restful-server-example/.settings/org.eclipse.jdt.core.prefs
delete mode 100644 restful-server-example/.settings/org.eclipse.m2e.core.prefs
delete mode 100644 restful-server-example/.settings/org.eclipse.wst.common.component
delete mode 100644 restful-server-example/.settings/org.eclipse.wst.common.project.facet.core.xml
delete mode 100644 restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.container
delete mode 100644 restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.name
delete mode 100644 restful-server-example/.settings/org.eclipse.wst.validation.prefs
diff --git a/.classpath b/.classpath
deleted file mode 100644
index 8778ddd58a3..00000000000
--- a/.classpath
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/.project b/.project
deleted file mode 100644
index e65da4447c0..00000000000
--- a/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- hapi-fhir
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/org.eclipse.m2e.core.maven2Builder.launch
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/examples/.classpath b/examples/.classpath
deleted file mode 100644
index ce99802b301..00000000000
--- a/examples/.classpath
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/.project b/examples/.project
deleted file mode 100644
index a0b8364c52b..00000000000
--- a/examples/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- hapi-fhir-base-examples
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/examples/.settings/org.eclipse.core.resources.prefs b/examples/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index e9441bb123e..00000000000
--- a/examples/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding/=UTF-8
diff --git a/examples/.settings/org.eclipse.jdt.core.prefs b/examples/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1d5aa99261d..00000000000
--- a/examples/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,376 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/examples/.settings/org.eclipse.jdt.ui.prefs b/examples/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 2c0c25e8a13..00000000000
--- a/examples/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-formatter_profile=_hapi-examples
-formatter_settings_version=12
diff --git a/examples/.settings/org.eclipse.m2e.core.prefs b/examples/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/examples/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-deployable-pom/.project b/hapi-deployable-pom/.project
deleted file mode 100644
index 4b06e2a7715..00000000000
--- a/hapi-deployable-pom/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- hapi-deployable-pom
-
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-deployable-pom/.settings/org.eclipse.core.resources.prefs b/hapi-deployable-pom/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-deployable-pom/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-deployable-pom/.settings/org.eclipse.m2e.core.prefs b/hapi-deployable-pom/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-deployable-pom/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-android/.classpath b/hapi-fhir-android/.classpath
deleted file mode 100644
index 0c4c687478f..00000000000
--- a/hapi-fhir-android/.classpath
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-android/.project b/hapi-fhir-android/.project
deleted file mode 100644
index 7b7eb9cf3af..00000000000
--- a/hapi-fhir-android/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- hapi-fhir-android
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-fhir-android/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-android/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-android/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-android/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-android/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60105c1b951..00000000000
--- a/hapi-fhir-android/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-android/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-android/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-android/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-base-example-embedded-ws/.project b/hapi-fhir-base-example-embedded-ws/.project
deleted file mode 100644
index dfe12454643..00000000000
--- a/hapi-fhir-base-example-embedded-ws/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- hapi-fhir-base-example-embedded-ws
-
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-base-test-mindeps-client/.classpath b/hapi-fhir-base-test-mindeps-client/.classpath
deleted file mode 100644
index d1d9fe67b77..00000000000
--- a/hapi-fhir-base-test-mindeps-client/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-base-test-mindeps-client/.project b/hapi-fhir-base-test-mindeps-client/.project
deleted file mode 100644
index 9cf5c48e336..00000000000
--- a/hapi-fhir-base-test-mindeps-client/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- hapi-fhir-base-testmindeps-client
-
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de363afa..00000000000
--- a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bc0009a4558..00000000000
--- a/hapi-fhir-base-test-mindeps-client/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-base-test-mindeps-server/.classpath b/hapi-fhir-base-test-mindeps-server/.classpath
deleted file mode 100644
index f8457d21055..00000000000
--- a/hapi-fhir-base-test-mindeps-server/.classpath
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-base-test-mindeps-server/.project b/hapi-fhir-base-test-mindeps-server/.project
deleted file mode 100644
index 96459364cdd..00000000000
--- a/hapi-fhir-base-test-mindeps-server/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- hapi-fhir-base-testmindeps-server
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de363afa..00000000000
--- a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bc0009a4558..00000000000
--- a/hapi-fhir-base-test-mindeps-server/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-base/.classpath b/hapi-fhir-base/.classpath
deleted file mode 100644
index d0b602b45e1..00000000000
--- a/hapi-fhir-base/.classpath
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-base/.project b/hapi-fhir-base/.project
deleted file mode 100644
index 7afe06363c3..00000000000
--- a/hapi-fhir-base/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-base
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-base/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-base/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf999564..00000000000
--- a/hapi-fhir-base/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-base/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-base/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 671be987f05..00000000000
--- a/hapi-fhir-base/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,412 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=false
-org.eclipse.jdt.core.formatter.join_wrapped_lines=false
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/hapi-fhir-base/.settings/org.eclipse.jdt.ui.prefs b/hapi-fhir-base/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 5382e703e79..00000000000
--- a/hapi-fhir-base/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-formatter_profile=_James
-formatter_settings_version=12
diff --git a/hapi-fhir-base/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-base/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-base/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-base/.settings/org.eclipse.wst.common.component b/hapi-fhir-base/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index eaef2e5526f..00000000000
--- a/hapi-fhir-base/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/hapi-fhir-base/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-base/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 5c9bd7532ab..00000000000
--- a/hapi-fhir-base/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/hapi-fhir-base/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-base/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-base/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-cli/.classpath b/hapi-fhir-cli/.classpath
deleted file mode 100644
index 59a866bb4a2..00000000000
--- a/hapi-fhir-cli/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-cli/.project b/hapi-fhir-cli/.project
deleted file mode 100644
index 477112cbcd2..00000000000
--- a/hapi-fhir-cli/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- hapi-fhir-cli
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-cli/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-cli/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-cli/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-cli/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-cli/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c33a86fe558..00000000000
--- a/hapi-fhir-cli/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,309 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=false
-org.eclipse.jdt.core.formatter.join_wrapped_lines=false
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=250
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/hapi-fhir-cli/.settings/org.eclipse.jdt.ui.prefs b/hapi-fhir-cli/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 5382e703e79..00000000000
--- a/hapi-fhir-cli/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-formatter_profile=_James
-formatter_settings_version=12
diff --git a/hapi-fhir-cli/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-cli/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-cli/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-cli/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-cli/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bcfc3250338..00000000000
--- a/hapi-fhir-cli/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-cli/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-cli/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-cli/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/.classpath b/hapi-fhir-cli/hapi-fhir-cli-app/.classpath
deleted file mode 100644
index 3e3200180cf..00000000000
--- a/hapi-fhir-cli/hapi-fhir-cli-app/.classpath
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/.project b/hapi-fhir-cli/hapi-fhir-cli-app/.project
deleted file mode 100644
index b149474ada9..00000000000
--- a/hapi-fhir-cli/hapi-fhir-cli-app/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- hapi-fhir-cli-app
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de363afa..00000000000
--- a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bc0009a4558..00000000000
--- a/hapi-fhir-cli/hapi-fhir-cli-app/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-cli/hapi-fhir-cli-jpaserver/.project b/hapi-fhir-cli/hapi-fhir-cli-jpaserver/.project
deleted file mode 100644
index a977994279a..00000000000
--- a/hapi-fhir-cli/hapi-fhir-cli-jpaserver/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- hapi-fhir-cli-jpaserver
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-client-okhttp/.classpath b/hapi-fhir-client-okhttp/.classpath
deleted file mode 100644
index a5f3e22af20..00000000000
--- a/hapi-fhir-client-okhttp/.classpath
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-client-okhttp/.project b/hapi-fhir-client-okhttp/.project
deleted file mode 100644
index 43baea7b073..00000000000
--- a/hapi-fhir-client-okhttp/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-client-okhttp
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-client-okhttp/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-client-okhttp/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-client-okhttp/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-client-okhttp/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-client-okhttp/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-client-okhttp/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-dist/.project b/hapi-fhir-dist/.project
deleted file mode 100644
index 9caf49ad67a..00000000000
--- a/hapi-fhir-dist/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- hapi-fhir-dist
-
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-fhir-dist/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-dist/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-dist/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-dist/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-dist/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-dist/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-examples-uploader/.classpath b/hapi-fhir-examples-uploader/.classpath
deleted file mode 100644
index 575513f8d94..00000000000
--- a/hapi-fhir-examples-uploader/.classpath
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-examples-uploader/.project b/hapi-fhir-examples-uploader/.project
deleted file mode 100644
index 0e84f507392..00000000000
--- a/hapi-fhir-examples-uploader/.project
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
- hapi-fhir-examples-uploader
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-examples-uploader/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-examples-uploader/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-examples-uploader/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-examples-uploader/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-examples-uploader/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de363afa..00000000000
--- a/hapi-fhir-examples-uploader/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-examples-uploader/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-examples-uploader/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-examples-uploader/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-examples-uploader/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-examples-uploader/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bc0009a4558..00000000000
--- a/hapi-fhir-examples-uploader/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-fhirpath/.classpath b/hapi-fhir-fhirpath/.classpath
deleted file mode 100644
index f62d54b7299..00000000000
--- a/hapi-fhir-fhirpath/.classpath
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-fhirpath/.project b/hapi-fhir-fhirpath/.project
deleted file mode 100644
index c4ab918a5d8..00000000000
--- a/hapi-fhir-fhirpath/.project
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
- hapi-fhir-fhirpath
-
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-fhirpath/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-fhirpath/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-fhirpath/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-fhirpath/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-fhirpath/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de363afa..00000000000
--- a/hapi-fhir-fhirpath/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-fhirpath/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-fhirpath/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-fhirpath/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-fhirpath/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-fhirpath/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bc0009a4558..00000000000
--- a/hapi-fhir-fhirpath/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-jacoco/.project b/hapi-fhir-jacoco/.project
deleted file mode 100644
index cd50b7a2591..00000000000
--- a/hapi-fhir-jacoco/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- hapi-fhir-jacoco
-
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-fhir-jacoco/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jacoco/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-jacoco/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-jacoco/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jacoco/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jacoco/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-jaxrsserver-base/.classpath b/hapi-fhir-jaxrsserver-base/.classpath
deleted file mode 100644
index 1f90b7b1373..00000000000
--- a/hapi-fhir-jaxrsserver-base/.classpath
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jaxrsserver-base/.project b/hapi-fhir-jaxrsserver-base/.project
deleted file mode 100644
index 6f1154c4ab3..00000000000
--- a/hapi-fhir-jaxrsserver-base/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-jaxrsserver-base
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-jaxrsserver-example/.classpath b/hapi-fhir-jaxrsserver-example/.classpath
deleted file mode 100644
index 1f90b7b1373..00000000000
--- a/hapi-fhir-jaxrsserver-example/.classpath
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jaxrsserver-example/.project b/hapi-fhir-jaxrsserver-example/.project
deleted file mode 100644
index dd69a10a8c9..00000000000
--- a/hapi-fhir-jaxrsserver-example/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-jaxrsserver-example
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-jpaserver-base/.classpath b/hapi-fhir-jpaserver-base/.classpath
deleted file mode 100644
index 5bd66fbcc59..00000000000
--- a/hapi-fhir-jpaserver-base/.classpath
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-base/.project b/hapi-fhir-jpaserver-base/.project
deleted file mode 100644
index d75b8f25423..00000000000
--- a/hapi-fhir-jpaserver-base/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
- hapi-fhir-jpaserver-base
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
- hapi-fhir-base
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf999564..00000000000
--- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.runtime.prefs b/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 5a0ad22d2a7..00000000000
--- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jpaserver-base/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8028fda058d..00000000000
--- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,101 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jpaserver-base/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.component b/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 2b85b7b09b0..00000000000
--- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 5c9bd7532ab..00000000000
--- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-jpaserver-example/.classpath b/hapi-fhir-jpaserver-example/.classpath
deleted file mode 100644
index 2394f84cc44..00000000000
--- a/hapi-fhir-jpaserver-example/.classpath
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-example/.project b/hapi-fhir-jpaserver-example/.project
deleted file mode 100644
index 3151455a48d..00000000000
--- a/hapi-fhir-jpaserver-example/.project
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- hapi-fhir-jpaserver-example
-
-
-
-
-
- org.eclipse.wst.jsdt.core.javascriptValidator
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.wst.jsdt.core.jsNature
-
-
diff --git a/hapi-fhir-jpaserver-example/.settings/.jsdtscope b/hapi-fhir-jpaserver-example/.settings/.jsdtscope
deleted file mode 100644
index b72a6a47b2e..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/.jsdtscope
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jpaserver-example/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index abdea9ac032..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jpaserver-example/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69c31cd493c..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jpaserver-example/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.component b/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 5505c0715e1..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- consumes
-
-
- consumes
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bcfc3250338..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.container b/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a4803..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.name b/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b6ec2..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-jpaserver-example/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.classpath b/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.classpath
deleted file mode 100644
index 534b5e52fa5..00000000000
--- a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.classpath
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.gitignore b/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.gitignore
deleted file mode 100644
index e52bde55f83..00000000000
--- a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.gitignore
+++ /dev/null
@@ -1,128 +0,0 @@
-/target
-/jpaserver_derby_files
-*.log
-ca.uhn.fhir.jpa.entity.ResourceTable/
-
-# Created by https://www.gitignore.io
-
-### Java ###
-*.class
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.ear
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-
-
-### Maven ###
-target/
-pom.xml.tag
-pom.xml.releaseBackup
-pom.xml.versionsBackup
-pom.xml.next
-release.properties
-dependency-reduced-pom.xml
-buildNumber.properties
-
-
-### Vim ###
-[._]*.s[a-w][a-z]
-[._]s[a-w][a-z]
-*.un~
-Session.vim
-.netrwhist
-*~
-
-
-### Intellij ###
-# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
-
-*.iml
-
-## Directory-based project format:
-.idea/
-# if you remove the above rule, at least ignore the following:
-
-# User-specific stuff:
-# .idea/workspace.xml
-# .idea/tasks.xml
-# .idea/dictionaries
-
-# Sensitive or high-churn files:
-# .idea/dataSources.ids
-# .idea/dataSources.xml
-# .idea/sqlDataSources.xml
-# .idea/dynamic.xml
-# .idea/uiDesigner.xml
-
-# Gradle:
-# .idea/gradle.xml
-# .idea/libraries
-
-# Mongo Explorer plugin:
-# .idea/mongoSettings.xml
-
-## File-based project format:
-*.ipr
-*.iws
-
-## Plugin-specific files:
-
-# IntelliJ
-/out/
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-
-
-
-### Eclipse ###
-*.pydevproject
-.metadata
-.gradle
-bin/
-tmp/
-*.tmp
-*.bak
-*.swp
-*~.nib
-local.properties
-.loadpath
-
-# Eclipse Core
-.project
-
-# External tool builders
-.externalToolBuilders/
-
-# Locally stored "Eclipse launch configurations"
-*.launch
-
-# CDT-specific
-.cproject
-
-# JDT-specific (Eclipse Java Development Tools)
-
-# PDT-specific
-.buildpath
-
-# sbteclipse plugin
-.target
-
-# TeXlipse plugin
-.texlipse
-
diff --git a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60105c1b951..00000000000
--- a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.classpath b/hapi-fhir-jpaserver-uhnfhirtest/.classpath
deleted file mode 100644
index 0b809b9cdb8..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.classpath
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.project b/hapi-fhir-jpaserver-uhnfhirtest/.project
deleted file mode 100644
index ec591debe6f..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.project
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- hapi-fhir-jpaserver-uhnfhirtest
-
-
-
-
-
- org.eclipse.wst.jsdt.core.javascriptValidator
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.wst.jsdt.core.jsNature
-
-
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/.jsdtscope b/hapi-fhir-jpaserver-uhnfhirtest/.settings/.jsdtscope
deleted file mode 100644
index b72a6a47b2e..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/.jsdtscope
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf999564..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6b5aebc4b56..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,13 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.component b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 94ced150613..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- consumes
-
-
- consumes
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 45fbdef1fd7..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.container b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a4803..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.name b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b6ec2..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.classpath b/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.classpath
deleted file mode 100644
index f619a5369d9..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.classpath
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ec4300d5d09..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-jpaserver-uhnfhirtest/auth-server/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-narrativegenerator/.classpath b/hapi-fhir-narrativegenerator/.classpath
deleted file mode 100644
index 3314705f3ff..00000000000
--- a/hapi-fhir-narrativegenerator/.classpath
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-narrativegenerator/.project b/hapi-fhir-narrativegenerator/.project
deleted file mode 100644
index 579a2b6f9ac..00000000000
--- a/hapi-fhir-narrativegenerator/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-narrativegenerator
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-narrativegenerator/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-narrativegenerator/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-narrativegenerator/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-narrativegenerator/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-narrativegenerator/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-narrativegenerator/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-oauth2/.classpath b/hapi-fhir-oauth2/.classpath
deleted file mode 100644
index d752e4f3e60..00000000000
--- a/hapi-fhir-oauth2/.classpath
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-oauth2/.project b/hapi-fhir-oauth2/.project
deleted file mode 100644
index 0545006b46a..00000000000
--- a/hapi-fhir-oauth2/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- hapi-fhir-oauth2
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-fhir-oauth2/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-oauth2/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index cdfe4f1b669..00000000000
--- a/hapi-fhir-oauth2/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-oauth2/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-oauth2/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60105c1b951..00000000000
--- a/hapi-fhir-oauth2/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-oauth2/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-oauth2/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-oauth2/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-osgi-core/.classpath b/hapi-fhir-osgi-core/.classpath
deleted file mode 100644
index f73e45f4e93..00000000000
--- a/hapi-fhir-osgi-core/.classpath
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-osgi-core/.project b/hapi-fhir-osgi-core/.project
deleted file mode 100644
index 767d2307813..00000000000
--- a/hapi-fhir-osgi-core/.project
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- hapi-fhir-osgi-core
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.ui.externaltools.ExternalToolBuilder
- full,incremental,
-
-
- LaunchConfigHandle
- <project>/.externalToolBuilders/org.eclipse.m2e.core.maven2Builder (3).launch
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-osgi-core/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-osgi-core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-osgi-core/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-osgi-core/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-osgi-core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c537b63063c..00000000000
--- a/hapi-fhir-osgi-core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-osgi-core/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-osgi-core/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-osgi-core/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-osgi-core/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-osgi-core/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bcfc3250338..00000000000
--- a/hapi-fhir-osgi-core/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-structures-dstu/.classpath b/hapi-fhir-structures-dstu/.classpath
deleted file mode 100644
index 5b517aa32bb..00000000000
--- a/hapi-fhir-structures-dstu/.classpath
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu/.project b/hapi-fhir-structures-dstu/.project
deleted file mode 100644
index cb64b9f15ff..00000000000
--- a/hapi-fhir-structures-dstu/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-structures-dstu
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-structures-dstu/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-structures-dstu/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4d0715b8536..00000000000
--- a/hapi-fhir-structures-dstu/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/java/ca/uhn/fhir/model/primitive/XhtmlDtTest.java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-structures-dstu/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-structures-dstu/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69c31cd493c..00000000000
--- a/hapi-fhir-structures-dstu/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-structures-dstu/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-structures-dstu/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-structures-dstu/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.component b/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 8cd83566c21..00000000000
--- a/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 5c9bd7532ab..00000000000
--- a/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-structures-dstu/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-structures-dstu2.1/.classpath b/hapi-fhir-structures-dstu2.1/.classpath
deleted file mode 100644
index e55bfdf665c..00000000000
--- a/hapi-fhir-structures-dstu2.1/.classpath
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu2.1/.project b/hapi-fhir-structures-dstu2.1/.project
deleted file mode 100644
index 702936ef90f..00000000000
--- a/hapi-fhir-structures-dstu2.1/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- hapi-fhir-structures-dstu2.1
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0c68a61dca8..00000000000
--- a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index f4ef8aa0a5c..00000000000
--- a/hapi-fhir-structures-dstu2.1/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-fhir-structures-dstu2/.classpath b/hapi-fhir-structures-dstu2/.classpath
deleted file mode 100644
index 3847ce846d0..00000000000
--- a/hapi-fhir-structures-dstu2/.classpath
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu2/.project b/hapi-fhir-structures-dstu2/.project
deleted file mode 100644
index e859f7be8bb..00000000000
--- a/hapi-fhir-structures-dstu2/.project
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
- hapi-fhir-structures-dstu2
-
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-structures-dstu2/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-structures-dstu2/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf999564..00000000000
--- a/hapi-fhir-structures-dstu2/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-structures-dstu2/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-structures-dstu2/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69c31cd493c..00000000000
--- a/hapi-fhir-structures-dstu2/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-structures-dstu2/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-structures-dstu2/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-structures-dstu2/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.component b/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 86f32e09129..00000000000
--- a/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 5c9bd7532ab..00000000000
--- a/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-structures-dstu2/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-structures-dstu3/.classpath b/hapi-fhir-structures-dstu3/.classpath
deleted file mode 100644
index e55bfdf665c..00000000000
--- a/hapi-fhir-structures-dstu3/.classpath
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu3/.project b/hapi-fhir-structures-dstu3/.project
deleted file mode 100644
index 1ca3f8e36b5..00000000000
--- a/hapi-fhir-structures-dstu3/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-structures-dstu3
-
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-structures-dstu3/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-structures-dstu3/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-structures-dstu3/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-structures-dstu3/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-structures-dstu3/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6183714c795..00000000000
--- a/hapi-fhir-structures-dstu3/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,95 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/hapi-fhir-structures-dstu3/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-structures-dstu3/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-structures-dstu3/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-structures-hl7org-dstu2/.classpath b/hapi-fhir-structures-hl7org-dstu2/.classpath
deleted file mode 100644
index f87998e1d5c..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.classpath
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-hl7org-dstu2/.project b/hapi-fhir-structures-hl7org-dstu2/.project
deleted file mode 100644
index a7c216d2149..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-structures-hl7org-dev
-
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0c74cfbcb11..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,386 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=2
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=2
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.ui.prefs b/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11654f69c63..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-formatter_profile=_Grahame
-formatter_settings_version=12
diff --git a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.component b/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 2b2594a6fda..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index c78d9323fe1..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 92ac3ff26a8..00000000000
--- a/hapi-fhir-structures-hl7org-dstu2/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,10 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
-USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationtrueversion1.2.600.v201501211647
-eclipse.preferences.version=1
-override=true
-suspend=true
-vals/org.eclipse.jst.jsf.facelet.ui.FaceletHTMLValidator/global=FF01
-vals/org.eclipse.wst.html.core.HTMLValidator/global=FF01
-vf.version=3
diff --git a/hapi-fhir-testpage-interceptor/.classpath b/hapi-fhir-testpage-interceptor/.classpath
deleted file mode 100644
index fd7ad7fbda7..00000000000
--- a/hapi-fhir-testpage-interceptor/.classpath
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-testpage-interceptor/.project b/hapi-fhir-testpage-interceptor/.project
deleted file mode 100644
index 733a24a9cde..00000000000
--- a/hapi-fhir-testpage-interceptor/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- hapi-fhir-testpage-interceptor
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-fhir-testpage-interceptor/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-testpage-interceptor/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-testpage-interceptor/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-testpage-interceptor/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-testpage-interceptor/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60105c1b951..00000000000
--- a/hapi-fhir-testpage-interceptor/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-testpage-interceptor/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-testpage-interceptor/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-testpage-interceptor/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-testpage-overlay/.classpath b/hapi-fhir-testpage-overlay/.classpath
deleted file mode 100644
index a19b3b79757..00000000000
--- a/hapi-fhir-testpage-overlay/.classpath
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-testpage-overlay/.project b/hapi-fhir-testpage-overlay/.project
deleted file mode 100644
index f86c4f92f18..00000000000
--- a/hapi-fhir-testpage-overlay/.project
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- hapi-fhir-testpage-overlay
-
-
-
-
-
- org.eclipse.wst.jsdt.core.javascriptValidator
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.jsdt.core.jsNature
-
-
diff --git a/hapi-fhir-testpage-overlay/.settings/.jsdtscope b/hapi-fhir-testpage-overlay/.settings/.jsdtscope
deleted file mode 100644
index 6855c9bef39..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/.jsdtscope
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-testpage-overlay/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf999564..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-testpage-overlay/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69c31cd493c..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-testpage-overlay/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.component b/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 0f3a94e51e1..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
-
-
-
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 9f1491f6f6a..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.core.prefs b/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.core.prefs
deleted file mode 100644
index 503f9af1c61..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.core.prefs
+++ /dev/null
@@ -1,50 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.wst.jsdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.wst.jsdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.wst.jsdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.wst.jsdt.core.compiler.compliance=1.4
-org.eclipse.wst.jsdt.core.compiler.debug.lineNumber=generate
-org.eclipse.wst.jsdt.core.compiler.debug.localVariable=generate
-org.eclipse.wst.jsdt.core.compiler.debug.sourceFile=generate
-org.eclipse.wst.jsdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.wst.jsdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
-org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables=warning
-org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
-org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=warning
-org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
-org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.uninitializedGlobalVariable=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.uninitializedLocalVariable=warning
-org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.wst.jsdt.core.compiler.source=1.3
-semanticValidation=disabled
-strictOnKeywordUsage=disabled
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.container b/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a4803..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.name b/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b6ec2..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-testpage-overlay/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-tutorial/jpaserver-example-with-custom/.classpath b/hapi-fhir-tutorial/jpaserver-example-with-custom/.classpath
deleted file mode 100644
index 953de0b8c76..00000000000
--- a/hapi-fhir-tutorial/jpaserver-example-with-custom/.classpath
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-tutorial/jpaserver-example-with-custom/.project b/hapi-fhir-tutorial/jpaserver-example-with-custom/.project
deleted file mode 100644
index bf2b60b46db..00000000000
--- a/hapi-fhir-tutorial/jpaserver-example-with-custom/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- hapi-fhir-jpaserver-example-advanced
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ec4300d5d09..00000000000
--- a/hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-tutorial/jpaserver-example-with-custom/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-tutorial/simple-server/.settings/.jsdtscope b/hapi-fhir-tutorial/simple-server/.settings/.jsdtscope
deleted file mode 100644
index b72a6a47b2e..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/.jsdtscope
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index e9441bb123e..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69c31cd493c..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.component b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index c442f87b24c..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 5a887262619..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.container b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a4803..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.name b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b6ec2..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.validation.prefs b/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/hapi-fhir-tutorial/simple-server/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
diff --git a/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index e9441bb123e..00000000000
--- a/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding/=UTF-8
diff --git a/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60105c1b951..00000000000
--- a/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-tutorial/skeleton-project/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-validation-resources-dstu2.1/.classpath b/hapi-fhir-validation-resources-dstu2.1/.classpath
deleted file mode 100644
index a9eab599e39..00000000000
--- a/hapi-fhir-validation-resources-dstu2.1/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-validation-resources-dstu2.1/.project b/hapi-fhir-validation-resources-dstu2.1/.project
deleted file mode 100644
index ca3eebe5971..00000000000
--- a/hapi-fhir-validation-resources-dstu2.1/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-validation-resources-dstu2.1
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-validation-resources-dstu2/.classpath b/hapi-fhir-validation-resources-dstu2/.classpath
deleted file mode 100644
index a9eab599e39..00000000000
--- a/hapi-fhir-validation-resources-dstu2/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-validation-resources-dstu2/.project b/hapi-fhir-validation-resources-dstu2/.project
deleted file mode 100644
index b8198c02761..00000000000
--- a/hapi-fhir-validation-resources-dstu2/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- hapi-fhir-validation-resources-dstu2
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de363afa..00000000000
--- a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.component b/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 133946b052d..00000000000
--- a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 1b22d705a50..00000000000
--- a/hapi-fhir-validation-resources-dstu2/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/hapi-fhir-validation-resources-dstu3/.classpath b/hapi-fhir-validation-resources-dstu3/.classpath
deleted file mode 100644
index f73e45f4e93..00000000000
--- a/hapi-fhir-validation-resources-dstu3/.classpath
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-validation-resources-dstu3/.project b/hapi-fhir-validation-resources-dstu3/.project
deleted file mode 100644
index 9ac9c2b934f..00000000000
--- a/hapi-fhir-validation-resources-dstu3/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- hapi-fhir-validation-resources-dstu3
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f42de363afa..00000000000
--- a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.m2e.core.prefs b/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.wst.common.project.facet.core.xml b/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index bc0009a4558..00000000000
--- a/hapi-fhir-validation-resources-dstu3/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/hapi-tinder-plugin/.classpath b/hapi-tinder-plugin/.classpath
deleted file mode 100644
index 3f5d899f8a4..00000000000
--- a/hapi-tinder-plugin/.classpath
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-tinder-plugin/.project b/hapi-tinder-plugin/.project
deleted file mode 100644
index 4b1d6b774f0..00000000000
--- a/hapi-tinder-plugin/.project
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
- hapi-tinder-plugin
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.wst.common.project.facet.core.builder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jem.workbench.JavaEMFNature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.project.facet.core.nature
-
-
diff --git a/hapi-tinder-plugin/.settings/org.eclipse.core.resources.prefs b/hapi-tinder-plugin/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf999564..00000000000
--- a/hapi-tinder-plugin/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-tinder-plugin/.settings/org.eclipse.jdt.core.prefs b/hapi-tinder-plugin/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 15441008ab1..00000000000
--- a/hapi-tinder-plugin/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,402 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=200
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=3
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=false
-org.eclipse.jdt.core.formatter.join_wrapped_lines=false
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=3
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/hapi-tinder-plugin/.settings/org.eclipse.jdt.ui.prefs b/hapi-tinder-plugin/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 5382e703e79..00000000000
--- a/hapi-tinder-plugin/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-formatter_profile=_James
-formatter_settings_version=12
diff --git a/hapi-tinder-plugin/.settings/org.eclipse.m2e.core.prefs b/hapi-tinder-plugin/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-tinder-plugin/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/hapi-tinder-test/.classpath b/hapi-tinder-test/.classpath
deleted file mode 100644
index ead18831e48..00000000000
--- a/hapi-tinder-test/.classpath
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hapi-tinder-test/.project b/hapi-tinder-test/.project
deleted file mode 100644
index dea54c136b3..00000000000
--- a/hapi-tinder-test/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- hapi-tinder-test
- NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.m2e.core.maven2Nature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/hapi-tinder-test/.settings/org.eclipse.core.resources.prefs b/hapi-tinder-test/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index cdfe4f1b669..00000000000
--- a/hapi-tinder-test/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/=UTF-8
diff --git a/hapi-tinder-test/.settings/org.eclipse.jdt.core.prefs b/hapi-tinder-test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5ce45188994..00000000000
--- a/hapi-tinder-test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,13 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-tinder-test/.settings/org.eclipse.m2e.core.prefs b/hapi-tinder-test/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/hapi-tinder-test/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/restful-server-example-test/.classpath b/restful-server-example-test/.classpath
deleted file mode 100644
index afcbba556d2..00000000000
--- a/restful-server-example-test/.classpath
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/restful-server-example-test/.project b/restful-server-example-test/.project
deleted file mode 100644
index 7e28d1c5f31..00000000000
--- a/restful-server-example-test/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- restful-server-example-test
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
-
-
diff --git a/restful-server-example-test/.settings/org.eclipse.core.resources.prefs b/restful-server-example-test/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 8dd9b1df3d6..00000000000
--- a/restful-server-example-test/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/test/java=UTF-8
-encoding/=UTF-8
diff --git a/restful-server-example-test/.settings/org.eclipse.jdt.core.prefs b/restful-server-example-test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60105c1b951..00000000000
--- a/restful-server-example-test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/restful-server-example-test/.settings/org.eclipse.m2e.core.prefs b/restful-server-example-test/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/restful-server-example-test/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/restful-server-example/.classpath b/restful-server-example/.classpath
deleted file mode 100644
index 0b809b9cdb8..00000000000
--- a/restful-server-example/.classpath
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/restful-server-example/.settings/.jsdtscope b/restful-server-example/.settings/.jsdtscope
deleted file mode 100644
index b72a6a47b2e..00000000000
--- a/restful-server-example/.settings/.jsdtscope
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/restful-server-example/.settings/org.eclipse.core.resources.prefs b/restful-server-example/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index e9441bb123e..00000000000
--- a/restful-server-example/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding/=UTF-8
diff --git a/restful-server-example/.settings/org.eclipse.jdt.core.prefs b/restful-server-example/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 69c31cd493c..00000000000
--- a/restful-server-example/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/restful-server-example/.settings/org.eclipse.m2e.core.prefs b/restful-server-example/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f1cb2..00000000000
--- a/restful-server-example/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/restful-server-example/.settings/org.eclipse.wst.common.component b/restful-server-example/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index a2d9301fa62..00000000000
--- a/restful-server-example/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
- uses
-
-
- uses
-
-
- consumes
-
-
- consumes
-
-
-
-
-
diff --git a/restful-server-example/.settings/org.eclipse.wst.common.project.facet.core.xml b/restful-server-example/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 5a887262619..00000000000
--- a/restful-server-example/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.container b/restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a4803..00000000000
--- a/restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.name b/restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b6ec2..00000000000
--- a/restful-server-example/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/restful-server-example/.settings/org.eclipse.wst.validation.prefs b/restful-server-example/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 04cad8cb752..00000000000
--- a/restful-server-example/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1
From a150a96089d401c1c5cc8f117c0b1a0fa0df53a3 Mon Sep 17 00:00:00 2001
From: sekaijin
Date: Sun, 29 Jan 2017 19:22:28 +0100
Subject: [PATCH 09/31] dependencies convergence
correct dependencies convergence
correct version use ${project.version}
---
examples/pom.xml | 19 +-
hapi-fhir-android/pom.xml | 10 +-
hapi-fhir-base-test-mindeps-client/pom.xml | 17 +-
hapi-fhir-base-test-mindeps-server/pom.xml | 16 +-
hapi-fhir-base/pom.xml | 7 +-
hapi-fhir-cli/hapi-fhir-cli-app/pom.xml | 26 +-
hapi-fhir-cli/hapi-fhir-cli-jpaserver/pom.xml | 18 +-
hapi-fhir-client-okhttp/pom.xml | 6 +-
hapi-fhir-dist/pom.xml | 52 +--
hapi-fhir-jacoco/pom.xml | 46 ++-
hapi-fhir-jaxrsserver-base/pom.xml | 6 +-
hapi-fhir-jaxrsserver-example/pom.xml | 4 +-
hapi-fhir-jpaserver-base/pom.xml | 52 ++-
hapi-fhir-jpaserver-example/pom.xml | 18 +-
.../pom.xml | 6 +
hapi-fhir-jpaserver-uhnfhirtest/pom.xml | 18 +-
hapi-fhir-osgi-core/pom.xml | 20 +-
hapi-fhir-structures-dstu/pom.xml | 24 +-
hapi-fhir-structures-dstu2.1/pom.xml | 29 +-
hapi-fhir-structures-dstu2/pom.xml | 42 ++-
hapi-fhir-structures-dstu3/pom.xml | 14 +-
hapi-fhir-structures-hl7org-dstu2/pom.xml | 34 +-
hapi-fhir-testpage-overlay/pom.xml | 10 +-
hapi-fhir-tutorial/skeleton-project/pom.xml | 7 +-
hapi-fhir-validation-resources-dstu3/pom.xml | 2 +-
hapi-tinder-plugin/pom.xml | 91 ++++-
.../ca/uhn/fhir/tinder/ValueSetGenerator.java | 8 +-
hapi-tinder-test/pom.xml | 316 +++++++++++-------
pom.xml | 5 +
restful-server-example-test/pom.xml | 4 +-
restful-server-example/pom.xml | 8 +-
31 files changed, 661 insertions(+), 274 deletions(-)
diff --git a/examples/pom.xml b/examples/pom.xml
index 863259dfa56..aff4b8f2b3e 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -18,37 +18,32 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-client-okhttp
- 2.3-SNAPSHOT
-
-
- ca.uhn.hapi.fhir
- hapi-fhir-jaxrsserver-base
- 2.3-SNAPSHOT
+ ${project.version}
javax.servlet
@@ -59,7 +54,7 @@
ca.uhn.hapi.fhir
hapi-fhir-jaxrsserver-base
- 2.3-SNAPSHOT
+ ${project.version}
javax.ws.rs
diff --git a/hapi-fhir-android/pom.xml b/hapi-fhir-android/pom.xml
index 768b04308c6..78559a549e3 100644
--- a/hapi-fhir-android/pom.xml
+++ b/hapi-fhir-android/pom.xml
@@ -29,7 +29,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
commons-codec
@@ -40,25 +40,25 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
true
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
true
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
true
ca.uhn.hapi.fhir
hapi-fhir-client-okhttp
- 2.3-SNAPSHOT
+ ${project.version}
commons-codec
diff --git a/hapi-fhir-base-test-mindeps-client/pom.xml b/hapi-fhir-base-test-mindeps-client/pom.xml
index 28a6d724960..4e11992215e 100644
--- a/hapi-fhir-base-test-mindeps-client/pom.xml
+++ b/hapi-fhir-base-test-mindeps-client/pom.xml
@@ -24,13 +24,18 @@
org.slf4j
slf4j-simple
1.6.0
+
+
+ slf4j-api
+ org.slf4j
+
+
com.google.code.gson
gson
- 2.3.1
@@ -42,7 +37,6 @@
com.google.code.gson
gson
- 2.3.1
@@ -48,6 +47,12 @@
com.phloc
phloc-schematron
true
+
+
com.phloc
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml b/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml
index 1b8f49362cb..b84a47a4f2e 100644
--- a/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml
+++ b/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml
@@ -21,57 +21,57 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-cli-jpaserver
- 2.3-SNAPSHOT
+ ${project.version}
war
ca.uhn.hapi.fhir
hapi-fhir-cli-jpaserver
- 2.3-SNAPSHOT
+ ${project.version}
jar
classes
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
classes
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
@@ -174,6 +174,12 @@
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
diff --git a/hapi-fhir-cli/hapi-fhir-cli-jpaserver/pom.xml b/hapi-fhir-cli/hapi-fhir-cli-jpaserver/pom.xml
index b261da71ff6..3677da08cd8 100644
--- a/hapi-fhir-cli/hapi-fhir-cli-jpaserver/pom.xml
+++ b/hapi-fhir-cli/hapi-fhir-cli-jpaserver/pom.xml
@@ -21,7 +21,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
provided
@@ -29,33 +29,33 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-jpaserver-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
war
provided
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
classes
provided
@@ -146,6 +146,12 @@
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
diff --git a/hapi-fhir-client-okhttp/pom.xml b/hapi-fhir-client-okhttp/pom.xml
index 164e3d6536e..e565b48ee87 100644
--- a/hapi-fhir-client-okhttp/pom.xml
+++ b/hapi-fhir-client-okhttp/pom.xml
@@ -18,7 +18,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
commons-logging
@@ -38,12 +38,12 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
diff --git a/hapi-fhir-dist/pom.xml b/hapi-fhir-dist/pom.xml
index bd47a54f59d..f321fbfe21a 100644
--- a/hapi-fhir-dist/pom.xml
+++ b/hapi-fhir-dist/pom.xml
@@ -36,19 +36,19 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
sources
provided
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
javadoc
provided
@@ -56,19 +56,19 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
sources
provided
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
javadoc
provided
@@ -76,19 +76,19 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
sources
provided
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
javadoc
provided
@@ -96,19 +96,19 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
sources
provided
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
javadoc
provided
@@ -116,19 +116,19 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2.1
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2.1
- 2.3-SNAPSHOT
+ ${project.version}
sources
provided
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2.1
- 2.3-SNAPSHOT
+ ${project.version}
javadoc
provided
@@ -136,19 +136,19 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
sources
provided
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
javadoc
provided
@@ -156,30 +156,30 @@
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2.1
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-cli-app
- 2.3-SNAPSHOT
+ ${project.version}
provided
ca.uhn.hapi.fhir
hapi-fhir-android
- 2.3-SNAPSHOT
+ ${project.version}
provided
@@ -194,6 +194,12 @@
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
diff --git a/hapi-fhir-jacoco/pom.xml b/hapi-fhir-jacoco/pom.xml
index 86269737fbd..8ca8da8f602 100644
--- a/hapi-fhir-jacoco/pom.xml
+++ b/hapi-fhir-jacoco/pom.xml
@@ -19,52 +19,58 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-jpaserver-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-client-okhttp
- 2.3-SNAPSHOT
+ ${project.version}
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
@@ -139,6 +145,14 @@
commons-logging
commons-logging
+
+ commons-lang
+ commons-lang
+
+
+ ezmorph
+ net.sf.ezmorph
+
@@ -146,6 +160,20 @@
json-lib
jdk15-sources
test
+
+
+ commons-logging
+ commons-logging
+
+
+ commons-lang
+ commons-lang
+
+
+ ezmorph
+ net.sf.ezmorph
+
+
directory-naming
diff --git a/hapi-fhir-jaxrsserver-base/pom.xml b/hapi-fhir-jaxrsserver-base/pom.xml
index 1fdd77dae5e..0c8adc6993a 100644
--- a/hapi-fhir-jaxrsserver-base/pom.xml
+++ b/hapi-fhir-jaxrsserver-base/pom.xml
@@ -18,7 +18,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
commons-logging
@@ -38,12 +38,12 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
diff --git a/hapi-fhir-jaxrsserver-example/pom.xml b/hapi-fhir-jaxrsserver-example/pom.xml
index c404cf05796..8bc2b7d3fca 100644
--- a/hapi-fhir-jaxrsserver-example/pom.xml
+++ b/hapi-fhir-jaxrsserver-example/pom.xml
@@ -31,13 +31,13 @@
ca.uhn.hapi.fhir
hapi-fhir-jaxrsserver-base
- 2.3-SNAPSHOT
+ ${project.version}
javax.ws.rs
javax.ws.rs-api
- 2.0
+ 2.0.1
provided
diff --git a/hapi-fhir-jpaserver-base/pom.xml b/hapi-fhir-jpaserver-base/pom.xml
index 3f5f9a01fc6..2c123d151d8 100644
--- a/hapi-fhir-jpaserver-base/pom.xml
+++ b/hapi-fhir-jpaserver-base/pom.xml
@@ -23,7 +23,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
commons-logging
@@ -34,32 +34,32 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
@@ -87,6 +87,12 @@
com.phloc
phloc-schematron
test
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
@@ -104,6 +110,12 @@
net.riotopsys
json_patch
+
+
+ com.google.code.gson
+ gson
+
+
com.github.dnault
@@ -183,6 +195,12 @@
org.springframework.data
spring-data-jpa
+
+
+ spring-aop
+ org.springframework
+
+
org.springframework
@@ -233,6 +251,16 @@
org.hibernate
hibernate-validator
+
+
+ com.fasterxml
+ classmate
+
+
+ org.jboss.logging
+ jboss-logging
+
+
javax.transaction
@@ -424,7 +452,7 @@
ca.uhn.hapi.fhir
hapi-tinder-plugin
- 2.3-SNAPSHOT
+ ${project.version}
build_dstu1
@@ -476,22 +504,22 @@
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
diff --git a/hapi-fhir-jpaserver-example/pom.xml b/hapi-fhir-jpaserver-example/pom.xml
index 44bd920cb91..633805ed416 100644
--- a/hapi-fhir-jpaserver-example/pom.xml
+++ b/hapi-fhir-jpaserver-example/pom.xml
@@ -35,40 +35,40 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-jpaserver-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
war
provided
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
classes
provided
@@ -164,6 +164,12 @@
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
diff --git a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/pom.xml b/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/pom.xml
index e8ad8294b43..3cb4741f06c 100644
--- a/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/pom.xml
+++ b/hapi-fhir-jpaserver-examples/hapi-fhir-jpaserver-example-postgres/pom.xml
@@ -140,6 +140,12 @@
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/pom.xml b/hapi-fhir-jpaserver-uhnfhirtest/pom.xml
index 67141b3300c..4d5b7bc5b01 100644
--- a/hapi-fhir-jpaserver-uhnfhirtest/pom.xml
+++ b/hapi-fhir-jpaserver-uhnfhirtest/pom.xml
@@ -23,34 +23,34 @@
ca.uhn.hapi.fhir
hapi-fhir-jpaserver-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
war
provided
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
classes
provided
@@ -58,6 +58,12 @@
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
diff --git a/hapi-fhir-osgi-core/pom.xml b/hapi-fhir-osgi-core/pom.xml
index bffe2431148..673f51b9abf 100644
--- a/hapi-fhir-osgi-core/pom.xml
+++ b/hapi-fhir-osgi-core/pom.xml
@@ -19,37 +19,37 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-hl7org-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
@@ -59,6 +59,12 @@
com.phloc
phloc-schematron
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
diff --git a/hapi-fhir-structures-dstu/pom.xml b/hapi-fhir-structures-dstu/pom.xml
index 99ba20eb4c6..1cb0d65eb58 100644
--- a/hapi-fhir-structures-dstu/pom.xml
+++ b/hapi-fhir-structures-dstu/pom.xml
@@ -17,7 +17,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
+
com.phloc
@@ -128,13 +134,32 @@
commons-logging
commons-logging
+
+ commons-lang
+ commons-lang
+
+
+ commons-lang
+ commons-lang
+ 2.5
+
net.sf.json-lib
json-lib
jdk15-sources
test
+
+
+ commons-logging
+ commons-logging
+
+
directory-naming
diff --git a/hapi-fhir-structures-dstu2/pom.xml b/hapi-fhir-structures-dstu2/pom.xml
index 515ecd7f0c0..8c7a751c486 100644
--- a/hapi-fhir-structures-dstu2/pom.xml
+++ b/hapi-fhir-structures-dstu2/pom.xml
@@ -17,13 +17,13 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
test
@@ -89,7 +89,13 @@
com.phloc
phloc-schematron
- test
+ test
com.phloc
@@ -110,6 +116,14 @@
commons-logging
commons-logging
+
+ commons-lang
+ commons-lang
+
@@ -118,6 +132,26 @@
2.4
jdk15-sources
test
+
+
+ commons-logging
+ commons-logging
+
+
+ commons-lang
+ commons-lang
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.5
+ test
directory-naming
@@ -179,7 +213,7 @@
ca.uhn.hapi.fhir
hapi-tinder-plugin
- 2.3-SNAPSHOT
+ ${project.version}
generate
diff --git a/hapi-fhir-structures-dstu3/pom.xml b/hapi-fhir-structures-dstu3/pom.xml
index e506fca0beb..f1a591a138b 100644
--- a/hapi-fhir-structures-dstu3/pom.xml
+++ b/hapi-fhir-structures-dstu3/pom.xml
@@ -18,12 +18,12 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
test
@@ -123,6 +123,10 @@
commons-logging
commons-logging
+
+ commons-lang
+ commons-lang
+
@@ -130,6 +134,12 @@
json-lib
jdk15-sources
test
+
+
+ commons-logging
+ commons-logging
+
+
directory-naming
diff --git a/hapi-fhir-structures-hl7org-dstu2/pom.xml b/hapi-fhir-structures-hl7org-dstu2/pom.xml
index 60ce5d79519..c04497c465c 100644
--- a/hapi-fhir-structures-hl7org-dstu2/pom.xml
+++ b/hapi-fhir-structures-hl7org-dstu2/pom.xml
@@ -18,12 +18,12 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-validation-resources-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
test
@@ -103,6 +103,12 @@
com.phloc
phloc-schematron
test
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
@@ -123,6 +129,14 @@
commons-logging
commons-logging
+
+ commons-lang
+ commons-lang
+
+
+ ezmorph
+ net.sf.ezmorph
+
@@ -131,6 +145,22 @@
2.4
jdk15-sources
test
+
+
+ commons-logging
+ commons-logging
+
+
+ commons-lang
+ commons-lang
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.5
+ test
directory-naming
diff --git a/hapi-fhir-testpage-overlay/pom.xml b/hapi-fhir-testpage-overlay/pom.xml
index 182872e068e..efcad865f48 100644
--- a/hapi-fhir-testpage-overlay/pom.xml
+++ b/hapi-fhir-testpage-overlay/pom.xml
@@ -27,28 +27,28 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-jpaserver-base
- 2.3-SNAPSHOT
+ ${project.version}
test
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu3
- 2.3-SNAPSHOT
+ ${project.version}
diff --git a/hapi-fhir-tutorial/skeleton-project/pom.xml b/hapi-fhir-tutorial/skeleton-project/pom.xml
index ba4e6141e49..050113b9d87 100644
--- a/hapi-fhir-tutorial/skeleton-project/pom.xml
+++ b/hapi-fhir-tutorial/skeleton-project/pom.xml
@@ -67,7 +67,12 @@
com.phloc
phloc-schematron
- 2.7.1
+
+
+ Saxon-HE
+ net.sf.saxon
+
+
com.phloc
diff --git a/hapi-fhir-validation-resources-dstu3/pom.xml b/hapi-fhir-validation-resources-dstu3/pom.xml
index ca8a406cbec..b5c4aa783ba 100644
--- a/hapi-fhir-validation-resources-dstu3/pom.xml
+++ b/hapi-fhir-validation-resources-dstu3/pom.xml
@@ -17,7 +17,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ch.qos.logback
diff --git a/hapi-tinder-plugin/pom.xml b/hapi-tinder-plugin/pom.xml
index 11dad6aff02..4f6071af596 100644
--- a/hapi-tinder-plugin/pom.xml
+++ b/hapi-tinder-plugin/pom.xml
@@ -19,7 +19,7 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
@@ -108,17 +161,43 @@
org.apache.maven
maven-project
2.2.1
+
+
+ org.codehaus.plexus
+ plexus-utils
+
+
+ org.apache.maven
+ maven-model
+
+
+ org.apache.maven
+ maven-artifact
+
+
org.apache.maven
maven-plugin-api
3.2.5
+
+
+ org.eclipse.sisu
+ org.eclipse.sisu.plexus
+
+
org.apache.maven.plugin-tools
maven-plugin-annotations
3.2
provided
+
+
+ org.apache.maven
+ maven-artifact
+
+
diff --git a/hapi-tinder-plugin/src/main/java/ca/uhn/fhir/tinder/ValueSetGenerator.java b/hapi-tinder-plugin/src/main/java/ca/uhn/fhir/tinder/ValueSetGenerator.java
index d1872813549..a0b23264424 100644
--- a/hapi-tinder-plugin/src/main/java/ca/uhn/fhir/tinder/ValueSetGenerator.java
+++ b/hapi-tinder-plugin/src/main/java/ca/uhn/fhir/tinder/ValueSetGenerator.java
@@ -9,6 +9,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -119,7 +120,12 @@ public class ValueSetGenerator {
name = "/org/hl7/fhir/instance/model/dstu3/valueset/valuesets.xml";
}
ourLog.info("Loading valuesets from: {}", name);
- String vs = IOUtils.toString(ValueSetGenerator.class.getResourceAsStream(name));
+ InputStream is = ValueSetGenerator.class.getResourceAsStream(name);
+ if (null == is) {
+ ourLog.error("Failed loading valuesets from: " + name);
+ throw new FileNotFoundException(name);
+ }
+ String vs = IOUtils.toString(is, Charset.defaultCharset());
if ("dstu".equals(myVersion)) {
Bundle bundle = newXmlParser.parseBundle(vs);
for (BundleEntry next : bundle.getEntries()) {
diff --git a/hapi-tinder-test/pom.xml b/hapi-tinder-test/pom.xml
index fe5c7ccaed2..c96532291e8 100644
--- a/hapi-tinder-test/pom.xml
+++ b/hapi-tinder-test/pom.xml
@@ -1,4 +1,5 @@
-
+
4.0.0
@@ -17,19 +18,53 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
+
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu2.1
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-base
+
+
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu3
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-hl7org-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-validation-resources-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-validation-resources-dstu3
+ ${project.version}
-
junit
junit
@@ -41,16 +76,70 @@
-
+
ca.uhn.hapi.fhir
hapi-tinder-plugin
- 2.3-SNAPSHOT
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-base
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu2.1
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-base
+
+
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu3
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-hl7org-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-validation-resources-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-validation-resources-dstu3
+ ${project.version}
+
+
custom-structs
@@ -179,124 +268,102 @@
-
+
+
+
+
+ maven-antrun-plugin
+
+
+ testTinderTask
+ generate-sources
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
-
- ca.uhn.hapi.fhir
- hapi-fhir-base
- 2.3-SNAPSHOT
-
-
- ca.uhn.hapi.fhir
- hapi-fhir-structures-dstu
- 2.3-SNAPSHOT
-
-
- ca.uhn.hapi.fhir
- hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
-
-
-
-
- maven-antrun-plugin
-
-
- testTinderTask
- generate-sources
-
- run
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ca.uhn.hapi.fhir
- hapi-fhir-base
- 2.3-SNAPSHOT
-
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-base
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu2.1
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-base
+
+
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-dstu3
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-structures-hl7org-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-validation-resources-dstu2
+ ${project.version}
+
+
+ ca.uhn.hapi.fhir
+ hapi-fhir-validation-resources-dstu3
+ ${project.version}
+
ca.uhn.hapi.fhir
hapi-tinder-plugin
- 2.3-SNAPSHOT
+ ${project.version}
-
- ca.uhn.hapi.fhir
- hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
-
-
-
-
+
+
org.apache.maven.plugins
maven-deploy-plugin
@@ -307,7 +374,8 @@
-
+
org.eclipse.m2e
lifecycle-mapping
diff --git a/pom.xml b/pom.xml
index e07858d2edd..65d9954a550 100644
--- a/pom.xml
+++ b/pom.xml
@@ -410,6 +410,11 @@
javax.json-api
1.0
+
+ com.google.code.gson
+ gson
+ 2.7
+
javax.mail
javax.mail-api
diff --git a/restful-server-example-test/pom.xml b/restful-server-example-test/pom.xml
index 9a50db16dc1..7b559a97d72 100644
--- a/restful-server-example-test/pom.xml
+++ b/restful-server-example-test/pom.xml
@@ -17,12 +17,12 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
test
diff --git a/restful-server-example/pom.xml b/restful-server-example/pom.xml
index 2494784c4d2..72138f7b1c6 100644
--- a/restful-server-example/pom.xml
+++ b/restful-server-example/pom.xml
@@ -33,27 +33,27 @@
ca.uhn.hapi.fhir
hapi-fhir-base
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-structures-dstu2
- 2.3-SNAPSHOT
+ ${project.version}
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
war
provided
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.3-SNAPSHOT
+ ${project.version}
classes
provided
From b66aa9761e1eeca9ee9e8917b55cacf96ec545a2 Mon Sep 17 00:00:00 2001
From: James
Date: Sun, 29 Jan 2017 15:49:10 -0500
Subject: [PATCH 10/31] Allow parsing of RSQuot
---
.../hl7/fhir/utilities/xhtml/XhtmlParser.java | 21 ++++++++++++-------
.../uhn/fhir/model/primitive/XhtmlDtTest.java | 8 +++++++
.../java/ca/uhn/fhir/model/XhtmlNodeTest.java | 11 ++++++++++
src/changes/changes.xml | 4 ++++
4 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlParser.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlParser.java
index 43e8076acfc..1a54dc7db73 100644
--- a/hapi-fhir-base/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlParser.java
+++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlParser.java
@@ -38,7 +38,7 @@ package org.hl7.fhir.utilities.xhtml;
* 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
+ * 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,
@@ -48,7 +48,6 @@ package org.hl7.fhir.utilities.xhtml;
* #L%
*/
-
import java.io.*;
import java.util.*;
@@ -378,10 +377,12 @@ public class XhtmlParser {
}
return result;
}
+
public XhtmlDocument parse(String source, String entryName) throws FHIRFormatError, IOException {
rdr = new StringReader(source);
return parse(entryName);
}
+
private void parseAttributes(XhtmlNode node) throws FHIRFormatError, IOException {
while (Character.isWhitespace(peekChar()))
readChar();
@@ -410,6 +411,7 @@ public class XhtmlParser {
readChar();
}
}
+
private String parseAttributeValue(char term) throws IOException, FHIRFormatError {
StringBuilder b = new StringBuilder();
while (peekChar() != '\0' && peekChar() != '>' && (term != '\0' || peekChar() != '/') && peekChar() != term) {
@@ -422,6 +424,7 @@ public class XhtmlParser {
readChar();
return b.toString();
}
+
private void parseElement(XhtmlNode parent, List parents, NSMap nsm) throws IOException, FHIRFormatError {
QName name = new QName(readName());
XhtmlNode node = parent.addTag(name.getName());
@@ -438,6 +441,7 @@ public class XhtmlParser {
parseElementInner(node, newParents, nsm);
}
}
+
private void parseElementInner(XhtmlNode node, List parents, NSMap nsm) throws FHIRFormatError, IOException {
StringBuilder s = new StringBuilder();
while (peekChar() != '\0' && !parents.contains(unwindPoint) && !(node == unwindPoint)) {
@@ -488,6 +492,7 @@ public class XhtmlParser {
}
addTextNode(node, s);
}
+
private XhtmlNode parseFragment() throws IOException, FHIRException {
skipWhiteSpace();
if (peekChar() != '<')
@@ -558,6 +563,8 @@ public class XhtmlParser {
s.append(XhtmlNode.NBSP);
else if (c.equals("amp"))
s.append('&');
+ else if (c.equals("rsquo"))
+ s.append('’');
else if (c.equals("gt"))
s.append('>');
else if (c.equals("lt"))
@@ -860,12 +867,12 @@ public class XhtmlParser {
StartElement firstEvent = (StartElement) xpp.nextEvent();
res.setName(firstEvent.getSchemaType().getLocalPart());
- for (Iterator> attrIter = firstEvent.getAttributes(); attrIter.hasNext(); ) {
+ for (Iterator> attrIter = firstEvent.getAttributes(); attrIter.hasNext();) {
Attribute nextAttr = (Attribute) attrIter.next();
if (attributeIsOk(firstEvent.getName().getLocalPart(), nextAttr.getName().getLocalPart(), nextAttr.getValue()))
res.getAttributes().put(nextAttr.getName().getLocalPart(), nextAttr.getValue());
}
-
+
while (xpp.hasNext()) {
XMLEvent nextEvent = xpp.nextEvent();
int eventType = nextEvent.getEventType();
@@ -873,11 +880,11 @@ public class XhtmlParser {
break;
}
if (eventType == XMLEvent.CHARACTERS) {
- res.addText(((Characters)xpp).getData());
+ res.addText(((Characters) xpp).getData());
} else if (eventType == XMLEvent.COMMENT) {
- res.addComment(((Comment)xpp).getText());
+ res.addComment(((Comment) xpp).getText());
} else if (eventType == XMLEvent.START_ELEMENT) {
- StartElement nextStart = (StartElement)nextEvent;
+ StartElement nextStart = (StartElement) nextEvent;
if (elementIsOk(nextStart.getName().getLocalPart())) {
res.getChildNodes().add(parseNode(xpp));
}
diff --git a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/model/primitive/XhtmlDtTest.java b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/model/primitive/XhtmlDtTest.java
index a4f11bfb1bb..00c09d0e2b3 100644
--- a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/model/primitive/XhtmlDtTest.java
+++ b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/model/primitive/XhtmlDtTest.java
@@ -29,6 +29,14 @@ public class XhtmlDtTest {
}
+ @Test
+ public void testParseRsquo() {
+ XhtmlDt dt = new XhtmlDt();
+ dt.setValueAsString("It’s January again");
+ assertEquals("It’s January again
", dt.getValueAsString());
+ assertEquals("It’s January again
", new XhtmlDt().setValue(dt.getValue()).getValueAsString());
+ }
+
@Test
public void testRoundtrip() {
String div = "";
diff --git a/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/model/XhtmlNodeTest.java b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/model/XhtmlNodeTest.java
index ab4796e1465..b87263ed32b 100644
--- a/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/model/XhtmlNodeTest.java
+++ b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/model/XhtmlNodeTest.java
@@ -3,10 +3,12 @@ package ca.uhn.fhir.model;
import static org.junit.Assert.*;
import org.hl7.fhir.dstu3.model.ExplanationOfBenefit;
+import org.hl7.fhir.utilities.xhtml.XhtmlNode;
import org.junit.AfterClass;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.model.primitive.XhtmlDt;
import ca.uhn.fhir.util.TestUtil;
public class XhtmlNodeTest {
@@ -20,6 +22,15 @@ public class XhtmlNodeTest {
private static FhirContext ourCtx = FhirContext.forDstu3();
+ @Test
+ public void testParseRsquo() {
+ XhtmlNode dt = new XhtmlNode();
+ dt.setValueAsString("It’s January again");
+ assertEquals("It’s January again
", dt.getValueAsString());
+ assertEquals("It’s January again
", new XhtmlNode().setValue(dt.getValue()).getValueAsString());
+ }
+
+
/**
* See #443
*/
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2ce0f1a6ecf..9f6099f9801 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -237,6 +237,10 @@
Declared extensions with multiple type() options listed in the @Child
annotation caused a crash on startup. Now this is supported.
+
+ STU3 XHTML parser for narrative choked if the narrative contained
+ an &rsquot;]]> entity string.
+
From f0cdc467c655e757cabc96c4abc7166ce1ac95cb Mon Sep 17 00:00:00 2001
From: James
Date: Sun, 29 Jan 2017 17:50:49 -0500
Subject: [PATCH 11/31] Move new exmaple from #489 to subdirectory
---
.../hapi-fhir-standalone-overlay-example}/.classpath | 0
.../hapi-fhir-standalone-overlay-example}/.project | 0
.../.settings/org.eclipse.core.resources.prefs | 0
.../.settings/org.eclipse.m2e.core.prefs | 0
.../hapi-fhir-standalone-overlay-example}/pom.xml | 0
.../src/main/java/embedded/example/ContextListener.java | 0
.../src/main/java/embedded/example/FhirTesterConfig.java | 0
.../src/main/webapp/WEB-INF/web.xml | 0
.../src/test/java/test/WarTester.java | 0
9 files changed, 0 insertions(+), 0 deletions(-)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/.classpath (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/.project (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/.settings/org.eclipse.core.resources.prefs (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/.settings/org.eclipse.m2e.core.prefs (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/pom.xml (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/src/main/java/embedded/example/ContextListener.java (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/src/main/java/embedded/example/FhirTesterConfig.java (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/src/main/webapp/WEB-INF/web.xml (100%)
rename {hapi-fhir-standalone-overlay-example => example-projects/hapi-fhir-standalone-overlay-example}/src/test/java/test/WarTester.java (100%)
diff --git a/hapi-fhir-standalone-overlay-example/.classpath b/example-projects/hapi-fhir-standalone-overlay-example/.classpath
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/.classpath
rename to example-projects/hapi-fhir-standalone-overlay-example/.classpath
diff --git a/hapi-fhir-standalone-overlay-example/.project b/example-projects/hapi-fhir-standalone-overlay-example/.project
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/.project
rename to example-projects/hapi-fhir-standalone-overlay-example/.project
diff --git a/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs b/example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs
rename to example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.core.resources.prefs
diff --git a/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs b/example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs
rename to example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.m2e.core.prefs
diff --git a/hapi-fhir-standalone-overlay-example/pom.xml b/example-projects/hapi-fhir-standalone-overlay-example/pom.xml
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/pom.xml
rename to example-projects/hapi-fhir-standalone-overlay-example/pom.xml
diff --git a/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java b/example-projects/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java
rename to example-projects/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/ContextListener.java
diff --git a/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java b/example-projects/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java
rename to example-projects/hapi-fhir-standalone-overlay-example/src/main/java/embedded/example/FhirTesterConfig.java
diff --git a/hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml b/example-projects/hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml
rename to example-projects/hapi-fhir-standalone-overlay-example/src/main/webapp/WEB-INF/web.xml
diff --git a/hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java b/example-projects/hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java
similarity index 100%
rename from hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java
rename to example-projects/hapi-fhir-standalone-overlay-example/src/test/java/test/WarTester.java
From 3960666c684f1a923a4f3f4629feddbe39473ffe Mon Sep 17 00:00:00 2001
From: James
Date: Sun, 29 Jan 2017 17:56:13 -0500
Subject: [PATCH 12/31] Credit for #538
---
src/changes/changes.xml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9f6099f9801..7e3de664f6d 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -241,6 +241,13 @@
STU3 XHTML parser for narrative choked if the narrative contained
an &rsquot;]]> entity string.
+
+ When parsing a quantity parameter on the server with a
+ value and units but no system (e.g.
+ GET [base]/Observation?value=5.4||mg]]>)
+ the unit was incorrectly treated as the system. Thanks to
+ @CarthageKing for the pull request!
+
From d3ef52d49d35d2e3467a41cae1c3eaf80df4dcad Mon Sep 17 00:00:00 2001
From: James
Date: Sun, 29 Jan 2017 18:01:00 -0500
Subject: [PATCH 13/31] Credit for #533
---
pom.xml | 4 ++++
src/changes/changes.xml | 5 +++++
2 files changed, 9 insertions(+)
diff --git a/pom.xml b/pom.xml
index e07858d2edd..8fde86d0a16 100644
--- a/pom.xml
+++ b/pom.xml
@@ -288,6 +288,10 @@
rqg0717
James Ren
+
+ Robbert1
+ Robbert van Waveren
+
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 7e3de664f6d..a8dd6006321 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -248,6 +248,11 @@
the unit was incorrectly treated as the system. Thanks to
@CarthageKing for the pull request!
+
+ Correct a typo in the JPA ValueSet ResourceProvider which prevented
+ successful operation under Spring 4.3. Thanks to
+ Robbert van Waveren for the pull request!
+
From ce80007f8da9d88231318676891e83b49dc53103 Mon Sep 17 00:00:00 2001
From: James
Date: Sun, 29 Jan 2017 22:55:22 -0500
Subject: [PATCH 14/31] Bump spring version and refactor examples
---
.../.classpath | 0
.../.project | 0
.../org.eclipse.core.resources.prefs | 0
.../.settings/org.eclipse.m2e.core.prefs | 0
.../pom.xml | 4 ++-
.../main/java/embedded/ContextListener.java | 0
.../java/embedded/FhirRestfulServlet.java | 0
.../src/main/java/embedded/ServerStartup.java | 0
.../java/embedded/SomeResourceProvider.java | 0
.../pom.xml | 8 +++--
.../server/servlet/ServletRequestDetails.java | 15 ----------
hapi-fhir-jpaserver-base/pom.xml | 1 +
.../fhir/rest/server/ResourceMethodTest.java | 29 +++++++++++++++----
.../resources/vm/jpa_spring_beans_java.vm | 25 +++++++++++-----
pom.xml | 5 ++--
src/changes/changes.xml | 2 +-
16 files changed, 54 insertions(+), 35 deletions(-)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/.classpath (100%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/.project (100%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/.settings/org.eclipse.core.resources.prefs (100%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/.settings/org.eclipse.m2e.core.prefs (100%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/pom.xml (95%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/src/main/java/embedded/ContextListener.java (100%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/src/main/java/embedded/FhirRestfulServlet.java (100%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/src/main/java/embedded/ServerStartup.java (100%)
rename {hapi-fhir-base-example-embedded-ws => example-projects/hapi-fhir-base-example-embedded-ws}/src/main/java/embedded/SomeResourceProvider.java (100%)
diff --git a/hapi-fhir-base-example-embedded-ws/.classpath b/example-projects/hapi-fhir-base-example-embedded-ws/.classpath
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/.classpath
rename to example-projects/hapi-fhir-base-example-embedded-ws/.classpath
diff --git a/hapi-fhir-base-example-embedded-ws/.project b/example-projects/hapi-fhir-base-example-embedded-ws/.project
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/.project
rename to example-projects/hapi-fhir-base-example-embedded-ws/.project
diff --git a/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs b/example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs
rename to example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.core.resources.prefs
diff --git a/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs b/example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs
rename to example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.m2e.core.prefs
diff --git a/hapi-fhir-base-example-embedded-ws/pom.xml b/example-projects/hapi-fhir-base-example-embedded-ws/pom.xml
similarity index 95%
rename from hapi-fhir-base-example-embedded-ws/pom.xml
rename to example-projects/hapi-fhir-base-example-embedded-ws/pom.xml
index c37d000f727..ce746e8ae97 100644
--- a/hapi-fhir-base-example-embedded-ws/pom.xml
+++ b/example-projects/hapi-fhir-base-example-embedded-ws/pom.xml
@@ -5,6 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
2.3-SNAPSHOT
+ ../hapi-deployable-pom/pom.xml
jar
@@ -41,6 +42,7 @@
org.ebaysf.web
cors-filter
+ 1.0.1
ca.uhn.hapi.fhir
@@ -71,4 +73,4 @@
-
\ No newline at end of file
+
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java b/example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java
rename to example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ContextListener.java
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java b/example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java
rename to example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/FhirRestfulServlet.java
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java b/example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
rename to example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/ServerStartup.java
diff --git a/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java b/example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java
similarity index 100%
rename from hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java
rename to example-projects/hapi-fhir-base-example-embedded-ws/src/main/java/embedded/SomeResourceProvider.java
diff --git a/example-projects/hapi-fhir-standalone-overlay-example/pom.xml b/example-projects/hapi-fhir-standalone-overlay-example/pom.xml
index 05efe37315f..fef33f1705c 100644
--- a/example-projects/hapi-fhir-standalone-overlay-example/pom.xml
+++ b/example-projects/hapi-fhir-standalone-overlay-example/pom.xml
@@ -4,7 +4,8 @@
ca.uhn.hapi.fhir
hapi-fhir
- 2.1-SNAPSHOT
+ 2.3-SNAPSHOT
+ ../hapi-deployable-pom/pom.xml
hapi-fhir-standalone-overlay-example
@@ -36,14 +37,14 @@
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.1-SNAPSHOT
+ 2.3-SNAPSHOT
war
provided
ca.uhn.hapi.fhir
hapi-fhir-testpage-overlay
- 2.1-SNAPSHOT
+ 2.3-SNAPSHOT
classes
provided
@@ -73,6 +74,7 @@
org.ebaysf.web
cors-filter
+ 1.0.1
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/servlet/ServletRequestDetails.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/servlet/ServletRequestDetails.java
index 5cb84b72763..3000ed48133 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/servlet/ServletRequestDetails.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/servlet/ServletRequestDetails.java
@@ -28,10 +28,7 @@ import java.io.Reader;
import java.nio.charset.Charset;
import java.util.Collections;
import java.util.Enumeration;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
import java.util.zip.GZIPInputStream;
import javax.servlet.http.HttpServletRequest;
@@ -41,7 +38,6 @@ import org.apache.commons.io.IOUtils;
import org.apache.http.entity.ContentType;
import ca.uhn.fhir.context.ConfigurationException;
-import ca.uhn.fhir.rest.api.RequestTypeEnum;
import ca.uhn.fhir.rest.method.BaseMethodBinding;
import ca.uhn.fhir.rest.method.BaseMethodBinding.IRequestReader;
import ca.uhn.fhir.rest.method.RequestDetails;
@@ -168,17 +164,6 @@ public class ServletRequestDetails extends RequestDetails {
this.myServletResponse = myServletResponse;
}
- public static RequestDetails withResourceAndParams(String theResourceName, RequestTypeEnum theRequestType, Set theParamNames) {
- RequestDetails retVal = new ServletRequestDetails();
- retVal.setResourceName(theResourceName);
- retVal.setRequestType(theRequestType);
- Map paramNames = new HashMap();
- for (String next : theParamNames) {
- paramNames.put(next, new String[0]);
- }
- retVal.setParameters(paramNames);
- return retVal;
- }
@Override
public Charset getCharset() {
diff --git a/hapi-fhir-jpaserver-base/pom.xml b/hapi-fhir-jpaserver-base/pom.xml
index 3f5f9a01fc6..fdd93780866 100644
--- a/hapi-fhir-jpaserver-base/pom.xml
+++ b/hapi-fhir-jpaserver-base/pom.xml
@@ -419,6 +419,7 @@
alphabetical
${argLine} -Dfile.encoding=UTF-8 -Xmx1024m
+ 0.6C
diff --git a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/ResourceMethodTest.java b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/ResourceMethodTest.java
index 87906b7fc11..de081483877 100644
--- a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/ResourceMethodTest.java
+++ b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/ResourceMethodTest.java
@@ -2,12 +2,17 @@ package ca.uhn.fhir.rest.server;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
+import javax.servlet.http.HttpServletRequest;
+
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
@@ -54,7 +59,7 @@ public class ResourceMethodTest {
inputParams.add("lastName");
inputParams.add("mrn");
- RequestDetails params = ServletRequestDetails.withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams);
+ RequestDetails params = withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams);
boolean actual = rm.incomingServerRequestMatchesMethod(params);
assertTrue( actual); // True
}
@@ -75,7 +80,7 @@ public class ResourceMethodTest {
inputParams.add("mrn");
inputParams.add("foo");
- assertEquals(false, rm.incomingServerRequestMatchesMethod(ServletRequestDetails.withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // False
+ assertEquals(false, rm.incomingServerRequestMatchesMethod(withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // False
}
@Test
@@ -92,7 +97,7 @@ public class ResourceMethodTest {
inputParams.add("firstName");
inputParams.add("mrn");
- assertEquals(true, rm.incomingServerRequestMatchesMethod(ServletRequestDetails.withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // True
+ assertEquals(true, rm.incomingServerRequestMatchesMethod(withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // True
}
@Test
@@ -109,7 +114,7 @@ public class ResourceMethodTest {
inputParams.add("firstName");
inputParams.add("lastName");
- assertEquals(false, rm.incomingServerRequestMatchesMethod(ServletRequestDetails.withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // False
+ assertEquals(false, rm.incomingServerRequestMatchesMethod(withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // False
}
@Test
@@ -124,7 +129,7 @@ public class ResourceMethodTest {
Set inputParams = new HashSet();
inputParams.add("mrn");
- assertEquals(true, rm.incomingServerRequestMatchesMethod(ServletRequestDetails.withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // True
+ assertEquals(true, rm.incomingServerRequestMatchesMethod(withResourceAndParams("Patient", RequestTypeEnum.GET, inputParams))); // True
}
@Test(expected=IllegalStateException.class)
@@ -142,4 +147,18 @@ public class ResourceMethodTest {
TestUtil.clearAllStaticFieldsForUnitTest();
}
+
+ public static RequestDetails withResourceAndParams(String theResourceName, RequestTypeEnum theRequestType, Set theParamNames) {
+ ServletRequestDetails retVal = new ServletRequestDetails();
+ retVal.setResourceName(theResourceName);
+ retVal.setRequestType(theRequestType);
+ Map paramNames = new HashMap();
+ for (String next : theParamNames) {
+ paramNames.put(next, new String[0]);
+ }
+ retVal.setParameters(paramNames);
+ retVal.setServletRequest(mock(HttpServletRequest.class));
+ return retVal;
+ }
+
}
diff --git a/hapi-tinder-plugin/src/main/resources/vm/jpa_spring_beans_java.vm b/hapi-tinder-plugin/src/main/resources/vm/jpa_spring_beans_java.vm
index 7230adc3648..d3c5c30e8c8 100644
--- a/hapi-tinder-plugin/src/main/resources/vm/jpa_spring_beans_java.vm
+++ b/hapi-tinder-plugin/src/main/resources/vm/jpa_spring_beans_java.vm
@@ -21,9 +21,7 @@ import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.rest.server.IResourceProvider;
-import ca.uhn.fhir.jpa.dao.BaseHapiFhirDao;
-import ca.uhn.fhir.jpa.dao.IFhirResourceDao;
-import ca.uhn.fhir.jpa.dao.IFhirSystemDao;
+import ca.uhn.fhir.jpa.dao.*;
@Configuration
public abstract class BaseJavaConfig${versionCapitalized} extends ca.uhn.fhir.jpa.config${package_suffix}.Base${versionCapitalized}Config {
@@ -49,12 +47,23 @@ public abstract class BaseJavaConfig${versionCapitalized} extends ca.uhn.fhir.jp
#foreach ( $res in $resources )
@Bean(name="my${res.name}Dao${versionCapitalized}", autowire=Autowire.BY_NAME)
@Lazy
- public IFhirResourceDao<${resourcePackage}.${res.declaringClassNameComplete}> dao${res.declaringClassNameComplete}${versionCapitalized}() {
- ca.uhn.fhir.jpa.dao${package_suffix}.FhirResourceDao${versionCapitalized}<${resourcePackage}.${res.declaringClassNameComplete}> retVal;
-#if ( ${versionCapitalized} != 'Dstu1' && ( ${res.name} == 'Bundle' || ${res.name} == 'Encounter' || ${res.name} == 'Everything' || ${res.name} == 'Patient' || ${res.name} == 'Subscription' || ${res.name} == 'ValueSet' || ${res.name} == 'QuestionnaireResponse' || ${res.name} == 'SearchParameter' || ${res.name} == 'CodeSystem'))
- retVal = new ca.uhn.fhir.jpa.dao${package_suffix}.FhirResourceDao${res.name}${versionCapitalized}();
+ public
+#if ( ${versionCapitalized} == 'Dstu2' && ${res.name} == 'ValueSet' )
+ IFhirResourceDaoValueSet
+#elseif ( ${versionCapitalized} == 'Dstu3' && ${res.name} == 'ValueSet' )
+ IFhirResourceDaoValueSet
+#elseif ( ${versionCapitalized} == 'Dstu3' && ${res.name} == 'CodeSystem' )
+ IFhirResourceDaoCodeSystem
+#elseif ( ${versionCapitalized} != 'Dstu1' && ( ${res.name} == 'Encounter' || ${res.name} == 'Everything' || ${res.name} == 'Patient' || ${res.name} == 'Subscription' || ${res.name} == 'SearchParameter'))
+ IFhirResourceDao${res.name}<${resourcePackage}.${res.declaringClassNameComplete}>
#else
- retVal = new ca.uhn.fhir.jpa.dao${package_suffix}.FhirResourceDao${versionCapitalized}<${resourcePackage}.${res.declaringClassNameComplete}>();
+ IFhirResourceDao<${resourcePackage}.${res.declaringClassNameComplete}>
+#end
+ dao${res.declaringClassNameComplete}${versionCapitalized}() {
+#if ( ${versionCapitalized} != 'Dstu1' && ( ${res.name} == 'Bundle' || ${res.name} == 'Encounter' || ${res.name} == 'Everything' || ${res.name} == 'Patient' || ${res.name} == 'Subscription' || ${res.name} == 'ValueSet' || ${res.name} == 'QuestionnaireResponse' || ${res.name} == 'SearchParameter' || ${res.name} == 'CodeSystem'))
+ ca.uhn.fhir.jpa.dao${package_suffix}.FhirResourceDao${res.name}${versionCapitalized} retVal = new ca.uhn.fhir.jpa.dao${package_suffix}.FhirResourceDao${res.name}${versionCapitalized}();
+#else
+ ca.uhn.fhir.jpa.dao${package_suffix}.FhirResourceDao${versionCapitalized}<${resourcePackage}.${res.declaringClassNameComplete}> retVal = new ca.uhn.fhir.jpa.dao${package_suffix}.FhirResourceDao${versionCapitalized}<${resourcePackage}.${res.declaringClassNameComplete}>();
#end
retVal.setResourceType(${resourcePackage}.${res.declaringClassNameComplete}.class);
retVal.setContext(fhirContext${versionCapitalized}());
diff --git a/pom.xml b/pom.xml
index 8fde86d0a16..63286b29d3e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -325,7 +325,7 @@
2.4
2.7.1
4.4.6
- 4.3.1.RELEASE
+ 4.3.4.RELEASE
3.0.1.RELEASE
1.6
@@ -1642,7 +1642,8 @@
hapi-fhir-cli
hapi-fhir-dist
examples
- hapi-fhir-base-example-embedded-ws
+ example-projects/hapi-fhir-base-example-embedded-ws
+ example-projects/hapi-fhir-standalone-overlay-example
hapi-fhir-jacoco
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index a8dd6006321..2d651282ea0 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -12,7 +12,7 @@
latest versions (dependent HAPI modules listed in brackets):
-
+ spring (JPA): 4.3.1 -> 4.3.4
Derby (CLI): 10.12.1.1 -> 10.13.1.1
Jetty (CLI): 9.3.10.v20160621 -> 9.3.14.v20161028
JAnsi (CLI): 1.13 -> 1.14
From ad324174bdfce75d974242a1c6417990dc23f914 Mon Sep 17 00:00:00 2001
From: James
Date: Mon, 30 Jan 2017 08:06:31 -0500
Subject: [PATCH 15/31] Try to get travis working again
---
hapi-fhir-jpaserver-base/pom.xml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/hapi-fhir-jpaserver-base/pom.xml b/hapi-fhir-jpaserver-base/pom.xml
index fdd93780866..a8becc64ed4 100644
--- a/hapi-fhir-jpaserver-base/pom.xml
+++ b/hapi-fhir-jpaserver-base/pom.xml
@@ -526,6 +526,20 @@
true
+
+ NOPARALLEL
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ 1
+
+
+
+
+
-
- 5.1.0.Final
- 5.2.4.Final
+ 5.2.7.Final
+ 5.3.4.Final
+
+ 5.7.0.CR1
+ 5.5.2
2.5.3
1.8
2.4
2.7.1
4.4.6
- 4.3.4.RELEASE
- 3.0.1.RELEASE
+ 4.3.6.RELEASE
+ 3.0.2.RELEASE
1.6
@@ -515,12 +515,12 @@
org.apache.lucene
lucene-highlighter
- 5.3.1
+ ${lucene_version}
org.apache.lucene
lucene-analyzers-phonetic
- 5.3.1
+ ${lucene_version}
org.apache.maven.doxia
@@ -675,7 +675,7 @@
org.hibernate
hibernate-search-orm
- 5.5.4.Final
+ ${hibernate_search_version}
org.javassist
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2d651282ea0..9b85d7a26de 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -11,8 +11,11 @@
Bump the version of a few dependencies to the
latest versions (dependent HAPI modules listed in brackets):
- spring (JPA): 4.3.1 -> 4.3.4
+
+ Hibernate (JPA): 5.1.0 -> 5.2.7
+ Hibernate Search (JPA): 5.5.4 ->p; 5.7.0.CR1
+ Hibernate Validator (JPA): 5.2.4 ->p; 5.3.4
+ Spring (JPA): 4.3.1 -> 4.3.6
Derby (CLI): 10.12.1.1 -> 10.13.1.1
Jetty (CLI): 9.3.10.v20160621 -> 9.3.14.v20161028
JAnsi (CLI): 1.13 -> 1.14
From 11f1f4f6ee566771c0044090707fe277ed9df301 Mon Sep 17 00:00:00 2001
From: James
Date: Tue, 31 Jan 2017 06:53:04 -0500
Subject: [PATCH 17/31] Deprecate getAllPopulatedChildElementsOfType
---
.../ca/uhn/fhir/model/api/ICompositeElement.java | 8 ++++++++
.../uhn/fhir/model/dstu/resource/BaseResource.java | 13 +++++++++++++
src/changes/changes.xml | 7 +++++++
3 files changed, 28 insertions(+)
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/ICompositeElement.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/ICompositeElement.java
index 48c78514743..d3cdd977866 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/ICompositeElement.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/ICompositeElement.java
@@ -28,7 +28,15 @@ public interface ICompositeElement extends IElement {
* Returns a list containing all child elements matching a given type
*
* @param theType The type to match. If set to null, all child elements will be returned
+ *
+ * @deprecated This method is not used by HAPI at this point, so there isn't much
+ * point to keeping it around. We are not deleting it just so that we don't break
+ * existing implementer code, but you do not need to supply an implementation
+ * of this code in your own structures. Deprecated in HAPI FHIR 2.3 (Jan 2017).
+ * See See for
+ * a discussion about this.
*/
+ @Deprecated
List getAllPopulatedChildElementsOfType(Class theType);
diff --git a/hapi-fhir-structures-dstu/src/main/java/ca/uhn/fhir/model/dstu/resource/BaseResource.java b/hapi-fhir-structures-dstu/src/main/java/ca/uhn/fhir/model/dstu/resource/BaseResource.java
index 9b4ee68ff8d..40ddf538aa4 100644
--- a/hapi-fhir-structures-dstu/src/main/java/ca/uhn/fhir/model/dstu/resource/BaseResource.java
+++ b/hapi-fhir-structures-dstu/src/main/java/ca/uhn/fhir/model/dstu/resource/BaseResource.java
@@ -34,6 +34,8 @@ import org.hl7.fhir.instance.model.api.IIdType;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import ca.uhn.fhir.model.api.BaseElement;
+import ca.uhn.fhir.model.api.ICompositeElement;
+import ca.uhn.fhir.model.api.IElement;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.model.api.ResourceMetadataKeyEnum;
import ca.uhn.fhir.model.api.Tag;
@@ -92,6 +94,17 @@ public abstract class BaseResource extends BaseElement implements IResource {
@Child(name = "text", order = 1, min = 0, max = 1)
private NarrativeDt myText;
+ /**
+ * NOP implementation of this method.
+ *
+ * @see ICompositeElement#getAllPopulatedChildElementsOfType(Class) for an explanation of why you
+ * don't need to override this method
+ */
+ @Override
+ public List getAllPopulatedChildElementsOfType(Class theType) {
+ return Collections.emptyList();
+ }
+
@Override
public ContainedDt getContained() {
if (myContained == null) {
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9b85d7a26de..25a32a5b40a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -256,6 +256,13 @@
successful operation under Spring 4.3. Thanks to
Robbert van Waveren for the pull request!
+
+ Deprecate the method
+ ICompositeElement#getAllPopulatedChildElementsOfType(Class)]]>
+ as it is no longer used by HAPI and is just an annoying step
+ in creating custom structures. Thanks to Allan Bro Hansen
+ for pointing this out.
+
From b0981a8dc5031e8e2c5c734b3b4d88238309decd Mon Sep 17 00:00:00 2001
From: James
Date: Tue, 31 Jan 2017 07:22:38 -0500
Subject: [PATCH 18/31] Credit for #547
---
pom.xml | 5 +++++
src/changes/changes.xml | 6 ++++++
2 files changed, 11 insertions(+)
diff --git a/pom.xml b/pom.xml
index b5913d2d832..fba89705e73 100644
--- a/pom.xml
+++ b/pom.xml
@@ -292,6 +292,11 @@
Robbert1
Robbert van Waveren
+
+ daliboz
+ Jenny Syed
+ Cerner
+
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 25a32a5b40a..58fb44044d8 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -263,6 +263,12 @@
in creating custom structures. Thanks to Allan Bro Hansen
for pointing this out.
+
+ CapturingInterceptor did not buffer the response meaning
+ that in many circumstances it did not actually capture
+ the response. Thanks to Jenny Syed of Cerner for
+ the pull request and contribution!
+
From ea5a023e17c37be07557ec1698ea0006710dcdb6 Mon Sep 17 00:00:00 2001
From: James
Date: Tue, 31 Jan 2017 10:42:30 -0500
Subject: [PATCH 19/31] Fix typo
---
src/site/xdoc/doc_resource_references.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/site/xdoc/doc_resource_references.xml b/src/site/xdoc/doc_resource_references.xml
index 84071153644..fc29addb9c8 100644
--- a/src/site/xdoc/doc_resource_references.xml
+++ b/src/site/xdoc/doc_resource_references.xml
@@ -209,7 +209,7 @@ System.out.println(encoded);]]>
-
+
By default, HAPI will strip resource versions from references between resources.
From b4a362b8eeca42fc96fd68c5b6f48ea98d1403db Mon Sep 17 00:00:00 2001
From: James
Date: Wed, 1 Feb 2017 05:55:35 -0500
Subject: [PATCH 20/31] Work in progress
---
.../.settings/org.eclipse.jdt.core.prefs | 5 +
.../.settings/org.eclipse.jdt.core.prefs | 5 +
.../java/ca/uhn/fhir/context/FhirContext.java | 172 ++++++------
.../ca/uhn/fhir/context/ModelScanner.java | 5 +-
.../uhn/fhir/context/RuntimeSearchParam.java | 18 +-
.../fhir/rest/annotation/OptionalParam.java | 126 ++++-----
.../ca/uhn/fhir/rest/annotation/RawParam.java | 20 ++
.../fhir/rest/annotation/RequiredParam.java | 63 +++--
.../ca/uhn/fhir/rest/method/MethodUtil.java | 2 +
.../fhir/rest/method/RawParamsParmeter.java | 74 +++++
.../fhir/rest/method/SearchMethodBinding.java | 19 +-
.../.settings/org.eclipse.jdt.core.prefs | 5 +
.../.settings/org.eclipse.jdt.core.prefs | 5 +
.../.settings/org.eclipse.jdt.core.prefs | 5 +
.../.settings/org.eclipse.jdt.core.prefs | 5 +
.../uhn/fhir/jpa/config/BaseDstu1Config.java | 36 ++-
.../uhn/fhir/jpa/config/BaseDstu2Config.java | 7 +
.../jpa/config/dstu3/BaseDstu3Config.java | 58 ++--
.../fhir/jpa/dao/BaseHapiFhirResourceDao.java | 7 +-
.../jpa/dao/BaseSearchParamExtractor.java | 51 ++--
.../fhir/jpa/dao/BaseSearchParamRegistry.java | 65 +++++
.../java/ca/uhn/fhir/jpa/dao/DaoConfig.java | 120 +++++---
.../jpa/dao/FhirResourceDaoPatientDstu2.java | 6 +-
.../fhir/jpa/dao/ISearchParamRegistry.java | 13 +
.../ca/uhn/fhir/jpa/dao/SearchBuilder.java | 91 +++---
.../jpa/dao/SearchParamExtractorDstu1.java | 24 +-
.../jpa/dao/SearchParamExtractorDstu2.java | 44 +--
.../jpa/dao/SearchParamRegistryDstu1.java | 6 +
.../jpa/dao/SearchParamRegistryDstu2.java | 6 +
.../dstu3/FhirResourceDaoPatientDstu3.java | 7 +-
.../dao/dstu3/SearchParamExtractorDstu3.java | 68 ++---
.../dao/dstu3/SearchParamRegistryDstu3.java | 194 +++++++++++++
.../fhir/jpa/dao/dstu3/BaseJpaDstu3Test.java | 6 +
...ResourceDaoDstu3SearchCustomParamTest.java | 203 ++++++++++++++
.../dstu3/SearchParamExtractorDstu3Test.java | 26 +-
.../fhir/rest/server/DynamicSearchTest.java | 5 +-
.../server/SearchDefaultMethodDstu3Test.java | 261 ++++++++++++++++++
.../.settings/org.eclipse.jdt.core.prefs | 5 +
38 files changed, 1448 insertions(+), 390 deletions(-)
create mode 100644 example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.jdt.core.prefs
create mode 100644 example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.jdt.core.prefs
create mode 100644 hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RawParam.java
create mode 100644 hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/RawParamsParmeter.java
create mode 100644 hapi-fhir-client-okhttp/.settings/org.eclipse.jdt.core.prefs
create mode 100644 hapi-fhir-jacoco/.settings/org.eclipse.jdt.core.prefs
create mode 100644 hapi-fhir-jaxrsserver-base/.settings/org.eclipse.jdt.core.prefs
create mode 100644 hapi-fhir-jaxrsserver-example/.settings/org.eclipse.jdt.core.prefs
create mode 100644 hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java
create mode 100644 hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/ISearchParamRegistry.java
create mode 100644 hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu1.java
create mode 100644 hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu2.java
create mode 100644 hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamRegistryDstu3.java
create mode 100644 hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java
create mode 100644 hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/rest/server/SearchDefaultMethodDstu3Test.java
create mode 100644 hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.jdt.core.prefs
diff --git a/example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.jdt.core.prefs b/example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..60105c1b951
--- /dev/null
+++ b/example-projects/hapi-fhir-base-example-embedded-ws/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.jdt.core.prefs b/example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..714351aec19
--- /dev/null
+++ b/example-projects/hapi-fhir-standalone-overlay-example/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java
index edcbecb4ea6..8e60f760bb5 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java
@@ -82,87 +82,22 @@ public class FhirContext {
private Map> myDefaultTypeForProfile = new HashMap>();
private volatile Map myIdToResourceDefinition = Collections.emptyMap();
private boolean myInitialized;
+ private boolean myInitializing;
private HapiLocalizer myLocalizer = new HapiLocalizer();
private volatile Map> myNameToElementDefinition = Collections.emptyMap();
private volatile Map myNameToResourceDefinition = Collections.emptyMap();
private volatile Map> myNameToResourceType;
private volatile INarrativeGenerator myNarrativeGenerator;
private volatile IParserErrorHandler myParserErrorHandler = new LenientErrorHandler();
+ private ParserOptions myParserOptions = new ParserOptions();
private Set myPerformanceOptions = new HashSet();
private Collection> myResourceTypesToScan;
private volatile IRestfulClientFactory myRestfulClientFactory;
private volatile RuntimeChildUndeclaredExtensionDefinition myRuntimeChildUndeclaredExtensionDefinition;
- private final IFhirVersion myVersion;
- private Map>> myVersionToNameToResourceType = Collections.emptyMap();
- private boolean myInitializing;
private IContextValidationSupport, ?, ?, ?, ?, ?> myValidationSupport;
+ private final IFhirVersion myVersion;
- /**
- * Returns the validation support module configured for this context, creating a default
- * implementation if no module has been passed in via the {@link #setValidationSupport(IContextValidationSupport)}
- * method
- * @see #setValidationSupport(IContextValidationSupport)
- */
- public IContextValidationSupport, ?, ?, ?, ?, ?> getValidationSupport() {
- if (myValidationSupport == null) {
- myValidationSupport = myVersion.createValidationSupport();
- }
- return myValidationSupport;
- }
-
- /**
- * Creates a new FluentPath engine which can be used to exvaluate
- * path expressions over FHIR resources. Note that this engine will use the
- * {@link IContextValidationSupport context validation support} module which is
- * configured on the context at the time this method is called.
- *
- * In other words, call {@link #setValidationSupport(IContextValidationSupport)} before
- * calling {@link #newFluentPath()}
- *
- *
- * Note that this feature was added for FHIR DSTU3 and is not available
- * for contexts configured to use an older version of FHIR. Calling this method
- * on a context for a previous version of fhir will result in an
- * {@link UnsupportedOperationException}
- *
- *
- * @since 2.2
- */
- public IFluentPath newFluentPath() {
- return myVersion.createFluentPathExecutor(this);
- }
-
- /**
- * Sets the validation support module to use for this context. The validation support module
- * is used to supply underlying infrastructure such as conformance resources (StructureDefinition, ValueSet, etc)
- * as well as to provide terminology services to modules such as the validator and FluentPath executor
- */
- public void setValidationSupport(IContextValidationSupport, ?, ?, ?, ?, ?> theValidationSupport) {
- myValidationSupport = theValidationSupport;
- }
-
- private ParserOptions myParserOptions = new ParserOptions();
-
- /**
- * Returns the parser options object which will be used to supply default
- * options to newly created parsers
- *
- * @return The parser options - Will not return null
- */
- public ParserOptions getParserOptions() {
- return myParserOptions;
- }
-
- /**
- * Sets the parser options object which will be used to supply default
- * options to newly created parsers
- *
- * @param theParserOptions The parser options object - Must not be null
- */
- public void setParserOptions(ParserOptions theParserOptions) {
- Validate.notNull(theParserOptions, "theParserOptions must not be null");
- myParserOptions = theParserOptions;
- }
+ private Map>> myVersionToNameToResourceType = Collections.emptyMap();
/**
* @deprecated It is recommended that you use one of the static initializer methods instead
@@ -172,7 +107,7 @@ public class FhirContext {
public FhirContext() {
this(EMPTY_LIST);
}
-
+
/**
* @deprecated It is recommended that you use one of the static initializer methods instead
* of this method, e.g. {@link #forDstu2()} or {@link #forDstu3()}
@@ -282,7 +217,7 @@ public class FhirContext {
validateInitialized();
return myNameToResourceDefinition.values();
}
-
+
/**
* Returns the default resource type for the given profile
*
@@ -332,7 +267,7 @@ public class FhirContext {
validateInitialized();
return Collections.unmodifiableCollection(myClassToElementDefinition.values());
}
-
+
/**
* This feature is not yet in its final state and should be considered an internal part of HAPI for now - use with
* caution
@@ -348,6 +283,16 @@ public class FhirContext {
return myNarrativeGenerator;
}
+ /**
+ * Returns the parser options object which will be used to supply default
+ * options to newly created parsers
+ *
+ * @return The parser options - Will not return null
+ */
+ public ParserOptions getParserOptions() {
+ return myParserOptions;
+ }
+
/**
* Get the configured performance options
*/
@@ -449,6 +394,20 @@ public class FhirContext {
return myIdToResourceDefinition.get(theId);
}
+// /**
+// * Return an unmodifiable collection containing all known resource definitions
+// */
+// public Collection getResourceDefinitions() {
+//
+// Set> datatypes = Collections.emptySet();
+// Map, BaseRuntimeElementDefinition>> existing = Collections.emptyMap();
+// HashMap> types = new HashMap>();
+// ModelScanner.scanVersionPropertyFile(datatypes, types, myVersion.getVersion(), existing);
+// for (int next : types.)
+//
+// return Collections.unmodifiableCollection(myIdToResourceDefinition.values());
+// }
+
/**
* Returns the scanned runtime models. This is an advanced feature which is generally only needed for extending the
* core library.
@@ -476,6 +435,19 @@ public class FhirContext {
return myRuntimeChildUndeclaredExtensionDefinition;
}
+ /**
+ * Returns the validation support module configured for this context, creating a default
+ * implementation if no module has been passed in via the {@link #setValidationSupport(IContextValidationSupport)}
+ * method
+ * @see #setValidationSupport(IContextValidationSupport)
+ */
+ public IContextValidationSupport, ?, ?, ?, ?, ?> getValidationSupport() {
+ if (myValidationSupport == null) {
+ myValidationSupport = myVersion.createValidationSupport();
+ }
+ return myValidationSupport;
+ }
+
public IFhirVersion getVersion() {
return myVersion;
}
@@ -500,6 +472,28 @@ public class FhirContext {
return myVersion.newBundleFactory(this);
}
+ /**
+ * Creates a new FluentPath engine which can be used to exvaluate
+ * path expressions over FHIR resources. Note that this engine will use the
+ * {@link IContextValidationSupport context validation support} module which is
+ * configured on the context at the time this method is called.
+ *
+ * In other words, call {@link #setValidationSupport(IContextValidationSupport)} before
+ * calling {@link #newFluentPath()}
+ *
+ *
+ * Note that this feature was added for FHIR DSTU3 and is not available
+ * for contexts configured to use an older version of FHIR. Calling this method
+ * on a context for a previous version of fhir will result in an
+ * {@link UnsupportedOperationException}
+ *
+ *
+ * @since 2.2
+ */
+ public IFluentPath newFluentPath() {
+ return myVersion.createFluentPathExecutor(this);
+ }
+
/**
* Create and return a new JSON parser.
*
@@ -783,6 +777,17 @@ public class FhirContext {
myParserErrorHandler = theParserErrorHandler;
}
+ /**
+ * Sets the parser options object which will be used to supply default
+ * options to newly created parsers
+ *
+ * @param theParserOptions The parser options object - Must not be null
+ */
+ public void setParserOptions(ParserOptions theParserOptions) {
+ Validate.notNull(theParserOptions, "theParserOptions must not be null");
+ myParserOptions = theParserOptions;
+ }
+
/**
* Sets the configured performance options
*
@@ -818,6 +823,15 @@ public class FhirContext {
this.myRestfulClientFactory = theRestfulClientFactory;
}
+ /**
+ * Sets the validation support module to use for this context. The validation support module
+ * is used to supply underlying infrastructure such as conformance resources (StructureDefinition, ValueSet, etc)
+ * as well as to provide terminology services to modules such as the validator and FluentPath executor
+ */
+ public void setValidationSupport(IContextValidationSupport, ?, ?, ?, ?, ?> theValidationSupport) {
+ myValidationSupport = theValidationSupport;
+ }
+
@SuppressWarnings({ "cast" })
private List> toElementList(Collection> theResourceTypes) {
if (theResourceTypes == null) {
@@ -850,6 +864,13 @@ public class FhirContext {
return new FhirContext(FhirVersionEnum.DSTU2);
}
+ /**
+ * Creates and returns a new FhirContext with version {@link FhirVersionEnum#DSTU2 DSTU2} (2016 May DSTU3 Snapshot)
+ */
+ public static FhirContext forDstu2_1() {
+ return new FhirContext(FhirVersionEnum.DSTU2_1);
+ }
+
/**
* Creates and returns a new FhirContext with version {@link FhirVersionEnum#DSTU2_HL7ORG DSTU2} (using the Reference
* Implementation Structures)
@@ -885,11 +906,4 @@ public class FhirContext {
return retVal;
}
- /**
- * Creates and returns a new FhirContext with version {@link FhirVersionEnum#DSTU2 DSTU2} (2016 May DSTU3 Snapshot)
- */
- public static FhirContext forDstu2_1() {
- return new FhirContext(FhirVersionEnum.DSTU2_1);
- }
-
}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java
index 42776441e9a..96a418a7c95 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java
@@ -34,6 +34,7 @@ import java.util.Map.Entry;
import org.apache.commons.io.IOUtils;
import org.hl7.fhir.instance.model.api.*;
+import ca.uhn.fhir.context.RuntimeSearchParam.RuntimeSearchParamStatusEnum;
import ca.uhn.fhir.model.api.ExtensionDt;
import ca.uhn.fhir.model.api.IDatatype;
import ca.uhn.fhir.model.api.IElement;
@@ -437,7 +438,7 @@ class ModelScanner {
}
- RuntimeSearchParam param = new RuntimeSearchParam(searchParam.name(), searchParam.description(), searchParam.path(), paramType, providesMembershipInCompartments, toTargetList(searchParam.target()));
+ RuntimeSearchParam param = new RuntimeSearchParam(searchParam.name(), searchParam.description(), searchParam.path(), paramType, providesMembershipInCompartments, toTargetList(searchParam.target()), RuntimeSearchParamStatusEnum.ACTIVE);
theResourceDef.addSearchParam(param);
nameToParam.put(param.getName(), param);
}
@@ -457,7 +458,7 @@ class ModelScanner {
compositeOf.add(param);
}
- RuntimeSearchParam param = new RuntimeSearchParam(searchParam.name(), searchParam.description(), searchParam.path(), RestSearchParameterTypeEnum.COMPOSITE, compositeOf, null, toTargetList(searchParam.target()));
+ RuntimeSearchParam param = new RuntimeSearchParam(searchParam.name(), searchParam.description(), searchParam.path(), RestSearchParameterTypeEnum.COMPOSITE, compositeOf, null, toTargetList(searchParam.target()), RuntimeSearchParamStatusEnum.ACTIVE);
theResourceDef.addSearchParam(param);
}
}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java
index 22da3f10e0f..7851ef55d6b 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java
@@ -37,15 +37,17 @@ public class RuntimeSearchParam {
private final String myPath;
private final Set myTargets;
private final Set myProvidesMembershipInCompartments;
+ private final RuntimeSearchParamStatusEnum myStatus;
public RuntimeSearchParam(String theName, String theDescription, String thePath, RestSearchParameterTypeEnum theParamType, List theCompositeOf,
- Set theProvidesMembershipInCompartments, Set theTargets) {
+ Set theProvidesMembershipInCompartments, Set theTargets, RuntimeSearchParamStatusEnum theStatus) {
super();
myName = theName;
myDescription = theDescription;
myPath = thePath;
myParamType = theParamType;
myCompositeOf = theCompositeOf;
+ myStatus = theStatus;
if (theProvidesMembershipInCompartments != null && !theProvidesMembershipInCompartments.isEmpty()) {
myProvidesMembershipInCompartments = Collections.unmodifiableSet(theProvidesMembershipInCompartments);
} else {
@@ -62,8 +64,12 @@ public class RuntimeSearchParam {
return myTargets;
}
- public RuntimeSearchParam(String theName, String theDescription, String thePath, RestSearchParameterTypeEnum theParamType, Set theProvidesMembershipInCompartments, Set theTargets) {
- this(theName, theDescription, thePath, theParamType, null, theProvidesMembershipInCompartments, theTargets);
+ public RuntimeSearchParamStatusEnum getStatus() {
+ return myStatus;
+ }
+
+ public RuntimeSearchParam(String theName, String theDescription, String thePath, RestSearchParameterTypeEnum theParamType, Set theProvidesMembershipInCompartments, Set theTargets, RuntimeSearchParamStatusEnum theStatus) {
+ this(theName, theDescription, thePath, theParamType, null, theProvidesMembershipInCompartments, theTargets, theStatus);
}
public List getCompositeOf() {
@@ -108,4 +114,10 @@ public class RuntimeSearchParam {
return myProvidesMembershipInCompartments;
}
+ public enum RuntimeSearchParamStatusEnum {
+ ACTIVE,
+ DRAFT,
+ RETIRED
+ }
+
}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/OptionalParam.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/OptionalParam.java
index 5a1b573b030..6b7bf8a3df6 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/OptionalParam.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/OptionalParam.java
@@ -1,5 +1,7 @@
package ca.uhn.fhir.rest.annotation;
+import java.lang.annotation.ElementType;
+
/*
* #%L
* HAPI FHIR - Core Library
@@ -10,7 +12,7 @@ package ca.uhn.fhir.rest.annotation;
* 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
+ * 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,
@@ -22,19 +24,19 @@ package ca.uhn.fhir.rest.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
import org.hl7.fhir.instance.model.api.IBaseResource;
import ca.uhn.fhir.model.api.IQueryParameterType;
import ca.uhn.fhir.rest.param.CompositeParam;
import ca.uhn.fhir.rest.param.ReferenceParam;
-//import ca.uhn.fhir.testmodel.Patient; // TODO: qualify this correctly
-
/**
- * Parameter annotation which specifies a search parameter for a {@link Search} method.
+ * Parameter annotation which specifies a search parameter for a {@link Search} method.
*/
@Retention(RetentionPolicy.RUNTIME)
+@Target(value=ElementType.PARAMETER)
public @interface OptionalParam {
public static final String ALLOW_CHAIN_ANY = "*";
@@ -42,63 +44,63 @@ public @interface OptionalParam {
public static final String ALLOW_CHAIN_NOTCHAINED = "";
/**
- * For reference parameters ({@link ReferenceParam}) this value may be
- * used to indicate which chain values (if any) are not valid
- * for the given parameter. Values here will supercede any values specified
- * in {@link #chainWhitelist()}
- *
- * If the parameter annotated with this annotation is not a {@link ReferenceParam},
- * this value must not be populated.
- *
- */
+ * For reference parameters ({@link ReferenceParam}) this value may be
+ * used to indicate which chain values (if any) are not valid
+ * for the given parameter. Values here will supercede any values specified
+ * in {@link #chainWhitelist()}
+ *
+ * If the parameter annotated with this annotation is not a {@link ReferenceParam},
+ * this value must not be populated.
+ *
+ */
String[] chainBlacklist() default {};
-
- /**
- * For reference parameters ({@link ReferenceParam}) this value may be
- * used to indicate which chain values (if any) are valid for the given
- * parameter. If the list contains the value {@link #ALLOW_CHAIN_ANY}, all values are valid. (this is the default)
- * If the list contains the value {@link #ALLOW_CHAIN_NOTCHAINED}
- * then the reference param only supports the empty chain (i.e. the resource
- * ID).
- *
- * Valid values for this parameter include:
- *
- *
- * chainWhitelist={ OptionalParam.ALLOW_CHAIN_NOTCHAINED }
- Only allow resource reference (no chaining allowed for this parameter)
- * chainWhitelist={ OptionalParam.ALLOW_CHAIN_ANY }
- Allow any chaining at all (including a non chained value, this is the default )
- * chainWhitelist={ "foo", "bar" }
- Allow property.foo and property.bar
- *
- *
- * Any values specified in
- * {@link #chainBlacklist()} will supercede (have priority over) values
- * here.
- *
- *
- * If the parameter annotated with this annotation is not a {@link ReferenceParam},
- * this value must not be populated.
- *
- */
- String[] chainWhitelist() default {ALLOW_CHAIN_ANY};
-
- /**
- * For composite parameters ({@link CompositeParam}) this value may be
- * used to indicate the parameter type(s) which may be referenced by this param.
- *
- * If the parameter annotated with this annotation is not a {@link CompositeParam},
- * this value must not be populated.
- *
- */
- Class extends IQueryParameterType>[] compositeTypes() default {};
- /**
- * This is the name for the parameter. Generally this should be a
+ /**
+ * For reference parameters ({@link ReferenceParam}) this value may be
+ * used to indicate which chain values (if any) are valid for the given
+ * parameter. If the list contains the value {@link #ALLOW_CHAIN_ANY}, all values are valid. (this is the default)
+ * If the list contains the value {@link #ALLOW_CHAIN_NOTCHAINED}
+ * then the reference param only supports the empty chain (i.e. the resource
+ * ID).
+ *
+ * Valid values for this parameter include:
+ *
+ *
+ * chainWhitelist={ OptionalParam.ALLOW_CHAIN_NOTCHAINED }
- Only allow resource reference (no chaining allowed for this parameter)
+ * chainWhitelist={ OptionalParam.ALLOW_CHAIN_ANY }
- Allow any chaining at all (including a non chained value, this is the default )
+ * chainWhitelist={ "foo", "bar" }
- Allow property.foo and property.bar
+ *
+ *
+ * Any values specified in
+ * {@link #chainBlacklist()} will supercede (have priority over) values
+ * here.
+ *
+ *
+ * If the parameter annotated with this annotation is not a {@link ReferenceParam},
+ * this value must not be populated.
+ *
+ */
+ String[] chainWhitelist() default { ALLOW_CHAIN_ANY };
+
+ /**
+ * For composite parameters ({@link CompositeParam}) this value may be
+ * used to indicate the parameter type(s) which may be referenced by this param.
+ *
+ * If the parameter annotated with this annotation is not a {@link CompositeParam},
+ * this value must not be populated.
+ *
+ */
+ Class extends IQueryParameterType>[] compositeTypes() default {};
+
+ /**
+ * This is the name for the parameter. Generally this should be a
* simple string (e.g. "name", or "identifier") which will be the name
* of the URL parameter used to populate this method parameter.
*
* Most resource model classes have constants which may be used to
* supply values for this field, e.g. Patient.SP_NAME
or
* Observation.SP_DATE
- *
+ *
*
* If you wish to specify a parameter for a resource reference which
* only accepts a specific chained value, it is also valid to supply
@@ -109,13 +111,13 @@ public @interface OptionalParam {
*/
String name();
- /**
- * For resource reference parameters ({@link ReferenceParam}) this value may be
- * used to indicate the resource type(s) which may be referenced by this param.
- *
- * If the parameter annotated with this annotation is not a {@link ReferenceParam},
- * this value must not be populated.
- *
- */
- Class extends IBaseResource>[] targetTypes() default {};
+ /**
+ * For resource reference parameters ({@link ReferenceParam}) this value may be
+ * used to indicate the resource type(s) which may be referenced by this param.
+ *
+ * If the parameter annotated with this annotation is not a {@link ReferenceParam},
+ * this value must not be populated.
+ *
+ */
+ Class extends IBaseResource>[] targetTypes() default {};
}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RawParam.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RawParam.java
new file mode 100644
index 00000000000..db68c28b50b
--- /dev/null
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RawParam.java
@@ -0,0 +1,20 @@
+package ca.uhn.fhir.rest.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * On a {@link Search} method, a parameter marked with this annotation
+ * will receive search parameters not captured by other parameters.
+ *
+ * Parameters with this annotation must be of type
+ * {@code Map>}
+ *
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(value=ElementType.PARAMETER)
+public @interface RawParam {
+ // nothing
+}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RequiredParam.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RequiredParam.java
index af12e9e14ac..9efda9da757 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RequiredParam.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/annotation/RequiredParam.java
@@ -1,5 +1,7 @@
package ca.uhn.fhir.rest.annotation;
+import java.lang.annotation.ElementType;
+
/*
* #%L
* HAPI FHIR - Core Library
@@ -10,7 +12,7 @@ package ca.uhn.fhir.rest.annotation;
* 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
+ * 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,
@@ -22,18 +24,19 @@ package ca.uhn.fhir.rest.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
import org.hl7.fhir.instance.model.api.IBaseResource;
import ca.uhn.fhir.model.api.IQueryParameterType;
import ca.uhn.fhir.rest.param.CompositeParam;
import ca.uhn.fhir.rest.param.ReferenceParam;
-//import ca.uhn.fhir.testmodel.Patient; // TODO: qualify this correctly
-@Retention(RetentionPolicy.RUNTIME)
/**
- * Parameter annotation which specifies a search parameter for a {@link Search} method.
+ * Parameter annotation which specifies a search parameter for a {@link Search} method.
*/
+@Retention(RetentionPolicy.RUNTIME)
+@Target(value=ElementType.PARAMETER)
public @interface RequiredParam {
/**
@@ -45,32 +48,32 @@ public @interface RequiredParam {
*/
String[] chainBlacklist() default {};
- /**
- * For reference parameters ({@link ReferenceParam}) this value may be
- * used to indicate which chain values (if any) are valid for the given
- * parameter. If the list contains the value {@link OptionalParam#ALLOW_CHAIN_ANY}, all values are valid. (this is the default)
- * If the list contains the value {@link OptionalParam#ALLOW_CHAIN_NOTCHAINED}
- * then the reference param only supports the empty chain (i.e. the resource
- * ID).
- *
- * Valid values for this parameter include:
- *
- *
- * chainWhitelist={ OptionalParam.ALLOW_CHAIN_NOTCHAINED }
- Only allow resource reference (no chaining allowed for this parameter)
- * chainWhitelist={ OptionalParam.ALLOW_CHAIN_ANY }
- Allow any chaining at all (including a non chained value, this is the default )
- * chainWhitelist={ "foo", "bar" }
- Allow property.foo and property.bar
- *
- *
- * Any values specified in
- * {@link #chainBlacklist()} will supercede (have priority over) values
- * here.
- *
- *
- * If the parameter annotated with this annotation is not a {@link ReferenceParam},
- * this value must not be populated.
- *
- */
- String[] chainWhitelist() default {OptionalParam.ALLOW_CHAIN_ANY};
+ /**
+ * For reference parameters ({@link ReferenceParam}) this value may be
+ * used to indicate which chain values (if any) are valid for the given
+ * parameter. If the list contains the value {@link OptionalParam#ALLOW_CHAIN_ANY}, all values are valid. (this is the default)
+ * If the list contains the value {@link OptionalParam#ALLOW_CHAIN_NOTCHAINED}
+ * then the reference param only supports the empty chain (i.e. the resource
+ * ID).
+ *
+ * Valid values for this parameter include:
+ *
+ *
+ * chainWhitelist={ OptionalParam.ALLOW_CHAIN_NOTCHAINED }
- Only allow resource reference (no chaining allowed for this parameter)
+ * chainWhitelist={ OptionalParam.ALLOW_CHAIN_ANY }
- Allow any chaining at all (including a non chained value, this is the default )
+ * chainWhitelist={ "foo", "bar" }
- Allow property.foo and property.bar
+ *
+ *
+ * Any values specified in
+ * {@link #chainBlacklist()} will supercede (have priority over) values
+ * here.
+ *
+ *
+ * If the parameter annotated with this annotation is not a {@link ReferenceParam},
+ * this value must not be populated.
+ *
+ */
+ String[] chainWhitelist() default { OptionalParam.ALLOW_CHAIN_ANY };
/**
* For composite parameters ({@link CompositeParam}) this parameter may be used to indicate the parameter type(s) which may be referenced by this param.
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java
index acf66dc7a1e..0a1ec69dbfd 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java
@@ -407,6 +407,8 @@ public class MethodUtil {
parameter.setType(theContext, parameterType, innerCollectionType, outerCollectionType);
MethodUtil.extractDescription(parameter, annotations);
param = parameter;
+ } else if (nextAnnotation instanceof RawParam) {
+ param = new RawParamsParmeter(parameters);
} else if (nextAnnotation instanceof IncludeParam) {
Class extends Collection> instantiableCollectionType;
Class> specType;
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/RawParamsParmeter.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/RawParamsParmeter.java
new file mode 100644
index 00000000000..91afa3afe88
--- /dev/null
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/RawParamsParmeter.java
@@ -0,0 +1,74 @@
+package ca.uhn.fhir.rest.method;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.Validate;
+import org.hl7.fhir.instance.model.api.IBaseResource;
+
+import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.rest.annotation.RawParam;
+import ca.uhn.fhir.rest.method.SearchMethodBinding.QualifierDetails;
+import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
+import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
+
+public class RawParamsParmeter implements IParameter {
+
+ private final List myAllMethodParameters;
+
+ public RawParamsParmeter(List theParameters) {
+ myAllMethodParameters = theParameters;
+ }
+
+ @Override
+ public void translateClientArgumentIntoQueryArgument(FhirContext theContext, Object theSourceClientArgument, Map> theTargetQueryArguments, IBaseResource theTargetResource)
+ throws InternalErrorException {
+ // not supported on client for now
+ }
+
+ @Override
+ public Object translateQueryParametersIntoServerArgument(RequestDetails theRequest, BaseMethodBinding> theMethodBinding) throws InternalErrorException, InvalidRequestException {
+ HashMap> retVal = null;
+
+ for (String nextName : theRequest.getParameters().keySet()) {
+ if (nextName.startsWith("_")) {
+ continue;
+ }
+
+ QualifierDetails qualifiers = SearchMethodBinding.extractQualifiersFromParameterName(nextName);
+
+ boolean alreadyCaptured = false;
+ for (IParameter nextParameter : myAllMethodParameters) {
+ if (nextParameter instanceof SearchParameter) {
+ SearchParameter nextSearchParam = (SearchParameter)nextParameter;
+ if (nextSearchParam.getName().equals(qualifiers.getParamName())) {
+ if (qualifiers.passes(nextSearchParam.getQualifierWhitelist(), nextSearchParam.getQualifierBlacklist())) {
+ alreadyCaptured = true;
+ break;
+ }
+ }
+ }
+ }
+
+ if (!alreadyCaptured) {
+ if (retVal == null) {
+ retVal = new HashMap>();
+ }
+ retVal.put(nextName, Arrays.asList(theRequest.getParameters().get(nextName)));
+ }
+
+ }
+
+ return retVal;
+ }
+
+ @Override
+ public void initializeTypes(Method theMethod, Class extends Collection>> theOuterCollectionType, Class extends Collection>> theInnerCollectionType, Class> theParameterType) {
+ Validate.isTrue(theParameterType.equals(Map.class), "Parameter with @" + RawParam.class + " must be of type Map>");
+ }
+
+}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
index 9e364c4cbb3..456b24cf304 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
@@ -130,11 +130,7 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
@Override
public ReturnTypeEnum getReturnType() {
-// if (getContext().getVersion().getVersion() == FhirVersionEnum.DSTU1) {
return ReturnTypeEnum.BUNDLE;
-// } else {
-// return ReturnTypeEnum.RESOURCE;
-// }
}
@Override
@@ -406,14 +402,20 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
if (dotIdx < colonIdx) {
retVal.setDotQualifier(theParamName.substring(dotIdx, colonIdx));
retVal.setColonQualifier(theParamName.substring(colonIdx));
+ retVal.setParamName(theParamName.substring(0, dotIdx));
} else {
retVal.setColonQualifier(theParamName.substring(colonIdx, dotIdx));
retVal.setDotQualifier(theParamName.substring(dotIdx));
+ retVal.setParamName(theParamName.substring(0, colonIdx));
}
} else if (dotIdx != -1) {
retVal.setDotQualifier(theParamName.substring(dotIdx));
+ retVal.setParamName(theParamName.substring(0, dotIdx));
} else if (colonIdx != -1) {
retVal.setColonQualifier(theParamName.substring(colonIdx));
+ retVal.setParamName(theParamName.substring(0, colonIdx));
+ } else {
+ retVal.setParamName(theParamName);
}
return retVal;
@@ -423,6 +425,7 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
private String myColonQualifier;
private String myDotQualifier;
+ private String myParamName;
public boolean passes(Set theQualifierWhitelist, Set theQualifierBlacklist) {
if (theQualifierWhitelist != null) {
@@ -468,6 +471,14 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
return true;
}
+ public void setParamName(String theParamName) {
+ myParamName = theParamName;
+ }
+
+ public String getParamName() {
+ return myParamName;
+ }
+
public void setColonQualifier(String theColonQualifier) {
myColonQualifier = theColonQualifier;
}
diff --git a/hapi-fhir-client-okhttp/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-client-okhttp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..60105c1b951
--- /dev/null
+++ b/hapi-fhir-client-okhttp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-jacoco/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jacoco/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..60105c1b951
--- /dev/null
+++ b/hapi-fhir-jacoco/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..60105c1b951
--- /dev/null
+++ b/hapi-fhir-jaxrsserver-base/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..60105c1b951
--- /dev/null
+++ b/hapi-fhir-jaxrsserver-example/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu1Config.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu1Config.java
index 695cf2ea97c..08682c4463a 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu1Config.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu1Config.java
@@ -10,7 +10,7 @@ package ca.uhn.fhir.jpa.config;
* 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
+ * 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,
@@ -29,7 +29,9 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Primary;
import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.jpa.dao.ISearchParamRegistry;
import ca.uhn.fhir.jpa.dao.SearchParamExtractorDstu1;
+import ca.uhn.fhir.jpa.dao.SearchParamRegistryDstu1;
import ca.uhn.fhir.jpa.term.HapiTerminologySvcDstu1;
import ca.uhn.fhir.jpa.term.IHapiTerminologySvc;
import ca.uhn.fhir.model.api.IResource;
@@ -39,9 +41,10 @@ import ca.uhn.fhir.model.dstu2.composite.MetaDt;
public class BaseDstu1Config extends BaseConfig {
private static FhirContext ourFhirContextDstu1;
- @Bean(autowire = Autowire.BY_TYPE)
- public IHapiTerminologySvc terminologyService() {
- return new HapiTerminologySvcDstu1();
+ @Bean
+ @Primary
+ public FhirContext defaultFhirContext() {
+ return fhirContextDstu1();
}
@Bean(name = "myFhirContextDstu1")
@@ -53,19 +56,22 @@ public class BaseDstu1Config extends BaseConfig {
return ourFhirContextDstu1;
}
-
- @Bean
- @Primary
- public FhirContext defaultFhirContext() {
- return fhirContextDstu1();
- }
-
@Bean(name = "mySystemDaoDstu1", autowire = Autowire.BY_NAME)
public ca.uhn.fhir.jpa.dao.IFhirSystemDao, MetaDt> fhirSystemDaoDstu1() {
ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu1 retVal = new ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu1();
return retVal;
}
+ @Bean(autowire = Autowire.BY_TYPE)
+ public SearchParamExtractorDstu1 searchParamExtractor() {
+ return new SearchParamExtractorDstu1();
+ }
+
+ @Bean
+ public ISearchParamRegistry searchParamRegistry() {
+ return new SearchParamRegistryDstu1();
+ }
+
@Bean(name = "mySystemProviderDstu1")
public ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu1 systemDaoDstu1() {
ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu1 retVal = new ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu1();
@@ -73,9 +79,9 @@ public class BaseDstu1Config extends BaseConfig {
return retVal;
}
- @Bean(autowire=Autowire.BY_TYPE)
- public SearchParamExtractorDstu1 searchParamExtractor() {
- return new SearchParamExtractorDstu1();
+ @Bean(autowire = Autowire.BY_TYPE)
+ public IHapiTerminologySvc terminologyService() {
+ return new HapiTerminologySvcDstu1();
}
-
+
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu2Config.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu2Config.java
index e0b74a75a68..32a5021cd45 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu2Config.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/BaseDstu2Config.java
@@ -31,7 +31,9 @@ import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
import ca.uhn.fhir.jpa.dao.IFhirSystemDao;
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
+import ca.uhn.fhir.jpa.dao.ISearchParamRegistry;
import ca.uhn.fhir.jpa.dao.SearchParamExtractorDstu2;
+import ca.uhn.fhir.jpa.dao.SearchParamRegistryDstu2;
import ca.uhn.fhir.jpa.term.HapiTerminologySvcDstu2;
import ca.uhn.fhir.jpa.term.IHapiTerminologySvc;
import ca.uhn.fhir.model.dstu2.composite.MetaDt;
@@ -84,6 +86,11 @@ public class BaseDstu2Config extends BaseConfig {
return new SearchParamExtractorDstu2();
}
+ @Bean
+ public ISearchParamRegistry searchParamRegistry() {
+ return new SearchParamRegistryDstu2();
+ }
+
@Bean(name = "mySystemDaoDstu2", autowire = Autowire.BY_NAME)
public IFhirSystemDao systemDaoDstu2() {
ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu2 retVal = new ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu2();
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/dstu3/BaseDstu3Config.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/dstu3/BaseDstu3Config.java
index f99f83495d2..802d69e3717 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/dstu3/BaseDstu3Config.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/config/dstu3/BaseDstu3Config.java
@@ -14,7 +14,7 @@ import org.hl7.fhir.dstu3.validation.IResourceValidator.BestPracticeWarningLevel
* 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
+ * 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,
@@ -37,7 +37,9 @@ import ca.uhn.fhir.jpa.config.BaseConfig;
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
import ca.uhn.fhir.jpa.dao.IFhirSystemDao;
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
+import ca.uhn.fhir.jpa.dao.ISearchParamRegistry;
import ca.uhn.fhir.jpa.dao.dstu3.SearchParamExtractorDstu3;
+import ca.uhn.fhir.jpa.dao.dstu3.SearchParamRegistryDstu3;
import ca.uhn.fhir.jpa.provider.dstu3.TerminologyUploaderProviderDstu3;
import ca.uhn.fhir.jpa.term.HapiTerminologySvcDstu3;
import ca.uhn.fhir.jpa.term.IHapiTerminologyLoaderSvc;
@@ -50,25 +52,15 @@ import ca.uhn.fhir.validation.IValidatorModule;
@EnableTransactionManagement
public class BaseDstu3Config extends BaseConfig {
- @Bean(autowire = Autowire.BY_TYPE)
- public IHapiTerminologySvcDstu3 terminologyService() {
- return new HapiTerminologySvcDstu3();
- }
-
- @Bean(autowire = Autowire.BY_TYPE)
- public IHapiTerminologyLoaderSvc terminologyLoaderService() {
- return new TerminologyLoaderSvc();
- }
-
@Bean
@Primary
public FhirContext fhirContextDstu3() {
FhirContext retVal = FhirContext.forDstu3();
-
+
// Don't strip versions in some places
ParserOptions parserOptions = retVal.getParserOptions();
parserOptions.setDontStripVersionsFromReferencesAtPaths("AuditEvent.entity.reference");
-
+
return retVal;
}
@@ -93,6 +85,16 @@ public class BaseDstu3Config extends BaseConfig {
return searchDao;
}
+ @Bean(autowire = Autowire.BY_TYPE)
+ public SearchParamExtractorDstu3 searchParamExtractor() {
+ return new SearchParamExtractorDstu3();
+ }
+
+ @Bean
+ public ISearchParamRegistry searchParamRegistry() {
+ return new SearchParamRegistryDstu3();
+ }
+
@Bean(name = "mySystemDaoDstu3", autowire = Autowire.BY_NAME)
public IFhirSystemDao systemDaoDstu3() {
ca.uhn.fhir.jpa.dao.dstu3.FhirSystemDaoDstu3 retVal = new ca.uhn.fhir.jpa.dao.dstu3.FhirSystemDaoDstu3();
@@ -107,23 +109,27 @@ public class BaseDstu3Config extends BaseConfig {
return retVal;
}
+ @Bean(autowire = Autowire.BY_TYPE)
+ public IHapiTerminologyLoaderSvc terminologyLoaderService() {
+ return new TerminologyLoaderSvc();
+ }
+
+ @Bean(autowire = Autowire.BY_TYPE)
+ public IHapiTerminologySvcDstu3 terminologyService() {
+ return new HapiTerminologySvcDstu3();
+ }
+
+ @Bean(autowire = Autowire.BY_TYPE)
+ public TerminologyUploaderProviderDstu3 terminologyUploaderProvider() {
+ TerminologyUploaderProviderDstu3 retVal = new TerminologyUploaderProviderDstu3();
+ retVal.setContext(fhirContextDstu3());
+ return retVal;
+ }
+
@Primary
@Bean(autowire = Autowire.BY_NAME, name = "myJpaValidationSupportChainDstu3")
public IValidationSupport validationSupportChainDstu3() {
return new JpaValidationSupportChainDstu3();
}
- @Bean(autowire = Autowire.BY_TYPE)
- public SearchParamExtractorDstu3 searchParamExtractor() {
- return new SearchParamExtractorDstu3();
- }
-
- @Bean(autowire=Autowire.BY_TYPE)
- public TerminologyUploaderProviderDstu3 terminologyUploaderProvider() {
- TerminologyUploaderProviderDstu3 retVal = new TerminologyUploaderProviderDstu3();
- retVal.setContext(fhirContextDstu3());
- return retVal;
- }
-
-
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
index 8d13f894354..5057c12612f 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
@@ -863,6 +863,9 @@ public abstract class BaseHapiFhirResourceDao extends B
return search(map);
}
+ @Autowired
+ private ISearchParamRegistry mySerarchParamRegistry;
+
@Override
public IBundleProvider search(final SearchParameterMap theParams) {
// Notify interceptors
@@ -870,7 +873,7 @@ public abstract class BaseHapiFhirResourceDao extends B
notifyInterceptors(RestOperationTypeEnum.SEARCH_TYPE, requestDetails);
SearchBuilder builder = new SearchBuilder(getContext(), myEntityManager, myPlatformTransactionManager, mySearchDao, mySearchResultDao, this, myResourceIndexedSearchParamUriDao, myForcedIdDao,
- myTerminologySvc);
+ myTerminologySvc, mySerarchParamRegistry);
builder.setType(getResourceType(), getResourceName());
return builder.search(theParams);
}
@@ -899,7 +902,7 @@ public abstract class BaseHapiFhirResourceDao extends B
theParams.setPersistResults(false);
SearchBuilder builder = new SearchBuilder(getContext(), myEntityManager, myPlatformTransactionManager, mySearchDao, mySearchResultDao, this, myResourceIndexedSearchParamUriDao, myForcedIdDao,
- myTerminologySvc);
+ myTerminologySvc, mySerarchParamRegistry);
builder.setType(getResourceType(), getResourceName());
builder.search(theParams);
return builder.doGetPids();
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java
index 8014a78be84..61e825139e8 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java
@@ -21,9 +21,12 @@ package ca.uhn.fhir.jpa.dao;
*/
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
+import org.apache.commons.lang3.ObjectUtils;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.springframework.beans.factory.annotation.Autowired;
@@ -42,12 +45,32 @@ public abstract class BaseSearchParamExtractor implements ISearchParamExtractor
@Autowired
private FhirContext myContext;
+ @Autowired
+ private ISearchParamRegistry mySearchParamRegistry;
+
public BaseSearchParamExtractor() {
super();
}
-
- public BaseSearchParamExtractor(FhirContext theCtx) {
+
+ public BaseSearchParamExtractor(FhirContext theCtx, ISearchParamRegistry theSearchParamRegistry) {
myContext = theCtx;
+ mySearchParamRegistry = theSearchParamRegistry;
+ }
+
+ @Override
+ public List extractResourceLinks(IBaseResource theResource, RuntimeSearchParam theNextSpDef) {
+ List refs = new ArrayList();
+ String[] nextPathsSplit = theNextSpDef.getPath().split("\\|");
+ for (String nextPath : nextPathsSplit) {
+ nextPath = nextPath.trim();
+ for (Object nextObject : extractValues(nextPath, theResource)) {
+ if (nextObject == null) {
+ continue;
+ }
+ refs.add(new PathAndRef(nextPath, nextObject));
+ }
+ }
+ return refs;
}
protected List extractValues(String thePaths, IBaseResource theResource) {
@@ -70,26 +93,18 @@ public abstract class BaseSearchParamExtractor implements ISearchParamExtractor
return myContext;
}
+ protected Collection getSearchParams(IBaseResource theResource) {
+ RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
+ Collection retVal = mySearchParamRegistry.getActiveSearchParams(def.getName()).values();
+ List defaultList= Collections.emptyList();
+ retVal = ObjectUtils.defaultIfNull(retVal, defaultList);
+ return retVal;
+ }
+
@VisibleForTesting
void setContextForUnitTest(FhirContext theContext) {
myContext = theContext;
}
- @Override
- public List extractResourceLinks(IBaseResource theResource, RuntimeSearchParam theNextSpDef) {
- List refs = new ArrayList();
- String[] nextPathsSplit = theNextSpDef.getPath().split("\\|");
- for (String nextPath : nextPathsSplit) {
- nextPath = nextPath.trim();
- for (Object nextObject : extractValues(nextPath, theResource)) {
- if (nextObject == null) {
- continue;
- }
- refs.add(new PathAndRef(nextPath, nextObject));
- }
- }
- return refs;
- }
-
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java
new file mode 100644
index 00000000000..721b129e596
--- /dev/null
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java
@@ -0,0 +1,65 @@
+package ca.uhn.fhir.jpa.dao;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+
+import org.apache.commons.lang3.Validate;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.context.RuntimeResourceDefinition;
+import ca.uhn.fhir.context.RuntimeSearchParam;
+
+public abstract class BaseSearchParamRegistry implements ISearchParamRegistry {
+
+ private Map> myBuiltInSearchParams;
+
+ @Autowired
+ private FhirContext myCtx;
+
+ @Autowired
+ private Collection> myDaos;
+
+ public BaseSearchParamRegistry() {
+ super();
+ }
+
+ @Override
+ public void forceRefresh() {
+ // nothing by default
+ }
+
+ public Map> getBuiltInSearchParams() {
+ return myBuiltInSearchParams;
+ }
+
+ @Override
+ public Map getActiveSearchParams(String theResourceName) {
+ Validate.notBlank(theResourceName, "theResourceName must not be blank or null");
+
+ return myBuiltInSearchParams.get(theResourceName);
+ }
+
+ @PostConstruct
+ public void postConstruct() {
+ Map> resourceNameToSearchParams = new HashMap>();
+
+ for (IFhirResourceDao> nextDao : myDaos) {
+ RuntimeResourceDefinition nextResDef = myCtx.getResourceDefinition(nextDao.getResourceType());
+ String nextResourceName = nextResDef.getName();
+ HashMap nameToParam = new HashMap();
+ resourceNameToSearchParams.put(nextResourceName, nameToParam);
+
+ for (RuntimeSearchParam nextSp : nextResDef.getSearchParams()) {
+ nameToParam.put(nextSp.getName(), nextSp);
+ }
+ }
+
+ myBuiltInSearchParams = Collections.unmodifiableMap(resourceNameToSearchParams);
+ }
+
+}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/DaoConfig.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/DaoConfig.java
index c84e72d1bc3..52805df00a1 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/DaoConfig.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/DaoConfig.java
@@ -16,7 +16,7 @@ import org.apache.commons.lang3.time.DateUtils;
* 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
+ * 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,
@@ -35,26 +35,28 @@ public class DaoConfig {
// ***
// update setter javadoc if default changes
// ***
- private boolean myAllowExternalReferences = false;
+ private boolean myAllowExternalReferences = false;
// ***
// update setter javadoc if default changes
// ***
- private boolean myAllowInlineMatchUrlReferences = false;
+ private boolean myAllowInlineMatchUrlReferences = false;
private boolean myAllowMultipleDelete;
+ private boolean myDefaultSearchParamsCanBeOverridden = false;
// ***
// update setter javadoc if default changes
// ***
private int myDeferIndexingForCodesystemsOfSize = 2000;
private boolean myDeleteStaleSearches = true;
+
// ***
// update setter javadoc if default changes
// ***
private long myExpireSearchResultsAfterMillis = DateUtils.MILLIS_PER_HOUR;
-
+
private int myHardTagListLimit = 1000;
-
+
private int myIncludeLimit = 2000;
// ***
@@ -63,19 +65,19 @@ public class DaoConfig {
private boolean myIndexContainedResources = true;
private List myInterceptors;
-
// ***
// update setter javadoc if default changes
// ***
private int myMaximumExpansionSize = 5000;
+
private ResourceEncodingEnum myResourceEncoding = ResourceEncodingEnum.JSONC;
private boolean mySchedulingDisabled;
private boolean mySubscriptionEnabled;
-
+
private long mySubscriptionPollDelay = 1000;
-
+
private Long mySubscriptionPurgeInactiveAfterMillis;
private Set myTreatBaseUrlsAsLocal = new HashSet();
@@ -91,42 +93,44 @@ public class DaoConfig {
public int getDeferIndexingForCodesystemsOfSize() {
return myDeferIndexingForCodesystemsOfSize;
}
+
/**
- * Sets the number of milliseconds that search results for a given client search
+ * Sets the number of milliseconds that search results for a given client search
* should be preserved before being purged from the database.
*
- * Search results are stored in the database so that they can be paged over multiple
+ * Search results are stored in the database so that they can be paged over multiple
* requests. After this
* number of milliseconds, they will be deleted from the database, and any paging links
- * (next/prev links in search response bundles) will become invalid. Defaults to 1 hour.
+ * (next/prev links in search response bundles) will become invalid. Defaults to 1 hour.
*
*
+ *
* @see To disable this feature entirely, see {@link #setExpireSearchResults(boolean)}
- *
+ *
*
* @since 1.5
*/
public long getExpireSearchResultsAfterMillis() {
return myExpireSearchResultsAfterMillis;
}
-
+
/**
* Gets the maximum number of results to return in a GetTags query (DSTU1 only)
*/
public int getHardTagListLimit() {
return myHardTagListLimit;
}
-
+
public int getIncludeLimit() {
return myIncludeLimit;
}
-
+
/**
* Returns the interceptors which will be notified of operations.
*
* @see #setInterceptors(List)
* @deprecated As of 2.2 this method is deprecated. There is no good reason to register an interceptor
- * with the DaoConfig and not with the server via {@link RestfulServer#registerInterceptor(IServerInterceptor)}
+ * with the DaoConfig and not with the server via {@link RestfulServer#registerInterceptor(IServerInterceptor)}
*/
@Deprecated
public List getInterceptors() {
@@ -135,22 +139,26 @@ public class DaoConfig {
}
return myInterceptors;
}
-
+
/**
* See {@link #setMaximumExpansionSize(int)}
*/
public int getMaximumExpansionSize() {
return myMaximumExpansionSize;
}
+
public ResourceEncodingEnum getResourceEncoding() {
return myResourceEncoding;
}
+
public long getSubscriptionPollDelay() {
return mySubscriptionPollDelay;
}
+
public Long getSubscriptionPurgeInactiveAfterMillis() {
return mySubscriptionPurgeInactiveAfterMillis;
}
+
/**
* This setting may be used to advise the server that any references found in
* resources that have any of the base URLs given here will be replaced with
@@ -165,6 +173,7 @@ public class DaoConfig {
public Set getTreatBaseUrlsAsLocal() {
return myTreatBaseUrlsAsLocal;
}
+
/**
* If set to true
(default is false
) the server will allow
* resources to have references to external servers. For example if this server is
@@ -179,7 +188,7 @@ public class DaoConfig {
*
* Note that external references will be indexed by the server and may be searched
* (e.g. Patient:organization
), but
- * chained searches (e.g. Patient:organization.name
) will not work across
+ * chained searches (e.g. Patient:organization.name
) will not work across
* these references.
*
*
@@ -193,19 +202,37 @@ public class DaoConfig {
public boolean isAllowExternalReferences() {
return myAllowExternalReferences;
}
+
/**
* @see #setAllowInlineMatchUrlReferences(boolean)
*/
public boolean isAllowInlineMatchUrlReferences() {
return myAllowInlineMatchUrlReferences;
}
+
public boolean isAllowMultipleDelete() {
return myAllowMultipleDelete;
}
/**
- * If this is set to false
(default is true
) the stale search deletion
- * task will be disabled (meaning that search results will be retained in the database indefinitely). USE WITH CAUTION.
+ * If set to {@code true} the default search params (i.e. the search parameters that are
+ * defined by the FHIR specification itself) may be overridden by uploading search
+ * parameters to the server with the same code as the built-in search parameter.
+ *
+ * This can be useful if you want to be able to disable or alter
+ * the behaviour of the default search parameters.
+ *
+ *
+ * The default value for this setting is {@code false}
+ *
+ */
+ public boolean isDefaultSearchParamsCanBeOverridden() {
+ return myDefaultSearchParamsCanBeOverridden;
+ }
+
+ /**
+ * If this is set to false
(default is true
) the stale search deletion
+ * task will be disabled (meaning that search results will be retained in the database indefinitely). USE WITH CAUTION.
*
* This feature is useful if you want to define your own process for deleting these (e.g. because
* you are running in a cluster)
@@ -217,7 +244,7 @@ public class DaoConfig {
/**
* Should contained IDs be indexed the same way that non-contained IDs are (default is
- * true
)
+ * true
)
*/
public boolean isIndexContainedResources() {
return myIndexContainedResources;
@@ -248,7 +275,7 @@ public class DaoConfig {
*
* Note that external references will be indexed by the server and may be searched
* (e.g. Patient:organization
), but
- * chained searches (e.g. Patient:organization.name
) will not work across
+ * chained searches (e.g. Patient:organization.name
) will not work across
* these references.
*
*
@@ -271,6 +298,7 @@ public class DaoConfig {
*
* Default is false for now, as this is an experimental feature.
*
+ *
* @since 1.5
*/
public void setAllowInlineMatchUrlReferences(boolean theAllowInlineMatchUrlReferences) {
@@ -281,6 +309,22 @@ public class DaoConfig {
myAllowMultipleDelete = theAllowMultipleDelete;
}
+ /**
+ * If set to {@code true} the default search params (i.e. the search parameters that are
+ * defined by the FHIR specification itself) may be overridden by uploading search
+ * parameters to the server with the same code as the built-in search parameter.
+ *
+ * This can be useful if you want to be able to disable or alter
+ * the behaviour of the default search parameters.
+ *
+ *
+ * The default value for this setting is {@code false}
+ *
+ */
+ public void setDefaultSearchParamsCanBeOverridden(boolean theDefaultSearchParamsCanBeOverridden) {
+ myDefaultSearchParamsCanBeOverridden = theDefaultSearchParamsCanBeOverridden;
+ }
+
/**
* When a code system is added that contains more than this number of codes,
* the code system will be indexed later in an incremental process in order to
@@ -294,8 +338,8 @@ public class DaoConfig {
}
/**
- * If this is set to false
(default is true
) the stale search deletion
- * task will be disabled (meaning that search results will be retained in the database indefinitely). USE WITH CAUTION.
+ * If this is set to false
(default is true
) the stale search deletion
+ * task will be disabled (meaning that search results will be retained in the database indefinitely). USE WITH CAUTION.
*
* This feature is useful if you want to define your own process for deleting these (e.g. because
* you are running in a cluster)
@@ -306,17 +350,18 @@ public class DaoConfig {
}
/**
- * Sets the number of milliseconds that search results for a given client search
+ * Sets the number of milliseconds that search results for a given client search
* should be preserved before being purged from the database.
*
- * Search results are stored in the database so that they can be paged over multiple
+ * Search results are stored in the database so that they can be paged over multiple
* requests. After this
* number of milliseconds, they will be deleted from the database, and any paging links
- * (next/prev links in search response bundles) will become invalid. Defaults to 1 hour.
+ * (next/prev links in search response bundles) will become invalid. Defaults to 1 hour.
*
*
+ *
* @see To disable this feature entirely, see {@link #setExpireSearchResults(boolean)}
- *
+ *
* @since 1.5
*/
public void setExpireSearchResultsAfterMillis(long theExpireSearchResultsAfterMillis) {
@@ -329,7 +374,7 @@ public class DaoConfig {
* paging provider instead.
*
* @deprecated This method does not do anything. Configure the page size on your
- * paging provider instead. Deprecated in HAPI FHIR 2.3 (Jan 2017)
+ * paging provider instead. Deprecated in HAPI FHIR 2.3 (Jan 2017)
*/
@Deprecated
public void setHardSearchLimit(@SuppressWarnings("unused") int theHardSearchLimit) {
@@ -354,7 +399,7 @@ public class DaoConfig {
/**
* Should contained IDs be indexed the same way that non-contained IDs are (default is
- * true
)
+ * true
)
*/
public void setIndexContainedResources(boolean theIndexContainedResources) {
myIndexContainedResources = theIndexContainedResources;
@@ -362,8 +407,9 @@ public class DaoConfig {
/**
* This may be used to optionally register server interceptors directly against the DAOs.
+ *
* @deprecated As of 2.2 this method is deprecated. There is no good reason to register an interceptor
- * with the DaoConfig and not with the server via {@link RestfulServer#registerInterceptor(IServerInterceptor)}
+ * with the DaoConfig and not with the server via {@link RestfulServer#registerInterceptor(IServerInterceptor)}
*/
@Deprecated
public void setInterceptors(IServerInterceptor... theInterceptor) {
@@ -375,8 +421,9 @@ public class DaoConfig {
/**
* This may be used to optionally register server interceptors directly against the DAOs.
+ *
* @deprecated As of 2.2 this method is deprecated. There is no good reason to register an interceptor
- * with the DaoConfig and not with the server via {@link RestfulServer#registerInterceptor(IServerInterceptor)}
+ * with the DaoConfig and not with the server via {@link RestfulServer#registerInterceptor(IServerInterceptor)}
*/
@Deprecated
public void setInterceptors(List theInterceptors) {
@@ -419,11 +466,11 @@ public class DaoConfig {
}
mySubscriptionPurgeInactiveAfterMillis = theMillis;
}
-
+
public void setSubscriptionPurgeInactiveAfterSeconds(int theSeconds) {
setSubscriptionPurgeInactiveAfterMillis(theSeconds * DateUtils.MILLIS_PER_SECOND);
}
-
+
/**
* This setting may be used to advise the server that any references found in
* resources that have any of the base URLs given here will be replaced with
@@ -435,8 +482,9 @@ public class DaoConfig {
* convert this reference to Patient/1
*
*
- * @param theTreatBaseUrlsAsLocal The set of base URLs. May be null
, which
- * means no references will be treated as external
+ * @param theTreatBaseUrlsAsLocal
+ * The set of base URLs. May be null
, which
+ * means no references will be treated as external
*/
public void setTreatBaseUrlsAsLocal(Set theTreatBaseUrlsAsLocal) {
HashSet treatBaseUrlsAsLocal = new HashSet();
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoPatientDstu2.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoPatientDstu2.java
index 76e43ae12d7..43eb3ec6556 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoPatientDstu2.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoPatientDstu2.java
@@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
import org.hl7.fhir.instance.model.api.IIdType;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
+import org.springframework.beans.factory.annotation.Autowired;
import ca.uhn.fhir.jpa.dao.SearchParameterMap.EverythingModeEnum;
import ca.uhn.fhir.model.api.IResource;
@@ -46,6 +47,9 @@ public class FhirResourceDaoPatientDstu2 extends FhirResourceDaoDstu2im
super();
}
+ @Autowired
+ private ISearchParamRegistry mySerarchParamRegistry;
+
private IBundleProvider doEverythingOperation(IIdType theId, IPrimitiveType theCount, DateRangeParam theLastUpdated, SortSpec theSort, StringAndListParam theContent, StringAndListParam theNarrative) {
SearchParameterMap paramMap = new SearchParameterMap();
if (theCount != null) {
@@ -65,7 +69,7 @@ public class FhirResourceDaoPatientDstu2 extends FhirResourceDaoDstu2im
paramMap.add("_id", new StringParam(theId.getIdPart()));
}
- SearchBuilder builder = new SearchBuilder(getContext(), myEntityManager, myPlatformTransactionManager, mySearchDao, mySearchResultDao, this, myResourceIndexedSearchParamUriDao, myForcedIdDao, myTerminologySvc);
+ SearchBuilder builder = new SearchBuilder(getContext(), myEntityManager, myPlatformTransactionManager, mySearchDao, mySearchResultDao, this, myResourceIndexedSearchParamUriDao, myForcedIdDao, myTerminologySvc, mySerarchParamRegistry);
builder.setType(getResourceType(), getResourceName());
return builder.search(paramMap);
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/ISearchParamRegistry.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/ISearchParamRegistry.java
new file mode 100644
index 00000000000..540c7b60275
--- /dev/null
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/ISearchParamRegistry.java
@@ -0,0 +1,13 @@
+package ca.uhn.fhir.jpa.dao;
+
+import java.util.Map;
+
+import ca.uhn.fhir.context.RuntimeSearchParam;
+
+public interface ISearchParamRegistry {
+
+ Map getActiveSearchParams(String theResourceName);
+
+ void forceRefresh();
+
+}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java
index dfda033113c..a43e31f50c8 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java
@@ -41,6 +41,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.hl7.fhir.instance.model.api.IAnyResource;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IIdType;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;
@@ -95,10 +96,12 @@ public class SearchBuilder {
private IFulltextSearchSvc mySearchDao;
private Search mySearchEntity;
private ISearchResultDao mySearchResultDao;
+ private ISearchParamRegistry mySerarchParamRegistry;
+
private IHapiTerminologySvc myTerminologySvc;
public SearchBuilder(FhirContext theFhirContext, EntityManager theEntityManager, PlatformTransactionManager thePlatformTransactionManager, IFulltextSearchSvc theSearchDao, ISearchResultDao theSearchResultDao, BaseHapiFhirDao> theDao,
- IResourceIndexedSearchParamUriDao theResourceIndexedSearchParamUriDao, IForcedIdDao theForcedIdDao, IHapiTerminologySvc theTerminologySvc) {
+ IResourceIndexedSearchParamUriDao theResourceIndexedSearchParamUriDao, IForcedIdDao theForcedIdDao, IHapiTerminologySvc theTerminologySvc, ISearchParamRegistry theSearchParamRegistry) {
myContext = theFhirContext;
myEntityManager = theEntityManager;
myPlatformTransactionManager = thePlatformTransactionManager;
@@ -108,6 +111,7 @@ public class SearchBuilder {
myResourceIndexedSearchParamUriDao = theResourceIndexedSearchParamUriDao;
myForcedIdDao = theForcedIdDao;
myTerminologySvc = theTerminologySvc;
+ mySerarchParamRegistry = theSearchParamRegistry;
}
private void addPredicateComposite(RuntimeSearchParam theParamDef, List extends IQueryParameterType> theNextAnd) {
@@ -1380,45 +1384,10 @@ public class SearchBuilder {
return singleCode;
}
- private String determineSystemIfMissing(String theParamName, String code, String system) {
- if (system == null) {
- RuntimeSearchParam param = getSearchParam(theParamName);
- if (param != null) {
- Set valueSetUris = Sets.newHashSet();
- for (String nextPath : param.getPathsSplit()) {
- BaseRuntimeChildDefinition def = myContext.newTerser().getDefinition(myResourceType, nextPath);
- if (def instanceof BaseRuntimeDeclaredChildDefinition) {
- String valueSet = ((BaseRuntimeDeclaredChildDefinition) def).getBindingValueSet();
- if (isNotBlank(valueSet)) {
- valueSetUris.add(valueSet);
- }
- }
- }
- if (valueSetUris.size() == 1) {
- List candidateCodes = myTerminologySvc.expandValueSet(valueSetUris.iterator().next());
- for (VersionIndependentConcept nextCandidate : candidateCodes) {
- if (nextCandidate.getCode().equals(code)) {
- system = nextCandidate.getSystem();
- break;
- }
- }
- }
- }
- }
- return system;
- }
-
private Predicate createResourceLinkPathPredicate(String theParamName, Root extends ResourceLink> from) {
return createResourceLinkPathPredicate(myContext, theParamName, from, myResourceType);
}
- private static Predicate createResourceLinkPathPredicate(FhirContext theContext, String theParamName, Root extends ResourceLink> from, Class extends IBaseResource> resourceType) {
- RuntimeSearchParam param = theContext.getResourceDefinition(resourceType).getSearchParam(theParamName);
- List path = param.getPathsSplit();
- Predicate type = from.get("mySourcePath").in(path);
- return type;
- }
-
private TypedQuery createSearchAllByTypeQuery(DateRangeParam theLastUpdated) {
CriteriaBuilder builder = myEntityManager.getCriteriaBuilder();
CriteriaQuery cq = builder.createQuery(Long.class);
@@ -1532,10 +1501,32 @@ public class SearchBuilder {
createSort(theBuilder, theFrom, theSort.getChain(), theOrders, thePredicates);
}
- private RuntimeSearchParam getSearchParam(String theParamName) {
- RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceType);
- RuntimeSearchParam param = resourceDef.getSearchParam(theParamName);
- return param;
+ private String determineSystemIfMissing(String theParamName, String code, String system) {
+ if (system == null) {
+ RuntimeSearchParam param = getSearchParam(theParamName);
+ if (param != null) {
+ Set valueSetUris = Sets.newHashSet();
+ for (String nextPath : param.getPathsSplit()) {
+ BaseRuntimeChildDefinition def = myContext.newTerser().getDefinition(myResourceType, nextPath);
+ if (def instanceof BaseRuntimeDeclaredChildDefinition) {
+ String valueSet = ((BaseRuntimeDeclaredChildDefinition) def).getBindingValueSet();
+ if (isNotBlank(valueSet)) {
+ valueSetUris.add(valueSet);
+ }
+ }
+ }
+ if (valueSetUris.size() == 1) {
+ List candidateCodes = myTerminologySvc.expandValueSet(valueSetUris.iterator().next());
+ for (VersionIndependentConcept nextCandidate : candidateCodes) {
+ if (nextCandidate.getCode().equals(code)) {
+ system = nextCandidate.getSystem();
+ break;
+ }
+ }
+ }
+ }
+ }
+ return system;
}
public Set doGetPids() {
@@ -1621,6 +1612,12 @@ public class SearchBuilder {
doSetPids(resultList);
}
+ private RuntimeSearchParam getSearchParam(String theParamName) {
+ RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceType);
+ RuntimeSearchParam param = resourceDef.getSearchParam(theParamName);
+ return param;
+ }
+
private void loadResourcesByPid(Collection theIncludePids, List theResourceListToPopulate, Set theRevIncludedPids, boolean theForHistoryOperation) {
EntityManager entityManager = myEntityManager;
FhirContext context = myContext;
@@ -1820,7 +1817,8 @@ public class SearchBuilder {
doInitializeSearch();
- RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceType);
+// RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceType);
+ Map searchParams = mySerarchParamRegistry.getActiveSearchParams(myResourceName);
for (Entry>> nextParamEntry : params.entrySet()) {
String nextParamName = nextParamEntry.getKey();
@@ -1875,7 +1873,7 @@ public class SearchBuilder {
} else {
- RuntimeSearchParam nextParamDef = resourceDef.getSearchParam(nextParamName);
+ RuntimeSearchParam nextParamDef = searchParams.get(nextParamName);
if (nextParamDef != null) {
switch (nextParamDef.getParamType()) {
case DATE:
@@ -1953,7 +1951,7 @@ public class SearchBuilder {
}
}
-
+
public void setType(Class extends IBaseResource> theResourceType, String theResourceName) {
myResourceType = theResourceType;
myResourceName = theResourceName;
@@ -2044,6 +2042,13 @@ public class SearchBuilder {
return likeExpression.replace("%", "[%]") + "%";
}
+ private static Predicate createResourceLinkPathPredicate(FhirContext theContext, String theParamName, Root extends ResourceLink> from, Class extends IBaseResource> resourceType) {
+ RuntimeSearchParam param = theContext.getResourceDefinition(resourceType).getSearchParam(theParamName);
+ List path = param.getPathsSplit();
+ Predicate type = from.get("mySourcePath").in(path);
+ return type;
+ }
+
private static List filterResourceIdsByLastUpdated(EntityManager theEntityManager, final DateRangeParam theLastUpdated, Collection thePids) {
CriteriaBuilder builder = theEntityManager.getCriteriaBuilder();
CriteriaQuery cq = builder.createQuery(Long.class);
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu1.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu1.java
index 268aab2eca5..a40804e04b2 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu1.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu1.java
@@ -25,6 +25,7 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -38,8 +39,6 @@ import org.apache.commons.lang3.tuple.Pair;
import org.hl7.fhir.instance.model.api.IBaseResource;
import ca.uhn.fhir.context.ConfigurationException;
-import ca.uhn.fhir.context.FhirContext;
-import ca.uhn.fhir.context.RuntimeResourceDefinition;
import ca.uhn.fhir.context.RuntimeSearchParam;
import ca.uhn.fhir.jpa.entity.BaseResourceIndexedSearchParam;
import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamCoords;
@@ -79,8 +78,8 @@ public class SearchParamExtractorDstu1 extends BaseSearchParamExtractor implemen
public Set extractSearchParamDates(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.DATE) {
continue;
}
@@ -130,12 +129,13 @@ public class SearchParamExtractorDstu1 extends BaseSearchParamExtractor implemen
return retVal;
}
+
@Override
public HashSet extractSearchParamNumber(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.NUMBER) {
continue;
}
@@ -229,8 +229,8 @@ public class SearchParamExtractorDstu1 extends BaseSearchParamExtractor implemen
public Set extractSearchParamQuantity(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.QUANTITY) {
continue;
}
@@ -277,8 +277,8 @@ public class SearchParamExtractorDstu1 extends BaseSearchParamExtractor implemen
public Set extractSearchParamStrings(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.STRING) {
continue;
}
@@ -363,8 +363,8 @@ public class SearchParamExtractorDstu1 extends BaseSearchParamExtractor implemen
public Set extractSearchParamTokens(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.TOKEN) {
continue;
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu2.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu2.java
index 76ff961b072..eb0f6be67da 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu2.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamExtractorDstu2.java
@@ -24,6 +24,7 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -120,8 +121,8 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
public Set extractSearchParamDates(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.DATE) {
continue;
}
@@ -181,8 +182,8 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
public HashSet extractSearchParamNumber(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.NUMBER) {
continue;
}
@@ -281,8 +282,8 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
public Set extractSearchParamQuantity(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.QUANTITY) {
continue;
}
@@ -335,23 +336,25 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
public Set extractSearchParamStrings(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ String resourceName = getContext().getResourceDefinition(theResource).getName();
+
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.STRING) {
continue;
}
String nextPath = nextSpDef.getPath();
- String resourceName = nextSpDef.getName();
+ String nextSpName = nextSpDef.getName();
if (isBlank(nextPath)) {
// TODO: implement phonetic, and any others that have no path
- if ("Questionnaire".equals(def.getName()) && nextSpDef.getName().equals("title")) {
+ if ("Questionnaire".equals(resourceName) && nextSpDef.getName().equals("title")) {
Questionnaire q = (Questionnaire) theResource;
String title = q.getGroup().getTitle();
- addSearchTerm(theEntity, retVal, resourceName, title);
+ addSearchTerm(theEntity, retVal, nextSpName, title);
}
continue;
}
@@ -369,7 +372,7 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
if (nextObject instanceof IPrimitiveDatatype>) {
IPrimitiveDatatype> nextValue = (IPrimitiveDatatype>) nextObject;
String searchTerm = nextValue.getValueAsString();
- addSearchTerm(theEntity, retVal, resourceName, searchTerm);
+ addSearchTerm(theEntity, retVal, nextSpName, searchTerm);
} else {
if (nextObject instanceof BaseHumanNameDt) {
ArrayList allNames = new ArrayList();
@@ -377,7 +380,7 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
allNames.addAll(nextHumanName.getFamily());
allNames.addAll(nextHumanName.getGiven());
for (StringDt nextName : allNames) {
- addSearchTerm(theEntity, retVal, resourceName, nextName.getValue());
+ addSearchTerm(theEntity, retVal, nextSpName, nextName.getValue());
}
} else if (nextObject instanceof AddressDt) {
ArrayList allNames = new ArrayList();
@@ -388,16 +391,16 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
allNames.add(nextAddress.getCountryElement());
allNames.add(nextAddress.getPostalCodeElement());
for (StringDt nextName : allNames) {
- addSearchTerm(theEntity, retVal, resourceName, nextName.getValue());
+ addSearchTerm(theEntity, retVal, nextSpName, nextName.getValue());
}
} else if (nextObject instanceof ContactPointDt) {
ContactPointDt nextContact = (ContactPointDt) nextObject;
if (nextContact.getValueElement().isEmpty() == false) {
- addSearchTerm(theEntity, retVal, resourceName, nextContact.getValue());
+ addSearchTerm(theEntity, retVal, nextSpName, nextContact.getValue());
}
} else {
if (!multiType) {
- throw new ConfigurationException("Search param " + resourceName + " is of unexpected datatype: " + nextObject.getClass());
+ throw new ConfigurationException("Search param " + nextSpName + " is of unexpected datatype: " + nextObject.getClass());
}
}
}
@@ -423,8 +426,8 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
useSystem = vs.getCodeSystem().getSystem();
}
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.TOKEN) {
continue;
}
@@ -575,8 +578,8 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
public Set extractSearchParamUri(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.URI) {
continue;
}
@@ -622,6 +625,7 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
return retVal;
}
+
private void extractTokensFromCodeableConcept(List theSystems, List theCodes, CodeableConceptDt theCodeableConcept, ResourceTable theEntity, Set theListToPopulate, RuntimeSearchParam theParameterDef) {
for (CodingDt nextCoding : theCodeableConcept.getCoding()) {
extractTokensFromCoding(theSystems, theCodes, theEntity, theListToPopulate, theParameterDef, nextCoding);
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu1.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu1.java
new file mode 100644
index 00000000000..5f04468482d
--- /dev/null
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu1.java
@@ -0,0 +1,6 @@
+package ca.uhn.fhir.jpa.dao;
+
+public class SearchParamRegistryDstu1 extends BaseSearchParamRegistry {
+ // nothing yet
+
+}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu2.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu2.java
new file mode 100644
index 00000000000..b7fd4baecf3
--- /dev/null
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchParamRegistryDstu2.java
@@ -0,0 +1,6 @@
+package ca.uhn.fhir.jpa.dao;
+
+public class SearchParamRegistryDstu2 extends BaseSearchParamRegistry {
+ // nothing yet
+
+}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoPatientDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoPatientDstu3.java
index 2ac1e302de2..7b93b004b87 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoPatientDstu3.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoPatientDstu3.java
@@ -27,8 +27,10 @@ import javax.servlet.http.HttpServletRequest;
import org.hl7.fhir.dstu3.model.Patient;
import org.hl7.fhir.instance.model.api.IIdType;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
+import org.springframework.beans.factory.annotation.Autowired;
import ca.uhn.fhir.jpa.dao.IFhirResourceDaoPatient;
+import ca.uhn.fhir.jpa.dao.ISearchParamRegistry;
import ca.uhn.fhir.jpa.dao.SearchBuilder;
import ca.uhn.fhir.jpa.dao.SearchParameterMap;
import ca.uhn.fhir.jpa.dao.SearchParameterMap.EverythingModeEnum;
@@ -45,6 +47,9 @@ import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor.ActionRequestDetai
public class FhirResourceDaoPatientDstu3 extends FhirResourceDaoDstu3implements IFhirResourceDaoPatient {
+ @Autowired
+ private ISearchParamRegistry mySerarchParamRegistry;
+
private IBundleProvider doEverythingOperation(IIdType theId, IPrimitiveType theCount, DateRangeParam theLastUpdated, SortSpec theSort, StringAndListParam theContent, StringAndListParam theNarrative) {
SearchParameterMap paramMap = new SearchParameterMap();
if (theCount != null) {
@@ -64,7 +69,7 @@ public class FhirResourceDaoPatientDstu3 extends FhirResourceDaoDstu3im
paramMap.add("_id", new StringParam(theId.getIdPart()));
}
- SearchBuilder builder = new SearchBuilder(getContext(), myEntityManager, myPlatformTransactionManager, mySearchDao, mySearchResultDao, this, myResourceIndexedSearchParamUriDao, myForcedIdDao, myTerminologySvc);
+ SearchBuilder builder = new SearchBuilder(getContext(), myEntityManager, myPlatformTransactionManager, mySearchDao, mySearchResultDao, this, myResourceIndexedSearchParamUriDao, myForcedIdDao, myTerminologySvc, mySerarchParamRegistry);
builder.setType(getResourceType(), getResourceName());
return builder.search(paramMap);
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3.java
index ba4b4c43a04..ed6612fc852 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3.java
@@ -24,6 +24,7 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
@@ -56,7 +57,6 @@ import org.hl7.fhir.dstu3.model.Location.LocationPositionComponent;
import org.hl7.fhir.dstu3.model.Patient.PatientCommunicationComponent;
import org.hl7.fhir.dstu3.model.Period;
import org.hl7.fhir.dstu3.model.Quantity;
-import org.hl7.fhir.dstu3.model.Questionnaire;
import org.hl7.fhir.dstu3.model.Range;
import org.hl7.fhir.dstu3.model.SimpleQuantity;
import org.hl7.fhir.dstu3.model.StringType;
@@ -73,11 +73,11 @@ import com.google.common.annotations.VisibleForTesting;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.FhirContext;
-import ca.uhn.fhir.context.RuntimeResourceDefinition;
import ca.uhn.fhir.context.RuntimeSearchParam;
import ca.uhn.fhir.jpa.dao.BaseHapiFhirDao;
import ca.uhn.fhir.jpa.dao.BaseSearchParamExtractor;
import ca.uhn.fhir.jpa.dao.ISearchParamExtractor;
+import ca.uhn.fhir.jpa.dao.ISearchParamRegistry;
import ca.uhn.fhir.jpa.dao.PathAndRef;
import ca.uhn.fhir.jpa.entity.BaseResourceIndexedSearchParam;
import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamCoords;
@@ -97,7 +97,7 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
@Autowired
private org.hl7.fhir.dstu3.hapi.validation.IValidationSupport myValidationSupport;
-
+
/**
* Constructor
*/
@@ -105,8 +105,8 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
super();
}
- public SearchParamExtractorDstu3(FhirContext theCtx, IValidationSupport theValidationSupport) {
- super(theCtx);
+ public SearchParamExtractorDstu3(FhirContext theCtx, IValidationSupport theValidationSupport, ISearchParamRegistry theSearchParamRegistry) {
+ super(theCtx, theSearchParamRegistry);
myValidationSupport = theValidationSupport;
}
@@ -147,8 +147,8 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
public Set extractSearchParamDates(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.DATE) {
continue;
}
@@ -226,8 +226,8 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
public HashSet extractSearchParamNumber(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.NUMBER) {
continue;
}
@@ -320,8 +320,8 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
public Set extractSearchParamQuantity(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.QUANTITY) {
continue;
}
@@ -384,24 +384,28 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
public Set extractSearchParamStrings(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ String resourceName = getContext().getResourceDefinition(theResource).getName();
+
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.STRING) {
continue;
}
String nextPath = nextSpDef.getPath();
- String resourceName = nextSpDef.getName();
+ String nextSpName = nextSpDef.getName();
if (isBlank(nextPath)) {
- // TODO: implement phonetic, and any others that have no path
-
- if ("Questionnaire".equals(def.getName()) && nextSpDef.getName().equals("title")) {
- Questionnaire q = (Questionnaire) theResource;
- String title = "";// q.getGroup().getTitle();
- addSearchTerm(theEntity, retVal, resourceName, title);
- }
+// // TODO: implement phonetic, and any others that have no path
+//
+// // TODO: do we still need this check?
+// if ("Questionnaire".equals(nextSpName) && nextSpDef.getName().equals("title")) {
+// Questionnaire q = (Questionnaire) theResource;
+// String title = "";// q.getGroup().getTitle();
+// addSearchTerm(theEntity, retVal, nextSpName, title);
+// }
+
continue;
}
@@ -418,7 +422,7 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
if (nextObject instanceof IPrimitiveType>) {
IPrimitiveType> nextValue = (IPrimitiveType>) nextObject;
String searchTerm = nextValue.getValueAsString();
- addSearchTerm(theEntity, retVal, resourceName, searchTerm);
+ addSearchTerm(theEntity, retVal, nextSpName, searchTerm);
} else {
if (nextObject instanceof HumanName) {
ArrayList allNames = new ArrayList();
@@ -428,7 +432,7 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
}
allNames.addAll(nextHumanName.getGiven());
for (StringType nextName : allNames) {
- addSearchTerm(theEntity, retVal, resourceName, nextName.getValue());
+ addSearchTerm(theEntity, retVal, nextSpName, nextName.getValue());
}
} else if (nextObject instanceof Address) {
ArrayList allNames = new ArrayList();
@@ -439,29 +443,29 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
allNames.add(nextAddress.getCountryElement());
allNames.add(nextAddress.getPostalCodeElement());
for (StringType nextName : allNames) {
- addSearchTerm(theEntity, retVal, resourceName, nextName.getValue());
+ addSearchTerm(theEntity, retVal, nextSpName, nextName.getValue());
}
} else if (nextObject instanceof ContactPoint) {
ContactPoint nextContact = (ContactPoint) nextObject;
if (nextContact.getValueElement().isEmpty() == false) {
- addSearchTerm(theEntity, retVal, resourceName, nextContact.getValue());
+ addSearchTerm(theEntity, retVal, nextSpName, nextContact.getValue());
}
} else if (nextObject instanceof Quantity) {
BigDecimal value = ((Quantity) nextObject).getValue();
if (value != null) {
- addSearchTerm(theEntity, retVal, resourceName, value.toPlainString());
+ addSearchTerm(theEntity, retVal, nextSpName, value.toPlainString());
}
} else if (nextObject instanceof Range) {
SimpleQuantity low = ((Range) nextObject).getLow();
if (low != null) {
BigDecimal value = low.getValue();
if (value != null) {
- addSearchTerm(theEntity, retVal, resourceName, value.toPlainString());
+ addSearchTerm(theEntity, retVal, nextSpName, value.toPlainString());
}
}
} else {
if (!multiType) {
- throw new ConfigurationException("Search param " + resourceName + " is of unexpected datatype: " + nextObject.getClass());
+ throw new ConfigurationException("Search param " + nextSpName + " is of unexpected datatype: " + nextObject.getClass());
}
}
}
@@ -486,8 +490,8 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
useSystem = cs.getUrl();
}
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.TOKEN) {
continue;
}
@@ -633,8 +637,8 @@ public class SearchParamExtractorDstu3 extends BaseSearchParamExtractor implemen
public Set extractSearchParamUri(ResourceTable theEntity, IBaseResource theResource) {
HashSet retVal = new HashSet();
- RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
- for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
+ Collection searchParams = getSearchParams(theResource);
+ for (RuntimeSearchParam nextSpDef : searchParams) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.URI) {
continue;
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamRegistryDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamRegistryDstu3.java
new file mode 100644
index 00000000000..75123b7fa8b
--- /dev/null
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamRegistryDstu3.java
@@ -0,0 +1,194 @@
+package ca.uhn.fhir.jpa.dao.dstu3;
+
+import static org.apache.commons.lang3.StringUtils.isBlank;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.apache.commons.lang3.time.DateUtils;
+import org.hl7.fhir.dstu3.model.CodeType;
+import org.hl7.fhir.dstu3.model.SearchParameter;
+import org.hl7.fhir.instance.model.api.IBaseResource;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import ca.uhn.fhir.context.RuntimeSearchParam;
+import ca.uhn.fhir.context.RuntimeSearchParam.RuntimeSearchParamStatusEnum;
+import ca.uhn.fhir.jpa.dao.BaseSearchParamRegistry;
+import ca.uhn.fhir.jpa.dao.DaoConfig;
+import ca.uhn.fhir.jpa.dao.IFhirResourceDao;
+import ca.uhn.fhir.jpa.dao.SearchParameterMap;
+import ca.uhn.fhir.jpa.util.StopWatch;
+import ca.uhn.fhir.rest.method.RestSearchParameterTypeEnum;
+import ca.uhn.fhir.rest.server.IBundleProvider;
+
+public class SearchParamRegistryDstu3 extends BaseSearchParamRegistry {
+ private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(SearchParamRegistryDstu3.class);
+
+ @Autowired
+ private IFhirResourceDao mySpDao;
+
+ private long myLastRefresh;
+
+ private volatile Map> myActiveSearchParams;
+
+ @Autowired
+ private DaoConfig myDaoConfig;
+
+ @Override
+ public Map getActiveSearchParams(String theResourceName) {
+
+ long refreshInterval = 60 * DateUtils.MILLIS_PER_MINUTE;
+ if (System.currentTimeMillis() - refreshInterval > myLastRefresh) {
+ StopWatch sw = new StopWatch();
+
+ Map> searchParams = new HashMap>();
+ for (Entry> nextBuiltInEntry : getBuiltInSearchParams().entrySet()) {
+ for (RuntimeSearchParam nextParam : nextBuiltInEntry.getValue().values()) {
+ String nextResourceName = nextBuiltInEntry.getKey();
+ getSearchParamMap(searchParams, nextResourceName).put(nextParam.getName(), nextParam);
+ }
+ }
+
+ IBundleProvider allSearchParamsBp = mySpDao.search(new SearchParameterMap());
+ int size = allSearchParamsBp.size();
+
+ // Just in case..
+ if (size > 10000) {
+ ourLog.warn("Unable to support >10000 search params!");
+ size = 10000;
+ }
+
+ List allSearchParams = allSearchParamsBp.getResources(0, size);
+ for (IBaseResource nextResource : allSearchParams) {
+ SearchParameter nextSp = (SearchParameter) nextResource;
+ RuntimeSearchParam runtimeSp = toRuntimeSp(nextSp);
+ if (runtimeSp == null) {
+ continue;
+ }
+
+ int dotIdx = runtimeSp.getPath().indexOf('.');
+ if (dotIdx == -1) {
+ ourLog.warn("Can not determine resource type of {}", runtimeSp.getPath());
+ continue;
+ }
+ String resourceType = runtimeSp.getPath().substring(0, dotIdx);
+
+ Map searchParamMap = getSearchParamMap(searchParams, resourceType);
+ String name = runtimeSp.getName();
+ if (myDaoConfig.isDefaultSearchParamsCanBeOverridden() || !searchParamMap.containsKey(name)) {
+ searchParamMap.put(name, runtimeSp);
+ }
+ }
+
+ Map> activeSearchParams = new HashMap>();
+ for (Entry> nextEntry : searchParams.entrySet()) {
+ for (RuntimeSearchParam nextSp : nextEntry.getValue().values()) {
+ if (nextSp.getStatus() == RuntimeSearchParamStatusEnum.ACTIVE) {
+ if (!activeSearchParams.containsKey(nextEntry.getKey())) {
+ activeSearchParams.put(nextEntry.getKey(), new HashMap());
+ }
+ activeSearchParams.get(nextEntry.getKey()).put(nextSp.getName(), nextSp);
+ }
+ }
+ }
+
+ myActiveSearchParams = activeSearchParams;
+
+ myLastRefresh = System.currentTimeMillis();
+ ourLog.info("Refreshed search parameter cache in {}ms", sw.getMillis());
+ }
+
+ return myActiveSearchParams.get(theResourceName);
+ }
+
+ @Override
+ public void forceRefresh() {
+ myLastRefresh = 0;
+ }
+
+ private Map getSearchParamMap(Map> searchParams, String theResourceName) {
+ Map retVal = searchParams.get(theResourceName);
+ if (retVal == null) {
+ retVal = new HashMap();
+ searchParams.put(theResourceName, retVal);
+ }
+ return retVal;
+ }
+
+ private RuntimeSearchParam toRuntimeSp(SearchParameter theNextSp) {
+ String name = theNextSp.getCode();
+ String description = theNextSp.getDescription();
+ String path = theNextSp.getXpath();
+ RestSearchParameterTypeEnum paramType = null;
+ RuntimeSearchParamStatusEnum status = null;
+ switch (theNextSp.getType()) {
+ case COMPOSITE:
+ paramType = RestSearchParameterTypeEnum.COMPOSITE;
+ break;
+ case DATE:
+ paramType = RestSearchParameterTypeEnum.DATE;
+ break;
+ case NUMBER:
+ paramType = RestSearchParameterTypeEnum.NUMBER;
+ break;
+ case QUANTITY:
+ paramType = RestSearchParameterTypeEnum.QUANTITY;
+ break;
+ case REFERENCE:
+ paramType = RestSearchParameterTypeEnum.REFERENCE;
+ break;
+ case STRING:
+ paramType = RestSearchParameterTypeEnum.STRING;
+ break;
+ case TOKEN:
+ paramType = RestSearchParameterTypeEnum.TOKEN;
+ break;
+ case URI:
+ paramType = RestSearchParameterTypeEnum.URI;
+ break;
+ case NULL:
+ break;
+ }
+ if (theNextSp.getStatus() != null) {
+ switch (theNextSp.getStatus()) {
+ case ACTIVE:
+ status = RuntimeSearchParamStatusEnum.ACTIVE;
+ break;
+ case DRAFT:
+ status = RuntimeSearchParamStatusEnum.DRAFT;
+ break;
+ case RETIRED:
+ status = RuntimeSearchParamStatusEnum.RETIRED;
+ break;
+ case NULL:
+ break;
+ }
+ }
+ Set providesMembershipInCompartments = Collections.emptySet();
+ Set targets = toStrings(theNextSp.getTarget());
+
+ if (isBlank(name) || isBlank(path) || paramType == null) {
+ return null;
+ }
+
+ RuntimeSearchParam retVal = new RuntimeSearchParam(name, description, path, paramType, providesMembershipInCompartments, targets, status);
+ return retVal;
+ }
+
+ private Set toStrings(List theTarget) {
+ HashSet retVal = new HashSet();
+ for (CodeType next : theTarget) {
+ if (isNotBlank(next.getValue())) {
+ retVal.add(next.getValue());
+ }
+ }
+ return retVal;
+ }
+
+}
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/BaseJpaDstu3Test.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/BaseJpaDstu3Test.java
index 88d74058923..85dfffa3558 100644
--- a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/BaseJpaDstu3Test.java
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/BaseJpaDstu3Test.java
@@ -53,6 +53,12 @@ public abstract class BaseJpaDstu3Test extends BaseJpaTest {
private static JpaValidationSupportChainDstu3 ourJpaValidationSupportChainDstu3;
private static IFhirResourceDaoValueSet ourValueSetDao;
+
+ @Autowired
+ @Qualifier("mySearchParameterDaoDstu3")
+ protected IFhirResourceDao mySearchParameterDao;
+ @Autowired
+ protected ISearchParamRegistry mySearchParamRegsitry;
// @Autowired
// protected HapiWorkerContext myHapiWorkerContext;
@Autowired
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java
new file mode 100644
index 00000000000..f48641a7c5d
--- /dev/null
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java
@@ -0,0 +1,203 @@
+package ca.uhn.fhir.jpa.dao.dstu3;
+
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.containsInRelativeOrder;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.endsWith;
+import static org.hamcrest.Matchers.hasItem;
+import static org.hamcrest.Matchers.hasItems;
+import static org.hamcrest.Matchers.not;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.hl7.fhir.dstu3.model.*;
+import org.hl7.fhir.dstu3.model.Bundle.BundleEntryComponent;
+import org.hl7.fhir.dstu3.model.Bundle.BundleType;
+import org.hl7.fhir.dstu3.model.Bundle.HTTPVerb;
+import org.hl7.fhir.dstu3.model.ContactPoint.ContactPointSystem;
+import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender;
+import org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType;
+import org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus;
+import org.hl7.fhir.dstu3.model.codesystems.PublicationStatus;
+import org.hl7.fhir.dstu3.model.codesystems.SearchParamType;
+import org.hl7.fhir.instance.model.SearchParameter.XPathUsageType;
+import org.hl7.fhir.instance.model.api.IAnyResource;
+import org.hl7.fhir.instance.model.api.IBaseResource;
+import org.hl7.fhir.instance.model.api.IIdType;
+import org.hl7.fhir.instance.model.api.IPrimitiveType;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.TransactionCallback;
+import org.springframework.transaction.support.TransactionTemplate;
+
+import ca.uhn.fhir.jpa.dao.BaseHapiFhirDao;
+import ca.uhn.fhir.jpa.dao.DaoConfig;
+import ca.uhn.fhir.jpa.dao.SearchParameterMap;
+import ca.uhn.fhir.jpa.dao.SearchParameterMap.EverythingModeEnum;
+import ca.uhn.fhir.jpa.entity.*;
+import ca.uhn.fhir.jpa.search.StaleSearchDeletingSvc;
+import ca.uhn.fhir.model.api.IQueryParameterType;
+import ca.uhn.fhir.model.api.Include;
+import ca.uhn.fhir.model.dstu.valueset.QuantityCompararatorEnum;
+import ca.uhn.fhir.rest.api.SortOrderEnum;
+import ca.uhn.fhir.rest.api.SortSpec;
+import ca.uhn.fhir.rest.param.*;
+import ca.uhn.fhir.rest.server.Constants;
+import ca.uhn.fhir.rest.server.IBundleProvider;
+import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
+import ca.uhn.fhir.util.TestUtil;
+
+@SuppressWarnings("unchecked")
+public class FhirResourceDaoDstu3SearchCustomParamTest extends BaseJpaDstu3Test {
+ private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirResourceDaoDstu3SearchCustomParamTest.class);
+
+ @Test
+ public void testSearchWithCustomParam() {
+
+ SearchParameter fooSp = new SearchParameter();
+ fooSp.setCode("foo");
+ fooSp.setType(org.hl7.fhir.dstu3.model.Enumerations.SearchParamType.TOKEN);
+ fooSp.setTitle("FOO SP");
+ fooSp.setXpath("Patient.gender");
+ fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
+ fooSp.setStatus(org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus.ACTIVE);
+ mySearchParameterDao.create(fooSp, mySrd);
+
+ mySearchParamRegsitry.forceRefresh();
+
+ Patient pat = new Patient();
+ pat.setGender(AdministrativeGender.MALE);
+ IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
+
+ Patient pat2 = new Patient();
+ pat.setGender(AdministrativeGender.FEMALE);
+ IIdType patId2 = myPatientDao.create(pat2, mySrd).getId().toUnqualifiedVersionless();
+
+ SearchParameterMap map;
+ IBundleProvider results;
+ List foundResources;
+
+ //Try with custom gender SP
+ map = new SearchParameterMap();
+ map.add("foo", new TokenParam(null, "male"));
+ results = myPatientDao.search(map);
+ foundResources = toUnqualifiedVersionlessIdValues(results);
+ assertThat(foundResources, contains(patId.getValue()));
+
+ //Try with normal gender SP
+ map = new SearchParameterMap();
+ map.add("gender", new TokenParam(null, "male"));
+ results = myPatientDao.search(map);
+ foundResources = toUnqualifiedVersionlessIdValues(results);
+ assertThat(foundResources, contains(patId.getValue()));
+
+ }
+
+ @Test
+ public void testSearchWithCustomParamDraft() {
+
+ SearchParameter fooSp = new SearchParameter();
+ fooSp.setCode("foo");
+ fooSp.setType(org.hl7.fhir.dstu3.model.Enumerations.SearchParamType.TOKEN);
+ fooSp.setTitle("FOO SP");
+ fooSp.setXpath("Patient.gender");
+ fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
+ fooSp.setStatus(org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus.DRAFT);
+ mySearchParameterDao.create(fooSp, mySrd);
+
+ mySearchParamRegsitry.forceRefresh();
+
+ Patient pat = new Patient();
+ pat.setGender(AdministrativeGender.MALE);
+ IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
+
+ Patient pat2 = new Patient();
+ pat.setGender(AdministrativeGender.FEMALE);
+ IIdType patId2 = myPatientDao.create(pat2, mySrd).getId().toUnqualifiedVersionless();
+
+ SearchParameterMap map;
+ IBundleProvider results;
+ List foundResources;
+
+ //Try with custom gender SP (should find nothing)
+ map = new SearchParameterMap();
+ map.add("foo", new TokenParam(null, "male"));
+ results = myPatientDao.search(map);
+ foundResources = toUnqualifiedVersionlessIdValues(results);
+ assertThat(foundResources, empty());
+
+ //Try with normal gender SP
+ map = new SearchParameterMap();
+ map.add("gender", new TokenParam(null, "male"));
+ results = myPatientDao.search(map);
+ foundResources = toUnqualifiedVersionlessIdValues(results);
+ assertThat(foundResources, contains(patId.getValue()));
+
+ }
+
+ @Test
+ public void testSearchWithCustomParamNullStatus() {
+
+ SearchParameter fooSp = new SearchParameter();
+ fooSp.setCode("foo");
+ fooSp.setType(org.hl7.fhir.dstu3.model.Enumerations.SearchParamType.TOKEN);
+ fooSp.setTitle("FOO SP");
+ fooSp.setXpath("Patient.gender");
+ fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
+ fooSp.setStatus(null);
+ mySearchParameterDao.create(fooSp, mySrd);
+
+ mySearchParamRegsitry.forceRefresh();
+
+ Patient pat = new Patient();
+ pat.setGender(AdministrativeGender.MALE);
+ IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
+
+ Patient pat2 = new Patient();
+ pat.setGender(AdministrativeGender.FEMALE);
+ IIdType patId2 = myPatientDao.create(pat2, mySrd).getId().toUnqualifiedVersionless();
+
+ SearchParameterMap map;
+ IBundleProvider results;
+ List foundResources;
+
+ //Try with custom gender SP (should find nothing)
+ map = new SearchParameterMap();
+ map.add("foo", new TokenParam(null, "male"));
+ results = myPatientDao.search(map);
+ foundResources = toUnqualifiedVersionlessIdValues(results);
+ assertThat(foundResources, empty());
+
+ //Try with normal gender SP
+ map = new SearchParameterMap();
+ map.add("gender", new TokenParam(null, "male"));
+ results = myPatientDao.search(map);
+ foundResources = toUnqualifiedVersionlessIdValues(results);
+ assertThat(foundResources, contains(patId.getValue()));
+
+ }
+
+ @AfterClass
+ public static void afterClassClearContext() {
+ TestUtil.clearAllStaticFieldsForUnitTest();
+ }
+
+
+}
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3Test.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3Test.java
index 8fe8330b97c..0de138ed407 100644
--- a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3Test.java
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/SearchParamExtractorDstu3Test.java
@@ -1,7 +1,9 @@
package ca.uhn.fhir.jpa.dao.dstu3;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import org.hl7.fhir.dstu3.hapi.validation.DefaultProfileValidationSupport;
@@ -12,6 +14,9 @@ import org.junit.BeforeClass;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.context.RuntimeResourceDefinition;
+import ca.uhn.fhir.context.RuntimeSearchParam;
+import ca.uhn.fhir.jpa.dao.ISearchParamRegistry;
import ca.uhn.fhir.jpa.entity.BaseResourceIndexedSearchParam;
import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamToken;
import ca.uhn.fhir.jpa.entity.ResourceTable;
@@ -37,7 +42,24 @@ public class SearchParamExtractorDstu3Test {
Observation obs = new Observation();
obs.addCategory().addCoding().setSystem("SYSTEM").setCode("CODE");
- SearchParamExtractorDstu3 extractor = new SearchParamExtractorDstu3(ourCtx, ourValidationSupport);
+ ISearchParamRegistry searchParamRegistry = new ISearchParamRegistry() {
+ @Override
+ public Map getActiveSearchParams(String theResourceName) {
+ RuntimeResourceDefinition nextResDef = ourCtx.getResourceDefinition(theResourceName);
+ Map sps = new HashMap();
+ for (RuntimeSearchParam nextSp : nextResDef.getSearchParams()) {
+ sps.put(nextSp.getName(), nextSp);
+ }
+ return sps;
+ }
+
+ @Override
+ public void forceRefresh() {
+ // nothing
+ }
+ };
+
+ SearchParamExtractorDstu3 extractor = new SearchParamExtractorDstu3(ourCtx, ourValidationSupport, searchParamRegistry);
Set tokens = extractor.extractSearchParamTokens(new ResourceTable(), obs);
assertEquals(1, tokens.size());
ResourceIndexedSearchParamToken token = (ResourceIndexedSearchParamToken) tokens.iterator().next();
diff --git a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/DynamicSearchTest.java b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/DynamicSearchTest.java
index 07f3ed921e0..cb97cd8a079 100644
--- a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/DynamicSearchTest.java
+++ b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/DynamicSearchTest.java
@@ -22,6 +22,7 @@ import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.context.RuntimeSearchParam;
+import ca.uhn.fhir.context.RuntimeSearchParam.RuntimeSearchParamStatusEnum;
import ca.uhn.fhir.model.api.Bundle;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.model.dstu.resource.Conformance;
@@ -175,8 +176,8 @@ public class DynamicSearchTest {
@Override
public List getSearchParameters() {
ArrayList retVal = new ArrayList();
- retVal.add(new RuntimeSearchParam("param1", "This is the first parameter", "Patient.param1", RestSearchParameterTypeEnum.STRING, null, null));
- retVal.add(new RuntimeSearchParam("param2", "This is the second parameter", "Patient.param2", RestSearchParameterTypeEnum.DATE, null, null));
+ retVal.add(new RuntimeSearchParam("param1", "This is the first parameter", "Patient.param1", RestSearchParameterTypeEnum.STRING, null, null, RuntimeSearchParamStatusEnum.ACTIVE));
+ retVal.add(new RuntimeSearchParam("param2", "This is the second parameter", "Patient.param2", RestSearchParameterTypeEnum.DATE, null, null, RuntimeSearchParamStatusEnum.ACTIVE));
return retVal;
}
diff --git a/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/rest/server/SearchDefaultMethodDstu3Test.java b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/rest/server/SearchDefaultMethodDstu3Test.java
new file mode 100644
index 00000000000..7b50cd0a1be
--- /dev/null
+++ b/hapi-fhir-structures-dstu3/src/test/java/ca/uhn/fhir/rest/server/SearchDefaultMethodDstu3Test.java
@@ -0,0 +1,261 @@
+package ca.uhn.fhir.rest.server;
+
+import static org.hamcrest.Matchers.either;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasSize;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.ServletHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.hl7.fhir.dstu3.model.HumanName;
+import org.hl7.fhir.dstu3.model.Patient;
+import org.hl7.fhir.instance.model.api.IBaseResource;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.rest.annotation.OptionalParam;
+import ca.uhn.fhir.rest.annotation.RawParam;
+import ca.uhn.fhir.rest.annotation.Search;
+import ca.uhn.fhir.rest.param.StringAndListParam;
+import ca.uhn.fhir.util.PortUtil;
+import ca.uhn.fhir.util.TestUtil;
+
+public class SearchDefaultMethodDstu3Test {
+
+ private static CloseableHttpClient ourClient;
+ private static FhirContext ourCtx = FhirContext.forDstu3();
+ private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(SearchDefaultMethodDstu3Test.class);
+ private static int ourPort;
+ private static Server ourServer;
+ private static String ourLastMethod;
+ private static StringAndListParam ourLastParam1;
+ private static StringAndListParam ourLastParam2;
+
+ @Before
+ public void before() {
+ ourLastMethod = null;
+ ourLastParam1 = null;
+ ourLastParam2 = null;
+ ourLastAdditionalParams = null;
+ }
+
+ @Test
+ public void testSearchNoParams() throws Exception {
+ HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient");
+ CloseableHttpResponse status = ourClient.execute(httpGet);
+ try {
+ String responseContent = IOUtils.toString(status.getEntity().getContent(), StandardCharsets.UTF_8);
+ ourLog.info(responseContent);
+ assertEquals(200, status.getStatusLine().getStatusCode());
+
+ assertThat(ourLastMethod, either(equalTo("search01")).or(equalTo("search02")));
+ assertEquals(null, ourLastParam1);
+ assertEquals(null, ourLastParam2);
+ assertEquals(null, ourLastAdditionalParams);
+
+ } finally {
+ IOUtils.closeQuietly(status.getEntity().getContent());
+ }
+
+ }
+
+ @Test
+ public void testSearchOneOptionalParam() throws Exception {
+ HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?param1=val1");
+ CloseableHttpResponse status = ourClient.execute(httpGet);
+ try {
+ String responseContent = IOUtils.toString(status.getEntity().getContent(), StandardCharsets.UTF_8);
+ ourLog.info(responseContent);
+ assertEquals(200, status.getStatusLine().getStatusCode());
+
+ assertThat(ourLastParam1.getValuesAsQueryTokens(), hasSize(1));
+ assertThat(ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens(), hasSize(1));
+ assertEquals("val1", ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0).getValue());
+ assertEquals(null, ourLastParam2);
+ assertEquals(null, ourLastAdditionalParams);
+
+ } finally {
+ IOUtils.closeQuietly(status.getEntity().getContent());
+ }
+
+ }
+
+ @Test
+ public void testSearchTwoOptionalParams() throws Exception {
+ HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?param1=val1¶m2=val2");
+ CloseableHttpResponse status = ourClient.execute(httpGet);
+ try {
+ String responseContent = IOUtils.toString(status.getEntity().getContent(), StandardCharsets.UTF_8);
+ ourLog.info(responseContent);
+ assertEquals(200, status.getStatusLine().getStatusCode());
+
+ assertThat(ourLastParam1.getValuesAsQueryTokens(), hasSize(1));
+ assertThat(ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens(), hasSize(1));
+ assertEquals("val1", ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0).getValue());
+
+ assertThat(ourLastParam2.getValuesAsQueryTokens(), hasSize(1));
+ assertThat(ourLastParam2.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens(), hasSize(1));
+ assertEquals("val2", ourLastParam2.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0).getValue());
+
+ assertEquals(null, ourLastAdditionalParams);
+
+ } finally {
+ IOUtils.closeQuietly(status.getEntity().getContent());
+ }
+
+ }
+
+ @Test
+ public void testSearchTwoOptionalParamsAndExtraParam() throws Exception {
+ HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?param1=val1¶m2=val2¶m3=val3&_pretty=true");
+ CloseableHttpResponse status = ourClient.execute(httpGet);
+ try {
+ String responseContent = IOUtils.toString(status.getEntity().getContent(), StandardCharsets.UTF_8);
+ ourLog.info(responseContent);
+ assertEquals(200, status.getStatusLine().getStatusCode());
+
+ assertEquals("search03", ourLastMethod);
+
+ assertThat(ourLastParam1.getValuesAsQueryTokens(), hasSize(1));
+ assertThat(ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens(), hasSize(1));
+ assertEquals("val1", ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0).getValue());
+
+ assertThat(ourLastParam2.getValuesAsQueryTokens(), hasSize(1));
+ assertThat(ourLastParam2.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens(), hasSize(1));
+ assertEquals("val2", ourLastParam2.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0).getValue());
+
+ ourLog.info(ourLastAdditionalParams.toString());
+ assertEquals(1, ourLastAdditionalParams.size());
+ assertEquals("val3", ourLastAdditionalParams.get("param3").get(0));
+
+ } finally {
+ IOUtils.closeQuietly(status.getEntity().getContent());
+ }
+
+ }
+
+ @Test
+ public void testSearchTwoOptionalParamsWithQualifierAndExtraParam() throws Exception {
+ HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?param1=val1¶m2=val2¶m2:exact=val2e¶m3=val3&_pretty=true");
+ CloseableHttpResponse status = ourClient.execute(httpGet);
+ try {
+ String responseContent = IOUtils.toString(status.getEntity().getContent(), StandardCharsets.UTF_8);
+ ourLog.info(responseContent);
+ assertEquals(200, status.getStatusLine().getStatusCode());
+
+ assertEquals("search03", ourLastMethod);
+
+ assertThat(ourLastParam1.getValuesAsQueryTokens(), hasSize(1));
+ assertThat(ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens(), hasSize(1));
+ assertEquals("val1", ourLastParam1.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0).getValue());
+
+ assertThat(ourLastParam2.getValuesAsQueryTokens(), hasSize(2));
+ assertThat(ourLastParam2.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens(), hasSize(1));
+ assertEquals("val2", ourLastParam2.getValuesAsQueryTokens().get(0).getValuesAsQueryTokens().get(0).getValue());
+ assertEquals("val2e", ourLastParam2.getValuesAsQueryTokens().get(1).getValuesAsQueryTokens().get(0).getValue());
+
+ ourLog.info(ourLastAdditionalParams.toString());
+ assertEquals(1, ourLastAdditionalParams.size());
+ assertEquals("val3", ourLastAdditionalParams.get("param3").get(0));
+
+ } finally {
+ IOUtils.closeQuietly(status.getEntity().getContent());
+ }
+
+ }
+
+ @AfterClass
+ public static void afterClassClearContext() throws Exception {
+ ourServer.stop();
+ TestUtil.clearAllStaticFieldsForUnitTest();
+ }
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ ourPort = PortUtil.findFreePort();
+ ourServer = new Server(ourPort);
+
+ DummyPatientResourceProvider patientProvider = new DummyPatientResourceProvider();
+
+ ServletHandler proxyHandler = new ServletHandler();
+ RestfulServer servlet = new RestfulServer(ourCtx);
+ servlet.setPagingProvider(new FifoMemoryPagingProvider(10));
+
+ servlet.setResourceProviders(patientProvider);
+ ServletHolder servletHolder = new ServletHolder(servlet);
+ proxyHandler.addServletWithMapping(servletHolder, "/*");
+ ourServer.setHandler(proxyHandler);
+ ourServer.start();
+
+ PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(5000, TimeUnit.MILLISECONDS);
+ HttpClientBuilder builder = HttpClientBuilder.create();
+ builder.setConnectionManager(connectionManager);
+ ourClient = builder.build();
+
+ }
+
+ private static Map> ourLastAdditionalParams;
+
+ public static class DummyPatientResourceProvider implements IResourceProvider {
+
+ @Override
+ public Class extends IBaseResource> getResourceType() {
+ return Patient.class;
+ }
+
+ @Search()
+ public List search01(
+ @OptionalParam(name = "param1") StringAndListParam theParam1) {
+ ourLastMethod = "search01";
+ ourLastParam1 = theParam1;
+ ArrayList retVal = new ArrayList();
+ retVal.add((Patient) new Patient().addName(new HumanName().setFamily("FAMILY")).setId("1"));
+ return retVal;
+ }
+
+ @Search()
+ public List search02(
+ @OptionalParam(name = "param1") StringAndListParam theParam1,
+ @OptionalParam(name = "param2") StringAndListParam theParam2) {
+ ourLastMethod = "search02";
+ ourLastParam1 = theParam1;
+ ourLastParam2 = theParam2;
+ ArrayList retVal = new ArrayList();
+ retVal.add((Patient) new Patient().addName(new HumanName().setFamily("FAMILY")).setId("1"));
+ return retVal;
+ }
+
+ @Search(allowUnknownParams = true)
+ public List search03(
+ @OptionalParam(name = "param1") StringAndListParam theParam1,
+ @OptionalParam(name = "param2") StringAndListParam theParam2,
+ @RawParam() Map> theAdditionalParams) {
+ ourLastMethod = "search03";
+ ourLastParam1 = theParam1;
+ ourLastParam2 = theParam2;
+ ourLastAdditionalParams = theAdditionalParams;
+ ArrayList retVal = new ArrayList();
+ retVal.add((Patient) new Patient().addName(new HumanName().setFamily("FAMILY")).setId("1"));
+ return retVal;
+ }
+
+ }
+
+}
diff --git a/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.jdt.core.prefs b/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..60105c1b951
--- /dev/null
+++ b/hapi-fhir-validation-resources-dstu2.1/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
From 3191c907a3fa12404e3d00e78ccf564c21f1fe02 Mon Sep 17 00:00:00 2001
From: James Agnew
Date: Thu, 2 Feb 2017 06:23:28 -0500
Subject: [PATCH 21/31] Work on JPA
---
hapi-fhir-android-realm/.project | 23 ++++++
.../ca/uhn/fhir/i18n/hapi-messages.properties | 3 +-
.../fhir/jpa/dao/BaseHapiFhirResourceDao.java | 73 ++++++++++++-------
.../ca/uhn/fhir/jpa/dao/IFhirResourceDao.java | 15 +++-
.../FhirResourceDaoSearchParameterDstu3.java | 15 +++-
...rceProviderCustomSearchParamDstu3Test.java | 56 ++++++++++++++
.../resources/vm/jpa_resource_provider.vm | 3 +
7 files changed, 155 insertions(+), 33 deletions(-)
create mode 100644 hapi-fhir-android-realm/.project
create mode 100644 hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
diff --git a/hapi-fhir-android-realm/.project b/hapi-fhir-android-realm/.project
new file mode 100644
index 00000000000..13005c6b849
--- /dev/null
+++ b/hapi-fhir-android-realm/.project
@@ -0,0 +1,23 @@
+
+
+ hapi-fhir-android-realm
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/hapi-fhir-base/src/main/resources/ca/uhn/fhir/i18n/hapi-messages.properties b/hapi-fhir-base/src/main/resources/ca/uhn/fhir/i18n/hapi-messages.properties
index ff82937d610..636b56fc038 100644
--- a/hapi-fhir-base/src/main/resources/ca/uhn/fhir/i18n/hapi-messages.properties
+++ b/hapi-fhir-base/src/main/resources/ca/uhn/fhir/i18n/hapi-messages.properties
@@ -43,11 +43,9 @@ ca.uhn.fhir.rest.param.ResourceParameter.noContentTypeInRequest=No Content-Type
ca.uhn.fhir.rest.param.ResourceParameter.failedToParseRequest=Failed to parse request body as {0} resource. Error was: {1}
ca.uhn.fhir.parser.ParserState.wrongResourceTypeFound=Incorrect resource type found, expected "{0}" but found "{1}"
-
ca.uhn.fhir.rest.server.RestfulServer.getPagesNonHttpGet=Requests for _getpages must use HTTP GET
ca.uhn.fhir.rest.server.RestfulServer.unknownMethod=Invalid request: The FHIR endpoint on this server does not know how to handle {0} operation[{1}] with parameters [{2}]
ca.uhn.fhir.rest.server.RestfulServer.rootRequest=This is the base URL of FHIR server. Unable to handle this request, as it does not contain a resource type or operation name.
-
ca.uhn.fhir.validation.ValidationContext.unableToDetermineEncoding=Unable to determine encoding (e.g. XML / JSON) on validation input. Is this a valid FHIR resource body?
ca.uhn.fhir.validation.FhirValidator.noPhlocWarningOnStartup=Phloc-schematron library not found on classpath, will not attempt to perform schematron validation
ca.uhn.fhir.validation.FhirValidator.noPhlocError=Phloc-schematron library not found on classpath, can not enable perform schematron validation
@@ -81,6 +79,7 @@ ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.unableToDeleteNotFound=Unable to fin
ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.successfulCreate=Successfully created resource "{0}" in {1}ms
ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.successfulUpdate=Successfully updated resource "{0}" in {1}ms
ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.successfulDeletes=Successfully deleted {0} resource(s) in {1}ms
+ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.invalidSearchParameter=Unknown search parameter "{0}". Value search parameters for this search are: {1}
ca.uhn.fhir.jpa.dao.SearchBuilder.invalidQuantityPrefix=Unable to handle quantity prefix "{0}" for value: {1}
ca.uhn.fhir.jpa.dao.SearchBuilder.invalidNumberPrefix=Unable to handle number prefix "{0}" for value: {1}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
index 5057c12612f..4848c204674 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
@@ -57,6 +57,8 @@ import ca.uhn.fhir.rest.api.PatchTypeEnum;
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
import ca.uhn.fhir.rest.method.RequestDetails;
import ca.uhn.fhir.rest.method.RestSearchParameterTypeEnum;
+import ca.uhn.fhir.rest.method.SearchMethodBinding;
+import ca.uhn.fhir.rest.method.SearchMethodBinding.QualifierDetails;
import ca.uhn.fhir.rest.server.IBundleProvider;
import ca.uhn.fhir.rest.server.exceptions.*;
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
@@ -73,6 +75,7 @@ public abstract class BaseHapiFhirResourceDao extends B
@Autowired
private DaoConfig myDaoConfig;
+
@Autowired
protected PlatformTransactionManager myPlatformTransactionManager;
@Autowired
@@ -86,6 +89,8 @@ public abstract class BaseHapiFhirResourceDao extends B
@Autowired()
protected ISearchResultDao mySearchResultDao;
private String mySecondaryPrimaryKeyParamName;
+ @Autowired
+ private ISearchParamRegistry mySerarchParamRegistry;
@Autowired()
protected IHapiTerminologySvc myTerminologySvc;
@@ -662,6 +667,30 @@ public abstract class BaseHapiFhirResourceDao extends B
return retVal;
}
+ @Override
+ public DaoMethodOutcome patch(IIdType theId, PatchTypeEnum thePatchType, String thePatchBody, RequestDetails theRequestDetails) {
+ ResourceTable entityToUpdate = readEntityLatestVersion(theId);
+ if (theId.hasVersionIdPart()) {
+ if (theId.getVersionIdPartAsLong() != entityToUpdate.getVersion()) {
+ throw new ResourceVersionConflictException("Version " + theId.getVersionIdPart() + " is not the most recent version of this resource, unable to apply patch");
+ }
+ }
+
+ validateResourceType(entityToUpdate);
+
+ IBaseResource resourceToUpdate = toResource(entityToUpdate, false);
+ IBaseResource destination;
+ if (thePatchType == PatchTypeEnum.JSON_PATCH) {
+ destination = JsonPatchUtils.apply(getContext(), resourceToUpdate, thePatchBody);
+ } else {
+ destination = XmlPatchUtils.apply(getContext(), resourceToUpdate, thePatchBody);
+ }
+
+ @SuppressWarnings("unchecked")
+ T destinationCasted = (T) destination;
+ return update(destinationCasted, null, true, theRequestDetails);
+ }
+
@PostConstruct
public void postConstruct() {
RuntimeResourceDefinition def = getContext().getResourceDefinition(myResourceType);
@@ -863,9 +892,6 @@ public abstract class BaseHapiFhirResourceDao extends B
return search(map);
}
- @Autowired
- private ISearchParamRegistry mySerarchParamRegistry;
-
@Override
public IBundleProvider search(final SearchParameterMap theParams) {
// Notify interceptors
@@ -988,6 +1014,23 @@ public abstract class BaseHapiFhirResourceDao extends B
return retVal;
}
+ @Override
+ public void translateRawParameters(Map> theSource, SearchParameterMap theTarget) {
+ Map searchParams = mySerarchParamRegistry.getActiveSearchParams(getResourceName());
+
+ Set paramNames = theSource.keySet();
+ for (String nextParamName : paramNames) {
+ QualifierDetails qualifiedParamName = SearchMethodBinding.extractQualifiersFromParameterName(nextParamName);
+ RuntimeSearchParam param = searchParams.get(qualifiedParamName.getParamName());
+ if (param == null) {
+ String msg = getContext().getLocalizer().getMessage(BaseHapiFhirResourceDao.class, "invalidSearchParameter", qualifiedParamName.getParamName(), new TreeSet(searchParams.keySet()));
+ throw new InvalidRequestException(msg);
+ }
+
+ aaaa
+ }
+ }
+
@Override
public DaoMethodOutcome update(T theResource) {
return update(theResource, null, null);
@@ -1078,30 +1121,6 @@ public abstract class BaseHapiFhirResourceDao extends B
ourLog.info(msg);
return outcome;
}
-
- @Override
- public DaoMethodOutcome patch(IIdType theId, PatchTypeEnum thePatchType, String thePatchBody, RequestDetails theRequestDetails) {
- ResourceTable entityToUpdate = readEntityLatestVersion(theId);
- if (theId.hasVersionIdPart()) {
- if (theId.getVersionIdPartAsLong() != entityToUpdate.getVersion()) {
- throw new ResourceVersionConflictException("Version " + theId.getVersionIdPart() + " is not the most recent version of this resource, unable to apply patch");
- }
- }
-
- validateResourceType(entityToUpdate);
-
- IBaseResource resourceToUpdate = toResource(entityToUpdate, false);
- IBaseResource destination;
- if (thePatchType == PatchTypeEnum.JSON_PATCH) {
- destination = JsonPatchUtils.apply(getContext(), resourceToUpdate, thePatchBody);
- } else {
- destination = XmlPatchUtils.apply(getContext(), resourceToUpdate, thePatchBody);
- }
-
- @SuppressWarnings("unchecked")
- T destinationCasted = (T) destination;
- return update(destinationCasted, null, true, theRequestDetails);
- }
@Override
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/IFhirResourceDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/IFhirResourceDao.java
index 4e6469a15ae..5c64e197ff2 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/IFhirResourceDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/IFhirResourceDao.java
@@ -39,8 +39,10 @@ import ca.uhn.fhir.rest.api.MethodOutcome;
import ca.uhn.fhir.rest.api.PatchTypeEnum;
import ca.uhn.fhir.rest.api.ValidationModeEnum;
import ca.uhn.fhir.rest.method.RequestDetails;
+import ca.uhn.fhir.rest.param.StringParam;
import ca.uhn.fhir.rest.server.EncodingEnum;
import ca.uhn.fhir.rest.server.IBundleProvider;
+import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
public interface IFhirResourceDao extends IDao {
@@ -134,6 +136,8 @@ public interface IFhirResourceDao extends IDao {
*/
MT metaGetOperation(Class theType, RequestDetails theRequestDetails);
+ DaoMethodOutcome patch(IIdType theId, PatchTypeEnum thePatchType, String thePatchBody, RequestDetails theRequestDetails);
+
Set processMatchUrl(String theMatchUrl);
/**
@@ -181,6 +185,15 @@ public interface IFhirResourceDao extends IDao {
Set searchForIdsWithAndOr(SearchParameterMap theParams);
+ /**
+ * Takes a map of incoming raw search parameters and translates/parses them into
+ * appropriate {@link IQueryParameterType} instances of the appropriate type
+ * for the given param
+ *
+ * @throws InvalidRequestException If any of the parameters are not known
+ */
+ void translateRawParameters(Map> theSource, SearchParameterMap theTarget);
+
/**
* Update a resource - Note that this variant of the method does not take in a {@link RequestDetails} and
* therefore can not fire any interceptors. Use only for internal system calls
@@ -211,8 +224,6 @@ public interface IFhirResourceDao extends IDao {
*/
MethodOutcome validate(T theResource, IIdType theId, String theRawResource, EncodingEnum theEncoding, ValidationModeEnum theMode, String theProfile, RequestDetails theRequestDetails);
- DaoMethodOutcome patch(IIdType theId, PatchTypeEnum thePatchType, String thePatchBody, RequestDetails theRequestDetails);
-
// /**
// * Invoke the everything operation
// */
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java
index cf8fd24e65b..b7ac869fbf9 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java
@@ -29,17 +29,28 @@ import org.springframework.scheduling.annotation.Scheduled;
import ca.uhn.fhir.jpa.dao.IFhirResourceDaoSearchParameter;
import ca.uhn.fhir.jpa.dao.IFhirSystemDao;
+import ca.uhn.fhir.jpa.entity.ResourceTable;
+import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
public class FhirResourceDaoSearchParameterDstu3 extends FhirResourceDaoDstu3implements IFhirResourceDaoSearchParameter {
@Autowired
private IFhirSystemDao mySystemDao;
+ @Override
+ protected void validateResourceForStorage(SearchParameter theResource, ResourceTable theEntityToSave) {
+ super.validateResourceForStorage(theResource, theEntityToSave);
+
+ if (theResource.getStatus() == null) {
+ throw new InvalidRequestException("Resource.status is missing or invalid: " + theResource.getStatusElement().getValueAsString());
+ }
+ }
+
/**
* This method is called once per minute to perform any required re-indexing. During most passes this will
* just check and find that there are no resources requiring re-indexing. In that case the method just returns
- * immediately. If the search finds that some resources require reindexing, the system will do a bunch of
- * reindexing and then return.
+ * immediately. If the search finds that some resources require reindexing, the system will do multiple
+ * reindexing passes and then return.
*/
@Override
@Scheduled(fixedDelay=DateUtils.MILLIS_PER_MINUTE)
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
new file mode 100644
index 00000000000..90c479fa782
--- /dev/null
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
@@ -0,0 +1,56 @@
+package ca.uhn.fhir.jpa.provider.dstu3;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+
+import org.hl7.fhir.dstu3.model.SearchParameter;
+import org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Test;
+
+import ca.uhn.fhir.jpa.dao.DaoConfig;
+import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
+import ca.uhn.fhir.util.TestUtil;
+
+public class ResourceProviderCustomSearchParamDstu3Test extends BaseResourceProviderDstu3Test {
+
+ private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ResourceProviderCustomSearchParamDstu3Test.class);
+
+ @Override
+ @After
+ public void after() throws Exception {
+ super.after();
+
+ myDaoConfig.setDefaultSearchParamsCanBeOverridden(new DaoConfig().isDefaultSearchParamsCanBeOverridden());
+ }
+
+ @Override
+ public void before() throws Exception {
+ super.before();
+ }
+
+ @Test
+ public void saveCreateSearchParamInvalidWithMissingStatus() throws IOException {
+ SearchParameter sp = new SearchParameter();
+ sp.setCode("foo");
+ sp.setXpath("Patient.gender");
+ sp.setXpathUsage(XPathUsageType.NORMAL);
+ sp.setTitle("Foo Param");
+
+ try {
+ ourClient.create().resource(sp).execute();
+ fail();
+ } catch (InvalidRequestException e) {
+ assertEquals("", e.getMessage());
+ }
+ }
+
+ @AfterClass
+ public static void afterClassClearContext() {
+ TestUtil.clearAllStaticFieldsForUnitTest();
+ }
+
+}
diff --git a/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm b/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm
index 212dfb62ee2..df8987b6bf5 100644
--- a/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm
+++ b/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm
@@ -99,6 +99,9 @@ public class ${className}ResourceProvider extends
#end
#end
+ @RawParam
+ Map> theAdditionalRawParams,
+
#if ( $version != 'dstu' )
@IncludeParam(reverse=true)
Set theRevIncludes,
From 97ff79d730fb86c733facd5899d990ed59cdebbd Mon Sep 17 00:00:00 2001
From: James
Date: Thu, 2 Feb 2017 20:37:58 -0500
Subject: [PATCH 22/31] Work on custom params
---
HELPWANTED.md | 8 ++
.../fhir/rest/method/SearchMethodBinding.java | 16 +++
.../ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java | 33 +++----
.../fhir/jpa/dao/BaseHapiFhirResourceDao.java | 59 +++++++++--
.../fhir/jpa/dao/FhirResourceDaoDstu2.java | 3 +-
.../dao/FhirResourceDaoSubscriptionDstu2.java | 2 +-
.../main/java/ca/uhn/fhir/jpa/dao/IDao.java | 4 +
.../ca/uhn/fhir/jpa/dao/SearchBuilder.java | 43 ++++----
.../jpa/dao/dstu3/FhirResourceDaoDstu3.java | 3 +-
.../FhirResourceDaoSubscriptionDstu3.java | 2 +-
.../search/PersistedJpaBundleProvider.java | 4 +-
.../uhn/fhir/jpa/dao/BaseHapiFhirDaoTest.java | 12 ++-
...ResourceDaoDstu3SearchCustomParamTest.java | 55 +----------
...rceProviderCustomSearchParamDstu3Test.java | 98 ++++++++++++++++++-
.../resources/vm/jpa_resource_provider.vm | 4 +-
15 files changed, 236 insertions(+), 110 deletions(-)
create mode 100644 HELPWANTED.md
diff --git a/HELPWANTED.md b/HELPWANTED.md
new file mode 100644
index 00000000000..5ef933eda90
--- /dev/null
+++ b/HELPWANTED.md
@@ -0,0 +1,8 @@
+# Help Wanted
+
+This page is a work in progress!
+
+It serves as a place to list potential help a new volunteer could offer.
+
+* Investigate adding support for FHIR's RDF (Turtle) encoding to HAPI
+
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
index 456b24cf304..3ca67891b3f 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java
@@ -403,19 +403,26 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
retVal.setDotQualifier(theParamName.substring(dotIdx, colonIdx));
retVal.setColonQualifier(theParamName.substring(colonIdx));
retVal.setParamName(theParamName.substring(0, dotIdx));
+ retVal.setWholeQualifier(theParamName.substring(dotIdx));
} else {
retVal.setColonQualifier(theParamName.substring(colonIdx, dotIdx));
retVal.setDotQualifier(theParamName.substring(dotIdx));
retVal.setParamName(theParamName.substring(0, colonIdx));
+ retVal.setWholeQualifier(theParamName.substring(colonIdx));
}
} else if (dotIdx != -1) {
retVal.setDotQualifier(theParamName.substring(dotIdx));
retVal.setParamName(theParamName.substring(0, dotIdx));
+ retVal.setWholeQualifier(theParamName.substring(dotIdx));
} else if (colonIdx != -1) {
retVal.setColonQualifier(theParamName.substring(colonIdx));
retVal.setParamName(theParamName.substring(0, colonIdx));
+ retVal.setWholeQualifier(theParamName.substring(colonIdx));
} else {
retVal.setParamName(theParamName);
+ retVal.setColonQualifier(null);
+ retVal.setDotQualifier(null);
+ retVal.setWholeQualifier(null);
}
return retVal;
@@ -426,6 +433,7 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
private String myColonQualifier;
private String myDotQualifier;
private String myParamName;
+ private String myWholeQualifier;
public boolean passes(Set theQualifierWhitelist, Set theQualifierBlacklist) {
if (theQualifierWhitelist != null) {
@@ -487,6 +495,14 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
myDotQualifier = theDotQualifier;
}
+ public String getWholeQualifier() {
+ return myWholeQualifier;
+ }
+
+ public void setWholeQualifier(String theWholeQualifier) {
+ myWholeQualifier = theWholeQualifier;
+ }
+
}
public static BaseHttpClientInvocation createSearchInvocation(FhirContext theContext, String theSearchUrl, Map> theParams) {
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java
index 979cdef07f9..624d8feacd4 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java
@@ -213,6 +213,9 @@ public abstract class BaseHapiFhirDao implements IDao {
@Autowired
private ISearchParamExtractor mySearchParamExtractor;
+ @Autowired
+ private ISearchParamRegistry mySearchParamRegistry;
+
@Autowired
private ISearchResultDao mySearchResultDao;
@@ -943,7 +946,7 @@ public abstract class BaseHapiFhirDao implements IDao {
public Set processMatchUrl(String theMatchUrl, Class theResourceType) {
RuntimeResourceDefinition resourceDef = getContext().getResourceDefinition(theResourceType);
- SearchParameterMap paramMap = translateMatchUrl(myContext, theMatchUrl, resourceDef);
+ SearchParameterMap paramMap = translateMatchUrl(this, myContext, theMatchUrl, resourceDef);
paramMap.setPersistResults(false);
if (paramMap.isEmpty() && paramMap.getLastUpdated() == null) {
@@ -956,30 +959,18 @@ public abstract class BaseHapiFhirDao implements IDao {
return ids;
}
+ @Override
+ public RuntimeSearchParam getSearchParamByName(RuntimeResourceDefinition theResourceDef, String theParamName) {
+ Map params = mySearchParamRegistry.getActiveSearchParams(theResourceDef.getName());
+ return params.get(theParamName);
+ }
+
@SuppressWarnings("unused")
@CoverageIgnore
public BaseHasResource readEntity(IIdType theValueId) {
throw new NotImplementedException("");
}
- // protected MetaDt toMetaDt(Collection tagDefinitions) {
- // MetaDt retVal = new MetaDt();
- // for (TagDefinition next : tagDefinitions) {
- // switch (next.getTagType()) {
- // case PROFILE:
- // retVal.addProfile(next.getCode());
- // break;
- // case SECURITY_LABEL:
- // retVal.addSecurity().setSystem(next.getSystem()).setCode(next.getCode()).setDisplay(next.getDisplay());
- // break;
- // case TAG:
- // retVal.addTag().setSystem(next.getSystem()).setCode(next.getCode()).setDisplay(next.getDisplay());
- // break;
- // }
- // }
- // return retVal;
- // }
-
public void setConfig(DaoConfig theConfig) {
myConfig = theConfig;
}
@@ -1718,7 +1709,7 @@ public abstract class BaseHapiFhirDao implements IDao {
return parameters;
}
- public static SearchParameterMap translateMatchUrl(FhirContext theContext, String theMatchUrl, RuntimeResourceDefinition resourceDef) {
+ public static SearchParameterMap translateMatchUrl(IDao theCallingDao, FhirContext theContext, String theMatchUrl, RuntimeResourceDefinition resourceDef) {
SearchParameterMap paramMap = new SearchParameterMap();
List parameters = translateMatchUrl(theMatchUrl);
@@ -1788,7 +1779,7 @@ public abstract class BaseHapiFhirDao implements IDao {
} else if (nextParamName.startsWith("_")) {
// ignore these since they aren't search params (e.g. _sort)
} else {
- RuntimeSearchParam paramDef = resourceDef.getSearchParam(nextParamName);
+ RuntimeSearchParam paramDef = theCallingDao.getSearchParamByName(resourceDef, nextParamName);
if (paramDef == null) {
throw new InvalidRequestException("Failed to parse match URL[" + theMatchUrl + "] - Resource type " + resourceDef.getName() + " does not have a parameter with name: " + nextParamName);
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
index 4848c204674..ff906ce03ca 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
@@ -22,15 +22,29 @@ package ca.uhn.fhir.jpa.dao;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeSet;
import javax.annotation.PostConstruct;
import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
import org.hl7.fhir.dstu3.model.IdType;
-import org.hl7.fhir.instance.model.api.*;
+import org.hl7.fhir.instance.model.api.IAnyResource;
+import org.hl7.fhir.instance.model.api.IBaseCoding;
+import org.hl7.fhir.instance.model.api.IBaseMetaType;
+import org.hl7.fhir.instance.model.api.IBaseOperationOutcome;
+import org.hl7.fhir.instance.model.api.IBaseResource;
+import org.hl7.fhir.instance.model.api.IIdType;
+import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.transaction.PlatformTransactionManager;
@@ -44,23 +58,42 @@ import ca.uhn.fhir.context.RuntimeSearchParam;
import ca.uhn.fhir.jpa.dao.data.IResourceHistoryTableDao;
import ca.uhn.fhir.jpa.dao.data.IResourceIndexedSearchParamUriDao;
import ca.uhn.fhir.jpa.dao.data.ISearchResultDao;
-import ca.uhn.fhir.jpa.entity.*;
+import ca.uhn.fhir.jpa.entity.BaseHasResource;
+import ca.uhn.fhir.jpa.entity.BaseTag;
+import ca.uhn.fhir.jpa.entity.ResourceHistoryTable;
+import ca.uhn.fhir.jpa.entity.ResourceLink;
+import ca.uhn.fhir.jpa.entity.ResourceTable;
+import ca.uhn.fhir.jpa.entity.TagDefinition;
+import ca.uhn.fhir.jpa.entity.TagTypeEnum;
import ca.uhn.fhir.jpa.interceptor.IJpaServerInterceptor;
import ca.uhn.fhir.jpa.term.IHapiTerminologySvc;
import ca.uhn.fhir.jpa.util.DeleteConflict;
import ca.uhn.fhir.jpa.util.StopWatch;
import ca.uhn.fhir.jpa.util.jsonpatch.JsonPatchUtils;
import ca.uhn.fhir.jpa.util.xmlpatch.XmlPatchUtils;
-import ca.uhn.fhir.model.api.*;
+import ca.uhn.fhir.model.api.IQueryParameterAnd;
+import ca.uhn.fhir.model.api.IQueryParameterType;
+import ca.uhn.fhir.model.api.IResource;
+import ca.uhn.fhir.model.api.Include;
+import ca.uhn.fhir.model.api.ResourceMetadataKeyEnum;
+import ca.uhn.fhir.model.api.TagList;
import ca.uhn.fhir.model.primitive.IdDt;
import ca.uhn.fhir.rest.api.PatchTypeEnum;
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
+import ca.uhn.fhir.rest.method.MethodUtil;
+import ca.uhn.fhir.rest.method.QualifiedParamList;
import ca.uhn.fhir.rest.method.RequestDetails;
import ca.uhn.fhir.rest.method.RestSearchParameterTypeEnum;
import ca.uhn.fhir.rest.method.SearchMethodBinding;
import ca.uhn.fhir.rest.method.SearchMethodBinding.QualifierDetails;
import ca.uhn.fhir.rest.server.IBundleProvider;
-import ca.uhn.fhir.rest.server.exceptions.*;
+import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
+import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
+import ca.uhn.fhir.rest.server.exceptions.PreconditionFailedException;
+import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException;
+import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
+import ca.uhn.fhir.rest.server.exceptions.ResourceVersionConflictException;
+import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor.ActionRequestDetails;
import ca.uhn.fhir.util.FhirTerser;
@@ -697,7 +730,7 @@ public abstract class BaseHapiFhirResourceDao extends B
myResourceName = def.getName();
if (mySecondaryPrimaryKeyParamName != null) {
- RuntimeSearchParam sp = def.getSearchParam(mySecondaryPrimaryKeyParamName);
+ RuntimeSearchParam sp = getSearchParamByName(def, mySecondaryPrimaryKeyParamName);
if (sp == null) {
throw new ConfigurationException("Unknown search param on resource[" + myResourceName + "] for secondary key[" + mySecondaryPrimaryKeyParamName + "]");
}
@@ -1026,8 +1059,20 @@ public abstract class BaseHapiFhirResourceDao extends B
String msg = getContext().getLocalizer().getMessage(BaseHapiFhirResourceDao.class, "invalidSearchParameter", qualifiedParamName.getParamName(), new TreeSet(searchParams.keySet()));
throw new InvalidRequestException(msg);
}
+
+ // Should not be null since the check above would have caught it
+ RuntimeResourceDefinition resourceDef = getContext().getResourceDefinition(myResourceName);
+ RuntimeSearchParam paramDef = getSearchParamByName(resourceDef, qualifiedParamName.getParamName());
+
+ for (String nextValue : theSource.get(nextParamName)) {
+ if (isNotBlank(nextValue)) {
+ QualifiedParamList qualifiedParam = QualifiedParamList.splitQueryStringByCommasIgnoreEscape(qualifiedParamName.getWholeQualifier(), nextValue);
+ List paramList = Collections.singletonList(qualifiedParam);
+ IQueryParameterAnd> parsedParam = MethodUtil.parseQueryParams(getContext(), paramDef, nextParamName, paramList);
+ theTarget.add(qualifiedParamName.getParamName(), parsedParam);
+ }
+ }
- aaaa
}
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoDstu2.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoDstu2.java
index 46841016ae5..34b82976b90 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoDstu2.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoDstu2.java
@@ -79,7 +79,8 @@ public class FhirResourceDaoDstu2 extends BaseHapiFhirResou
values.addAll(theTerser.getAllPopulatedChildElementsOfType(theResource, BaseResourceReferenceDt.class));
} else if (theInclude.getValue().startsWith(theResourceDef.getName() + ":")) {
values = new ArrayList();
- RuntimeSearchParam sp = theResourceDef.getSearchParam(theInclude.getValue().substring(theInclude.getValue().indexOf(':') + 1));
+ String paramName = theInclude.getValue().substring(theInclude.getValue().indexOf(':') + 1);
+ RuntimeSearchParam sp = getSearchParamByName(theResourceDef, paramName);
for (String nextPath : sp.getPathsSplit()) {
values.addAll(theTerser.getValues(theResource, nextPath));
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoSubscriptionDstu2.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoSubscriptionDstu2.java
index 50f31cf6e8f..3434d3fc41a 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoSubscriptionDstu2.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/FhirResourceDaoSubscriptionDstu2.java
@@ -152,7 +152,7 @@ public class FhirResourceDaoSubscriptionDstu2 extends FhirResourceDaoDstu2 R toResource(Class theResourceType, BaseHasResource theEntity, boolean theForHistoryOperation);
void populateFullTextFields(IBaseResource theResource, ResourceTable theEntity);
+
+ RuntimeSearchParam getSearchParamByName(RuntimeResourceDefinition theResourceDef, String theParamName);
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java
index a43e31f50c8..3106f9bc0b8 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/SearchBuilder.java
@@ -216,12 +216,13 @@ public class SearchBuilder {
throw new InvalidRequestException("Invalid resource type: " + targetResourceType);
}
- RuntimeSearchParam owningParameterDef = targetResourceDefinition.getSearchParam(parameterName.replaceAll("\\..*", ""));
+ String paramName = parameterName.replaceAll("\\..*", "");
+ RuntimeSearchParam owningParameterDef = myCallingDao.getSearchParamByName(targetResourceDefinition, paramName);
if (owningParameterDef == null) {
throw new InvalidRequestException("Unknown parameter name: " + targetResourceType + ':' + parameterName);
}
- owningParameterDef = targetResourceDefinition.getSearchParam(owningParameter);
+ owningParameterDef = myCallingDao.getSearchParamByName(targetResourceDefinition, owningParameter);
if (owningParameterDef == null) {
throw new InvalidRequestException("Unknown parameter name: " + targetResourceType + ':' + owningParameter);
}
@@ -241,7 +242,7 @@ public class SearchBuilder {
List predicates = new ArrayList();
predicates.add(builder.equal(from.get("mySourceResourceType"), targetResourceType));
predicates.add(from.get("mySourceResourcePid").in(match));
- predicates.add(createResourceLinkPathPredicate(myContext, owningParameter, from, resourceType));
+ predicates.add(createResourceLinkPathPredicate(myCallingDao, myContext, owningParameter, from, resourceType));
predicates.add(builder.equal(from.get("myTargetResourceType"), myResourceName));
createPredicateResourceId(builder, cq, predicates, from.get("myId").as(Long.class));
createPredicateLastUpdatedForResourceLink(builder, from, predicates);
@@ -552,7 +553,8 @@ public class SearchBuilder {
String resourceId;
if (!ref.getValue().matches("[a-zA-Z]+\\/.*")) {
- String paramPath = myContext.getResourceDefinition(myResourceType).getSearchParam(theParamName).getPath();
+ RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceType);
+ String paramPath = myCallingDao.getSearchParamByName(resourceDef, theParamName).getPath();
if (paramPath.endsWith(".as(Reference)")) {
paramPath = paramPath.substring(0, paramPath.length() - ".as(Reference)".length()) + "Reference";
}
@@ -606,7 +608,7 @@ public class SearchBuilder {
boolean isMeta = BaseHapiFhirDao.RESOURCE_META_PARAMS.containsKey(chain);
RuntimeSearchParam param = null;
if (!isMeta) {
- param = typeDef.getSearchParam(chain);
+ param = myCallingDao.getSearchParamByName(typeDef, chain);
if (param == null) {
ourLog.debug("Type {} doesn't have search param {}", nextType.getSimpleName(), param);
continue;
@@ -1385,7 +1387,7 @@ public class SearchBuilder {
}
private Predicate createResourceLinkPathPredicate(String theParamName, Root extends ResourceLink> from) {
- return createResourceLinkPathPredicate(myContext, theParamName, from, myResourceType);
+ return createResourceLinkPathPredicate(myCallingDao, myContext, theParamName, from, myResourceType);
}
private TypedQuery createSearchAllByTypeQuery(DateRangeParam theLastUpdated) {
@@ -1437,7 +1439,8 @@ public class SearchBuilder {
return;
}
- RuntimeSearchParam param = getSearchParam(theSort.getParamName());
+ RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceName);
+ RuntimeSearchParam param = myCallingDao.getSearchParamByName(resourceDef, theSort.getParamName());
if (param == null) {
throw new InvalidRequestException("Unknown sort parameter '" + theSort.getParamName() + "'");
}
@@ -1503,7 +1506,8 @@ public class SearchBuilder {
private String determineSystemIfMissing(String theParamName, String code, String system) {
if (system == null) {
- RuntimeSearchParam param = getSearchParam(theParamName);
+ RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceName);
+ RuntimeSearchParam param = myCallingDao.getSearchParamByName(resourceDef, theParamName);
if (param != null) {
Set valueSetUris = Sets.newHashSet();
for (String nextPath : param.getPathsSplit()) {
@@ -1612,12 +1616,6 @@ public class SearchBuilder {
doSetPids(resultList);
}
- private RuntimeSearchParam getSearchParam(String theParamName) {
- RuntimeResourceDefinition resourceDef = myContext.getResourceDefinition(myResourceType);
- RuntimeSearchParam param = resourceDef.getSearchParam(theParamName);
- return param;
- }
-
private void loadResourcesByPid(Collection theIncludePids, List theResourceListToPopulate, Set theRevIncludedPids, boolean theForHistoryOperation) {
EntityManager entityManager = myEntityManager;
FhirContext context = myContext;
@@ -2042,8 +2040,9 @@ public class SearchBuilder {
return likeExpression.replace("%", "[%]") + "%";
}
- private static Predicate createResourceLinkPathPredicate(FhirContext theContext, String theParamName, Root extends ResourceLink> from, Class extends IBaseResource> resourceType) {
- RuntimeSearchParam param = theContext.getResourceDefinition(resourceType).getSearchParam(theParamName);
+ private static Predicate createResourceLinkPathPredicate(IDao theCallingDao, FhirContext theContext, String theParamName, Root extends ResourceLink> from, Class extends IBaseResource> resourceType) {
+ RuntimeResourceDefinition resourceDef = theContext.getResourceDefinition(resourceType);
+ RuntimeSearchParam param = theCallingDao.getSearchParamByName(resourceDef, theParamName);
List path = param.getPathsSplit();
Predicate type = from.get("mySourcePath").in(path);
return type;
@@ -2114,7 +2113,7 @@ public class SearchBuilder {
*
* @param theLastUpdated
*/
- public static HashSet loadReverseIncludes(FhirContext theContext, EntityManager theEntityManager, Collection theMatches, Set theRevIncludes, boolean theReverseMode, DateRangeParam theLastUpdated) {
+ public static HashSet loadReverseIncludes(IDao theCallingDao, FhirContext theContext, EntityManager theEntityManager, Collection theMatches, Set theRevIncludes, boolean theReverseMode, DateRangeParam theLastUpdated) {
if (theMatches.size() == 0) {
return new HashSet();
}
@@ -2182,7 +2181,11 @@ public class SearchBuilder {
}
String paramName = nextInclude.getParamName();
- param = isNotBlank(paramName) ? def.getSearchParam(paramName) : null;
+ if (isNotBlank(paramName)) {
+ param = theCallingDao.getSearchParamByName(def, paramName);
+ } else {
+ param = null;
+ }
if (param == null) {
ourLog.warn("Unknown param name in include/revinclude=" + nextInclude.getValue());
continue;
@@ -2283,9 +2286,9 @@ public class SearchBuilder {
Set revIncludedPids = new HashSet();
if (myParams.getEverythingMode() == null) {
- revIncludedPids.addAll(loadReverseIncludes(myContext, myEntityManager, pidsSubList, myParams.getRevIncludes(), true, myParams.getLastUpdated()));
+ revIncludedPids.addAll(loadReverseIncludes(myCallingDao, myContext, myEntityManager, pidsSubList, myParams.getRevIncludes(), true, myParams.getLastUpdated()));
}
- revIncludedPids.addAll(loadReverseIncludes(myContext, myEntityManager, pidsSubList, myParams.getIncludes(), false, myParams.getLastUpdated()));
+ revIncludedPids.addAll(loadReverseIncludes(myCallingDao, myContext, myEntityManager, pidsSubList, myParams.getIncludes(), false, myParams.getLastUpdated()));
// Execute the query and make sure we return distinct results
List resources = new ArrayList();
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3.java
index c333d685e0d..571c5e06c99 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3.java
@@ -92,7 +92,8 @@ public class FhirResourceDaoDstu3 extends BaseHapiFhirRe
values.addAll(theTerser.getAllPopulatedChildElementsOfType(theResource, BaseResourceReferenceDt.class));
} else if (theInclude.getValue().startsWith(theResourceDef.getName() + ":")) {
values = new ArrayList();
- RuntimeSearchParam sp = theResourceDef.getSearchParam(theInclude.getValue().substring(theInclude.getValue().indexOf(':') + 1));
+ String paramName = theInclude.getValue().substring(theInclude.getValue().indexOf(':') + 1);
+ RuntimeSearchParam sp = getSearchParamByName(theResourceDef, paramName);
for (String nextPath : sp.getPathsSplit()) {
values.addAll(theTerser.getValues(theResource, nextPath));
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSubscriptionDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSubscriptionDstu3.java
index 43b8ec3d92b..5bcb0a63416 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSubscriptionDstu3.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSubscriptionDstu3.java
@@ -157,7 +157,7 @@ public class FhirResourceDaoSubscriptionDstu3 extends FhirResourceDaoDstu3 revIncludedPids = new HashSet();
if (mySearchEntity.getSearchType() == SearchTypeEnum.SEARCH) {
- revIncludedPids.addAll(SearchBuilder.loadReverseIncludes(myContext, myEntityManager, pidsSubList, mySearchEntity.toRevIncludesList(), true, mySearchEntity.getLastUpdated()));
+ revIncludedPids.addAll(SearchBuilder.loadReverseIncludes(myDao, myContext, myEntityManager, pidsSubList, mySearchEntity.toRevIncludesList(), true, mySearchEntity.getLastUpdated()));
}
- revIncludedPids.addAll(SearchBuilder.loadReverseIncludes(myContext, myEntityManager, pidsSubList, mySearchEntity.toIncludesList(), false, mySearchEntity.getLastUpdated()));
+ revIncludedPids.addAll(SearchBuilder.loadReverseIncludes(myDao, myContext, myEntityManager, pidsSubList, mySearchEntity.toIncludesList(), false, mySearchEntity.getLastUpdated()));
// Execute the query and make sure we return distinct results
List resources = new ArrayList();
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDaoTest.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDaoTest.java
index c2f3db0c372..5d2fd425e4b 100644
--- a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDaoTest.java
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDaoTest.java
@@ -1,11 +1,16 @@
package ca.uhn.fhir.jpa.dao;
import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import org.junit.AfterClass;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
+import ca.uhn.fhir.context.RuntimeResourceDefinition;
import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
import ca.uhn.fhir.model.dstu2.resource.Condition;
import ca.uhn.fhir.model.dstu2.resource.Observation;
@@ -25,7 +30,12 @@ public class BaseHapiFhirDaoTest extends BaseJpaTest {
@Test
public void testTranslateMatchUrl() {
- SearchParameterMap match = BaseHapiFhirDao.translateMatchUrl(ourCtx, "Condition?patient=304&_lastUpdated=>2011-01-01T11:12:21.0000Z", ourCtx.getResourceDefinition(Condition.class));
+ RuntimeResourceDefinition resourceDef = ourCtx.getResourceDefinition(Condition.class);
+
+ IDao dao = mock(IDao.class);
+ when(dao.getSearchParamByName(any(RuntimeResourceDefinition.class), eq("patient"))).thenReturn(resourceDef.getSearchParam("patient"));
+
+ SearchParameterMap match = BaseHapiFhirDao.translateMatchUrl(dao, ourCtx, "Condition?patient=304&_lastUpdated=>2011-01-01T11:12:21.0000Z", resourceDef);
assertEquals("2011-01-01T11:12:21.0000Z", match.getLastUpdated().getLowerBound().getValueAsString());
assertEquals(ReferenceParam.class, match.get("patient").get(0).get(0).getClass());
assertEquals("304", ((ReferenceParam)match.get("patient").get(0).get(0)).getIdPart());
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java
index f48641a7c5d..2b9b4303e56 100644
--- a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoDstu3SearchCustomParamTest.java
@@ -1,70 +1,23 @@
package ca.uhn.fhir.jpa.dao.dstu3;
import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.containsInRelativeOrder;
import static org.hamcrest.Matchers.empty;
-import static org.hamcrest.Matchers.endsWith;
-import static org.hamcrest.Matchers.hasItem;
-import static org.hamcrest.Matchers.hasItems;
-import static org.hamcrest.Matchers.not;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.mock;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.List;
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.hl7.fhir.dstu3.model.*;
-import org.hl7.fhir.dstu3.model.Bundle.BundleEntryComponent;
-import org.hl7.fhir.dstu3.model.Bundle.BundleType;
-import org.hl7.fhir.dstu3.model.Bundle.HTTPVerb;
-import org.hl7.fhir.dstu3.model.ContactPoint.ContactPointSystem;
import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender;
-import org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType;
-import org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus;
-import org.hl7.fhir.dstu3.model.codesystems.PublicationStatus;
-import org.hl7.fhir.dstu3.model.codesystems.SearchParamType;
-import org.hl7.fhir.instance.model.SearchParameter.XPathUsageType;
-import org.hl7.fhir.instance.model.api.IAnyResource;
-import org.hl7.fhir.instance.model.api.IBaseResource;
+import org.hl7.fhir.dstu3.model.Patient;
+import org.hl7.fhir.dstu3.model.SearchParameter;
import org.hl7.fhir.instance.model.api.IIdType;
-import org.hl7.fhir.instance.model.api.IPrimitiveType;
-import org.junit.After;
import org.junit.AfterClass;
-import org.junit.Ignore;
import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.TransactionStatus;
-import org.springframework.transaction.support.TransactionCallback;
-import org.springframework.transaction.support.TransactionTemplate;
-import ca.uhn.fhir.jpa.dao.BaseHapiFhirDao;
-import ca.uhn.fhir.jpa.dao.DaoConfig;
import ca.uhn.fhir.jpa.dao.SearchParameterMap;
-import ca.uhn.fhir.jpa.dao.SearchParameterMap.EverythingModeEnum;
-import ca.uhn.fhir.jpa.entity.*;
-import ca.uhn.fhir.jpa.search.StaleSearchDeletingSvc;
-import ca.uhn.fhir.model.api.IQueryParameterType;
-import ca.uhn.fhir.model.api.Include;
-import ca.uhn.fhir.model.dstu.valueset.QuantityCompararatorEnum;
-import ca.uhn.fhir.rest.api.SortOrderEnum;
-import ca.uhn.fhir.rest.api.SortSpec;
-import ca.uhn.fhir.rest.param.*;
-import ca.uhn.fhir.rest.server.Constants;
+import ca.uhn.fhir.rest.param.TokenParam;
import ca.uhn.fhir.rest.server.IBundleProvider;
-import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
import ca.uhn.fhir.util.TestUtil;
-@SuppressWarnings("unchecked")
public class FhirResourceDaoDstu3SearchCustomParamTest extends BaseJpaDstu3Test {
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirResourceDaoDstu3SearchCustomParamTest.class);
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
index 90c479fa782..4494fc86423 100644
--- a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
@@ -1,24 +1,34 @@
package ca.uhn.fhir.jpa.provider.dstu3;
+import static org.hamcrest.Matchers.contains;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.io.IOException;
+import java.util.List;
+import org.hl7.fhir.dstu3.model.Bundle;
+import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender;
+import org.hl7.fhir.dstu3.model.Observation;
+import org.hl7.fhir.dstu3.model.Patient;
import org.hl7.fhir.dstu3.model.SearchParameter;
import org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType;
+import org.hl7.fhir.instance.model.api.IIdType;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Test;
import ca.uhn.fhir.jpa.dao.DaoConfig;
+import ca.uhn.fhir.jpa.dao.SearchParameterMap;
+import ca.uhn.fhir.rest.gclient.ReferenceClientParam;
+import ca.uhn.fhir.rest.gclient.TokenClientParam;
+import ca.uhn.fhir.rest.server.IBundleProvider;
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
import ca.uhn.fhir.util.TestUtil;
public class ResourceProviderCustomSearchParamDstu3Test extends BaseResourceProviderDstu3Test {
- private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ResourceProviderCustomSearchParamDstu3Test.class);
-
@Override
@After
public void after() throws Exception {
@@ -44,10 +54,92 @@ public class ResourceProviderCustomSearchParamDstu3Test extends BaseResourceProv
ourClient.create().resource(sp).execute();
fail();
} catch (InvalidRequestException e) {
- assertEquals("", e.getMessage());
+ assertEquals("HTTP 400 Bad Request: Resource.status is missing or invalid: null", e.getMessage());
}
}
+ @SuppressWarnings("unused")
+ @Test
+ public void testSearchWithCustomParam() {
+
+ SearchParameter fooSp = new SearchParameter();
+ fooSp.setCode("foo");
+ fooSp.setType(org.hl7.fhir.dstu3.model.Enumerations.SearchParamType.TOKEN);
+ fooSp.setTitle("FOO SP");
+ fooSp.setXpath("Patient.gender");
+ fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
+ fooSp.setStatus(org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus.ACTIVE);
+ mySearchParameterDao.create(fooSp, mySrd);
+
+ mySearchParamRegsitry.forceRefresh();
+
+ Patient pat = new Patient();
+ pat.setGender(AdministrativeGender.MALE);
+ IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
+
+ Patient pat2 = new Patient();
+ pat.setGender(AdministrativeGender.FEMALE);
+ IIdType patId2 = myPatientDao.create(pat2, mySrd).getId().toUnqualifiedVersionless();
+
+ SearchParameterMap map;
+ IBundleProvider results;
+ List foundResources;
+ Bundle result;
+
+ result = ourClient
+ .search()
+ .forResource(Patient.class)
+ .where(new TokenClientParam("foo").exactly().code("male"))
+ .returnBundle(Bundle.class)
+ .execute();
+ foundResources = toUnqualifiedVersionlessIdValues(result);
+ assertThat(foundResources, contains(patId.getValue()));
+
+ }
+
+ @SuppressWarnings("unused")
+ @Test
+ public void testSearchQualifiedWithCustomReferenceParam() {
+
+ SearchParameter fooSp = new SearchParameter();
+ fooSp.setCode("foo");
+ fooSp.setType(org.hl7.fhir.dstu3.model.Enumerations.SearchParamType.REFERENCE);
+ fooSp.setTitle("FOO SP");
+ fooSp.setXpath("Observation.subject");
+ fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
+ fooSp.setStatus(org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus.ACTIVE);
+ mySearchParameterDao.create(fooSp, mySrd);
+
+ mySearchParamRegsitry.forceRefresh();
+
+ Patient pat = new Patient();
+ pat.setGender(AdministrativeGender.MALE);
+ IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
+
+ Observation obs1 = new Observation();
+ obs1.getSubject().setReferenceElement(patId);
+ IIdType obsId1 = myObservationDao.create(obs1, mySrd).getId().toUnqualifiedVersionless();
+
+ Observation obs2 = new Observation();
+ obs2.setStatus(org.hl7.fhir.dstu3.model.Observation.ObservationStatus.FINAL);
+ IIdType obsId2 = myObservationDao.create(obs2, mySrd).getId().toUnqualifiedVersionless();
+
+ SearchParameterMap map;
+ IBundleProvider results;
+ List foundResources;
+ Bundle result;
+
+ result = ourClient
+ .search()
+ .forResource(Observation.class)
+ .where(new ReferenceClientParam("foo").hasChainedProperty(Patient.GENDER.exactly().code("male")))
+ .returnBundle(Bundle.class)
+ .execute();
+ foundResources = toUnqualifiedVersionlessIdValues(result);
+ assertThat(foundResources, contains(obsId1.getValue()));
+
+ }
+
@AfterClass
public static void afterClassClearContext() {
TestUtil.clearAllStaticFieldsForUnitTest();
diff --git a/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm b/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm
index df8987b6bf5..58abd420a19 100644
--- a/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm
+++ b/hapi-tinder-plugin/src/main/resources/vm/jpa_resource_provider.vm
@@ -39,7 +39,7 @@ public class ${className}ResourceProvider extends
return ${className}.class;
}
- @Search()
+ @Search(allowUnknownParams=true)
public ca.uhn.fhir.rest.server.IBundleProvider search(
javax.servlet.http.HttpServletRequest theServletRequest,
@@ -154,6 +154,8 @@ public class ${className}ResourceProvider extends
paramMap.setCount(theCount);
paramMap.setRequestDetails(theRequestDetails);
+ getDao().translateRawParameters(theAdditionalRawParams, paramMap);
+
ca.uhn.fhir.rest.server.IBundleProvider retVal = getDao().search(paramMap);
return retVal;
} finally {
From aa5588826e1b8d1a1688b9ee43a17f43b027bf3d Mon Sep 17 00:00:00 2001
From: James Agnew
Date: Thu, 2 Feb 2017 22:31:34 -0500
Subject: [PATCH 23/31] Work on custom search params
---
.../ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java | 80 +--------
.../fhir/jpa/dao/BaseHapiFhirResourceDao.java | 4 +-
.../jpa/dao/BaseSearchParamExtractor.java | 2 +-
.../fhir/jpa/dao/data/IResourceTableDao.java | 11 +-
.../FhirResourceDaoSearchParameterDstu3.java | 82 +++++++--
.../ca/uhn/fhir/jpa/entity/ResourceTable.java | 1 +
...eDaoDstu3SearchCustomSearchParamTest.java} | 158 +++++++++++-------
7 files changed, 194 insertions(+), 144 deletions(-)
rename hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/dstu3/{FhirResourceDaoDstu3SearchCustomParamTest.java => FhirResourceDaoDstu3SearchCustomSearchParamTest.java} (53%)
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java
index 624d8feacd4..f9d43602500 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java
@@ -25,24 +25,9 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.io.UnsupportedEncodingException;
import java.text.Normalizer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
+import java.util.*;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.PersistenceContextType;
-import javax.persistence.Tuple;
-import javax.persistence.TypedQuery;
+import javax.persistence.*;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
@@ -58,64 +43,22 @@ import org.apache.http.client.utils.URLEncodedUtils;
import org.hl7.fhir.dstu3.model.Bundle.HTTPVerb;
import org.hl7.fhir.dstu3.model.IdType;
import org.hl7.fhir.dstu3.model.StringType;
-import org.hl7.fhir.instance.model.api.IAnyResource;
-import org.hl7.fhir.instance.model.api.IBase;
-import org.hl7.fhir.instance.model.api.IBaseBundle;
-import org.hl7.fhir.instance.model.api.IBaseCoding;
-import org.hl7.fhir.instance.model.api.IBaseOperationOutcome;
-import org.hl7.fhir.instance.model.api.IBaseReference;
-import org.hl7.fhir.instance.model.api.IBaseResource;
-import org.hl7.fhir.instance.model.api.IDomainResource;
-import org.hl7.fhir.instance.model.api.IIdType;
-import org.hl7.fhir.instance.model.api.IPrimitiveType;
+import org.hl7.fhir.instance.model.api.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.PlatformTransactionManager;
import com.google.common.base.Charsets;
import com.google.common.collect.ArrayListMultimap;
-import ca.uhn.fhir.context.BaseRuntimeChildDefinition;
-import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition;
-import ca.uhn.fhir.context.BaseRuntimeElementDefinition;
-import ca.uhn.fhir.context.ConfigurationException;
-import ca.uhn.fhir.context.FhirContext;
-import ca.uhn.fhir.context.FhirVersionEnum;
-import ca.uhn.fhir.context.RuntimeChildResourceDefinition;
-import ca.uhn.fhir.context.RuntimeResourceDefinition;
-import ca.uhn.fhir.context.RuntimeSearchParam;
+import ca.uhn.fhir.context.*;
import ca.uhn.fhir.jpa.dao.data.IForcedIdDao;
import ca.uhn.fhir.jpa.dao.data.IResourceHistoryTableDao;
import ca.uhn.fhir.jpa.dao.data.ISearchDao;
import ca.uhn.fhir.jpa.dao.data.ISearchResultDao;
-import ca.uhn.fhir.jpa.entity.BaseHasResource;
-import ca.uhn.fhir.jpa.entity.BaseResourceIndexedSearchParam;
-import ca.uhn.fhir.jpa.entity.BaseTag;
-import ca.uhn.fhir.jpa.entity.ForcedId;
-import ca.uhn.fhir.jpa.entity.ResourceEncodingEnum;
-import ca.uhn.fhir.jpa.entity.ResourceHistoryTable;
-import ca.uhn.fhir.jpa.entity.ResourceHistoryTag;
-import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamCoords;
-import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamDate;
-import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamNumber;
-import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamQuantity;
-import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamString;
-import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamToken;
-import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamUri;
-import ca.uhn.fhir.jpa.entity.ResourceLink;
-import ca.uhn.fhir.jpa.entity.ResourceTable;
-import ca.uhn.fhir.jpa.entity.ResourceTag;
-import ca.uhn.fhir.jpa.entity.Search;
-import ca.uhn.fhir.jpa.entity.SearchTypeEnum;
-import ca.uhn.fhir.jpa.entity.TagDefinition;
-import ca.uhn.fhir.jpa.entity.TagTypeEnum;
+import ca.uhn.fhir.jpa.entity.*;
import ca.uhn.fhir.jpa.search.PersistedJpaBundleProvider;
import ca.uhn.fhir.jpa.util.DeleteConflict;
-import ca.uhn.fhir.model.api.IQueryParameterAnd;
-import ca.uhn.fhir.model.api.IQueryParameterType;
-import ca.uhn.fhir.model.api.IResource;
-import ca.uhn.fhir.model.api.ResourceMetadataKeyEnum;
-import ca.uhn.fhir.model.api.Tag;
-import ca.uhn.fhir.model.api.TagList;
+import ca.uhn.fhir.model.api.*;
import ca.uhn.fhir.model.base.composite.BaseCodingDt;
import ca.uhn.fhir.model.base.composite.BaseResourceReferenceDt;
import ca.uhn.fhir.model.dstu.resource.BaseResource;
@@ -133,12 +76,7 @@ import ca.uhn.fhir.rest.method.RestSearchParameterTypeEnum;
import ca.uhn.fhir.rest.param.*;
import ca.uhn.fhir.rest.server.Constants;
import ca.uhn.fhir.rest.server.IBundleProvider;
-import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
-import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
-import ca.uhn.fhir.rest.server.exceptions.PreconditionFailedException;
-import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
-import ca.uhn.fhir.rest.server.exceptions.ResourceVersionConflictException;
-import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
+import ca.uhn.fhir.rest.server.exceptions.*;
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor.ActionRequestDetails;
import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails;
@@ -917,7 +855,7 @@ public abstract class BaseHapiFhirDao implements IDao {
}
/**
- * Subclasses may override to provide behaviour. Called when a resource has been inserved into the database for the first time.
+ * Subclasses may override to provide behaviour. Called when a resource has been inserted into the database for the first time.
*
* @param theEntity
* The entity being updated (Do not modify the entity! Undefined behaviour will occur!)
@@ -931,7 +869,7 @@ public abstract class BaseHapiFhirDao implements IDao {
}
/**
- * Subclasses may override to provide behaviour. Called when a resource has been inserved into the database for the first time.
+ * Subclasses may override to provide behaviour. Called when a pre-existing resource has been updated in the database
*
* @param theEntity
* The resource
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
index ff906ce03ca..63e74ffcd5c 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
@@ -57,6 +57,7 @@ import ca.uhn.fhir.context.RuntimeResourceDefinition;
import ca.uhn.fhir.context.RuntimeSearchParam;
import ca.uhn.fhir.jpa.dao.data.IResourceHistoryTableDao;
import ca.uhn.fhir.jpa.dao.data.IResourceIndexedSearchParamUriDao;
+import ca.uhn.fhir.jpa.dao.data.IResourceTableDao;
import ca.uhn.fhir.jpa.dao.data.ISearchResultDao;
import ca.uhn.fhir.jpa.entity.BaseHasResource;
import ca.uhn.fhir.jpa.entity.BaseTag;
@@ -108,7 +109,8 @@ public abstract class BaseHapiFhirResourceDao extends B
@Autowired
private DaoConfig myDaoConfig;
-
+ @Autowired
+ protected IResourceTableDao myResourceTableDao;
@Autowired
protected PlatformTransactionManager myPlatformTransactionManager;
@Autowired
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java
index 61e825139e8..3ff1ce576e4 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamExtractor.java
@@ -40,7 +40,7 @@ import ca.uhn.fhir.util.FhirTerser;
public abstract class BaseSearchParamExtractor implements ISearchParamExtractor {
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(BaseSearchParamExtractor.class);
- protected static final Pattern SPLIT = Pattern.compile("\\||( or )");
+ public static final Pattern SPLIT = Pattern.compile("\\||( or )");
@Autowired
private FhirContext myContext;
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/data/IResourceTableDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/data/IResourceTableDao.java
index a2fa17bb566..ee21079fe49 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/data/IResourceTableDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/data/IResourceTableDao.java
@@ -10,7 +10,7 @@ package ca.uhn.fhir.jpa.dao.data;
* 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
+ * 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,
@@ -21,9 +21,16 @@ package ca.uhn.fhir.jpa.dao.data;
*/
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
import ca.uhn.fhir.jpa.entity.ResourceTable;
public interface IResourceTableDao extends JpaRepository {
- // nothing yet
+
+ @Modifying
+ @Query("UPDATE ResourceTable r SET r.myIndexStatus = null WHERE r.myResourceType = :restype")
+ int markResourcesOfTypeAsRequiringReindexing(@Param("restype") String theResourceType);
+
}
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java
index b7ac869fbf9..82fea85443d 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/dstu3/FhirResourceDaoSearchParameterDstu3.java
@@ -1,5 +1,7 @@
package ca.uhn.fhir.jpa.dao.dstu3;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+
/*
* #%L
* HAPI FHIR JPA Server
@@ -10,7 +12,7 @@ package ca.uhn.fhir.jpa.dao.dstu3;
* 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
+ * 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,
@@ -27,23 +29,27 @@ import org.hl7.fhir.dstu3.model.SearchParameter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
+import ca.uhn.fhir.jpa.dao.BaseSearchParamExtractor;
import ca.uhn.fhir.jpa.dao.IFhirResourceDaoSearchParameter;
import ca.uhn.fhir.jpa.dao.IFhirSystemDao;
import ca.uhn.fhir.jpa.entity.ResourceTable;
+import ca.uhn.fhir.parser.DataFormatException;
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
+import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
-public class FhirResourceDaoSearchParameterDstu3 extends FhirResourceDaoDstu3implements IFhirResourceDaoSearchParameter {
+public class FhirResourceDaoSearchParameterDstu3 extends FhirResourceDaoDstu3 implements IFhirResourceDaoSearchParameter {
+
+ private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirResourceDaoSearchParameterDstu3.class);
@Autowired
private IFhirSystemDao mySystemDao;
-
- @Override
- protected void validateResourceForStorage(SearchParameter theResource, ResourceTable theEntityToSave) {
- super.validateResourceForStorage(theResource, theEntityToSave);
-
- if (theResource.getStatus() == null) {
- throw new InvalidRequestException("Resource.status is missing or invalid: " + theResource.getStatusElement().getValueAsString());
- }
+
+ private void markAffectedResources(SearchParameter theResource) {
+ String xpath = theResource.getXpath();
+ String resourceType = xpath.substring(0, xpath.indexOf('.'));
+ ourLog.info("Marking all resources of type {} for reindexing due to updated search parameter with path: {}", xpath);
+ int updatedCount = myResourceTableDao.markResourcesOfTypeAsRequiringReindexing(resourceType);
+ ourLog.info("Marked {} resources for reindexing", updatedCount);
}
/**
@@ -53,7 +59,7 @@ public class FhirResourceDaoSearchParameterDstu3 extends FhirResourceDaoDstu3 foundResources;
-
- //Try with custom gender SP
+
+ // Try with custom gender SP
map = new SearchParameterMap();
map.add("foo", new TokenParam(null, "male"));
results = myPatientDao.search(map);
foundResources = toUnqualifiedVersionlessIdValues(results);
assertThat(foundResources, contains(patId.getValue()));
- //Try with normal gender SP
+ // Try with normal gender SP
map = new SearchParameterMap();
map.add("gender", new TokenParam(null, "male"));
results = myPatientDao.search(map);
foundResources = toUnqualifiedVersionlessIdValues(results);
assertThat(foundResources, contains(patId.getValue()));
-
+
}
@Test
@@ -74,9 +163,9 @@ public class FhirResourceDaoDstu3SearchCustomParamTest extends BaseJpaDstu3Test
fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
fooSp.setStatus(org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus.DRAFT);
mySearchParameterDao.create(fooSp, mySrd);
-
+
mySearchParamRegsitry.forceRefresh();
-
+
Patient pat = new Patient();
pat.setGender(AdministrativeGender.MALE);
IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
@@ -88,63 +177,21 @@ public class FhirResourceDaoDstu3SearchCustomParamTest extends BaseJpaDstu3Test
SearchParameterMap map;
IBundleProvider results;
List foundResources;
-
- //Try with custom gender SP (should find nothing)
+
+ // Try with custom gender SP (should find nothing)
map = new SearchParameterMap();
map.add("foo", new TokenParam(null, "male"));
results = myPatientDao.search(map);
foundResources = toUnqualifiedVersionlessIdValues(results);
assertThat(foundResources, empty());
- //Try with normal gender SP
+ // Try with normal gender SP
map = new SearchParameterMap();
map.add("gender", new TokenParam(null, "male"));
results = myPatientDao.search(map);
foundResources = toUnqualifiedVersionlessIdValues(results);
assertThat(foundResources, contains(patId.getValue()));
-
- }
-
- @Test
- public void testSearchWithCustomParamNullStatus() {
- SearchParameter fooSp = new SearchParameter();
- fooSp.setCode("foo");
- fooSp.setType(org.hl7.fhir.dstu3.model.Enumerations.SearchParamType.TOKEN);
- fooSp.setTitle("FOO SP");
- fooSp.setXpath("Patient.gender");
- fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
- fooSp.setStatus(null);
- mySearchParameterDao.create(fooSp, mySrd);
-
- mySearchParamRegsitry.forceRefresh();
-
- Patient pat = new Patient();
- pat.setGender(AdministrativeGender.MALE);
- IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
-
- Patient pat2 = new Patient();
- pat.setGender(AdministrativeGender.FEMALE);
- IIdType patId2 = myPatientDao.create(pat2, mySrd).getId().toUnqualifiedVersionless();
-
- SearchParameterMap map;
- IBundleProvider results;
- List foundResources;
-
- //Try with custom gender SP (should find nothing)
- map = new SearchParameterMap();
- map.add("foo", new TokenParam(null, "male"));
- results = myPatientDao.search(map);
- foundResources = toUnqualifiedVersionlessIdValues(results);
- assertThat(foundResources, empty());
-
- //Try with normal gender SP
- map = new SearchParameterMap();
- map.add("gender", new TokenParam(null, "male"));
- results = myPatientDao.search(map);
- foundResources = toUnqualifiedVersionlessIdValues(results);
- assertThat(foundResources, contains(patId.getValue()));
-
}
@AfterClass
@@ -152,5 +199,4 @@ public class FhirResourceDaoDstu3SearchCustomParamTest extends BaseJpaDstu3Test
TestUtil.clearAllStaticFieldsForUnitTest();
}
-
}
From 12dc4d1c1162d48b3784fb07ebdc349a6eaf5f31 Mon Sep 17 00:00:00 2001
From: James
Date: Sat, 4 Feb 2017 07:14:21 -0500
Subject: [PATCH 24/31] Work on custom params
---
hapi-fhir-base-test-mindeps-client/.classpath | 23 ++++++-----
hapi-fhir-base-test-mindeps-client/.project | 12 +++++-
.../fhir/jpa/dao/BaseHapiFhirResourceDao.java | 4 ++
...rceProviderCustomSearchParamDstu3Test.java | 38 ++++++++++++++++++-
4 files changed, 65 insertions(+), 12 deletions(-)
diff --git a/hapi-fhir-base-test-mindeps-client/.classpath b/hapi-fhir-base-test-mindeps-client/.classpath
index d1d9fe67b77..9d7b3cb8dc2 100644
--- a/hapi-fhir-base-test-mindeps-client/.classpath
+++ b/hapi-fhir-base-test-mindeps-client/.classpath
@@ -1,16 +1,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
diff --git a/hapi-fhir-base-test-mindeps-client/.project b/hapi-fhir-base-test-mindeps-client/.project
index 9cf5c48e336..096c7c04956 100644
--- a/hapi-fhir-base-test-mindeps-client/.project
+++ b/hapi-fhir-base-test-mindeps-client/.project
@@ -1,7 +1,7 @@
- hapi-fhir-base-testmindeps-client
-
+ hapi-fhir-base-test-mindeps-client
+ NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
@@ -10,6 +10,11 @@
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
org.eclipse.m2e.core.maven2Builder
@@ -17,7 +22,10 @@
+ org.eclipse.jem.workbench.JavaEMFNature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
org.eclipse.m2e.core.maven2Nature
+ org.eclipse.jdt.core.javanature
org.eclipse.wst.common.project.facet.core.nature
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
index 63e74ffcd5c..337e0ad8321 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseHapiFhirResourceDao.java
@@ -1051,6 +1051,10 @@ public abstract class BaseHapiFhirResourceDao extends B
@Override
public void translateRawParameters(Map> theSource, SearchParameterMap theTarget) {
+ if (theSource == null || theSource.isEmpty()) {
+ return;
+ }
+
Map searchParams = mySerarchParamRegistry.getActiveSearchParams(getResourceName());
Set paramNames = theSource.keySet();
diff --git a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
index 4494fc86423..695af8eda4a 100644
--- a/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
+++ b/hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/dstu3/ResourceProviderCustomSearchParamDstu3Test.java
@@ -11,6 +11,7 @@ import java.util.List;
import org.hl7.fhir.dstu3.model.Bundle;
import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender;
import org.hl7.fhir.dstu3.model.Observation;
+import org.hl7.fhir.dstu3.model.Observation.ObservationStatus;
import org.hl7.fhir.dstu3.model.Patient;
import org.hl7.fhir.dstu3.model.SearchParameter;
import org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType;
@@ -19,8 +20,10 @@ import org.junit.After;
import org.junit.AfterClass;
import org.junit.Test;
+import ca.uhn.fhir.jpa.dao.BaseHapiFhirDao;
import ca.uhn.fhir.jpa.dao.DaoConfig;
import ca.uhn.fhir.jpa.dao.SearchParameterMap;
+import ca.uhn.fhir.jpa.entity.ResourceTable;
import ca.uhn.fhir.rest.gclient.ReferenceClientParam;
import ca.uhn.fhir.rest.gclient.TokenClientParam;
import ca.uhn.fhir.rest.server.IBundleProvider;
@@ -78,7 +81,7 @@ public class ResourceProviderCustomSearchParamDstu3Test extends BaseResourceProv
IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
Patient pat2 = new Patient();
- pat.setGender(AdministrativeGender.FEMALE);
+ pat2.setGender(AdministrativeGender.FEMALE);
IIdType patId2 = myPatientDao.create(pat2, mySrd).getId().toUnqualifiedVersionless();
SearchParameterMap map;
@@ -97,6 +100,39 @@ public class ResourceProviderCustomSearchParamDstu3Test extends BaseResourceProv
}
+
+ @Test
+ public void testCreatingParamMarksCorrectResourcesForReindexing() {
+ Patient pat = new Patient();
+ pat.setGender(AdministrativeGender.MALE);
+ IIdType patId = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
+
+ Observation obs2 = new Observation();
+ obs2.setStatus(ObservationStatus.FINAL);
+ IIdType obsId = myObservationDao.create(obs2, mySrd).getId().toUnqualifiedVersionless();
+
+ ResourceTable res = myResourceTableDao.findOne(patId.getIdPartAsLong());
+ assertEquals(BaseHapiFhirDao.INDEX_STATUS_INDEXED, res.getIndexStatus().longValue());
+ res = myResourceTableDao.findOne(obsId.getIdPartAsLong());
+ assertEquals(BaseHapiFhirDao.INDEX_STATUS_INDEXED, res.getIndexStatus().longValue());
+
+ SearchParameter fooSp = new SearchParameter();
+ fooSp.setCode("foo");
+ fooSp.setType(org.hl7.fhir.dstu3.model.Enumerations.SearchParamType.TOKEN);
+ fooSp.setTitle("FOO SP");
+ fooSp.setXpath("Patient.gender");
+ fooSp.setXpathUsage(org.hl7.fhir.dstu3.model.SearchParameter.XPathUsageType.NORMAL);
+ fooSp.setStatus(org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus.ACTIVE);
+ mySearchParameterDao.create(fooSp, mySrd);
+
+ res = myResourceTableDao.findOne(patId.getIdPartAsLong());
+ assertEquals(null, res.getIndexStatus());
+ res = myResourceTableDao.findOne(obsId.getIdPartAsLong());
+ assertEquals(BaseHapiFhirDao.INDEX_STATUS_INDEXED, res.getIndexStatus().longValue());
+
+ }
+
+
@SuppressWarnings("unused")
@Test
public void testSearchQualifiedWithCustomReferenceParam() {
From c85c2269a190bcd243b45d1e963266e755b18557 Mon Sep 17 00:00:00 2001
From: James Agnew
Date: Sat, 4 Feb 2017 14:41:11 -0500
Subject: [PATCH 25/31] Work on custom params
---
.../ca/uhn/fhir/context/ModelScanner.java | 2 +-
.../uhn/fhir/context/RuntimeSearchParam.java | 19 +++++-
.../fhir/jpa/dao/BaseSearchParamRegistry.java | 12 ++++
.../fhir/jpa/dao/ISearchParamRegistry.java | 3 +
.../dstu3/JpaConformanceProviderDstu3.java | 59 ++++++++++++++----
.../dstu3/SearchParamExtractorDstu3Test.java | 6 ++
...rceProviderCustomSearchParamDstu3Test.java | 60 +++++++++++++++++--
.../fhir/rest/server/ValidateDstu2_1Test.java | 5 +-
8 files changed, 145 insertions(+), 21 deletions(-)
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java
index 96a418a7c95..e1d96461213 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java
@@ -458,7 +458,7 @@ class ModelScanner {
compositeOf.add(param);
}
- RuntimeSearchParam param = new RuntimeSearchParam(searchParam.name(), searchParam.description(), searchParam.path(), RestSearchParameterTypeEnum.COMPOSITE, compositeOf, null, toTargetList(searchParam.target()), RuntimeSearchParamStatusEnum.ACTIVE);
+ RuntimeSearchParam param = new RuntimeSearchParam(null, null, searchParam.name(), searchParam.description(), searchParam.path(), RestSearchParameterTypeEnum.COMPOSITE, compositeOf, null, toTargetList(searchParam.target()), RuntimeSearchParamStatusEnum.ACTIVE);
theResourceDef.addSearchParam(param);
}
}
diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java
index 7851ef55d6b..28c7377674a 100644
--- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java
+++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeSearchParam.java
@@ -6,6 +6,8 @@ import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
+import org.hl7.fhir.instance.model.api.IIdType;
+
import ca.uhn.fhir.rest.method.RestSearchParameterTypeEnum;
/*
@@ -29,7 +31,7 @@ import ca.uhn.fhir.rest.method.RestSearchParameterTypeEnum;
*/
public class RuntimeSearchParam {
-
+ private final IIdType myId;
private final List myCompositeOf;
private final String myDescription;
private final String myName;
@@ -38,10 +40,21 @@ public class RuntimeSearchParam {
private final Set myTargets;
private final Set myProvidesMembershipInCompartments;
private final RuntimeSearchParamStatusEnum myStatus;
+ private final String myUri;
- public RuntimeSearchParam(String theName, String theDescription, String thePath, RestSearchParameterTypeEnum theParamType, List theCompositeOf,
+ public IIdType getId() {
+ return myId;
+ }
+
+ public String getUri() {
+ return myUri;
+ }
+
+ public RuntimeSearchParam(IIdType theId, String theUri, String theName, String theDescription, String thePath, RestSearchParameterTypeEnum theParamType, List theCompositeOf,
Set theProvidesMembershipInCompartments, Set theTargets, RuntimeSearchParamStatusEnum theStatus) {
super();
+ myId = theId;
+ myUri = theUri;
myName = theName;
myDescription = theDescription;
myPath = thePath;
@@ -69,7 +82,7 @@ public class RuntimeSearchParam {
}
public RuntimeSearchParam(String theName, String theDescription, String thePath, RestSearchParameterTypeEnum theParamType, Set theProvidesMembershipInCompartments, Set theTargets, RuntimeSearchParamStatusEnum theStatus) {
- this(theName, theDescription, thePath, theParamType, null, theProvidesMembershipInCompartments, theTargets, theStatus);
+ this(null, null, theName, theDescription, thePath, theParamType, null, theProvidesMembershipInCompartments, theTargets, theStatus);
}
public List getCompositeOf() {
diff --git a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java
index 721b129e596..97c6c52cd86 100644
--- a/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java
+++ b/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/BaseSearchParamRegistry.java
@@ -7,6 +7,7 @@ import java.util.Map;
import javax.annotation.PostConstruct;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.Validate;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +17,8 @@ import ca.uhn.fhir.context.RuntimeSearchParam;
public abstract class BaseSearchParamRegistry implements ISearchParamRegistry {
+ private static final Map