### Question:
Bootstrap { public static ServiceLocator init( final Properties properties, final Map<Class<?>, Object> initialComponents) throws IOException { return init(properties, new MapServiceLocator(initialComponents)); }  static ServiceLocator getLocator(); static ServiceLocator init(
			final Properties properties,
			final Map<Class<?>, Object> initialComponents); static ServiceLocator init(final Properties properties); static ServiceLocator init(final InputStream propertiesStream); static ServiceLocator init(final String propertiesPath); static String getVersion(); static String getReleaseDate(); static void main(final String[] args);  }### Answer:
@Test public void withDefaultLoggerAndEC() throws Exception { final ServiceLocator locator = Bootstrap.init(getClass().getResourceAsStream("/projectprops/mockproject.properties")); final Properties ps = locator.resolve(Properties.class); assertEquals("Project id matches", ps.getProperty("project-id"), "0e13d168-1e2d-6ced-82f0-b9e693acde3e"); }
@Test public void withCustomLoggerAndEC() throws Exception { final String loggerName = "testLogger"; final Logger logger = LoggerFactory.getLogger(loggerName); final Map<Class<?>, Object> initialComponents = new HashMap<Class<?>, Object>(); final ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor(); initialComponents.put(ExecutorService.class, newSingleThreadExecutor); initialComponents.put(Logger.class, logger); final Properties p = new Properties(); p.load(getClass().getResourceAsStream("/projectprops/mockproject.properties")); final ServiceLocator locator = Bootstrap.init(p, initialComponents); assertSame("Logger instance matches.", locator.resolve(Logger.class), logger); assertSame("ExecutionService matches.", locator.resolve(ExecutorService.class), newSingleThreadExecutor); }