[jira] [Created] (PLUTO-699) Spec: Clarify Section 20.3.2 titled "Dependent Scoped Beans"

"Neil Griffin (JIRA)" <[email protected]>
Newsgroups gmane.comp.jakarta.pluto.devel
Message-ID <[email protected]>
Neil Griffin created PLUTO-699:
----------------------------------

             Summary: Spec: Clarify Section 20.3.2 titled "Dependent Scoped Beans"
                 Key: PLUTO-699
                 URL: https://issues.apache.org/jira/browse/PLUTO-699
             Project: Pluto
          Issue Type: Bug
          Components: spec
    Affects Versions: 3.0.0
            Reporter: Neil Griffin
            Assignee: Scott Nicklous


Section 20.3.2 of the Portlet 3.0 Spec titled "Dependent Scoped Beans" states:

{quote}The portlet container may produce the beans described in this section as @Dependent scoped beans.{quote}

It then provides a table that lists {{namespace}}, {{contextPath}}, {{windowId}}, and {{portletName}} as EL names for injectable artifacts of type {{java.lang.String}}.

This issue serves as a task for:

1. Changing the word "may" to "must" because injecting an artifact of type {{java.lang.String}} can only be done with {{@Dependent}} scope since it is not possible for CDI to proxy {{final}} types like {{java.lang.String}}.

2. Clarify that these artifacts are inherently {{@PortletRequestScoped}}, and therefore cannot be injected into a portlet bean since there is no request thread available at the time CDI creates instances of portlet beans. Instead, ask the TCK itself tests in PortletRequestScopedArtifacts.java (annotated with {{@PortletRequestScoped}}), these String-based artifacts can only be used from within a bean that is proxied. For example:

{code:java|title=MyGenericPortlet.java}
@ApplicationScoped
@PortletConfiguration(portletName="myBeanPortlet")
public class MyBeanPortlet {

    @RenderMethod
    public void myRender(RenderRequest renderRequest, RenderResponse renderResponse) {

        renderResponse.getWriter().write(fooBean.getDependentScopedContextPath());
    }

    @Inject FooBean fooBean;
}

@PortletRequestScoped
public class FooBean {

    public String getDependentScopedContextPath() {
        return contextPath;
    }

    @Inject @ContextPath contextPath;
}
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.