@Override public ObjectResolver getResolver(String type, Map<String, String> parameters) { Class<? extends ObjectResolver> resolverClass = resolvers.get(type); if (resolverClass == null) { return null; } ObjectResolver resolver = null; try { resolver = resolverClass.newInstance(); } catch (InstantiationException | IllegalAccessException e) { log.warn(String.format("Unable to instanciate %s - missing public constructor with no param", resolverClass.getCanonicalName())); return null; } try { resolver.configure(parameters); } catch (IllegalArgumentException e) { log.info(String.format("Unable to configure %s with parameters %s", resolverClass.getCanonicalName(), parameters)); return null; } return resolver; }