configuration.traversableResolver(this.traversableResolver);
configuration.traversableResolver(this.traversableResolver);
@SuppressWarnings("unchecked") @Override public T traversableResolver(TraversableResolver resolver) { configuration = configuration.traversableResolver(resolver); return (T)this; }
@Override public T traversableResolver(final TraversableResolver resolver) { return delegate.traversableResolver(resolver); }
@Override public ValidatorFactory create(CreationalContext<ValidatorFactory> ctx) { Configuration<?> config = getConfiguration(); config.constraintValidatorFactory( createConstraintValidatorFactory( config ) ); config.messageInterpolator( createMessageInterpolator( config ) ); config.traversableResolver( createTraversableResolver( config ) ); config.parameterNameProvider( createParameterNameProvider( config ) ); config.clockProvider( createClockProvider( config ) ); addValueExtractorBeans( config ); return config.buildValidatorFactory(); }
@Autowired public OAuth2AccessTokenValidatorImpl(OAuthSettings oAuthSettings) throws MalformedURLException { this.oAuthSettings = oAuthSettings; // Need to install a simple traversable thingy cos otherwise it means I obviously want to suck in hibernate jpa (wtf) validator = Validation.byDefaultProvider().configure() .traversableResolver(new SimpleTraversableResolver()) .buildValidatorFactory().getValidator(); }
@Test(expectedExceptions = ValidationException.class) @SpecAssertion(section = Sections.CONSTRAINTDECLARATIONVALIDATIONPROCESS_VALIDATIONROUTINE_TRAVERSABLE, id = "j") public void testResolverExceptionsGetWrappedInValidationException() { ExceptionThrowingTraversableResolver resolver = new ExceptionThrowingTraversableResolver(); Configuration<?> config = TestUtil.getConfigurationUnderTest().traversableResolver( resolver ); ValidatorFactory factory = config.buildValidatorFactory(); Validator v = factory.getValidator(); v.validate( new Suit() ); }
@Test(expectedExceptions = ValidationException.class) @SpecAssertion(section = "3.5.2", id = "e") public void testResolverExceptionsGetWrappedInValidationException() { ExceptionThrowingTraversableResolver resolver = new ExceptionThrowingTraversableResolver(); Configuration<?> config = TestUtil.getConfigurationUnderTest().traversableResolver( resolver ); ValidatorFactory factory = config.buildValidatorFactory(); Validator v = factory.getValidator(); v.validate( new Suit() ); }
/** * Constructor */ public BeanValidation() { Configuration configuration = Validation.byDefaultProvider().configure(); Configuration<?> conf = configuration.traversableResolver(new JCATraversableResolver()); validatorFactory = conf.buildValidatorFactory(); validator = validatorFactory.getValidator(); }
@Test @SpecAssertion(section = "3.5.2", id = "d") public void testCustomTraversableResolverViaConfiguration() { // get a new factory using a custom configuration Configuration<?> configuration = TestUtil.getConfigurationUnderTest(); configuration.traversableResolver( new DummyTraversableResolver() ); ValidatorFactory factory = configuration.buildValidatorFactory(); Validator validator = factory.getValidator(); Person person = new Person(); Set<ConstraintViolation<Person>> constraintViolations = validator.validate( person ); assertCorrectNumberOfViolations( constraintViolations, 0 ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTDECLARATIONVALIDATIONPROCESS_VALIDATIONROUTINE_TRAVERSABLE, id = "i") public void testCustomTraversableResolverViaConfiguration() { // get a new factory using a custom configuration Configuration<?> configuration = TestUtil.getConfigurationUnderTest(); configuration.traversableResolver( new DummyTraversableResolver() ); ValidatorFactory factory = configuration.buildValidatorFactory(); Validator validator = factory.getValidator(); Person person = new Person(); Set<ConstraintViolation<Person>> constraintViolations = validator.validate( person ); assertNumberOfViolations( constraintViolations, 0 ); }
/** * Create a validator factory * @return The factory */ public static ValidatorFactory createValidatorFactory() { Configuration configuration = Validation.byDefaultProvider().configure(); Configuration<?> conf = configuration.traversableResolver(new JCATraversableResolver()); return conf.buildValidatorFactory(); }
private static void initFactoryConfig(Configuration<?> factoryCfg, ValidationConfiguration cfg) { if (cfg != null) { factoryCfg.parameterNameProvider(cfg.getParameterNameProvider()); factoryCfg.messageInterpolator(cfg.getMessageInterpolator()); factoryCfg.traversableResolver(cfg.getTraversableResolver()); factoryCfg.constraintValidatorFactory(cfg.getConstraintValidatorFactory()); for (Map.Entry<String, String> entry : cfg.getProperties().entrySet()) { factoryCfg.addProperty(entry.getKey(), entry.getValue()); } } }
private static void initFactoryConfig(Configuration<?> factoryCfg, ValidationConfiguration cfg) { if (cfg != null) { factoryCfg.parameterNameProvider(cfg.getParameterNameProvider()); factoryCfg.messageInterpolator(cfg.getMessageInterpolator()); factoryCfg.traversableResolver(cfg.getTraversableResolver()); factoryCfg.constraintValidatorFactory(cfg.getConstraintValidatorFactory()); for (Map.Entry<String, String> entry : cfg.getProperties().entrySet()) { factoryCfg.addProperty(entry.getKey(), entry.getValue()); } } }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_BOOTSTRAPPING_VALIDATORFACTORY, id = "c") public void testTraversableResolverFromValidatorFactory() { Configuration<?> configuration = TestUtil.getConfigurationUnderTest(); DummyTraversableResolver traversableResolver = new DummyTraversableResolver(); configuration.traversableResolver( traversableResolver ); ValidatorFactory factory = configuration.buildValidatorFactory(); assertSame( factory.getTraversableResolver(), traversableResolver ); }
@Override public Optional<ConnectSessionAuthToken> parseAndValidate(@Nonnull String authTokenJwt) throws InvalidSessionAuthTokenException, CannotRetrieveKeyException { final ConnectSessionAuthTokenValidator tokenValidator; // Need to install a simple traversable thingy cos otherwise it means I obviously want to suck in hibernate jpa (wtf) final Validator validator = Validation.byDefaultProvider().configure() .traversableResolver(new SimpleTraversableResolver()) .buildValidatorFactory().getValidator(); try { tokenValidator = new ConnectSessionAuthTokenValidator(oAuthSettings.getKeyProvider(), oAuthSettings.getAuthorizationServerId(), validator, ImmutableSet.of(oAuthSettings.getHostBaseUrl())); } catch (MalformedURLException e) { throw new IllegalStateException(e); } return tokenValidator.parseAndValidate(authTokenJwt); } }
@Test @SpecAssertions({ @SpecAssertion(section = "4.4.6", id = "e"), @SpecAssertion(section = "4.4.6", id = "h") }) public void testMessageInterpolatorSpecifiedInValidationXmlCanBeOverridden() { Configuration<?> configuration = Validation .byDefaultProvider() .configure(); configuration = configuration.traversableResolver( new ConfigurationDefinedTraversableResolver() ); Validator validator = configuration.buildValidatorFactory().getValidator(); User user = new User(); Set<ConstraintViolation<User>> constraintViolations = validator.validate( user ); assertCorrectNumberOfViolations( constraintViolations, 1 ); assertTrue( ConfigurationDefinedTraversableResolver.numberOfIsReachableCalls > 0, "The resolver should have been called at least once if configuration settings were applied." ); } }
@Test @SpecAssertions({ @SpecAssertion(section = Sections.VALIDATIONAPI_BOOTSTRAPPING_XMLCONFIGURATION, id = "d"), @SpecAssertion(section = Sections.VALIDATIONAPI_BOOTSTRAPPING_XMLCONFIGURATION, id = "g") }) public void testTraversableResolverSpecifiedInValidationXmlCanBeOverridden() { Configuration<?> configuration = Validation .byDefaultProvider() .configure(); configuration = configuration.traversableResolver( new ConfigurationDefinedTraversableResolver() ); Validator validator = configuration.buildValidatorFactory().getValidator(); User user = new User(); Set<ConstraintViolation<User>> constraintViolations = validator.validate( user ); assertNumberOfViolations( constraintViolations, 1 ); assertTrue( ConfigurationDefinedTraversableResolver.numberOfIsReachableCalls > 0, "The resolver should have been called at least once if configuration settings were applied." ); } }
@Test @SpecAssertions({ @SpecAssertion(section = "3.5.2", id = "a"), @SpecAssertion(section = "3.5.2", id = "b"), @SpecAssertion(section = "3.5.2", id = "c") }) public void testCorrectNumberOfCallsToIsReachableAndIsCascadable() { Suit suit = new Suit(); suit.setTrousers( new Trousers() ); suit.setJacket( new Jacket() ); suit.setSize( 3333 ); suit.getTrousers().setLength( 32321 ); suit.getJacket().setWidth( 432432 ); SnifferTraversableResolver resolver = new SnifferTraversableResolver( suit ); Configuration<?> config = TestUtil.getConfigurationUnderTest().traversableResolver( resolver ); ValidatorFactory factory = config.buildValidatorFactory(); Validator v = factory.getValidator(); v.validate( suit ); assertEquals( resolver.getReachPaths().size(), 5 ); assertEquals( resolver.getCascadePaths().size(), 2 ); }
@Override public ValidatorFactory create(CreationalContext<ValidatorFactory> ctx) { Configuration<?> config = getConfiguration(); config.constraintValidatorFactory( createConstraintValidatorFactory( config ) ); config.messageInterpolator( createMessageInterpolator( config ) ); config.traversableResolver( createTraversableResolver( config ) ); config.parameterNameProvider( createParameterNameProvider( config ) ); config.clockProvider( createClockProvider( config ) ); addValueExtractorBeans( config ); return config.buildValidatorFactory(); }