docs: @Override
  	public final void init() throws ServletException {
  		myProviderRegistrationMutex.lock();
  		try {
  			initialize();
  
  			Object confProvider;
  			try {
  				ourLog.info("Initializing HAPI FHIR restful server running in " + getFhirContext().getVersion().getVersion().name() + " mode");
  
  				ProvidedResourceScanner providedResourceScanner = new ProvidedResourceScanner(getFhirContext());
  				providedResourceScanner.scanForProvidedResources(this);
  
  				Collection<IResourceProvider> resourceProvider = getResourceProviders();
  				// 'true' tells registerProviders() that
  				// this call is part of initialization
  				registerProviders(resourceProvider, true);
  
  				Collection<Object> providers = getPlainProviders();
  				// 'true' tells registerProviders() that
  				// this call is part of initialization
  				registerProviders(providers, true);
  
  				findResourceMethods(getServerProfilesProvider());
  
  				confProvider = getServerConformanceProvider();
  				if (confProvider == null) {
  					IFhirVersionServer versionServer = (IFhirVersionServer) getFhirContext().getVersion().getServerVersion();
  					confProvider = versionServer.createServerConformanceProvider(this);
  				}
  				// findSystemMethods(confProvider);
  				findResourceMethods(confProvider);
  
  				ourLog.trace("Invoking provider initialize methods");
  				if (getResourceProviders() != null) {
  					for (IResourceProvider iResourceProvider : getResourceProviders()) {
  						invokeInitialize(iResourceProvider);
  					}
  				}
  
  				invokeInitialize(confProvider);
  				if (getPlainProviders() != null) {
  					for (Object next : getPlainProviders()) {
  						invokeInitialize(next);
  					}
  				}
  
  				/*
  				 * This is a bit odd, but we have a placeholder @GetPage method for now
  				 * that gets the server to bind for the paging request. At some point
  				 * it would be nice to set things up so that client code could provide
  				 * an alternate implementation, but this isn't currently possible..
  				 */
  				findResourceMethods(new PageProvider());
  
  			} catch (Exception ex) {
  				ourLog.error("An error occurred while loading request handlers!", ex);
  				throw new ServletException("Failed to initialize FHIR Restful server", ex);
  			}
  
  			myStarted = true;
  			ourLog.info("A FHIR has been lit on this server");
  		} finally {
  			myProviderRegistrationMutex.unlock();
  		}
  	}