You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Rajesh Battala <ra...@citrix.com> on 2012/07/03 07:58:50 UTC

RE: Hibernate


> -----Original Message-----
> From: Kelven Yang [mailto:kelven.yang@citrix.com]
> Sent: Saturday, June 30, 2012 3:31 AM
> To: cloudstack-dev@incubator.apache.org
> Subject: RE: Hibernate
> 
> 
> 
> > -----Original Message-----
> > From: David Nalley [mailto:david@gnsa.us]
> > Sent: Friday, June 29, 2012 10:37 AM
> > To: cloudstack-dev@incubator.apache.org
> > Subject: Re: Hibernate
> >
> > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
> > <ra...@citrix.com> wrote:
> > >
> > >
> > >> -----Original Message-----
> > >> From: David Nalley [mailto:david@gnsa.us]
> > >> Sent: Friday, June 29, 2012 8:40 PM
> > >> To: cloudstack-dev@incubator.apache.org
> > >> Subject: Re: Hibernate
> > >>
> > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
> > >> <ra...@citrix.com>
> > >> wrote:
> > >> >
> > >> > Shall I proceed to replace Hibernate Framework with Spring JDBC.
> > >> >
> > >>
> > >> This is not a design decision to take lightly, or rush - as we've
> > >> talked about replacing the custom ORM that CloudStack uses as well
> > >> - we'd want to make a decision on something that we are comfortable
> > >> with
> > in that role as well.
> > >>
> > > [Rajesh Battala]
> > > So we are planning to implement some ORM framework for CloudStack
> also?
> > > If so, then we need to evaluate the available ORM frameworks for
> > > java
> > which are based on Apache License?
> > >
> >
> >
> > I don't want to speak for Alex, but I have heard him mention such a
> > change number of times, and have seen it in his slides as well.
> >
> > But the larger sense is that if we are going to change something in
> > AWSAPI for communicating to the database, it should be something that
> > we are comfortable with adopting in the long term for the rest of
> > CloudStack, otherwise we'll end up with two different ways for
> > connecting to the database, which is fail.
> 
> For Rajesh's concern in the short term (to get rid of Hibernate), we basically
> have following options,
> 1) Make the project depend on utils.jar in CloudStack and use existing
> CloudStack persistent layer.
> 2) Continue to make CloudBridge project independent
> 	a) use direct JDBC
> 	b) use Spring JDBC
> 	c) use ORM framework on Spring (i.e. OpenJPA etc)
> 
> I vote on 2-b for a short term resolution. For a couple of reasons,
> 
> The major reason is for adopting Spring, EC2/S3 API in the future may both
> need to support SOAP based web service API and REST API, Spring comes
> with support of both, in addition, it provides dependency injection, AOP and
> pluggable ORM framework, distributed transaction management, etc.
> 
> CloudBridge project has a very simple data model (it has only one table for
> EC2), original ORM (hibernate) usage is just for convenience (as Alex pointed
> that it tried to avoid direct SQL manipulation), on the other hand, giving the
> DAO abstraction, a limited amount of JDBC should not matter too much
> either. With Spring and already existing DAO abstraction, we can leave bigger
> ORM decision for the future.
> 
> In the long term, ORM choice to us seems to be secondary consideration,
> giving the fact that our current custom ORM implementation serves its
> purpose well enough in CloudStack. But I do see the needs of more flexible
> dependency injection or transaction management framework in order to
> incorporate better integration with external transactional systems like
> message queue servers. I also see the needs of standardizing AOP patterns
> used in current CloudStack code base, Spring provides some good answers
> for that. So there is a possibility that it will be good for CloudStack to adopt it
> like many other Java communities do, so that we can focus on our own
> business logic and leave these external concerns to people who are doing it
> for a living.
> 
> Kelven
> 
> 
> >
> > --David
[Rajesh Battala] 

Please let me know conclusion of the thread.
I didn't see any reply to Kelven suggestions. 

Thanks
Rajesh Battala


Re: Hibernate

Posted by Adrian Cole <ad...@gmail.com>.
Having worked with the cloudbridge, and experimented ripping out soap, s3,
duplicated or unreferenced code, the module becomes quite small, apart from
generated classes.  There is hardly any state, and certainly not highly
relational state.

What I'm getting at is that I see no reason to make small things that have
a fighting chance to be succinct at some point, to be bogged down with
inheriting machinery from cloudstack core.

The irony is that most of the bridge is modular or decoupled, even if not
packaged well, and at the same time we discuss architecture to reduce
coupling in the monster code, we are increasing coupling in this!

Cloud bridge persistence, at least ec2, can largely be solved by a Map.
Moving to any heavier persistence layer by default seems overkill to me.  I
think any heavy integration should be a plugin, (and in fact cloudstack API
integration should be! *).

Long way of saying let's not get too concerned about making cloudbridge
follow patterns we have doubts about anyway, and instead use that effort to
clean it up.

My 2p
-A

* aside, but EC2Engine should be an interface, etc. Right now, unit testing
is pretty non existent.
On Aug 9, 2012 8:14 AM, "David Nalley" <da...@gnsa.us> wrote:

> Rajesh, is this done?
>
> --David
>
> On Mon, Jul 16, 2012 at 11:49 PM, Rajesh Battala
> <ra...@citrix.com> wrote:
> > Yes Ewan, I would be doing this work.
> >
> > Thanks
> > Rajesh Battala
> >
> >> -----Original Message-----
> >> From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
> >> Sent: Tuesday, July 17, 2012 9:03 AM
> >> To: cloudstack-dev@incubator.apache.org
> >> Subject: RE: Hibernate
> >>
> >> OK, good.  So it's a small job.  So is Rajesh doing that?
> >>
> >> Ewan.
> >>
> >> > -----Original Message-----
> >> > From: Alex Huang [mailto:Alex.Huang@citrix.com]
> >> > Sent: 16 July 2012 17:03
> >> > To: cloudstack-dev@incubator.apache.org
> >> > Subject: RE: Hibernate
> >> >
> >> > My understanding is it's one table and is already wrapped by a DAO.
> >> > The DAO object uses hibernate underneath.  Don't think it's a big job.
> >> >
> >> > --Alex
> >> >
> >> > > -----Original Message-----
> >> > > From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
> >> > > Sent: Monday, July 16, 2012 4:43 PM
> >> > > To: cloudstack-dev@incubator.apache.org
> >> > > Subject: RE: Hibernate
> >> > >
> >> > > If I read this infinitely long thread correctly, the conclusion is
> >> > that
> >> > > CloudStack/awsapi needs to be rewritten to use the CloudStack DAO
> >> > instead
> >> > > of Hibernate.  Is that correct?
> >> > >
> >> > > If so, who is doing this work, and when?  That sounds like a big
> job.
> >> > >
> >> > > Thanks,
> >> > >
> >> > > Ewan.
> >> > >
> >> > > > -----Original Message-----
> >> > > > From: Alex Huang [mailto:Alex.Huang@citrix.com]
> >> > > > Sent: Monday, July 02, 2012 11:31 PM
> >> > > > To: cloudstack-dev@incubator.apache.org
> >> > > > Subject: RE: Hibernate
> >> > > >
> >> > > > Rajesh,
> >> > > >
> >> > > > You should use the existing CloudStack DAO framework.  If
> >> > cloudstack
> >> > > > will move to another ORM framework, it will have to be done in
> >> > > > such
> >> > a
> >> > > > fashion that everything above the DAO layer doesn't have to change
> >> > and
> >> > > > the majority of the current DAO code do not have to change as
> well.
> >> > > > Which would mean your code should migrate over along with the rest
> >> > of
> >> > > > the changes.
> >> > > >
> >> > > > --Alex
> >> > > >
> >> > > > > -----Original Message-----
> >> > > > > From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
> >> > > > > Sent: Monday, July 02, 2012 10:59 PM
> >> > > > > To: cloudstack-dev@incubator.apache.org
> >> > > > > Subject: RE: Hibernate
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > > -----Original Message-----
> >> > > > > > From: Kelven Yang [mailto:kelven.yang@citrix.com]
> >> > > > > > Sent: Saturday, June 30, 2012 3:31 AM
> >> > > > > > To: cloudstack-dev@incubator.apache.org
> >> > > > > > Subject: RE: Hibernate
> >> > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > > > > -----Original Message-----
> >> > > > > > > From: David Nalley [mailto:david@gnsa.us]
> >> > > > > > > Sent: Friday, June 29, 2012 10:37 AM
> >> > > > > > > To: cloudstack-dev@incubator.apache.org
> >> > > > > > > Subject: Re: Hibernate
> >> > > > > > >
> >> > > > > > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
> >> > > > > > > <ra...@citrix.com> wrote:
> >> > > > > > > >
> >> > > > > > > >
> >> > > > > > > >> -----Original Message-----
> >> > > > > > > >> From: David Nalley [mailto:david@gnsa.us]
> >> > > > > > > >> Sent: Friday, June 29, 2012 8:40 PM
> >> > > > > > > >> To: cloudstack-dev@incubator.apache.org
> >> > > > > > > >> Subject: Re: Hibernate
> >> > > > > > > >>
> >> > > > > > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
> >> > > > > > > >> <ra...@citrix.com>
> >> > > > > > > >> wrote:
> >> > > > > > > >> >
> >> > > > > > > >> > Shall I proceed to replace Hibernate Framework with
> >> > Spring
> >> > > > JDBC.
> >> > > > > > > >> >
> >> > > > > > > >>
> >> > > > > > > >> This is not a design decision to take lightly, or rush -
> >> > as
> >> > > > we've
> >> > > > > > > >> talked about replacing the custom ORM that CloudStack
> >> > > > > > > >> uses
> >> > as
> >> > > > > > > >> well
> >> > > > > > > >> - we'd want to make a decision on something that we are
> >> > > > > > > >> comfortable with
> >> > > > > > > in that role as well.
> >> > > > > > > >>
> >> > > > > > > > [Rajesh Battala]
> >> > > > > > > > So we are planning to implement some ORM framework for
> >> > > > CloudStack
> >> > > > > > also?
> >> > > > > > > > If so, then we need to evaluate the available ORM
> >> > frameworks
> >> > > > for
> >> > > > > > > > java
> >> > > > > > > which are based on Apache License?
> >> > > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > I don't want to speak for Alex, but I have heard him mention
> >> > > > > > > such
> >> > > > a
> >> > > > > > > change number of times, and have seen it in his slides as
> >> > well.
> >> > > > > > >
> >> > > > > > > But the larger sense is that if we are going to change
> >> > something
> >> > > > in
> >> > > > > > > AWSAPI for communicating to the database, it should be
> >> > something
> >> > > > > > > that we are comfortable with adopting in the long term for
> >> > the
> >> > > > rest
> >> > > > > > > of CloudStack, otherwise we'll end up with two different
> >> > > > > > > ways for connecting to the database, which is fail.
> >> > > > > >
> >> > > > > > For Rajesh's concern in the short term (to get rid of
> >> > Hibernate),
> >> > > > we
> >> > > > > > basically have following options,
> >> > > > > > 1) Make the project depend on utils.jar in CloudStack and use
> >> > > > existing
> >> > > > > > CloudStack persistent layer.
> >> > > > > > 2) Continue to make CloudBridge project independent
> >> > > > > >     a) use direct JDBC
> >> > > > > >     b) use Spring JDBC
> >> > > > > >     c) use ORM framework on Spring (i.e. OpenJPA etc)
> >> > > > > >
> >> > > > > > I vote on 2-b for a short term resolution. For a couple of
> >> > > > > > reasons,
> >> > > > > >
> >> > > > > > The major reason is for adopting Spring, EC2/S3 API in the
> >> > future
> >> > > > may
> >> > > > > > both need to support SOAP based web service API and REST API,
> >> > > > Spring
> >> > > > > > comes with support of both, in addition, it provides
> >> > > > > > dependency injection, AOP and pluggable ORM framework,
> >> > > > > > distributed transaction
> >> > > > > management, etc.
> >> > > > > >
> >> > > > > > CloudBridge project has a very simple data model (it has only
> >> > one
> >> > > > > > table for EC2), original ORM (hibernate) usage is just for
> >> > > > convenience
> >> > > > > > (as Alex pointed that it tried to avoid direct SQL
> >> > manipulation),
> >> > > > on
> >> > > > > > the other hand, giving the DAO abstraction, a limited amount
> >> > > > > > of
> >> > > > JDBC
> >> > > > > > should not matter too much either. With Spring and already
> >> > > > > > existing DAO abstraction, we can leave bigger ORM decision for
> >> > the
> >> > > future.
> >> > > > > >
> >> > > > > > In the long term, ORM choice to us seems to be secondary
> >> > > > > > consideration, giving the fact that our current custom ORM
> >> > > > > > implementation serves its purpose well enough in CloudStack.
> >> > But I
> >> > > > do
> >> > > > > > see the needs of more flexible dependency injection or
> >> > transaction
> >> > > > > > management framework in order to incorporate better
> >> > > > > > integration
> >> > > > with
> >> > > > > > external transactional systems like message queue servers. I
> >> > also
> >> > > > see
> >> > > > > > the needs of standardizing AOP patterns used in current
> >> > CloudStack
> >> > > > > > code base, Spring provides some good answers for that. So
> >> > > > > > there
> >> > is
> >> > > > a
> >> > > > > > possibility that it will be good for CloudStack to adopt it
> >> > like
> >> > > > many
> >> > > > > > other Java communities do, so that we can focus on our own
> >> > > > > > business logic and leave these external concerns to people who
> >> > are
> >> > > > > > doing it
> >> > > > for a
> >> > > > > living.
> >> > > > > >
> >> > > > > > Kelven
> >> > > > > >
> >> > > > > >
> >> > > > > > >
> >> > > > > > > --David
> >> > > > > [Rajesh Battala]
> >> > > > >
> >> > > > > Please let me know conclusion of the thread.
> >> > > > > I didn't see any reply to Kelven suggestions.
> >> > > > >
> >> > > > > Thanks
> >> > > > > Rajesh Battala
> >
>

RE: Hibernate

Posted by Rajesh Battala <ra...@citrix.com>.
Am working on it. 
Done removing EC2 from Hibernate dependency. Committed the patch locally and testing is almost done.
Will send patch for the same by tomorrow. 
Removing Hibernate dependency in S3 project is going on. I would be sending the patch for it by end of this week.

Thanks
Rajesh Battala

-----Original Message-----
From: David Nalley [mailto:david@gnsa.us] 
Sent: Thursday, August 09, 2012 8:43 PM
To: cloudstack-dev@incubator.apache.org
Subject: Re: Hibernate

Rajesh, is this done?

--David

On Mon, Jul 16, 2012 at 11:49 PM, Rajesh Battala <ra...@citrix.com> wrote:
> Yes Ewan, I would be doing this work.
>
> Thanks
> Rajesh Battala
>
>> -----Original Message-----
>> From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
>> Sent: Tuesday, July 17, 2012 9:03 AM
>> To: cloudstack-dev@incubator.apache.org
>> Subject: RE: Hibernate
>>
>> OK, good.  So it's a small job.  So is Rajesh doing that?
>>
>> Ewan.
>>
>> > -----Original Message-----
>> > From: Alex Huang [mailto:Alex.Huang@citrix.com]
>> > Sent: 16 July 2012 17:03
>> > To: cloudstack-dev@incubator.apache.org
>> > Subject: RE: Hibernate
>> >
>> > My understanding is it's one table and is already wrapped by a DAO.
>> > The DAO object uses hibernate underneath.  Don't think it's a big job.
>> >
>> > --Alex
>> >
>> > > -----Original Message-----
>> > > From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
>> > > Sent: Monday, July 16, 2012 4:43 PM
>> > > To: cloudstack-dev@incubator.apache.org
>> > > Subject: RE: Hibernate
>> > >
>> > > If I read this infinitely long thread correctly, the conclusion 
>> > > is
>> > that
>> > > CloudStack/awsapi needs to be rewritten to use the CloudStack DAO
>> > instead
>> > > of Hibernate.  Is that correct?
>> > >
>> > > If so, who is doing this work, and when?  That sounds like a big job.
>> > >
>> > > Thanks,
>> > >
>> > > Ewan.
>> > >
>> > > > -----Original Message-----
>> > > > From: Alex Huang [mailto:Alex.Huang@citrix.com]
>> > > > Sent: Monday, July 02, 2012 11:31 PM
>> > > > To: cloudstack-dev@incubator.apache.org
>> > > > Subject: RE: Hibernate
>> > > >
>> > > > Rajesh,
>> > > >
>> > > > You should use the existing CloudStack DAO framework.  If
>> > cloudstack
>> > > > will move to another ORM framework, it will have to be done in 
>> > > > such
>> > a
>> > > > fashion that everything above the DAO layer doesn't have to 
>> > > > change
>> > and
>> > > > the majority of the current DAO code do not have to change as well.
>> > > > Which would mean your code should migrate over along with the 
>> > > > rest
>> > of
>> > > > the changes.
>> > > >
>> > > > --Alex
>> > > >
>> > > > > -----Original Message-----
>> > > > > From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
>> > > > > Sent: Monday, July 02, 2012 10:59 PM
>> > > > > To: cloudstack-dev@incubator.apache.org
>> > > > > Subject: RE: Hibernate
>> > > > >
>> > > > >
>> > > > >
>> > > > > > -----Original Message-----
>> > > > > > From: Kelven Yang [mailto:kelven.yang@citrix.com]
>> > > > > > Sent: Saturday, June 30, 2012 3:31 AM
>> > > > > > To: cloudstack-dev@incubator.apache.org
>> > > > > > Subject: RE: Hibernate
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > > -----Original Message-----
>> > > > > > > From: David Nalley [mailto:david@gnsa.us]
>> > > > > > > Sent: Friday, June 29, 2012 10:37 AM
>> > > > > > > To: cloudstack-dev@incubator.apache.org
>> > > > > > > Subject: Re: Hibernate
>> > > > > > >
>> > > > > > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala 
>> > > > > > > <ra...@citrix.com> wrote:
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >> -----Original Message-----
>> > > > > > > >> From: David Nalley [mailto:david@gnsa.us]
>> > > > > > > >> Sent: Friday, June 29, 2012 8:40 PM
>> > > > > > > >> To: cloudstack-dev@incubator.apache.org
>> > > > > > > >> Subject: Re: Hibernate
>> > > > > > > >>
>> > > > > > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala 
>> > > > > > > >> <ra...@citrix.com>
>> > > > > > > >> wrote:
>> > > > > > > >> >
>> > > > > > > >> > Shall I proceed to replace Hibernate Framework with
>> > Spring
>> > > > JDBC.
>> > > > > > > >> >
>> > > > > > > >>
>> > > > > > > >> This is not a design decision to take lightly, or rush 
>> > > > > > > >> -
>> > as
>> > > > we've
>> > > > > > > >> talked about replacing the custom ORM that CloudStack 
>> > > > > > > >> uses
>> > as
>> > > > > > > >> well
>> > > > > > > >> - we'd want to make a decision on something that we 
>> > > > > > > >> are comfortable with
>> > > > > > > in that role as well.
>> > > > > > > >>
>> > > > > > > > [Rajesh Battala]
>> > > > > > > > So we are planning to implement some ORM framework for
>> > > > CloudStack
>> > > > > > also?
>> > > > > > > > If so, then we need to evaluate the available ORM
>> > frameworks
>> > > > for
>> > > > > > > > java
>> > > > > > > which are based on Apache License?
>> > > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > > I don't want to speak for Alex, but I have heard him 
>> > > > > > > mention such
>> > > > a
>> > > > > > > change number of times, and have seen it in his slides as
>> > well.
>> > > > > > >
>> > > > > > > But the larger sense is that if we are going to change
>> > something
>> > > > in
>> > > > > > > AWSAPI for communicating to the database, it should be
>> > something
>> > > > > > > that we are comfortable with adopting in the long term 
>> > > > > > > for
>> > the
>> > > > rest
>> > > > > > > of CloudStack, otherwise we'll end up with two different 
>> > > > > > > ways for connecting to the database, which is fail.
>> > > > > >
>> > > > > > For Rajesh's concern in the short term (to get rid of
>> > Hibernate),
>> > > > we
>> > > > > > basically have following options,
>> > > > > > 1) Make the project depend on utils.jar in CloudStack and 
>> > > > > > use
>> > > > existing
>> > > > > > CloudStack persistent layer.
>> > > > > > 2) Continue to make CloudBridge project independent
>> > > > > >     a) use direct JDBC
>> > > > > >     b) use Spring JDBC
>> > > > > >     c) use ORM framework on Spring (i.e. OpenJPA etc)
>> > > > > >
>> > > > > > I vote on 2-b for a short term resolution. For a couple of 
>> > > > > > reasons,
>> > > > > >
>> > > > > > The major reason is for adopting Spring, EC2/S3 API in the
>> > future
>> > > > may
>> > > > > > both need to support SOAP based web service API and REST 
>> > > > > > API,
>> > > > Spring
>> > > > > > comes with support of both, in addition, it provides 
>> > > > > > dependency injection, AOP and pluggable ORM framework, 
>> > > > > > distributed transaction
>> > > > > management, etc.
>> > > > > >
>> > > > > > CloudBridge project has a very simple data model (it has 
>> > > > > > only
>> > one
>> > > > > > table for EC2), original ORM (hibernate) usage is just for
>> > > > convenience
>> > > > > > (as Alex pointed that it tried to avoid direct SQL
>> > manipulation),
>> > > > on
>> > > > > > the other hand, giving the DAO abstraction, a limited 
>> > > > > > amount of
>> > > > JDBC
>> > > > > > should not matter too much either. With Spring and already 
>> > > > > > existing DAO abstraction, we can leave bigger ORM decision 
>> > > > > > for
>> > the
>> > > future.
>> > > > > >
>> > > > > > In the long term, ORM choice to us seems to be secondary 
>> > > > > > consideration, giving the fact that our current custom ORM 
>> > > > > > implementation serves its purpose well enough in CloudStack.
>> > But I
>> > > > do
>> > > > > > see the needs of more flexible dependency injection or
>> > transaction
>> > > > > > management framework in order to incorporate better 
>> > > > > > integration
>> > > > with
>> > > > > > external transactional systems like message queue servers. 
>> > > > > > I
>> > also
>> > > > see
>> > > > > > the needs of standardizing AOP patterns used in current
>> > CloudStack
>> > > > > > code base, Spring provides some good answers for that. So 
>> > > > > > there
>> > is
>> > > > a
>> > > > > > possibility that it will be good for CloudStack to adopt it
>> > like
>> > > > many
>> > > > > > other Java communities do, so that we can focus on our own 
>> > > > > > business logic and leave these external concerns to people 
>> > > > > > who
>> > are
>> > > > > > doing it
>> > > > for a
>> > > > > living.
>> > > > > >
>> > > > > > Kelven
>> > > > > >
>> > > > > >
>> > > > > > >
>> > > > > > > --David
>> > > > > [Rajesh Battala]
>> > > > >
>> > > > > Please let me know conclusion of the thread.
>> > > > > I didn't see any reply to Kelven suggestions.
>> > > > >
>> > > > > Thanks
>> > > > > Rajesh Battala
>

Re: Hibernate

Posted by David Nalley <da...@gnsa.us>.
Rajesh, is this done?

--David

On Mon, Jul 16, 2012 at 11:49 PM, Rajesh Battala
<ra...@citrix.com> wrote:
> Yes Ewan, I would be doing this work.
>
> Thanks
> Rajesh Battala
>
>> -----Original Message-----
>> From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
>> Sent: Tuesday, July 17, 2012 9:03 AM
>> To: cloudstack-dev@incubator.apache.org
>> Subject: RE: Hibernate
>>
>> OK, good.  So it's a small job.  So is Rajesh doing that?
>>
>> Ewan.
>>
>> > -----Original Message-----
>> > From: Alex Huang [mailto:Alex.Huang@citrix.com]
>> > Sent: 16 July 2012 17:03
>> > To: cloudstack-dev@incubator.apache.org
>> > Subject: RE: Hibernate
>> >
>> > My understanding is it's one table and is already wrapped by a DAO.
>> > The DAO object uses hibernate underneath.  Don't think it's a big job.
>> >
>> > --Alex
>> >
>> > > -----Original Message-----
>> > > From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
>> > > Sent: Monday, July 16, 2012 4:43 PM
>> > > To: cloudstack-dev@incubator.apache.org
>> > > Subject: RE: Hibernate
>> > >
>> > > If I read this infinitely long thread correctly, the conclusion is
>> > that
>> > > CloudStack/awsapi needs to be rewritten to use the CloudStack DAO
>> > instead
>> > > of Hibernate.  Is that correct?
>> > >
>> > > If so, who is doing this work, and when?  That sounds like a big job.
>> > >
>> > > Thanks,
>> > >
>> > > Ewan.
>> > >
>> > > > -----Original Message-----
>> > > > From: Alex Huang [mailto:Alex.Huang@citrix.com]
>> > > > Sent: Monday, July 02, 2012 11:31 PM
>> > > > To: cloudstack-dev@incubator.apache.org
>> > > > Subject: RE: Hibernate
>> > > >
>> > > > Rajesh,
>> > > >
>> > > > You should use the existing CloudStack DAO framework.  If
>> > cloudstack
>> > > > will move to another ORM framework, it will have to be done in
>> > > > such
>> > a
>> > > > fashion that everything above the DAO layer doesn't have to change
>> > and
>> > > > the majority of the current DAO code do not have to change as well.
>> > > > Which would mean your code should migrate over along with the rest
>> > of
>> > > > the changes.
>> > > >
>> > > > --Alex
>> > > >
>> > > > > -----Original Message-----
>> > > > > From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
>> > > > > Sent: Monday, July 02, 2012 10:59 PM
>> > > > > To: cloudstack-dev@incubator.apache.org
>> > > > > Subject: RE: Hibernate
>> > > > >
>> > > > >
>> > > > >
>> > > > > > -----Original Message-----
>> > > > > > From: Kelven Yang [mailto:kelven.yang@citrix.com]
>> > > > > > Sent: Saturday, June 30, 2012 3:31 AM
>> > > > > > To: cloudstack-dev@incubator.apache.org
>> > > > > > Subject: RE: Hibernate
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > > -----Original Message-----
>> > > > > > > From: David Nalley [mailto:david@gnsa.us]
>> > > > > > > Sent: Friday, June 29, 2012 10:37 AM
>> > > > > > > To: cloudstack-dev@incubator.apache.org
>> > > > > > > Subject: Re: Hibernate
>> > > > > > >
>> > > > > > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
>> > > > > > > <ra...@citrix.com> wrote:
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >> -----Original Message-----
>> > > > > > > >> From: David Nalley [mailto:david@gnsa.us]
>> > > > > > > >> Sent: Friday, June 29, 2012 8:40 PM
>> > > > > > > >> To: cloudstack-dev@incubator.apache.org
>> > > > > > > >> Subject: Re: Hibernate
>> > > > > > > >>
>> > > > > > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
>> > > > > > > >> <ra...@citrix.com>
>> > > > > > > >> wrote:
>> > > > > > > >> >
>> > > > > > > >> > Shall I proceed to replace Hibernate Framework with
>> > Spring
>> > > > JDBC.
>> > > > > > > >> >
>> > > > > > > >>
>> > > > > > > >> This is not a design decision to take lightly, or rush -
>> > as
>> > > > we've
>> > > > > > > >> talked about replacing the custom ORM that CloudStack
>> > > > > > > >> uses
>> > as
>> > > > > > > >> well
>> > > > > > > >> - we'd want to make a decision on something that we are
>> > > > > > > >> comfortable with
>> > > > > > > in that role as well.
>> > > > > > > >>
>> > > > > > > > [Rajesh Battala]
>> > > > > > > > So we are planning to implement some ORM framework for
>> > > > CloudStack
>> > > > > > also?
>> > > > > > > > If so, then we need to evaluate the available ORM
>> > frameworks
>> > > > for
>> > > > > > > > java
>> > > > > > > which are based on Apache License?
>> > > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > > I don't want to speak for Alex, but I have heard him mention
>> > > > > > > such
>> > > > a
>> > > > > > > change number of times, and have seen it in his slides as
>> > well.
>> > > > > > >
>> > > > > > > But the larger sense is that if we are going to change
>> > something
>> > > > in
>> > > > > > > AWSAPI for communicating to the database, it should be
>> > something
>> > > > > > > that we are comfortable with adopting in the long term for
>> > the
>> > > > rest
>> > > > > > > of CloudStack, otherwise we'll end up with two different
>> > > > > > > ways for connecting to the database, which is fail.
>> > > > > >
>> > > > > > For Rajesh's concern in the short term (to get rid of
>> > Hibernate),
>> > > > we
>> > > > > > basically have following options,
>> > > > > > 1) Make the project depend on utils.jar in CloudStack and use
>> > > > existing
>> > > > > > CloudStack persistent layer.
>> > > > > > 2) Continue to make CloudBridge project independent
>> > > > > >     a) use direct JDBC
>> > > > > >     b) use Spring JDBC
>> > > > > >     c) use ORM framework on Spring (i.e. OpenJPA etc)
>> > > > > >
>> > > > > > I vote on 2-b for a short term resolution. For a couple of
>> > > > > > reasons,
>> > > > > >
>> > > > > > The major reason is for adopting Spring, EC2/S3 API in the
>> > future
>> > > > may
>> > > > > > both need to support SOAP based web service API and REST API,
>> > > > Spring
>> > > > > > comes with support of both, in addition, it provides
>> > > > > > dependency injection, AOP and pluggable ORM framework,
>> > > > > > distributed transaction
>> > > > > management, etc.
>> > > > > >
>> > > > > > CloudBridge project has a very simple data model (it has only
>> > one
>> > > > > > table for EC2), original ORM (hibernate) usage is just for
>> > > > convenience
>> > > > > > (as Alex pointed that it tried to avoid direct SQL
>> > manipulation),
>> > > > on
>> > > > > > the other hand, giving the DAO abstraction, a limited amount
>> > > > > > of
>> > > > JDBC
>> > > > > > should not matter too much either. With Spring and already
>> > > > > > existing DAO abstraction, we can leave bigger ORM decision for
>> > the
>> > > future.
>> > > > > >
>> > > > > > In the long term, ORM choice to us seems to be secondary
>> > > > > > consideration, giving the fact that our current custom ORM
>> > > > > > implementation serves its purpose well enough in CloudStack.
>> > But I
>> > > > do
>> > > > > > see the needs of more flexible dependency injection or
>> > transaction
>> > > > > > management framework in order to incorporate better
>> > > > > > integration
>> > > > with
>> > > > > > external transactional systems like message queue servers. I
>> > also
>> > > > see
>> > > > > > the needs of standardizing AOP patterns used in current
>> > CloudStack
>> > > > > > code base, Spring provides some good answers for that. So
>> > > > > > there
>> > is
>> > > > a
>> > > > > > possibility that it will be good for CloudStack to adopt it
>> > like
>> > > > many
>> > > > > > other Java communities do, so that we can focus on our own
>> > > > > > business logic and leave these external concerns to people who
>> > are
>> > > > > > doing it
>> > > > for a
>> > > > > living.
>> > > > > >
>> > > > > > Kelven
>> > > > > >
>> > > > > >
>> > > > > > >
>> > > > > > > --David
>> > > > > [Rajesh Battala]
>> > > > >
>> > > > > Please let me know conclusion of the thread.
>> > > > > I didn't see any reply to Kelven suggestions.
>> > > > >
>> > > > > Thanks
>> > > > > Rajesh Battala
>

RE: Hibernate

Posted by Rajesh Battala <ra...@citrix.com>.
Yes Ewan, I would be doing this work. 

Thanks
Rajesh Battala

> -----Original Message-----
> From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
> Sent: Tuesday, July 17, 2012 9:03 AM
> To: cloudstack-dev@incubator.apache.org
> Subject: RE: Hibernate
> 
> OK, good.  So it's a small job.  So is Rajesh doing that?
> 
> Ewan.
> 
> > -----Original Message-----
> > From: Alex Huang [mailto:Alex.Huang@citrix.com]
> > Sent: 16 July 2012 17:03
> > To: cloudstack-dev@incubator.apache.org
> > Subject: RE: Hibernate
> >
> > My understanding is it's one table and is already wrapped by a DAO.
> > The DAO object uses hibernate underneath.  Don't think it's a big job.
> >
> > --Alex
> >
> > > -----Original Message-----
> > > From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
> > > Sent: Monday, July 16, 2012 4:43 PM
> > > To: cloudstack-dev@incubator.apache.org
> > > Subject: RE: Hibernate
> > >
> > > If I read this infinitely long thread correctly, the conclusion is
> > that
> > > CloudStack/awsapi needs to be rewritten to use the CloudStack DAO
> > instead
> > > of Hibernate.  Is that correct?
> > >
> > > If so, who is doing this work, and when?  That sounds like a big job.
> > >
> > > Thanks,
> > >
> > > Ewan.
> > >
> > > > -----Original Message-----
> > > > From: Alex Huang [mailto:Alex.Huang@citrix.com]
> > > > Sent: Monday, July 02, 2012 11:31 PM
> > > > To: cloudstack-dev@incubator.apache.org
> > > > Subject: RE: Hibernate
> > > >
> > > > Rajesh,
> > > >
> > > > You should use the existing CloudStack DAO framework.  If
> > cloudstack
> > > > will move to another ORM framework, it will have to be done in
> > > > such
> > a
> > > > fashion that everything above the DAO layer doesn't have to change
> > and
> > > > the majority of the current DAO code do not have to change as well.
> > > > Which would mean your code should migrate over along with the rest
> > of
> > > > the changes.
> > > >
> > > > --Alex
> > > >
> > > > > -----Original Message-----
> > > > > From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
> > > > > Sent: Monday, July 02, 2012 10:59 PM
> > > > > To: cloudstack-dev@incubator.apache.org
> > > > > Subject: RE: Hibernate
> > > > >
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Kelven Yang [mailto:kelven.yang@citrix.com]
> > > > > > Sent: Saturday, June 30, 2012 3:31 AM
> > > > > > To: cloudstack-dev@incubator.apache.org
> > > > > > Subject: RE: Hibernate
> > > > > >
> > > > > >
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: David Nalley [mailto:david@gnsa.us]
> > > > > > > Sent: Friday, June 29, 2012 10:37 AM
> > > > > > > To: cloudstack-dev@incubator.apache.org
> > > > > > > Subject: Re: Hibernate
> > > > > > >
> > > > > > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
> > > > > > > <ra...@citrix.com> wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > >> -----Original Message-----
> > > > > > > >> From: David Nalley [mailto:david@gnsa.us]
> > > > > > > >> Sent: Friday, June 29, 2012 8:40 PM
> > > > > > > >> To: cloudstack-dev@incubator.apache.org
> > > > > > > >> Subject: Re: Hibernate
> > > > > > > >>
> > > > > > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
> > > > > > > >> <ra...@citrix.com>
> > > > > > > >> wrote:
> > > > > > > >> >
> > > > > > > >> > Shall I proceed to replace Hibernate Framework with
> > Spring
> > > > JDBC.
> > > > > > > >> >
> > > > > > > >>
> > > > > > > >> This is not a design decision to take lightly, or rush -
> > as
> > > > we've
> > > > > > > >> talked about replacing the custom ORM that CloudStack
> > > > > > > >> uses
> > as
> > > > > > > >> well
> > > > > > > >> - we'd want to make a decision on something that we are
> > > > > > > >> comfortable with
> > > > > > > in that role as well.
> > > > > > > >>
> > > > > > > > [Rajesh Battala]
> > > > > > > > So we are planning to implement some ORM framework for
> > > > CloudStack
> > > > > > also?
> > > > > > > > If so, then we need to evaluate the available ORM
> > frameworks
> > > > for
> > > > > > > > java
> > > > > > > which are based on Apache License?
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I don't want to speak for Alex, but I have heard him mention
> > > > > > > such
> > > > a
> > > > > > > change number of times, and have seen it in his slides as
> > well.
> > > > > > >
> > > > > > > But the larger sense is that if we are going to change
> > something
> > > > in
> > > > > > > AWSAPI for communicating to the database, it should be
> > something
> > > > > > > that we are comfortable with adopting in the long term for
> > the
> > > > rest
> > > > > > > of CloudStack, otherwise we'll end up with two different
> > > > > > > ways for connecting to the database, which is fail.
> > > > > >
> > > > > > For Rajesh's concern in the short term (to get rid of
> > Hibernate),
> > > > we
> > > > > > basically have following options,
> > > > > > 1) Make the project depend on utils.jar in CloudStack and use
> > > > existing
> > > > > > CloudStack persistent layer.
> > > > > > 2) Continue to make CloudBridge project independent
> > > > > > 	a) use direct JDBC
> > > > > > 	b) use Spring JDBC
> > > > > > 	c) use ORM framework on Spring (i.e. OpenJPA etc)
> > > > > >
> > > > > > I vote on 2-b for a short term resolution. For a couple of
> > > > > > reasons,
> > > > > >
> > > > > > The major reason is for adopting Spring, EC2/S3 API in the
> > future
> > > > may
> > > > > > both need to support SOAP based web service API and REST API,
> > > > Spring
> > > > > > comes with support of both, in addition, it provides
> > > > > > dependency injection, AOP and pluggable ORM framework,
> > > > > > distributed transaction
> > > > > management, etc.
> > > > > >
> > > > > > CloudBridge project has a very simple data model (it has only
> > one
> > > > > > table for EC2), original ORM (hibernate) usage is just for
> > > > convenience
> > > > > > (as Alex pointed that it tried to avoid direct SQL
> > manipulation),
> > > > on
> > > > > > the other hand, giving the DAO abstraction, a limited amount
> > > > > > of
> > > > JDBC
> > > > > > should not matter too much either. With Spring and already
> > > > > > existing DAO abstraction, we can leave bigger ORM decision for
> > the
> > > future.
> > > > > >
> > > > > > In the long term, ORM choice to us seems to be secondary
> > > > > > consideration, giving the fact that our current custom ORM
> > > > > > implementation serves its purpose well enough in CloudStack.
> > But I
> > > > do
> > > > > > see the needs of more flexible dependency injection or
> > transaction
> > > > > > management framework in order to incorporate better
> > > > > > integration
> > > > with
> > > > > > external transactional systems like message queue servers. I
> > also
> > > > see
> > > > > > the needs of standardizing AOP patterns used in current
> > CloudStack
> > > > > > code base, Spring provides some good answers for that. So
> > > > > > there
> > is
> > > > a
> > > > > > possibility that it will be good for CloudStack to adopt it
> > like
> > > > many
> > > > > > other Java communities do, so that we can focus on our own
> > > > > > business logic and leave these external concerns to people who
> > are
> > > > > > doing it
> > > > for a
> > > > > living.
> > > > > >
> > > > > > Kelven
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > --David
> > > > > [Rajesh Battala]
> > > > >
> > > > > Please let me know conclusion of the thread.
> > > > > I didn't see any reply to Kelven suggestions.
> > > > >
> > > > > Thanks
> > > > > Rajesh Battala


RE: Hibernate

Posted by Ewan Mellor <Ew...@eu.citrix.com>.
OK, good.  So it's a small job.  So is Rajesh doing that?

Ewan.

> -----Original Message-----
> From: Alex Huang [mailto:Alex.Huang@citrix.com]
> Sent: 16 July 2012 17:03
> To: cloudstack-dev@incubator.apache.org
> Subject: RE: Hibernate
> 
> My understanding is it's one table and is already wrapped by a DAO.
> The DAO object uses hibernate underneath.  Don't think it's a big job.
> 
> --Alex
> 
> > -----Original Message-----
> > From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
> > Sent: Monday, July 16, 2012 4:43 PM
> > To: cloudstack-dev@incubator.apache.org
> > Subject: RE: Hibernate
> >
> > If I read this infinitely long thread correctly, the conclusion is
> that
> > CloudStack/awsapi needs to be rewritten to use the CloudStack DAO
> instead
> > of Hibernate.  Is that correct?
> >
> > If so, who is doing this work, and when?  That sounds like a big job.
> >
> > Thanks,
> >
> > Ewan.
> >
> > > -----Original Message-----
> > > From: Alex Huang [mailto:Alex.Huang@citrix.com]
> > > Sent: Monday, July 02, 2012 11:31 PM
> > > To: cloudstack-dev@incubator.apache.org
> > > Subject: RE: Hibernate
> > >
> > > Rajesh,
> > >
> > > You should use the existing CloudStack DAO framework.  If
> cloudstack
> > > will move to another ORM framework, it will have to be done in such
> a
> > > fashion that everything above the DAO layer doesn't have to change
> and
> > > the majority of the current DAO code do not have to change as well.
> > > Which would mean your code should migrate over along with the rest
> of
> > > the changes.
> > >
> > > --Alex
> > >
> > > > -----Original Message-----
> > > > From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
> > > > Sent: Monday, July 02, 2012 10:59 PM
> > > > To: cloudstack-dev@incubator.apache.org
> > > > Subject: RE: Hibernate
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Kelven Yang [mailto:kelven.yang@citrix.com]
> > > > > Sent: Saturday, June 30, 2012 3:31 AM
> > > > > To: cloudstack-dev@incubator.apache.org
> > > > > Subject: RE: Hibernate
> > > > >
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: David Nalley [mailto:david@gnsa.us]
> > > > > > Sent: Friday, June 29, 2012 10:37 AM
> > > > > > To: cloudstack-dev@incubator.apache.org
> > > > > > Subject: Re: Hibernate
> > > > > >
> > > > > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
> > > > > > <ra...@citrix.com> wrote:
> > > > > > >
> > > > > > >
> > > > > > >> -----Original Message-----
> > > > > > >> From: David Nalley [mailto:david@gnsa.us]
> > > > > > >> Sent: Friday, June 29, 2012 8:40 PM
> > > > > > >> To: cloudstack-dev@incubator.apache.org
> > > > > > >> Subject: Re: Hibernate
> > > > > > >>
> > > > > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
> > > > > > >> <ra...@citrix.com>
> > > > > > >> wrote:
> > > > > > >> >
> > > > > > >> > Shall I proceed to replace Hibernate Framework with
> Spring
> > > JDBC.
> > > > > > >> >
> > > > > > >>
> > > > > > >> This is not a design decision to take lightly, or rush -
> as
> > > we've
> > > > > > >> talked about replacing the custom ORM that CloudStack uses
> as
> > > > > > >> well
> > > > > > >> - we'd want to make a decision on something that we are
> > > > > > >> comfortable with
> > > > > > in that role as well.
> > > > > > >>
> > > > > > > [Rajesh Battala]
> > > > > > > So we are planning to implement some ORM framework for
> > > CloudStack
> > > > > also?
> > > > > > > If so, then we need to evaluate the available ORM
> frameworks
> > > for
> > > > > > > java
> > > > > > which are based on Apache License?
> > > > > > >
> > > > > >
> > > > > >
> > > > > > I don't want to speak for Alex, but I have heard him mention
> > > > > > such
> > > a
> > > > > > change number of times, and have seen it in his slides as
> well.
> > > > > >
> > > > > > But the larger sense is that if we are going to change
> something
> > > in
> > > > > > AWSAPI for communicating to the database, it should be
> something
> > > > > > that we are comfortable with adopting in the long term for
> the
> > > rest
> > > > > > of CloudStack, otherwise we'll end up with two different ways
> > > > > > for connecting to the database, which is fail.
> > > > >
> > > > > For Rajesh's concern in the short term (to get rid of
> Hibernate),
> > > we
> > > > > basically have following options,
> > > > > 1) Make the project depend on utils.jar in CloudStack and use
> > > existing
> > > > > CloudStack persistent layer.
> > > > > 2) Continue to make CloudBridge project independent
> > > > > 	a) use direct JDBC
> > > > > 	b) use Spring JDBC
> > > > > 	c) use ORM framework on Spring (i.e. OpenJPA etc)
> > > > >
> > > > > I vote on 2-b for a short term resolution. For a couple of
> > > > > reasons,
> > > > >
> > > > > The major reason is for adopting Spring, EC2/S3 API in the
> future
> > > may
> > > > > both need to support SOAP based web service API and REST API,
> > > Spring
> > > > > comes with support of both, in addition, it provides dependency
> > > > > injection, AOP and pluggable ORM framework, distributed
> > > > > transaction
> > > > management, etc.
> > > > >
> > > > > CloudBridge project has a very simple data model (it has only
> one
> > > > > table for EC2), original ORM (hibernate) usage is just for
> > > convenience
> > > > > (as Alex pointed that it tried to avoid direct SQL
> manipulation),
> > > on
> > > > > the other hand, giving the DAO abstraction, a limited amount of
> > > JDBC
> > > > > should not matter too much either. With Spring and already
> > > > > existing DAO abstraction, we can leave bigger ORM decision for
> the
> > future.
> > > > >
> > > > > In the long term, ORM choice to us seems to be secondary
> > > > > consideration, giving the fact that our current custom ORM
> > > > > implementation serves its purpose well enough in CloudStack.
> But I
> > > do
> > > > > see the needs of more flexible dependency injection or
> transaction
> > > > > management framework in order to incorporate better integration
> > > with
> > > > > external transactional systems like message queue servers. I
> also
> > > see
> > > > > the needs of standardizing AOP patterns used in current
> CloudStack
> > > > > code base, Spring provides some good answers for that. So there
> is
> > > a
> > > > > possibility that it will be good for CloudStack to adopt it
> like
> > > many
> > > > > other Java communities do, so that we can focus on our own
> > > > > business logic and leave these external concerns to people who
> are
> > > > > doing it
> > > for a
> > > > living.
> > > > >
> > > > > Kelven
> > > > >
> > > > >
> > > > > >
> > > > > > --David
> > > > [Rajesh Battala]
> > > >
> > > > Please let me know conclusion of the thread.
> > > > I didn't see any reply to Kelven suggestions.
> > > >
> > > > Thanks
> > > > Rajesh Battala


RE: Hibernate

Posted by Alex Huang <Al...@citrix.com>.
My understanding is it's one table and is already wrapped by a DAO.  The DAO object uses hibernate underneath.  Don't think it's a big job. 

--Alex

> -----Original Message-----
> From: Ewan Mellor [mailto:Ewan.Mellor@eu.citrix.com]
> Sent: Monday, July 16, 2012 4:43 PM
> To: cloudstack-dev@incubator.apache.org
> Subject: RE: Hibernate
> 
> If I read this infinitely long thread correctly, the conclusion is that
> CloudStack/awsapi needs to be rewritten to use the CloudStack DAO instead
> of Hibernate.  Is that correct?
> 
> If so, who is doing this work, and when?  That sounds like a big job.
> 
> Thanks,
> 
> Ewan.
> 
> > -----Original Message-----
> > From: Alex Huang [mailto:Alex.Huang@citrix.com]
> > Sent: Monday, July 02, 2012 11:31 PM
> > To: cloudstack-dev@incubator.apache.org
> > Subject: RE: Hibernate
> >
> > Rajesh,
> >
> > You should use the existing CloudStack DAO framework.  If cloudstack
> > will move to another ORM framework, it will have to be done in such a
> > fashion that everything above the DAO layer doesn't have to change and
> > the majority of the current DAO code do not have to change as well.
> > Which would mean your code should migrate over along with the rest of
> > the changes.
> >
> > --Alex
> >
> > > -----Original Message-----
> > > From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
> > > Sent: Monday, July 02, 2012 10:59 PM
> > > To: cloudstack-dev@incubator.apache.org
> > > Subject: RE: Hibernate
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Kelven Yang [mailto:kelven.yang@citrix.com]
> > > > Sent: Saturday, June 30, 2012 3:31 AM
> > > > To: cloudstack-dev@incubator.apache.org
> > > > Subject: RE: Hibernate
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: David Nalley [mailto:david@gnsa.us]
> > > > > Sent: Friday, June 29, 2012 10:37 AM
> > > > > To: cloudstack-dev@incubator.apache.org
> > > > > Subject: Re: Hibernate
> > > > >
> > > > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
> > > > > <ra...@citrix.com> wrote:
> > > > > >
> > > > > >
> > > > > >> -----Original Message-----
> > > > > >> From: David Nalley [mailto:david@gnsa.us]
> > > > > >> Sent: Friday, June 29, 2012 8:40 PM
> > > > > >> To: cloudstack-dev@incubator.apache.org
> > > > > >> Subject: Re: Hibernate
> > > > > >>
> > > > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
> > > > > >> <ra...@citrix.com>
> > > > > >> wrote:
> > > > > >> >
> > > > > >> > Shall I proceed to replace Hibernate Framework with Spring
> > JDBC.
> > > > > >> >
> > > > > >>
> > > > > >> This is not a design decision to take lightly, or rush - as
> > we've
> > > > > >> talked about replacing the custom ORM that CloudStack uses as
> > > > > >> well
> > > > > >> - we'd want to make a decision on something that we are
> > > > > >> comfortable with
> > > > > in that role as well.
> > > > > >>
> > > > > > [Rajesh Battala]
> > > > > > So we are planning to implement some ORM framework for
> > CloudStack
> > > > also?
> > > > > > If so, then we need to evaluate the available ORM frameworks
> > for
> > > > > > java
> > > > > which are based on Apache License?
> > > > > >
> > > > >
> > > > >
> > > > > I don't want to speak for Alex, but I have heard him mention
> > > > > such
> > a
> > > > > change number of times, and have seen it in his slides as well.
> > > > >
> > > > > But the larger sense is that if we are going to change something
> > in
> > > > > AWSAPI for communicating to the database, it should be something
> > > > > that we are comfortable with adopting in the long term for the
> > rest
> > > > > of CloudStack, otherwise we'll end up with two different ways
> > > > > for connecting to the database, which is fail.
> > > >
> > > > For Rajesh's concern in the short term (to get rid of Hibernate),
> > we
> > > > basically have following options,
> > > > 1) Make the project depend on utils.jar in CloudStack and use
> > existing
> > > > CloudStack persistent layer.
> > > > 2) Continue to make CloudBridge project independent
> > > > 	a) use direct JDBC
> > > > 	b) use Spring JDBC
> > > > 	c) use ORM framework on Spring (i.e. OpenJPA etc)
> > > >
> > > > I vote on 2-b for a short term resolution. For a couple of
> > > > reasons,
> > > >
> > > > The major reason is for adopting Spring, EC2/S3 API in the future
> > may
> > > > both need to support SOAP based web service API and REST API,
> > Spring
> > > > comes with support of both, in addition, it provides dependency
> > > > injection, AOP and pluggable ORM framework, distributed
> > > > transaction
> > > management, etc.
> > > >
> > > > CloudBridge project has a very simple data model (it has only one
> > > > table for EC2), original ORM (hibernate) usage is just for
> > convenience
> > > > (as Alex pointed that it tried to avoid direct SQL manipulation),
> > on
> > > > the other hand, giving the DAO abstraction, a limited amount of
> > JDBC
> > > > should not matter too much either. With Spring and already
> > > > existing DAO abstraction, we can leave bigger ORM decision for the
> future.
> > > >
> > > > In the long term, ORM choice to us seems to be secondary
> > > > consideration, giving the fact that our current custom ORM
> > > > implementation serves its purpose well enough in CloudStack. But I
> > do
> > > > see the needs of more flexible dependency injection or transaction
> > > > management framework in order to incorporate better integration
> > with
> > > > external transactional systems like message queue servers. I also
> > see
> > > > the needs of standardizing AOP patterns used in current CloudStack
> > > > code base, Spring provides some good answers for that. So there is
> > a
> > > > possibility that it will be good for CloudStack to adopt it like
> > many
> > > > other Java communities do, so that we can focus on our own
> > > > business logic and leave these external concerns to people who are
> > > > doing it
> > for a
> > > living.
> > > >
> > > > Kelven
> > > >
> > > >
> > > > >
> > > > > --David
> > > [Rajesh Battala]
> > >
> > > Please let me know conclusion of the thread.
> > > I didn't see any reply to Kelven suggestions.
> > >
> > > Thanks
> > > Rajesh Battala


RE: Hibernate

Posted by Ewan Mellor <Ew...@eu.citrix.com>.
If I read this infinitely long thread correctly, the conclusion is that CloudStack/awsapi needs to be rewritten to use the CloudStack DAO instead of Hibernate.  Is that correct?

If so, who is doing this work, and when?  That sounds like a big job.

Thanks,

Ewan.

> -----Original Message-----
> From: Alex Huang [mailto:Alex.Huang@citrix.com]
> Sent: Monday, July 02, 2012 11:31 PM
> To: cloudstack-dev@incubator.apache.org
> Subject: RE: Hibernate
> 
> Rajesh,
> 
> You should use the existing CloudStack DAO framework.  If cloudstack
> will move to another ORM framework, it will have to be done in such a
> fashion that everything above the DAO layer doesn't have to change and
> the majority of the current DAO code do not have to change as well.
> Which would mean your code should migrate over along with the rest of
> the changes.
> 
> --Alex
> 
> > -----Original Message-----
> > From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
> > Sent: Monday, July 02, 2012 10:59 PM
> > To: cloudstack-dev@incubator.apache.org
> > Subject: RE: Hibernate
> >
> >
> >
> > > -----Original Message-----
> > > From: Kelven Yang [mailto:kelven.yang@citrix.com]
> > > Sent: Saturday, June 30, 2012 3:31 AM
> > > To: cloudstack-dev@incubator.apache.org
> > > Subject: RE: Hibernate
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: David Nalley [mailto:david@gnsa.us]
> > > > Sent: Friday, June 29, 2012 10:37 AM
> > > > To: cloudstack-dev@incubator.apache.org
> > > > Subject: Re: Hibernate
> > > >
> > > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
> > > > <ra...@citrix.com> wrote:
> > > > >
> > > > >
> > > > >> -----Original Message-----
> > > > >> From: David Nalley [mailto:david@gnsa.us]
> > > > >> Sent: Friday, June 29, 2012 8:40 PM
> > > > >> To: cloudstack-dev@incubator.apache.org
> > > > >> Subject: Re: Hibernate
> > > > >>
> > > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
> > > > >> <ra...@citrix.com>
> > > > >> wrote:
> > > > >> >
> > > > >> > Shall I proceed to replace Hibernate Framework with Spring
> JDBC.
> > > > >> >
> > > > >>
> > > > >> This is not a design decision to take lightly, or rush - as
> we've
> > > > >> talked about replacing the custom ORM that CloudStack uses as
> > > > >> well
> > > > >> - we'd want to make a decision on something that we are
> > > > >> comfortable with
> > > > in that role as well.
> > > > >>
> > > > > [Rajesh Battala]
> > > > > So we are planning to implement some ORM framework for
> CloudStack
> > > also?
> > > > > If so, then we need to evaluate the available ORM frameworks
> for
> > > > > java
> > > > which are based on Apache License?
> > > > >
> > > >
> > > >
> > > > I don't want to speak for Alex, but I have heard him mention such
> a
> > > > change number of times, and have seen it in his slides as well.
> > > >
> > > > But the larger sense is that if we are going to change something
> in
> > > > AWSAPI for communicating to the database, it should be something
> > > > that we are comfortable with adopting in the long term for the
> rest
> > > > of CloudStack, otherwise we'll end up with two different ways for
> > > > connecting to the database, which is fail.
> > >
> > > For Rajesh's concern in the short term (to get rid of Hibernate),
> we
> > > basically have following options,
> > > 1) Make the project depend on utils.jar in CloudStack and use
> existing
> > > CloudStack persistent layer.
> > > 2) Continue to make CloudBridge project independent
> > > 	a) use direct JDBC
> > > 	b) use Spring JDBC
> > > 	c) use ORM framework on Spring (i.e. OpenJPA etc)
> > >
> > > I vote on 2-b for a short term resolution. For a couple of reasons,
> > >
> > > The major reason is for adopting Spring, EC2/S3 API in the future
> may
> > > both need to support SOAP based web service API and REST API,
> Spring
> > > comes with support of both, in addition, it provides dependency
> > > injection, AOP and pluggable ORM framework, distributed transaction
> > management, etc.
> > >
> > > CloudBridge project has a very simple data model (it has only one
> > > table for EC2), original ORM (hibernate) usage is just for
> convenience
> > > (as Alex pointed that it tried to avoid direct SQL manipulation),
> on
> > > the other hand, giving the DAO abstraction, a limited amount of
> JDBC
> > > should not matter too much either. With Spring and already existing
> > > DAO abstraction, we can leave bigger ORM decision for the future.
> > >
> > > In the long term, ORM choice to us seems to be secondary
> > > consideration, giving the fact that our current custom ORM
> > > implementation serves its purpose well enough in CloudStack. But I
> do
> > > see the needs of more flexible dependency injection or transaction
> > > management framework in order to incorporate better integration
> with
> > > external transactional systems like message queue servers. I also
> see
> > > the needs of standardizing AOP patterns used in current CloudStack
> > > code base, Spring provides some good answers for that. So there is
> a
> > > possibility that it will be good for CloudStack to adopt it like
> many
> > > other Java communities do, so that we can focus on our own business
> > > logic and leave these external concerns to people who are doing it
> for a
> > living.
> > >
> > > Kelven
> > >
> > >
> > > >
> > > > --David
> > [Rajesh Battala]
> >
> > Please let me know conclusion of the thread.
> > I didn't see any reply to Kelven suggestions.
> >
> > Thanks
> > Rajesh Battala


RE: Hibernate

Posted by Alex Huang <Al...@citrix.com>.
Rajesh,

You should use the existing CloudStack DAO framework.  If cloudstack will move to another ORM framework, it will have to be done in such a fashion that everything above the DAO layer doesn't have to change and the majority of the current DAO code do not have to change as well.  Which would mean your code should migrate over along with the rest of the changes.

--Alex

> -----Original Message-----
> From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
> Sent: Monday, July 02, 2012 10:59 PM
> To: cloudstack-dev@incubator.apache.org
> Subject: RE: Hibernate
> 
> 
> 
> > -----Original Message-----
> > From: Kelven Yang [mailto:kelven.yang@citrix.com]
> > Sent: Saturday, June 30, 2012 3:31 AM
> > To: cloudstack-dev@incubator.apache.org
> > Subject: RE: Hibernate
> >
> >
> >
> > > -----Original Message-----
> > > From: David Nalley [mailto:david@gnsa.us]
> > > Sent: Friday, June 29, 2012 10:37 AM
> > > To: cloudstack-dev@incubator.apache.org
> > > Subject: Re: Hibernate
> > >
> > > On Fri, Jun 29, 2012 at 12:13 PM, Rajesh Battala
> > > <ra...@citrix.com> wrote:
> > > >
> > > >
> > > >> -----Original Message-----
> > > >> From: David Nalley [mailto:david@gnsa.us]
> > > >> Sent: Friday, June 29, 2012 8:40 PM
> > > >> To: cloudstack-dev@incubator.apache.org
> > > >> Subject: Re: Hibernate
> > > >>
> > > >> On Fri, Jun 29, 2012 at 9:27 AM, Rajesh Battala
> > > >> <ra...@citrix.com>
> > > >> wrote:
> > > >> >
> > > >> > Shall I proceed to replace Hibernate Framework with Spring JDBC.
> > > >> >
> > > >>
> > > >> This is not a design decision to take lightly, or rush - as we've
> > > >> talked about replacing the custom ORM that CloudStack uses as
> > > >> well
> > > >> - we'd want to make a decision on something that we are
> > > >> comfortable with
> > > in that role as well.
> > > >>
> > > > [Rajesh Battala]
> > > > So we are planning to implement some ORM framework for CloudStack
> > also?
> > > > If so, then we need to evaluate the available ORM frameworks for
> > > > java
> > > which are based on Apache License?
> > > >
> > >
> > >
> > > I don't want to speak for Alex, but I have heard him mention such a
> > > change number of times, and have seen it in his slides as well.
> > >
> > > But the larger sense is that if we are going to change something in
> > > AWSAPI for communicating to the database, it should be something
> > > that we are comfortable with adopting in the long term for the rest
> > > of CloudStack, otherwise we'll end up with two different ways for
> > > connecting to the database, which is fail.
> >
> > For Rajesh's concern in the short term (to get rid of Hibernate), we
> > basically have following options,
> > 1) Make the project depend on utils.jar in CloudStack and use existing
> > CloudStack persistent layer.
> > 2) Continue to make CloudBridge project independent
> > 	a) use direct JDBC
> > 	b) use Spring JDBC
> > 	c) use ORM framework on Spring (i.e. OpenJPA etc)
> >
> > I vote on 2-b for a short term resolution. For a couple of reasons,
> >
> > The major reason is for adopting Spring, EC2/S3 API in the future may
> > both need to support SOAP based web service API and REST API, Spring
> > comes with support of both, in addition, it provides dependency
> > injection, AOP and pluggable ORM framework, distributed transaction
> management, etc.
> >
> > CloudBridge project has a very simple data model (it has only one
> > table for EC2), original ORM (hibernate) usage is just for convenience
> > (as Alex pointed that it tried to avoid direct SQL manipulation), on
> > the other hand, giving the DAO abstraction, a limited amount of JDBC
> > should not matter too much either. With Spring and already existing
> > DAO abstraction, we can leave bigger ORM decision for the future.
> >
> > In the long term, ORM choice to us seems to be secondary
> > consideration, giving the fact that our current custom ORM
> > implementation serves its purpose well enough in CloudStack. But I do
> > see the needs of more flexible dependency injection or transaction
> > management framework in order to incorporate better integration with
> > external transactional systems like message queue servers. I also see
> > the needs of standardizing AOP patterns used in current CloudStack
> > code base, Spring provides some good answers for that. So there is a
> > possibility that it will be good for CloudStack to adopt it like many
> > other Java communities do, so that we can focus on our own business
> > logic and leave these external concerns to people who are doing it for a
> living.
> >
> > Kelven
> >
> >
> > >
> > > --David
> [Rajesh Battala]
> 
> Please let me know conclusion of the thread.
> I didn't see any reply to Kelven suggestions.
> 
> Thanks
> Rajesh Battala