Rohit,

This is great work.  I think technically it shows what can be done in a short 
amount of time.  This would help scope out the work much better.

However, I would like to take a step back a little bit and actually plan this 
out.  I will start another thread right now, where we can discuss.  Thanks.

~Michael

On May 1, 2011, at 4:15 AM, Rohit Rai wrote:

> Hi All,!
> 
> Nice to see that we are moving on with a constructive discussion and
> Michael, thanks for laying out the basics of how a community can work so
> clearly! Yuri, thanks for laying out the process structure, probably this is
> the process we should follow whenever someone comes up with a new idea. He
> takes the ownership, gather a group around the idea, involves a contributor
> and gets the idea in the project. :)
> 
> Well, to move on...
> Nelson, I worked thursday night and part of friday  to reorganize the then
> checkout to a maven build format... of course taking a lot from your maven
> project, but following the currently builds output modules generated by ant
> dist.
> I am sure, this is very crude with some work remaining, but I did this in
> hardly 5-6 hours. If we give it time and take a shot together we can put it
> out in a day or two ready for review.
> 
> I wanted to stretch on and complete it but am running fever since friday
> evening... I have no idea, how the process will go further but anytime you
> decide to pick up this task, I'll happily contribute in any way possible.
> I'll take a shot at it once more monday night (India) to atleast get a
> working build.
> 
> please take a look at this -
> https://github.com/rohit-tingendab/Mavenized-Wave-In-A-Box and let me know
> your thoughts.
> 
> Regards,
> Rohit
> 
> The diamond cannot be polished without friction, nor man perfected without
> trials
> http://mytechrantings.blogspot.com
> 
> 
> On Sun, May 1, 2011 at 12:37 AM, Michael MacFadden <
> michael.macfad...@gmail.com> wrote:
> 
>> Yuri,
>> 
>> Totally agree.  Thanks for structuring this in this way.
>> 
>> 
>> Nelson,
>> 
>> Let's start another thread to discuss how a possible maven migration might
>> go.  Why don't you start with your current ideas.  Those who want can
>> participate in the discussion.  I can capture a "plan" in our development
>> wiki, which needs to get set up anyway.
>> 
>> ~Michael
>> 
>> 
>> On Apr 30, 2011, at 9:44 AM, Yuri Z wrote:
>> 
>>> Ok, I think you got good points that send us back to a constructive
>>> discussion.
>>> I think that we should proceed in the following fashion:
>>> 1. Those who want to move to maven should organize and openly declare
>> that
>>> they are committed to the task. There should be at least one existing
>> Apache
>>> Wave committer in the group as someone who already demonstrated its merit
>>> and ability to deliver. It will also ensure that there will be someone
>>> available to review the changes and push them.
>>> 2. The "Maven" group should produce a plan with measurable milestones.
>> The
>>> plan should state the task, amount of effort, timeline, and who is
>> assigned
>>> to which task.
>>> 3. At this point we will be able to discuss this concrete suggestion and
>>> make a vote.
>>> 
>>> 2011/4/30 Michael MacFadden <michael.macfad...@gmail.com>
>>> 
>>>> All,
>>>> 
>>>> I think we have gotten a little off track on the maven discussion.  What
>> it
>>>> has basically boiled down to is a discussion on if we should migrate to
>>>> maven or spend time working on other items.  I don't think this is the
>> right
>>>> way to look at it at the moment.  Here are my thoughts.
>>>> 
>>>> 1)
>>>> We should asses whether maven is even something we like regardless of
>> the
>>>> effort it takes.  What are the merits of maven?  Do we agree that there
>>>> would be a benefit?  Assuming zero effort would we want maven?  If the
>>>> answer is no, then everything else is irrelevant.  I think we need to
>> have
>>>> an objective conversation about this first.
>>>> 
>>>> 2)
>>>> We are assuming that there is a choice between doing the work to
>> "mavenize"
>>>> the project vs. doing some other work that people feel is more
>> important.
>>>> The major flaw here is that assumes that the resources that would do the
>>>> maven work would otherwise do something else.  Although we are a
>> community
>>>> that should come to a consensus on priorities, we need to remember that
>> we
>>>> are also just individual committers.  We can't force and individual to
>> work
>>>> on anything specific.  If there is one or more resources out there who
>> want
>>>> to work on brining maven to the project we can't simply tell them "no"
>> if
>>>> the only reason is that we would prefer that they would work on
>> something
>>>> else.  It's quite possible that the people that want to work on brining
>>>> maven to the project wouldn't work on other things even if we asked them
>> to.
>>>> 
>>>> In other words if in point #1 we decide that we do want to go with maven
>>>> eventually (a big if), and there is some one out there who is
>> volunteering
>>>> to help us with that now, we shouldn't discourage them.  Consider the
>>>> non-commiter who has a project that uses maven.  That person might want
>> to
>>>> use WiaB components in his project.  He might write a patch that
>> mavenizes
>>>> the project and send it to us.  In that case we haven't lost out on
>> working
>>>> on any other functionality.
>>>> 
>>>> 
>>>> 3)
>>>> So if we do want maven (point #1), and "WE" don't have to stop working
>> on
>>>> "OUR" priorities to get it because some one else is offering to do the
>> work
>>>> (point #2), then the last question is how disruptive would switching to
>>>> maven be on the rest of the development process.  This could be the
>> tricky
>>>> part.  Depending on how its done it could be very disruptive, or it
>> could be
>>>> fairly painless.  If there was a way to slowly introduce maven, without
>> much
>>>> impact to the current development tasks then maybe we would be more
>> inclined
>>>> to do it.  If everyone has to stop what they are doing for two weeks
>> while
>>>> we sort it out, then maybe not.
>>>> 
>>>> Point being this is another area where some discussion would be very
>>>> helpful.
>>>> 
>>>> 
>>>> 
>>>> Anyway, I would really like to have objective conversations about
>> point's
>>>> #1 and #3 and to move away from the "doing X right now should be more of
>> a
>>>> priority" conversation that we have gotten in to.  While I agree that
>>>> priorities are important, and we need to start setting them for the
>> project,
>>>> I think we need to look at this from a ROI perspective first, and then
>>>> figure out where it fits on the roadmap given the project impact and the
>>>> resources that would need to be involved.  Just my opinion.
>>>> 
>>>> 
>>>> ~Michael
>>>> 
>>>> 
>>>> On Apr 29, 2011, at 1:59 AM, Daniel Danilatos wrote:
>>>> 
>>>>> Hi guys,
>>>>> 
>>>>> I am inclined to agree with Yuri and STenyaK (forgive me I'm not sure
>>>>> what your first name is). Right now what this project needs most is
>>>>> some real momentum in terms of features and stability, and major
>>>>> refactorings of the code base merely to change build system seem like
>>>>> far too big a risk. I think any effort to port to maven would be much
>>>>> better spent on directly addressing the one or two most annoying pain
>>>>> points, such as making the build or unit tests run more incrementally,
>>>>> or exporting maven targets (so other projects that use maven can
>>>>> depend on our code). I am confident someone could get that fixed with
>>>>> a few hours work or less. Other benefits listed are far less concrete
>>>>> and don't seem worth the risk to me right now. I have no doubt that
>>>>> when we have a cool product, people will jump on board regardless of
>>>>> what build system we are using - it would be a bad sign for our
>>>>> project if it is the build system that is what attracts/repels
>>>>> contributors.
>>>>> 
>>>>> Regarding maven itself (I'll try to be brief-ish until I collect my
>>>>> thoughts further): From what I can tell, reading people's opinions
>>>>> here and on the internet at large, there are two broad reasons why
>>>>> people seem to like maven. (1) it automates fetching dependencies,
>>>>> which is an annoying task to do manually. (2) it is an improvement
>>>>> over "normal" ant monolithic builds, by breaking applications down
>>>>> into modules and forbidding circular dependencies. Regarding (1), I
>>>>> can see how this can improve a lot of things, but I can also see how
>>>>> it adds more points of failure for a build setup. So it's not quite a
>>>>> dead-clear win. Regarding (2), I am a big fan, and you'll notice that
>>>>> we've tried hard to do that in the client code with fine-grained GWT
>>>>> module dependencies. Internally at Google, our build system
>>>>> encourages/enforces this. In both these examples, the module breakdown
>>>>> is fine-grained (often on the package-level), and this really makes
>>>>> sure you don't screw up, and helps keep code highly decoupled. Also,
>>>>> doing this is very lightweight - all you need is a small file that
>>>>> declares the deps. If you have a section of your code base that is
>>>>> well written with good dependency injection, adding these module
>>>>> declarations is a snap - it requires no code change or refactorings.
>>>>> The problem I see with maven is that modules seem to be quite heavy
>>>>> weight, and harder to split/join/move around. Please correct me if I'm
>>>>> wrong, but it seems that each module requires its own separate source
>>>>> tree, with a deep set of top level directory and other "boilerplate" -
>>>>> or, alternatively, fighting maven to maintain some other directory
>>>>> structure (but the consensus on the internet is that you don't fight
>>>>> maven unless you're a masochist).
>>>>> 
>>>>> Full disclaimer: I have only used maven a little, and done a bunch of
>>>>> reading. But please don't discount my opinion on those grounds. Also,
>>>>> I hate ant, don't get me wrong.
>>>>> 
>>>>> I do not in any way intend to start a "maven is awesome" vs "maven
>>>>> sucks" religious war here. My opinions above regarding maven are
>>>>> tentative, and I would love to revisit them. I provided them partly to
>>>>> play the devil's advocate, and partly to justify why I feel it's not a
>>>>> clear win to migrate, and so probably not worth the risk to the
>>>>> project's momentum until we are healthily going full steam ahead. At
>>>>> that point it'd be great to revisit this question and learn more about
>>>>> maven. I think ultimately whatever pleases the majority of the active
>>>>> contributors is best.
>>>>> 
>>>>> Dan
>>>>> 
>>>>> Στις 29 Απριλίου 2011 3:10 π.μ., ο χρήστης STenyaK <sten...@gmail.com>
>>>> έγραψε:
>>>>>> In the end, long term plans have to take into account the consequences
>>>> of
>>>>>> trying to future-proof the project: If focusing on long-term future
>>>> during
>>>>>> 2011 makes wave lose (or "not increase") the precious momentum it has
>>>> thanks
>>>>>> to inertia of googlers and other interested parties, then maybe it is
>>>>>> actually *not* such a good long-term plan.
>>>>>> 
>>>>>> Just to put things in perspective: the project has blindly migrated
>> from
>>>> git
>>>>>> to svn, and accepted not to dog-feed itself, but is now considering
>>>> changing
>>>>>> a (afaik) perfectly working build system, which will disrupt
>> development
>>>> for
>>>>>> an unknown period of time. Also, time is being wasted in this
>>>>>> bike-shed-color discussion (ehm, sorry for contributing to it O:-).
>>>>>> 
>>>>>> IMO continuing with ant for a few more weeks/months is probably going
>> to
>>>> be
>>>>>> better in the *actual* long term.
>>>>>> 
>>>>>> 2011/4/28 Yuri Z <vega...@gmail.com>
>>>>>> 
>>>>>>> Michael
>>>>>>> I hate to be the devil's advocate, but I ll take the role this time.
>>>>>>> First of all, you are right of course - all decisions should be
>> wighted
>>>> on
>>>>>>> the base of effort vs. gain and after analysis of the risks.
>>>>>>> Also, the analysis should build on the past relevant experiences. So
>>>> let's
>>>>>>> try to understand what happened with the move to Apache (sorry if I
>>>> kick a
>>>>>>> sacred cow). I think that the move to Apache is positive development,
>>>> but
>>>>>>> much ahead of the time.
>>>>>>> At the time I advocated to postpone the move because: "There are no
>>>>>>> immediate gains for the Wave in a Box project, but the prices are
>>>>>>> immediate". I mentioned that we should first
>>>>>>> 
>>>>>>> -  To focus on attaining the goals outlined in the WIAB roadmap
>>>>>>> - Use of Apache mailing list instead of dog food WIAB instance is a
>>>> very
>>>>>>> heavy price.
>>>>>>> - The move will take too much effort that instead can be devoted to
>>>>>>> development of core WIAB features.
>>>>>>> 
>>>>>>> I was told then that:
>>>>>>> 
>>>>>>> - The move will possibly attract an influx of commiters - didn't
>>>> happen.
>>>>>>> - It will be probably possible communicated with Apache so allow us
>>>> to
>>>>>>> use dog food instance instead - didn't happen
>>>>>>> - The move to Apache infra can be done in parallel and won't affect
>>>>>>> ongoing development efforts - not quite true.
>>>>>>> 
>>>>>>> And it is clear that giving up on dog food instance - is a really
>> heavy
>>>>>>> price. Off course, the move could take only a few hours or days, but
>> in
>>>>>>> reality it taken 4 months and counting.
>>>>>>> So I think the lessons that we should learn:
>>>>>>> 
>>>>>>> - Focus on the main product, do things only when necessary and not
>>>> ahead
>>>>>>> of time to gain possible value.
>>>>>>> - Don't assume that problems can be solved later, either have a
>> clean
>>>>>>> 
>>>>>>> 
>>>>>>> 2011/4/28 Michael MacFadden <michael.macfad...@gmail.com>
>>>>>>> 
>>>>>>>> Yuri,
>>>>>>>> 
>>>>>>>> I don't think we can view it as to high a price right now vs later.
>>>> The
>>>>>>>> fact of the matter is that if we push it off to some later date when
>>>> we
>>>>>>> will
>>>>>>>> have "free time" to take on something like this, it will honestly
>>>> never
>>>>>>> get
>>>>>>>> done.  Plus we haven't quantified how much effort it would take.
>> What
>>>> if
>>>>>>> it
>>>>>>>> could get done in a few hours?  Would it be worth it then?  What
>> about
>>>> a
>>>>>>> few
>>>>>>>> days?  I think the benefits are pretty clear, but we need to
>> quantify
>>>> how
>>>>>>>> much work it would take to get it done.
>>>>>>>> 
>>>>>>>> Only then can we decide if it's worth it.  One plug for doing it now
>>>>>>> rather
>>>>>>>> than after a "1.0" would be I imaging that a 1.0 release would be
>>>> ready
>>>>>>> for
>>>>>>>> a lot more wide spread use.  If you imagine that you could see a lot
>>>> more
>>>>>>>> people downloading and using WiaB after 1.0.  At that point we will
>> be
>>>>>>>> getting a lot more attention and enhancement and bug requests.  We
>>>> might
>>>>>>>> even get an influx of committers.  At that point it would be almost
>>>>>>>> impossible to justify a code freeze for a few days to switch to
>> maven.
>>>>>>>> 
>>>>>>>> In my view we are almost in a now or never type of scenario.
>>>>>>>> 
>>>>>>>> ~Michael
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Apr 28, 2011, at 12:09 AM, Yuri Z wrote:
>>>>>>>> 
>>>>>>>>> IMHO code freeze price is too high for now. Maybe after we release
>>>> ver
>>>>>>>> 1.0
>>>>>>>>> then ver 1.1 can be about moving to maven.
>>>>>>>>> 
>>>>>>>>> 2011/4/28 Eric Charles <eric.char...@u-mangate.com>
>>>>>>>>> 
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>> I've been paid for 6 months by one of my client to migrate
>> numerous
>>>>>>>> project
>>>>>>>>>> from ant to maven. Some were trivial, other were really
>> complicated
>>>>>>> due
>>>>>>>> to
>>>>>>>>>> legacy technologies,... and needed code refactoring.
>>>>>>>>>> 
>>>>>>>>>> At the end, the result we got much more
>>>> manageable/testable/deployable
>>>>>>>>>> components based applications.
>>>>>>>>>> 
>>>>>>>>>> I don't know wave code, but I bet maven compared to ivy will drive
>>>> to
>>>>>>> a
>>>>>>>>>> better code base, even if the prices may be high (work,
>> freeze,...).
>>>>>>>>>> 
>>>>>>>>>> Tks,
>>>>>>>>>> -  Eric
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On 28/04/2011 06:34, Rohit Rai wrote:
>>>>>>>>>> 
>>>>>>>>>>> +1 for migrating to maven
>>>>>>>>>>> 
>>>>>>>>>>> Though I share the concern raised by Michael, "it is not going to
>>>> be
>>>>>>>> easy"
>>>>>>>>>>> (have experience in earlier changing from monolithic ant builds
>> to
>>>>>>>> modular
>>>>>>>>>>> maven builds...) and it will disrupt the development temporarily.
>>>>>>>>>>> 
>>>>>>>>>>> But as mentioned in the mails above, we should think on these
>> line
>>>> -
>>>>>>>>>>> 
>>>>>>>>>>> 1. Maven being the accepted build standard on date, will make it
>>>> easy
>>>>>>>> for
>>>>>>>>>>> new developers to start with WIAB.
>>>>>>>>>>> 2. Developers can pick a module and focus on working with it
>> rather
>>>>>>>> than
>>>>>>>>>>> spending time trying to understand the current  project format
>> and
>>>>>>>>>>> figuring
>>>>>>>>>>> out what goes where.
>>>>>>>>>>> 3. It will make it easy for developers to integrate WIAB
>> components
>>>>>>>>>>> individually and also to embed WIAB in there applications.
>>>>>>>>>>> 4. IDE integration is very helpful to start of quickly
>>>>>>>>>>> 
>>>>>>>>>>> At this point when Google is removing people from this project, I
>>>>>>> think
>>>>>>>> it
>>>>>>>>>>> makes sense for us to make it easy for any newbie coming to get
>>>>>>> started
>>>>>>>> on
>>>>>>>>>>> it, the more the merrier!
>>>>>>>>>>> 
>>>>>>>>>>> And if we don't do it now,
>>>>>>>>>>> 1. that we are transferring it from Google Code to Apache (when
>> we
>>>>>>> can
>>>>>>>>>>> have
>>>>>>>>>>> a scheduled downtime for a couple of days)
>>>>>>>>>>> 2. the code base is manageable size
>>>>>>>>>>> 3. the contributors are limited in number
>>>>>>>>>>> 
>>>>>>>>>>> We may never have an better opportunity and it is going to be
>> "much
>>>>>>>> more
>>>>>>>>>>> difficult" once the codebase and number of committers grow!
>>>>>>>>>>> 
>>>>>>>>>>> Just my 2 cents from past experiences . . .
>>>>>>>>>>> 
>>>>>>>>>>> And to back up my words, I will be all willing to spare couple of
>>>>>>> days,
>>>>>>>>>>> taking leave from my day job and weekend along if required to
>>>> assist
>>>>>>>> with
>>>>>>>>>>> the migration to maven.
>>>>>>>>>>> 
>>>>>>>>>>> Note: If we have to move to maven, we should first list out what
>>>> will
>>>>>>>> be
>>>>>>>>>>> the
>>>>>>>>>>> modules and then what part of code goes into which module. This
>>>> will
>>>>>>>> speed
>>>>>>>>>>> up the actual transition process.
>>>>>>>>>>> 
>>>>>>>>>>> Regards,
>>>>>>>>>>> Rohit
>>>>>>>>>>> 
>>>>>>>>>>> The diamond cannot be polished without friction, nor man
>> perfected
>>>>>>>> without
>>>>>>>>>>> trials
>>>>>>>>>>> http://mytechrantings.blogspot.com
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> On Thu, Apr 28, 2011 at 8:52 AM, Michael MacFadden<
>>>>>>>>>>> michael.macfad...@gmail.com>  wrote:
>>>>>>>>>>> 
>>>>>>>>>>> All,
>>>>>>>>>>>> 
>>>>>>>>>>>> I am not sold on maven at this point.  Don't get me wrong I am a
>>>>>>>> strong
>>>>>>>>>>>> advocate of Maven, and although it has its issues, I think it
>> can
>>>> be
>>>>>>> a
>>>>>>>>>>>> big
>>>>>>>>>>>> benefit to a project.  I am just not sold that it is worth the
>>>>>>> effort
>>>>>>>> at
>>>>>>>>>>>> the
>>>>>>>>>>>> moment.  That being said here are a couple ways which maven
>> could
>>>>>>> help
>>>>>>>>>>>> the
>>>>>>>>>>>> wave in a box project:
>>>>>>>>>>>> 
>>>>>>>>>>>> Modularization
>>>>>>>>>>>> 
>>>>>>>>>>>> Maven encourages the construction of distinct modules for a
>>>> project.
>>>>>>>> As
>>>>>>>>>>>> the wave project grows, we will likely want to build a set of
>>>>>>> reusable
>>>>>>>>>>>> components that other projects could use.  For example we may
>> have
>>>>>>>>>>>> concurrency control stacks, protocol stacks, interface
>> components,
>>>>>>> etc
>>>>>>>>>>>> that
>>>>>>>>>>>> other projects might want to take advantage of.  We have already
>>>>>>>> gotten
>>>>>>>>>>>> request to use the editor, and we know people are interested in
>>>>>>>> building
>>>>>>>>>>>> new
>>>>>>>>>>>> UI's leveraging the client server protocol.  With maven, the
>>>> project
>>>>>>>> can
>>>>>>>>>>>> easily be organized such that these modules are reference-able
>> and
>>>>>>>> usable
>>>>>>>>>>>> by
>>>>>>>>>>>> others.  Things like the Robot and Gadget API are obvious
>>>> examples.
>>>>>>>>>>>> 
>>>>>>>>>>>> This could be done without maven, but maven makes this the norm
>>>>>>> rather
>>>>>>>>>>>> than
>>>>>>>>>>>> the exception.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Build Time
>>>>>>>>>>>> 
>>>>>>>>>>>> Right now we have a pretty monolithic build.  When I change
>>>>>>> anything,
>>>>>>>> I
>>>>>>>>>>>> have to rebuild the whole project.  With maven it's fairly easy
>> to
>>>>>>> go
>>>>>>>> in
>>>>>>>>>>>> to
>>>>>>>>>>>> the sub module you are working on and make "local" changes
>> there.
>>>>>>> You
>>>>>>>>>>>> can
>>>>>>>>>>>> rebuild and deploy easily without having to do a whole build.
>> Of
>>>>>>>> course
>>>>>>>>>>>> you
>>>>>>>>>>>> can run a full build if you like.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Testing
>>>>>>>>>>>> 
>>>>>>>>>>>> Right now we have an issue with testing.  The unit tests are
>> also
>>>>>>>>>>>> monolithic.  Originally, they all run or they all didn't.
>>>>>>>> Unfortunately,
>>>>>>>>>>>> it
>>>>>>>>>>>> took too long to run all of them, so we now have a somewhat
>>>>>>> arbitrary
>>>>>>>>>>>> distinction between long running and short running tests.  Only
>>>> the
>>>>>>>> short
>>>>>>>>>>>> ones run by default.
>>>>>>>>>>>> 
>>>>>>>>>>>> With maven, unit tests are scoped to the module which they test.
>>>> If
>>>>>>>> we
>>>>>>>>>>>> had
>>>>>>>>>>>> a Robot API module, we would have tests in that module that just
>>>>>>> unit
>>>>>>>>>>>> test
>>>>>>>>>>>> the Robot API.  If you are working on the Robot API, you can
>> make
>>>>>>>> changes
>>>>>>>>>>>> and easily just run the Robot API unit tests.  You can actually
>>>> work
>>>>>>>> on
>>>>>>>>>>>> the
>>>>>>>>>>>> sub module, make changes, test and check in code, without having
>>>> to
>>>>>>>> run
>>>>>>>>>>>> ALL
>>>>>>>>>>>> the unit tests for the whole project, assuming the tests are
>>>>>>>>>>>> comprehensive
>>>>>>>>>>>> for the module.  The job of running all the tests can be the job
>>>> of
>>>>>>>> the
>>>>>>>>>>>> integration build.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Standardization
>>>>>>>>>>>> 
>>>>>>>>>>>> When I was ramping up on wave, it took me over a month to become
>>>>>>> fully
>>>>>>>>>>>> comfortable with the nested ant scripts and how the project
>>>>>>> ultimately
>>>>>>>>>>>> built
>>>>>>>>>>>> itself.  As ant projects try to become more modular, the
>>>> complexity
>>>>>>> of
>>>>>>>>>>>> their
>>>>>>>>>>>> build scripts goes exponentially up.  Furthermore, each project
>>>> does
>>>>>>>> it
>>>>>>>>>>>> differently.  You have to study the build to figure it out.
>> With
>>>>>>>> maven,
>>>>>>>>>>>> its
>>>>>>>>>>>> all pretty standard.  Any developer experienced in maven can
>> check
>>>>>>> out
>>>>>>>>>>>> your
>>>>>>>>>>>> project, rigure out the module layout and how to build any
>>>> specific
>>>>>>>>>>>> module
>>>>>>>>>>>> they need within minutes.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Other Random Things
>>>>>>>>>>>> 
>>>>>>>>>>>> Great IDE integration.
>>>>>>>>>>>> Dependency management.
>>>>>>>>>>>> A standard mechanism to deploy our artifacts for other projects
>> to
>>>>>>>> use.
>>>>>>>>>>>> Lot's of reports that can be generated about dependancies,
>> tests,
>>>>>>> etc.
>>>>>>>>>>>> Integration with SVN and standard mechanism to perform releases,
>>>>>>>> tagging
>>>>>>>>>>>> and branches.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> In my opinion maven would help us:
>>>>>>>>>>>> 
>>>>>>>>>>>> Organize the project better.
>>>>>>>>>>>> Make our codebase more testable.
>>>>>>>>>>>> Shorten our development and test cycles.
>>>>>>>>>>>> Make our project more accessible to new developers.
>>>>>>>>>>>> Make our project more reusable for others.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> All of that said... it's not going to be easy to switch over, so
>> I
>>>>>>>> don't
>>>>>>>>>>>> take the decision lightly.
>>>>>>>>>>>> 
>>>>>>>>>>>> ~Michael
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> On Apr 27, 2011, at 7:31 PM, Daniel Danilatos wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> It seems the real problem here is the large amount of jars
>> checked
>>>>>>>>>>>>> into the repository. What about something that just does
>>>> dependency
>>>>>>>>>>>>> management, for example apache ivy?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Does maven solve any other problems we have that make it worth
>>>>>>> going
>>>>>>>>>>>>> all the way with it? I'm worried it could cause as much trouble
>>>> as
>>>>>>> it
>>>>>>>>>>>>> solves. I'm not fundamentally against it but I'd like to be
>>>>>>> confident
>>>>>>>>>>>>> there are solid reasons/benefits to the waveprotocol project
>> for
>>>>>>>>>>>>> migrating to maven.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> My 2c.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Dan
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Στις 27 Απριλίου 2011 7:51 π.μ., ο χρήστης Michael MacFadden
>>>>>>>>>>>>> <michael.macfad...@gmail.com>  έγραψε:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Nelson,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I am all for this.  I am very experienced with Maven and the
>>>>>>> proper
>>>>>>>>>>>>>> ways
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> to set up multi module projects including dependency
>> management,
>>>>>>> etc.
>>>>>>>> I
>>>>>>>>>>>> think your assessment of the situation is correct.  We would
>>>>>>>> ultimately
>>>>>>>>>>>> need
>>>>>>>>>>>> a code free to get this done.
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> However, before you go to far, I would try to get a real
>>>>>>> discussion
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> going on if this is something the team wants to do.  If so we
>>>> need
>>>>>>> to
>>>>>>>>>>>> discuss what the right modules are, what artifact and group ids
>> we
>>>>>>>> would
>>>>>>>>>>>> want, etc.  I would hate to see you set up a lot of poms.xml
>> that
>>>>>>>> don't
>>>>>>>>>>>> line
>>>>>>>>>>>> up with how we would ultimately do things.
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> As a side note, if we did want to go to maven, now would be
>> the
>>>>>>>> right
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> time.  Everything else has to be migrated anyway, might as well
>>>>>>> take
>>>>>>>> the
>>>>>>>>>>>> hit
>>>>>>>>>>>> now.  However, I would recommend that we get the current source
>>>>>>>> migrated
>>>>>>>>>>>> over first.
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> ~Michael
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Apr 26, 2011, at 10:12 AM, Nelson Silva wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> There have been several discussions on adding maven as a
>> build
>>>>>>>> tool.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I've decided to start working on this by adding a tools/maven
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> subdirectory with a multimodule project layout.
>>>>>>>>>>>> 
>>>>>>>>>>>>> I pushed my ongoing work to a branch in my GitHub clone :
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>> https://github.com/nelsonsilva/wave-protocol/tree/maven/tools/maven
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> While a complete port to maven as the main build tool would
>>>>>>>> required a
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> code freeze and a healthy discussion of code reorganization
>> into
>>>>>>>> proper
>>>>>>>>>>>> modules we should be able to use a simple includes/excludes
>>>> approach
>>>>>>>> for
>>>>>>>>>>>> now
>>>>>>>>>>>> and in the end, if everyone is ok with it, we could easily make
>>>> the
>>>>>>>> port
>>>>>>>>>>>> happen.
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I would like to get some help with this from everyone who's
>>>>>>>>>>>>>>> interested.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> There are lots of plugins and lots of ways to acomplish things
>>>> in
>>>>>>>> maven
>>>>>>>>>>>> so
>>>>>>>>>>>> this should get the discussion started.
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I chose to go with GitHub so everyone can fork it and send me
>>>>>>> pull
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> requests. If you'd rather go with the issue/patchset approach
>>>> I'll
>>>>>>>> open
>>>>>>>>>>>> the
>>>>>>>>>>>> issue but the idea here was to have several people contribute
>> and
>>>>>>> not
>>>>>>>> a
>>>>>>>>>>>> single patch + review process.
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Quickstart:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> cd tools/maven
>>>>>>>>>>>>>>> ./install_deps.sh # This will install a couple of
>> dependencies
>>>>>>> that
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> were either patched or were not found in existing maven repos
>>>>>>>>>>>> 
>>>>>>>>>>>>> mvn install
>>>>>>>>>>>>>>> cd server
>>>>>>>>>>>>>>> ln -s ../../../war
>>>>>>>>>>>>>>> mvn exec:java # This should start the server, although you'll
>>>>>>> have
>>>>>>>> to
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> symlink the war directory for now
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> TO DO:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> - Use profiles for dev/prod
>>>>>>>>>>>>>>> - Remove as many ant tasks as possible and use pure maven
>>>> plugins
>>>>>>>>>>>>>>> - Use the assembly plugin to package the server with the
>>>>>>> webclient
>>>>>>>>>>>>>>> - Setup the surefire tests for each module
>>>>>>>>>>>>>>> - Rethink the modules, we should have pure api modules and
>> the
>>>>>>>> several
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> impl modules for persistence, websockets, auth, etc ...
>>>>>>>>>>>> 
>>>>>>>>>>>>> - etc....
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Looking forward to getting this going...
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Nelson Silva
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Saludos,
>>>>>>   Bruno González
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Jabber: stenyak AT gmail.com
>>>>>> http://www.stenyak.com
>>>>>> 
>>>> 
>>>> 
>> 
>> 

Reply via email to