public void validateInjectionPointForDeploymentProblems(InjectionPoint ij, Bean<?> bean, BeanManagerImpl beanManager) {
        if (ij.isDelegate()) {
            return; // do not validate delegate injection points as these are special
        }
        Set<Bean<?>> resolvedBeans = beanManager.getBeanResolver().resolve(beanManager.getBeans(ij));
        if (!isInjectionPointSatisfied(ij, resolvedBeans, beanManager)) {
            throw ValidatorLogger.LOG.injectionPointHasUnsatisfiedDependencies(
                    ij,
                    Formats.formatAnnotations(ij.getQualifiers()),
                    Formats.formatInjectionPointType(ij.getType()),
                    Formats.formatAsStackTraceElement(ij),
                    InjectionPoints.getUnsatisfiedDependenciesAdditionalInfo(ij, beanManager));
        }
        if (resolvedBeans.size() > 1) {
            throw ValidatorLogger.LOG.injectionPointHasAmbiguousDependencies(
                ij,
                Formats.formatAnnotations(ij.getQualifiers()),
                Formats.formatInjectionPointType(ij.getType()),
                Formats.formatAsStackTraceElement(ij),
                WeldCollections.toMultiRowString(resolvedBeans));
        }
        // Account for the case this is disabled decorator
        if (!resolvedBeans.isEmpty()) {
            Bean<?> resolvedBean = (Bean<?>) resolvedBeans.iterator().next();
            if (beanManager.isNormalScope(resolvedBean.getScope())) {
                UnproxyableResolutionException ue = Proxies.getUnproxyableTypeException(ij.getType(), resolvedBean, beanManager.getServices(), false);
                if (ue != null) {
                    throw ValidatorLogger.LOG.injectionPointHasNonProxyableDependencies(ij, Formats.formatAsStackTraceElement(ij), ue);
                }
            }
            if (bean != null && Beans.isPassivatingScope(bean, beanManager)) {
                validateInjectionPointPassivationCapable(ij, resolvedBean, beanManager);
            }
        }

        for (PlugableValidator validator : plugableValidators) {
            validator.validateInjectionPointForDeploymentProblems(ij, bean, beanManager);
        }

        if (resolvedInjectionPoints != null) {
            // Store result to identify unused beans
            resolvedInjectionPoints.put(resolvedBeans.iterator().next(), Boolean.TRUE);
        }
    }
public void validateInjectionPointForDeploymentProblems ( InjectionPoint ij , Bean < ? > bean , BeanManagerImpl beanManager ) { if ( ij . isDelegate ( ) ) { return ; } Set < Bean < ? > > resolvedBeans = beanManager . getBeanResolver ( ) . resolve ( beanManager . getBeans ( ij ) ) ; if ( ! isInjectionPointSatisfied ( ij , resolvedBeans , beanManager ) ) { throw ValidatorLogger . LOG . injectionPointHasUnsatisfiedDependencies ( ij , Formats . formatAnnotations ( ij . getQualifiers ( ) ) , Formats . formatInjectionPointType ( ij . getType ( ) ) , Formats . formatAsStackTraceElement ( ij ) , InjectionPoints . getUnsatisfiedDependenciesAdditionalInfo ( ij , beanManager ) ) ; } if ( resolvedBeans . size ( ) > 1 ) { throw ValidatorLogger . LOG . injectionPointHasAmbiguousDependencies ( ij , Formats . formatAnnotations ( ij . getQualifiers ( ) ) , Formats . formatInjectionPointType ( ij . getType ( ) ) , Formats . formatAsStackTraceElement ( ij ) , WeldCollections . toMultiRowString ( resolvedBeans ) ) ; } if ( ! resolvedBeans . isEmpty ( ) ) { Bean < ? > resolvedBean = ( Bean < ? > ) resolvedBeans . iterator ( ) . next ( ) ; if ( beanManager . isNormalScope ( resolvedBean . getScope ( ) ) ) { UnproxyableResolutionException ue = Proxies . getUnproxyableTypeException ( ij . getType ( ) , resolvedBean , beanManager . getServices ( ) , false ) ; if ( ue != null ) { throw ValidatorLogger . LOG . injectionPointHasNonProxyableDependencies ( ij , Formats . formatAsStackTraceElement ( ij ) , ue ) ; } } if ( bean != null && Beans . isPassivatingScope ( bean , beanManager ) ) { validateInjectionPointPassivationCapable ( ij , resolvedBean , beanManager ) ; } } for ( PlugableValidator validator : plugableValidators ) { validator . validateInjectionPointForDeploymentProblems ( ij , bean , beanManager ) ; } if ( resolvedInjectionPoints != null ) { resolvedInjectionPoints . put ( resolvedBeans . iterator ( ) . next ( ) , Boolean . TRUE ) ; } }
Checks for deployment problems associated with a given {@link InjectionPoint}