docs: @PostConstruct
  	protected synchronized void setUpPostConstruct() {
  		if (myInitialized) {
  			return;
  		}
  
  		for (Entry<Class<? extends IResourceProvider>, IResourceProvider> provider : getProviders().entrySet()) {
  			addProvider(provider.getValue(), provider.getKey());
  		}
  		List<BaseMethodBinding<?>> serverBindings = new ArrayList<BaseMethodBinding<?>>();
  		for (ResourceBinding baseMethodBinding : myResourceNameToBinding.values()) {
  			serverBindings.addAll(baseMethodBinding.getMethodBindings());
  		}
  		serverConfiguration.setServerBindings(serverBindings);
  		serverConfiguration.setResourceBindings(new LinkedList<ResourceBinding>(myResourceNameToBinding.values()));
  		HardcodedServerAddressStrategy hardcodedServerAddressStrategy = new HardcodedServerAddressStrategy();
  		hardcodedServerAddressStrategy.setValue(getBaseForServer());
  		serverConfiguration.setServerAddressStrategy(hardcodedServerAddressStrategy);
  		FhirVersionEnum fhirContextVersion = super.getFhirContext().getVersion().getVersion();
  		switch (fhirContextVersion) {
  			case R4:
  				org.hl7.fhir.r4.hapi.rest.server.ServerCapabilityStatementProvider r4ServerCapabilityStatementProvider = new org.hl7.fhir.r4.hapi.rest.server.ServerCapabilityStatementProvider(serverConfiguration);
  				r4ServerCapabilityStatementProvider.initializeOperations();
  				myR4CapabilityStatement = r4ServerCapabilityStatementProvider.getServerConformance(null);
  				break;
  			case DSTU3:
  				org.hl7.fhir.dstu3.hapi.rest.server.ServerCapabilityStatementProvider dstu3ServerCapabilityStatementProvider = new org.hl7.fhir.dstu3.hapi.rest.server.ServerCapabilityStatementProvider(serverConfiguration);
  				dstu3ServerCapabilityStatementProvider.initializeOperations();
  				myDstu3CapabilityStatement = dstu3ServerCapabilityStatementProvider.getServerConformance(null);
  				break;
  			case DSTU2_1:
  				org.hl7.fhir.dstu2016may.hapi.rest.server.ServerConformanceProvider dstu2_1ServerConformanceProvider = new org.hl7.fhir.dstu2016may.hapi.rest.server.ServerConformanceProvider(serverConfiguration);
  				dstu2_1ServerConformanceProvider.initializeOperations();
  				myDstu2_1Conformance = dstu2_1ServerConformanceProvider.getServerConformance(null);
  				break;
  			case DSTU2_HL7ORG:
  				org.hl7.fhir.instance.conf.ServerConformanceProvider dstu2Hl7OrgServerConformanceProvider = new org.hl7.fhir.instance.conf.ServerConformanceProvider(serverConfiguration);
  				dstu2Hl7OrgServerConformanceProvider.initializeOperations();
  				myDstu2Hl7OrgConformance = dstu2Hl7OrgServerConformanceProvider.getServerConformance(null);
  				break;
  			case DSTU2:
  				ca.uhn.fhir.rest.server.provider.dstu2.ServerConformanceProvider dstu2ServerConformanceProvider = new ca.uhn.fhir.rest.server.provider.dstu2.ServerConformanceProvider(serverConfiguration);
  				dstu2ServerConformanceProvider.initializeOperations();
  				myDstu2Conformance = dstu2ServerConformanceProvider.getServerConformance(null);
  				break;
  			default:
  				throw new ConfigurationException("Unsupported Fhir version: " + fhirContextVersion);
  		}
  
  		myInitialized = true;
  	}