hivemind-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Carman" <ja...@carmanconsulting.com>
Subject Re: Problem with Hivemind proxies in Hibernate
Date Thu, 12 Jul 2007 15:34:37 GMT
I mean beans that HiveMind isn't instantiating (like stuff Hibernate
creates from database rows).  Yes, HiveMind is for wiring up a web of
pojos, but those pojos are typically services.  Stuff that gets stored
in the database isn't really what you'd want defined in your HiveMind
registry.

On 7/12/07, Stephane Decleire <sdecleire@cariboo-networks.com> wrote:
>
>  Why would you use AOP in such a case James ?
>  Isn't hivemind able to wire beans ? After all, a bean is no more than a
> pojo ...
>
>  Stephane
>
>  James Carman a écrit :
> If you require wiring of "beans" (not hivemind services), I'd look for
>  an aspect-oriented solution.  The spring framework supports this
>  through the @Configurable annotation.  It wouldn't be too tough to
>  come up with something like that for HiveMind.  I did some work
>  enabling AspectJ and HiveMind
>  (http://svn.javaforge.com/svn/hivemind/hivemind-aspectj).
> That could
>  get you started.  Basically, what you need is an aspect that can
>  autowire a bean given a HiveMind registry.  The trick is setting the
>  registry property of the aspect, but that shoulnd't be too tough with
>  a custom factory of some sorts (like I do in hivemind-aspectj, but
>  you'd just set the registry property on the aspect instance).
>
>  On 7/12/07, Johan Lindquist <johan@kawoo.co.uk> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
>  Hash: SHA1
>
>  Hi Stephane,
>
>  My ask first what you exactly are trying to do?  What is the reason you
>  would like to define the parent/child object within Hivemind and then
>  persist them?
>
>  Are the parent/child objects not simple beans just now which (without
>  involving hivemind) can be stored/retrieved etc using the DAO service
>  (which is defined in Hivemind as a service)?
>
>  Cheers,
>
>  Johan
>
>  Stephane Decleire wrote:
>  > ================
>  > Approach 1 :
>  >
>  > I have two pojos : Parent and Child with there respective interface
>  > IParent and IChild.
>  >
>  > public Interface IParent {
>  >     public void setChild(IChild child);
>  >     public IChild getChild();
>  > }
>  >
>  > In Hivemind, i have declared the services below :
>  >
>  >   <service-point id="Parent" interface="IParent">
>  >       <invoke-factory>
>  >           <construct class="Parent">
>  >                 <set-object property="child" value="service:Child"/>
>  >           </construct>
>  >       </invoke-factory>
>  >   </service-point>
>  >
>  >   <service-point id="Child" interface="IChild">
>  >       <invoke-factory>
>  >           <construct class="Child"/>
>  >       </invoke-factory>
>  >   </service-point>
>  >
>  >
>  > Hivemind works with interfaces so, in my code, i get a child from its
>  > parent :
>  >     IChild child1 = parent.getChild();
>  > Using this approach, i assume that child1 is in fact a Hivemind proxy on
>  > my child1 pojo (tell me if i'm wrong). So i can't convert IChild into
>  > Child ...
>  >
>  > And then, i would like to persist my pojo child1 using a DAO :
>  >
>  > public Interface IChildDao {
>  >     public void persist(IChild child);
>  > }
>  >
>  > But Hibernate doesn't know how to persist IChild because what it really
>  > try to persist is a Hivemind proxy !
>  >
>  > ================
>  > Approach 2 :
>  >
>  > I know that Hibernate isn't able to persist the interface so the my DAO
>  > interface becomes :
>  >
>  > public Interface IChildDao {
>  >     public void persist(Child child);
>  > }
>  >
>  > So i need to get the instance of my pojo Child and not an interface from
>  > my pojo Parent :
>  >     Child child1 = parent.getChild();
>  >
>  > That's implies that my parent interface becomes :
>  >
>  > public Interface IParent {
>  >     public void setChild(Child child);
>  >     public Child getChild();
>  > }
>  >
>  > And in this case Hivemind doesn't build my services !
>  >
>  > I can't find the architecture which satisfies both framework ...
>  > Any help would be very appreciated !
>  >
>  > Stephane.
>  -----BEGIN PGP SIGNATURE-----
>  Version: GnuPG v1.4.6 (GNU/Linux)
>  Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFGlkJm1Tv8wj7aQ34RAh+yAJ40Nv8xouId2bclT0z5e/swnJJnGACbBtS2
>  n+vhFnCEXUC+LHDgURkiYYU=
>  =YE45
>  -----END PGP SIGNATURE-----
>
>

Mime
View raw message