public VaultRegistry create(final HostPasswordStore keychain, final PasswordCallback callback) {
        if(null == clazz) {
            throw new FactoryException(String.format("No implementation given for factory %s", this.getClass().getSimpleName()));
        }
        try {
            final Constructor<? extends VaultRegistry> constructor = ConstructorUtils
                    .getMatchingAccessibleConstructor(clazz, keychain.getClass(), callback.getClass());
            if(null == constructor) {
                log.warn(String.format("No matching constructor for parameters %s,%s", keychain.getClass(), callback.getClass()));
                // Call default constructor for disabled implementations
                return clazz.getDeclaredConstructor().newInstance();
            }
            return constructor.newInstance(keychain, callback);
        }
        catch(InstantiationException | InvocationTargetException | IllegalAccessException |
              NoSuchMethodException e) {
            log.error(String.format("Failure loading callback class %s. %s", clazz, e.getMessage()));
            return VaultRegistry.DISABLED;
        }
    }
@Test
    public void testCreate() {
        assertNotNull(VaultRegistryFactory.get(new DisabledPasswordCallback()));
        assertNotSame(VaultRegistry.DISABLED, VaultRegistryFactory.get(new DisabledPasswordCallback()));
    }