|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
Problem with Hivemind proxies in Hibernate
================
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. |
|
|
Re: Problem with Hivemind proxies in Hibernate-----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. 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----- |
|
|
Re: Problem with Hivemind proxies in HibernateIf 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@...> 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----- > |
|
|
Re: Problem with Hivemind proxies in Hibernate
Hi Johan,
It's only a sample to show the problem i'm faced with. In my real application, i've got a singleton pojo which is never persisted (here my parent) but this singleton is a kind of factory for over pojos (like the child) which are persisted using Hibernate. By the way, i need Hivemind to generate those pojos because my children are themselves complex pojos which encapsulates other pojos defined in Hivemind. Stephane Johan Lindquist a écrit : -----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: |
|
|
Re: Problem with Hivemind proxies in Hibernate
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 |
|
|
Re: Problem with Hivemind proxies in HibernateI 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@...> 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@...> 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----- > > |
|
|
Re: Problem with Hivemind proxies in Hibernate
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 |
| Free embeddable forum powered by Nabble | Forum Help |