There is a long list of object models for which [clazz] may be
relevant.  For each of them we need to decide whether to 

[+1] support directly
[-1] not to support at all
[D] allow support via delegation

Let's start building that list and decide for each model what level of
support we want to have in [clazz]


- JDK JavaBeans per JavaBean spec

  Dmitri: [+1] I think enough projects have a dependency on the JDK
definition of JavaBeans for [clazz] to strictly support it



- Extended JavaBeans.  

  This includes the new mapping schemes for collection/indexed
properties, simplified SmallTalk-style method names etc.  In addition
to indexed properties may support mapped ones.

  Dmitri: [+1] This is a reasonable extension of JavaBeans, feels
almost like an upgrade



- DynaBeans (see BeanUtils)

  Dynamic imitation of JavaBeans: DynaClass is just like Class, except
it is dynamic and mutable, DynaBean is like a Map, only strongly typed
with the help of DynaClass.  WrapDynaBean bridges between DynaClass and
regular Class for the unification of object access APIs.

  Dmitri: [D] We cannot ignore DynaBeans since they are already widely
used, but as they are a part of BeanUtils, we probably want to delegate
their support entirely to BeanUtils.



- Maps and DynamicProperty objects

  A Map (aka Dictionary, Properties, DynamicProperty object) are
completely untyped.  Property list is open ended.  DynamicProperty
object is a Map or an object with characteristics similar to a map e.g.
HttpServletRequest.  One way to cover all DynamicProperty object at
once is through delegation.  For example, in [jxpath] you provide a
static DynamicPropertyHandler object for each such model.

  Dmitri: [D] Since the list of object models similar to maps is so
big, the only reasonable way to handle them appears to be delegation.



- EJB Entity Beans, Statefull Sessions

  Several major differences from regular beans:
    a) the implementation class is unknown (generated by container),
therefore a BeanInfo-style customization mechanism won't work.
    b) instantiation is factory-based (EJB home).
    c) remote entity beans typically use ValueObjects instead or in
addition to regular access methods.

   Dmitri: [D] We don't want to introduce a dependency on J2EE in
[clazz], therefore EJB support wants to be in a separate project.
However EJBs are common enough, so their support should be possible.



- EJB Stateless Session

   Not a bean - does not have properties or relationships, only
methods.

   Dmitri: [-1] I say, ignore services for now.



- WebService

   Not a bean - only methods.

   Dmitri: [-1] Why mix oil and water?  Let's focus on beans for now.



- DOM, JDOM etc

   Several differences from beans:
     a) two ways to capture properties: elements and attributes
     b) no collections
     c) element with the same tag can appear more than once, thus we
can say that in DOM properties are not unique.

   Dmitri: [?] I have not formed my opinion on this one yet.  Some will
use the same oil/water analogy for DOM/JavaBeans.  I think it might be
challenging to generalize the programming model over both of them.
Examples: JavaScript, JXPath.  I will be honest with you - I am not
entirely satisfied by the way JXPath does that.



- JDO, OJB
  We will need to determine if there is anything special about the
beans handled by these two.
   


What other models do we care about?

- Dmitri

__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>

Reply via email to