StaticStrategy is overriding the Mysql¹s HA Strategy. So it is more a part
of the mysql jdbc driver providing a specific strategy that works as per
the documented HA procedure.

I think moving it to a separate github project that generates the
additional mysql connector jar should be ok (any licensing issues).
We can then document that anyone configuring DB-HA as per the suggested
procedure should download this and add it to the classpath.

-abhi


On 27/02/14 10:54 am, "Alex Huang" <alex.hu...@citrix.com> wrote:

>Hi Damoder,
>
>I don't think I follow.  There's clearly compile dependency on mysql in
>StaticStrategy. 
>
>To me, when I look at StaticStartegy, it makes sense to move that into
>separate project in github and reference people to it if they want to use
>the specific setup outlined in the DB HA wiki.  That to me would make it
>a runtime dependency only.
>
>--Alex 
>
>> -----Original Message-----
>> From: Damoder Reddy
>> Sent: Wednesday, February 26, 2014 9:20 PM
>> To: Alex Huang; dev@cloudstack.apache.org
>> Subject: RE: developers and mysql
>> 
>> Hi Alex,
>> 
>>      The mysql dependency is on for only " StaticStrategy.java" as
>> mentioned by you. And this is not used anywhere in the code base as a
>> compile time dependency rather used as a run time dependency in
>> db.properties. this will be passed to mysql driver as part of mysql
>>Database
>> URL construction.
>> 
>> This StaticStrategy.java will become mute if we move out of mysql
>>driver as it
>> has only runtime dependency.
>> 
>> Thanks & Regards
>> Damodar/
>> 
>> -----Original Message-----
>> From: Alex Huang
>> Sent: Thursday, February 27, 2014 4:13 AM
>> To: dev@cloudstack.apache.org
>> Cc: Damoder Reddy
>> Subject: RE: developers and mysql
>> 
>> @Hugo
>> 
>> The mysql scripts is a legacy of we used to dump the mysql db to create
>>the
>> create-schema sql but it is at worst still a runtime dependency.  We
>>should fix
>> it but I don't think it's as high a priority as the compile time
>>dependency that
>> has been introduced.
>> 
>> @Damoder,
>> 
>> Can you take a look at StaticStrategy.java?  This is the only file that
>>requires
>> mysql but I couldn't find anywhere in the code that references this
>>class.  I
>> then looked at the bug and wiki and it also doesn't mentioned that
>> dependency on mysql has been added.  It doesn't make sense for
>> CloudStack to include this automatically.  There are many ways to
>>provide DB
>> HA and incorporate it into our code just limits the possibilities.  We
>>can for
>> example document this as a way to do it in on the wiki for example but
>>I just
>> don't see why we would use code to limit it.
>> 
>> Thanks.
>> 
>> --Alex
>> 
>> > -----Original Message-----
>> > From: Hugo Trippaers [mailto:trip...@gmail.com]
>> > Sent: Tuesday, February 25, 2014 2:02 PM
>> > To: dev@cloudstack.apache.org
>> > Cc: dev@cloudstack.apache.org
>> > Subject: Re: developers and mysql
>> >
>> > We are already pretty much locked in as all our database scripts are
>> > MySQL specific. If we want to be neutral we should fix that.
>> >
>> > Cheers,
>> >
>> > Hugo
>> >
>> > Sent from my iPhone
>> >
>> > > On 25 feb. 2014, at 22:57, David Nalley <da...@gnsa.us> wrote:
>> > >
>> > > git blame showed that it came from the HA/replication work from
>> Damoder.
>> > > I didn't speak up at the time, but I am really reluctant for
>> > > mysql-specific features to sneak in and lock us in.
>> > >
>> > >> On Tue, Feb 25, 2014 at 4:44 PM, Alex Huang <alex.hu...@citrix.com>
>> > wrote:
>> > >> Who added the dependency on mysql for framework-db?  We actually
>> > worked hard to keep that depending on jdbc only.  It should not depend
>> > on mysql.  We need to fix that.
>> > >>
>> > >> --Alex
>> > >>
>> > >>> -----Original Message-----
>> > >>> From: Trippie [mailto:trip...@gmail.com] On Behalf Of Hugo
>> > >>> Trippaers
>> > >>> Sent: Tuesday, February 25, 2014 3:34 AM
>> > >>> To: <dev@cloudstack.apache.org>
>> > >>> Subject: Re: developers and mysql
>> > >>>
>> > >>> Heya,
>> > >>>
>> > >>> Just pushed a change that will make the database work again. :-)
>> > >>>
>> > >>>
>> > >>> @Alex. The mysql jar used to be pulled in as a dependency from
>> > >>> framework- db. As the client target is responsible for building
>> > >>> the war file for the packages including this in the client pom
>> > >>> would also put it in the war file and in the packages.
>> > >>>
>> > >>> I think i have an elegant solution, its now included as a
>> > >>> dependency for both the database deploy and the jetty:run target.
>> > >>> Which makes it effectively a "provided" library for the purpose of
>> > >>> our maven build. See commit
>> > >>> 8e6b86ae23dce802044388c5420ff61511d7115b and
>> e883877c7a6f9df04b572afd4ee5f10d265bcc3a.
>> > >>>
>> > >>> I can deploy a database and start the jetty:run target now without
>> > >>> any trouble (at least not more trouble than usual ;-) )
>> > >>>
>> > >>> My next step is to clean up some of the dependencies. I think that
>> > >>> only cloud-framework-db should have a provided dependency on
>> mysql.
>> > >>> It's the only piece of source code that actually needs the mysql
>> > >>> driver to be present during compilation for the optional HA
>> > >>> configuration. There are some test classes that depend on database
>> > >>> functionally but those should be moved to an integration test
>> > >>> profile that could include the database driver, those tests are
>> > >>> disabled
>> > anyway so they don't cause any trouble now.
>> > >>>
>> > >>>
>> > >>> Cheers,
>> > >>>
>> > >>> Hugo
>> > >>>
>> > >>>> On 25 feb. 2014, at 06:39, Rajani Karuturi
>> > >>>> <rajani.karut...@citrix.com>
>> > wrote:
>> > >>>>
>> > >>>> Can we move the mysql-connector-java dependency to the parent
>> > >>> POM(SOURCE-ROOT/pom.xml) and define it different scopes for each
>> > profile?
>> > >>>>
>> > >>>> ie)
>> > >>>>
>> > >>>>
>> > >>>> <profile>
>> > >>>> <id>developer</id>
>> > >>>>   <dependencies>
>> > >>>>       <dependency>
>> > >>>>         <groupId>mysql</groupId>
>> > >>>>         <artifactId>mysql-connector-java</artifactId>
>> > >>>>         <scope>compile</scope>
>> > >>>>       </dependency>
>> > >>>>   </dependencies>
>> > >>>> </profile>
>> > >>>> <profile>
>> > >>>>   <id>production</id>
>> > >>>>   <dependencies>
>> > >>>>       <dependency>
>> > >>>>         <groupId>mysql</groupId>
>> > >>>>         <artifactId>mysql-connector-java</artifactId>
>> > >>>>         <scope>provided</scope>
>> > >>>>       </dependency>
>> > >>>>   </dependencies>
>> > >>>> </profile>
>> > >>>>
>> > >>>> Thanks,
>> > >>>> ~Rajani
>> > >>>>
>> > >>>>
>> > >>>>
>> > >>>> On 24-Feb-2014, at 11:41 pm, Hugo Trippaers
>> > >>> <trip...@gmail.com<mailto:trip...@gmail.com>> wrote:
>> > >>>>
>> > >>>> Indeed,
>> > >>>>
>> > >>>> I've been fighting with maven all day to get the development
>> > >>>> profile to include MySql. No luck yet, will give it another shot
>> > >>>> tomorrow :-)
>> > >>>>
>> > >>>> Hugo
>> > >>>>
>> > >>>> Sent from my iPhone
>> > >>>>
>> > >>>> On 24 feb. 2014, at 18:21, David Nalley
>> > >>> <da...@gnsa.us<mailto:da...@gnsa.us>> wrote:
>> > >>>>
>> > >>>> So it should be ok to include the jar in non-default builds.
>> > >>>> developer and deploydb are not what we'd expect a normal user to
>> > consume.
>> > >>>> (Anyone else's head spinning?)
>> > >>>>
>> > >>>> --David
>> > >>>>
>> > >>>> On Mon, Feb 24, 2014 at 11:44 AM, John Kinsella
>> > >>> <j...@stratosec.co<mailto:j...@stratosec.co>> wrote:
>> > >>>> I created CLOUDSTACK-6157 over the weekend to track this. Not
>> > >>>> sure
>> > >>> adding the jar after compile will help the deploydb target, but
>> > >>> will give it a try this morning.
>> > >>>>
>> > >>>> Could we set up the pom.xmls to use the jar for execution if it's
>> > >>>> found in
>> > >>> the user/system classpaths while respecting the legal
>>requirements?
>> > >>>>
>> > >>>> Rayees' suggestion for cloud.spec makes sense for the RPM builds,
>> > >>>> but
>> > >>> doesn't affect the developer issues.
>> > >>>>
>> > >>>> -He who needs more maven experience
>> > >>>>
>> > >>>> On Feb 24, 2014, at 7:36 AM, Hugo Trippaers
>> > >>> <h...@trippaers.nl<mailto:h...@trippaers.nl>> wrote:
>> > >>>>
>> > >>>> Heya,
>> > >>>>
>> > >>>> as the mysql dependency is now set to provided in all the poms to
>> > >>>> fix our
>> > >>> license compliancy the jetty target and the deployed targets are
>> > >>> not
>> > working.
>> > >>>>
>> > >>>> I'm trying to configure an optional profile to enable those
>> > >>>> targets to include
>> > >>> the mysql dependency while executing, but so far no luck. If
>> > >>> anyone has some bright ideas on how to do this i'm all ears. In
>> > >>> the meantime the best solutions i've found to continue working is
>> > >>> to copy the mysql jar file into the directory
>> > >>> client/target/cloud-client-ui-4.4.0-SNAPSHOT/WEB-INF/lib/ by hand
>> > >>> after running mvm install and before running the jetty target
>> > >>> (just don't
>> > run mvn clean).
>> > >>>>
>> > >>>> Hopefully a better solution in the near future.
>> > >>>>
>> > >>>> Cheers,
>> > >>>>
>> > >>>> Hugo
>> > >>>>
>> > >>>>
>> > >>>>
>> > >>

Reply via email to