cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rajesh Battala" <>
Subject Re: Review Request: Moved S3 and EC2 to DAO Implementation and removed Hibernate dependency
Date Tue, 14 Aug 2012 02:47:04 GMT

> On Aug. 13, 2012, 5:31 p.m., Alex Huang wrote:
> > This is the wrong way to do this.  I thought the agreement is to use the GenericDao
stuff for now so that when we switch that layer we can switch everything together.
> > 
> > Here's also what Darren said on the mailing list:
> > 
> > I was just reviewing for the Hibernate ->
Custom DAO implementation and it makes me so sad.  Its not that you went from Hibernate ORM
to custom built ORM (that is already in CloudStack), you went from ORM to raw SQL.  From the
size of the diff and the amount of lines of code added, its an advertisement in itself in
why one would want to use an ORM.
> > 
> > I just joined this mail listing so I probably missed the whole back story, but from
what I can gather, you can't use hibernate because of the license and the consensus is to
just make it consistent with CloudStack, which already has a custom ORM/DAO implementation.
> > 
> > This comment is probably too late in the game, but I really think your missing an
opportunity here.  For the future of CloudStack I think most everyone would agree that it
should move to a standard ORM approach and drop the custom one it has.  Using my "Jump to
Conclusions Mat" I would say that such a discussion will end up with deciding that Spring+JPA
should be the interface/container and the implementation I don't know (I'd vote Eclipse TopLink
if the license is compatible).  
> > 
> > So the AWS component is a perfect place to test out such framework do to its isolated
nature.  Having a lot of experience with hibernate/jpa and CloudStack I have a good idea in
my mind just how difficult it would be to convert all of the CloudStack code to a JPA compatible
solution.  If you were to do the conversion, for practical reasons, you are going to have
to do a phased migration.  This means that you'd have to support old framework and new framework
concurrently for sometime.  Coming up with an approach to reconcile the two frameworks will
take some time and effort.  Since the EC2 component is a pretty well isolated framework, it
would be easy to implement Spring/JPA and test the validity of what would be the end state
before you take on the complex and long task of converting all of CloudStack.
> > 
> > I'd even be willing to work on this.  It just seems silly to me to go from ORM to
SQL and then back to ORM.  But I realize, as I said before, this comment is somewhat late
in the game.
> > 
> >

Hi Alex,
I had gone through the files in S3 which had implemented without Hibernate. I has followed
them and written the remaining files.

- Rajesh

This is an automatically generated e-mail. To reply, visit:

On Aug. 12, 2012, 9:31 a.m., Rajesh Battala wrote:
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> -----------------------------------------------------------
> (Updated Aug. 12, 2012, 9:31 a.m.)
> Review request for cloudstack, Abhinandan Prateek and Chiradeep Vittal.
> Description
> -------
> S3 API service in CloudStack is using Hibernate ORM Framework. Hibernate is licensed
under the LGPL v2.1. 
> Hibernate dependency is removed by moving S3/EC2 to DAO Omplementation.
> This addresses bugs CS-15314 and CS-15686.
> Diffs
> -----
>   awsapi/.classpath 4dc46c4 
>   awsapi/conf/CloudStack.cfg.xml 511e68f 
>   awsapi/conf/hibernate.cfg.xml d484849 
>   awsapi/src/com/cloud/bridge/lifecycle/ 22adfb8 
>   awsapi/src/com/cloud/bridge/model/ 2832e1a 
>   awsapi/src/com/cloud/bridge/model/ d532568 
>   awsapi/src/com/cloud/bridge/model/ bff7906 
>   awsapi/src/com/cloud/bridge/model/ 5f63a77 
>   awsapi/src/com/cloud/bridge/model/ 874b095 
>   awsapi/src/com/cloud/bridge/model/ 8962771 
>   awsapi/src/com/cloud/bridge/model/ 73a2c9a 
>   awsapi/src/com/cloud/bridge/model/ 1429089 
>   awsapi/src/com/cloud/bridge/persist/ c7943a6 
>   awsapi/src/com/cloud/bridge/persist/ b39f298 
>   awsapi/src/com/cloud/bridge/persist/ 8abc5da 
>   awsapi/src/com/cloud/bridge/persist/ e2acfd2 
>   awsapi/src/com/cloud/bridge/persist/dao/ 31a5be8 
>   awsapi/src/com/cloud/bridge/persist/dao/ ed16974 
>   awsapi/src/com/cloud/bridge/persist/dao/ 5013eac 
>   awsapi/src/com/cloud/bridge/persist/dao/ 1c5e81c 
>   awsapi/src/com/cloud/bridge/persist/dao/ 6753e9c 
>   awsapi/src/com/cloud/bridge/persist/dao/ 37f18f3 
>   awsapi/src/com/cloud/bridge/persist/dao/ 2584597 
>   awsapi/src/com/cloud/bridge/persist/dao/ 2641fdb 
>   awsapi/src/com/cloud/bridge/persist/dao/ 1bc7933 
>   awsapi/src/com/cloud/bridge/persist/dao/ ac00e03 
>   awsapi/src/com/cloud/bridge/persist/dao/ 62b424e 
>   awsapi/src/com/cloud/bridge/persist/dao/ 4beb7a3 
>   awsapi/src/com/cloud/bridge/service/ 0c904a1 
>   awsapi/src/com/cloud/bridge/service/ ceaf59d 
>   awsapi/src/com/cloud/bridge/service/ 282385b 
>   awsapi/src/com/cloud/bridge/service/controller/s3/ 39b5cf6 
>   awsapi/src/com/cloud/bridge/service/controller/s3/ 0aba4ba 
>   awsapi/src/com/cloud/bridge/service/controller/s3/ 7a36a4b 
>   awsapi/src/com/cloud/bridge/service/core/ec2/ 1363d0d 
>   awsapi/src/com/cloud/bridge/service/core/s3/ e8b73a4 
>   awsapi/src/com/cloud/bridge/util/ 404f463 
>   awsapi/src/com/cloud/bridge/util/ a5e97b8 
>   awsapi/src/com/cloud/bridge/util/ 1a1b582 
>   awsapi/src/com/cloud/stack/models/ 3dcf011 
>   deps/awsapi-lib/hibernate3.jar 33755a45fa81dbb318961eccdb8a1bbd8419e61d 
> Diff:
> Testing
> -------
> Testing done
> 1. Bucket Operations
> 2. Key Operations
> with boto client.
> Thanks,
> Rajesh Battala

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message