Alexis Agahi wrote:
On Sunday 02 November 2003 14:05, Stephen McConnell wrote:
<snip/>
Mapping from MyStateValueType (an interface) to a home is not the same as service to provider resolution. Instead, what you want to locate is a component that implements a home interface for the MyStateValueType - e.g. MyStateValueTypeHome is the home interface and MyStateValueTypeHomeProvider is the component implementation that provides creation, retrival and destruction of instance of MyStateValueType.
At the meta-data level would would need something like:
<component class="MyDemoComponent" name="whatever"> <identity> <key>12345</key> </identity> </component>
The container on creation of an identifiable component resolves the home factory (an implicit lifecycle dependency) and if the meta-data declares a key, then a persistent value is retrieved and supplied to the component via a context entry. If no identity is supplied, a new state value is created and supplied.
Any thoughts?
I'm not sure to understand clearly your approach. Tell me if I'm wrong
You suggest 3 parts
1/ compenent: implementing home interface (2)
2/ home: interface that define persisted data
3/ provider: impl that provides custom finder for home interface of the component (1)
Close.
but I dont get clearly identity/home purpose.
I'll explain below.
Should home define method that will be used by provider to establish persitence? (if yes, then this sounds nice ,))
Here is a move detailed breakdown of the terms I'm using:
* identifiable component - an instance of a identifiable component type
* identifiable component type - a type that includes an <indentifiable>
elements declaring a home interface
* home - a component implementing a home interface
* home interface - defintion of storage value creation, query
and destruction operations
* home component - a component that implements the home interface
and handles storage value creation query and destruction
using some persistence solutionSo for example, lets imagine we have something called a User and that we maintain multiple users. From this we would need:
Interfaces:
* User - an service interface
* UserStorage - an interface defining operation on a user storage
value instance
* UserHome - the home interfaceClasses:
* DefaultUser - an identifiable component
* DefaultUserStorage - a class implementing UserStorage using a
particular persistence solution
* DefaultUserHome - implementation of the UserHomeA container on deploying a identifiable component would locate and deploy a component implementing the UserHome service, get an instance of UserStorage from the home and add this to the identifiable components context.
Cheers, Steve.
--
Stephen J. McConnell mailto:[EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
