[jbosstools-issues] [JBoss JIRA] Resolved: (JBIDE-7967) nonannotated classes without default constructor and no CDI scope or inject annotations on class or constructor should not be considered beans

Alexey Kazakov (JIRA) jira-events at lists.jboss.org
Tue Dec 21 07:58:18 EST 2010


     [ https://issues.jboss.org/browse/JBIDE-7967?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Kazakov resolved JBIDE-7967.
-----------------------------------

    Resolution: Partially Completed


Partially fixed.
1. Full build/validation works for the case.
2. If there is an ambiguous injection because ProjectImpl has default or @Inject constructor then the injection is marked as a problem. If you make the ProjectImpl a not-valid bean then CurrentProject will be re-validated and the marker disappears.
3. If there is no ambiguous injections because ProjectImpl is not a valid bean then ProjectImpl is not included in CDI model and making ProjectImpl a valid bean won't force CurrentProject to be re-validated. The manual re-validating (or incremental/full build of CurrentProject) is needed there to mark its injections as a problem. It's a restriction of current CDI tools model. Let's have a separate issue (not critical for CR1) for that.

> nonannotated classes without default constructor and no CDI scope or inject annotations on class or constructor should not be considered beans
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: JBIDE-7967
>                 URL: https://issues.jboss.org/browse/JBIDE-7967
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: cdi (jsr-299)
>            Reporter: Max Andersen
>            Assignee: Alexey Kazakov
>            Priority: Critical
>             Fix For: 3.2.0.CR1
>
>
> public interface Project {
> }
> public abstract class AbstractProject implements Project {
> }
> public class ProjectImpl extends AbstractProject {
>  public ProjectImpl(final File rootDirectory)
>    {
>       projectRoot = rootDirectory;
>    }
> }
> @Singleton
> public class CurrentProject {
>  @Produces
>    @Default
>    @Dependent
>    public Project getCurrent()
> }
> @Inject Project project;
> should in this case just consider getCurrent() the only injection source because Abstract class cannot be instantatiated nor can the PRojectImpl since it has no-noarg constructor but does have a constructor with arguments.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list