[
https://jira.jboss.org/jira/browse/JBSEAM-3262?page=com.atlassian.jira.pl...
]
Dan Allen commented on JBSEAM-3262:
-----------------------------------
I think we are having a silly squabble over terminology. Seam doesn't have the notion
of a dependent scope, where two components can be kept loosely coupled, but one
component's scope is tied not to the global context but rather to the existence of the
other component. It just doesn't exist in Seam.
Besides, my use case clearly isn't about a dependent scope. It's about object
initialization. Sure, entity classes hold state, and here I am giving them state. I am
just not letting Seam manage the scope of that entity instance directly, but putting the
Home object in charge of that task. Then, Seam takes care of the scope of the Home object.
This may not be the direct intent of the the STATELESS scope, but it sure as heck makes
sense when you look at it from the perspective of object initialization (i.e., a
decarative way of doing @Create).
Allow entity class component to be assigned stateless scope
-----------------------------------------------------------
Key: JBSEAM-3262
URL:
https://jira.jboss.org/jira/browse/JBSEAM-3262
Project: Seam
Issue Type: Bug
Components: Core
Affects Versions: 2.0.3.CR1, 2.1.0.A1
Reporter: Dan Allen
Assignee: Dan Allen
Priority: Minor
Fix For: 2.0.3.GA, 2.1.0.GA
Attachments: JBSEAM-3262-branch20.txt, JBSEAM-3262-trunk.txt
Original Estimate: 5 minutes
Remaining Estimate: 5 minutes
There is no reason for not allowing an entity class component to be assigned to the
stateless context like JavaBean and stateless session bean components. In fact, you could
argue that there is no difference between a JavaBean and an entity class based on the fact
that they are both vanilla Java classes.
There is a perfect use case for this feature that comes right from the heart of Seam.
When using the Home component, it is perfectly natural to create a component role for an
entity class that is wired to the newInstance property to be used as a prototype. For
instance, here is an example:
<component name="roundPrototype" class="org.open18.model.Round"
scope="stateless">
<property name="golfer">#{currentGolfer}</property>
<property name="date">#{currentDate}</property>
</component>
<framework:entity-home name="roundHome"
class="org.open18.action.RoundHome"
new-instance="#{roundPrototype}"/>
You don't want the roundPrototype to be stored in a scope since it is only used
internally to produce the instance managed by the roundHome component. However, with this
configuration, Seam throws an exception at startup.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira