// ACCESSORS/MUTATORS public T get() { LOG.debug("Invoke {}.", this); URL configurationResource = null; try { configurationResource = getResource(); } catch (final IOException e) { LOG.warn( "Configuration entity file not found [entity: {}, file: {}].", new Object[] {clazz, configuration.value(), e}); if (null != fallback) { LOG.debug("Trying fallback [entity: {}, fallback: {}].", clazz, fallback); return getFallback(); } } final FileIO fileIo = providerInjector.get().getInstance(FileIO.class); String configurationFileContent = fileIo.readResource(configurationResource); if (null != configurationFileContent) { for (final String key : bundle.getConfiguration().keySet()) { final String value = JSONObject.quote(bundle.getConfiguration().get(key)); configurationFileContent = StringUtils.replace( configurationFileContent, "${" + key + "}", value.substring(1, value.length() - 1)); } } try { final T configuration = objectMapper.readValue(configurationFileContent, clazz); providerInjector.get().injectMembers(configuration); return configuration; } catch (final IOException e) { LOG.warn( "Invalid configuration entity file [entity: {}, file: {}].", new Object[] {clazz, configurationResource, e}); if (null != fallback) { LOG.debug("Trying fallback [entity: {}, fallback: {}].", clazz, fallback); return getFallback(); } } return null; }