Thanks James, i will cast an eye on that during my vacations ;-)

James Carman a écrit :
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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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-----


Reply via email to