[ 
http://issues.apache.org/jira/browse/DAYTRADER-23?page=comments#action_12450562 
] 
            
David Jencks commented on DAYTRADER-23:
---------------------------------------

I'm not sure I'm thrilled with this idea because I think it will force the jpa 
implementation to be about twice as complex as necessary.

To be more specific, for the JPA backend I simply use the existing data beans 
as the jpa enhanced classes.  I don't want to have an extra interface layer 
here.  I did have to add some more fields to the data beans for the 
relationships, but I think this is pretty reasonable.

> Decouple backend impls in order to support additional backend implmentations 
> (ie. JPA, EE5, etc)
> ------------------------------------------------------------------------------------------------
>
>                 Key: DAYTRADER-23
>                 URL: http://issues.apache.org/jira/browse/DAYTRADER-23
>             Project: DayTrader
>          Issue Type: New Feature
>          Components: EJB Tier, Web Tier
>    Affects Versions: 2.0
>            Reporter: Christopher James Blythe
>
> Currently, all of the backend impl modes (Direct, EJB and the new SLSB to 
> JDBC) are packaged together inside the ejb.jar. To provide greater 
> flexibility and the ability to support additional back impls, I think we need 
> to re-org the code within Daytrader. I've been brainstorming and have come up 
> with the following...
> Create interfaces for the DaytraderServices and each of the access beans (ie. 
> QuoteDataBean, OrderDataBean, etc.)
>       util.jar (contains the following...)
>       - Interfaces for access beans - defines interfaces with getters and 
> setters
>       - DaytraderServices (interface) - defines the high level transactions 
> similar to TradeServices
>               - Operation return types are based on access bean interfaces 
> (not impls)
>       - Any other commonly used routines
> For the EE4 component impls...
>       jdbc-impl.jar (depends on util.jar)
>       - Contains DaytraderJdbcServices class that implements 
> DaytraderServices interface
>       - Also contains impls for access beans that will be used for all EE4 
> components
>       ejb2.1-impl.jar (depends on util.jar and jdbc-impl.jar)
>       - Contains 2 impls for EJB modes (Session2Jdbc and Session2Entity)
>               - DaytraderSession2JdbcServices class provides SLSB that 
> wrappers DaytraderJdbcServices
>               - DaytraderSession2EntityServices class provides SLSB to Enity 
> bean impl
>       - Both impls depend on access beans defined in jdbc-impl.jar
> For the EE5/JPA components
>       - Define new access beans for EE5 impls based on interfaces
>       - Also create new impls for DaytraderServices interface
> Provide DaytraderServicesFactory class which can...
>       - Detect which impls a present during initialization using 
> Class.forName()
>       - Create instances of the desired services given a string parameter 
> (assuming the service available)
>       - Can either be packaged in the war or another utility jar
>               - CANNOT go in util.jar to avoid circular dependency
> Key points:
>       - New backend impls are isolated to their own jars
>       - Backend impl jars can be removed for AppServers lacking support
>       - Operation return types are based on interfaces (consequently EE4 and 
> EE5 impls could co-exist)
>       - war servlets and JSPs only know about access bean interfaces
> Any thoughts or comments? 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to