final Map<String, CustomFactoryInjectable> injectablesByLoggerName = new HashMap<String, CustomFactoryInjectable>(); injectionContext.registerInjectableProvider(handle, new InjectableProvider() { @Override public CustomFactoryInjectable getInjectable(final InjectionSite injectionSite, final FactoryNameGenerator nameGenerator) {
@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { if (DYNAMIC_VALIDATION_ENABLED) { injectionContext.registerExtensionTypeCallback(type -> { if (type.isConcrete() && type.isAssignableTo(ConstraintValidator.class) && !type.getFullyQualifiedName().equals(NullType.class.getName())) { logger.debug("Found ConstraintValidator, {}", type.getFullyQualifiedName()); validators.add(type); } }); final InjectableHandle handle = new InjectableHandle(MetaClassFactory.get(DynamicValidator.class), injectionContext.getQualifierFactory().forDefault()); injectionContext.registerInjectableProvider(handle, (injectionSite, nameGenerator) -> new DefaultCustomFactoryInjectable(handle.getType(), handle.getQualifier(), "DynamicValidatorFactory", Singleton.class, Arrays.asList(WiringElementType.NormalScopedBean), new DynamicValidatorBodyGenerator(validators))); } }
injectionContext.registerInjectableProvider(handle, new InjectableProvider() {
injectionContext.registerInjectableProvider(handle, new InjectableProvider() {
@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { final AnnoWithNonBindingAttribute representative = new AnnoWithNonBindingAttribute() { @Override public Class<? extends Annotation> annotationType() { return AnnoWithNonBindingAttribute.class; } @Override public String value() { return ""; } }; final QualifierFactory qualFactory = injectionContext.getQualifierFactory(); final InjectableHandle handle = new InjectableHandle(MetaClassFactory.get(String.class), qualFactory.forSource(() -> new Annotation[] { representative })); injectionContext.registerInjectableProvider(handle, (injectionSite, nameGenerator) -> new DefaultCustomFactoryInjectable(handle, nameGenerator.generateFor(handle, ExtensionProvided), Dependent.class, Arrays.asList(DependentBean), getGenerator(injectionSite))); }