dev@glassfish.java.net

Re: GlassFish jars to maven repository

From: Dinesh Patil <Dinesh.Patil_at_Sun.COM>
Date: Wed, 03 May 2006 15:42:21 -0700

Ryan Shoemaker - JavaSoft East wrote:

> Dinesh Patil wrote:
>
>> Kohsuke Kawaguchi wrote:
>>
>>> Dinesh Patil wrote:
>>>
>>>> * Workspace team thinks that current build system is far from
>>>> perfect on maven usage but still very stable, and easy to build,
>>>> so don't need to scrap everything for providing few missing
>>>> features like IDE etc.
>>>
>>>
>>>
>>> I think there's a large gap between the characterization done above
>>> and what I've been hearing from people around me.
>>>
>>> [...]
>>>
>>> Or just ask around for people's honest opinions about their
>>> experience in building Glassfish. Many Tango developers did it, and
>>> I'm sure they are happy to share their experiences.
>>
>>
>> Tango developers, please send me your opinions and issues you faced
>> during GlassFish build, we will try to resolve it in current
>> workspace if possible.
>>
>
> Here's my list of opinions about and issues with the GF build process.
> Some of them have been discussed in the past, but I honestly don't
> follow this alias closely, so I might be pointing out things that have
> already been resolved.
>
> 1. I initially had a difficult time locating the build instructions on
> java.net. Things seem a little more obvious now than they did when
> I was getting started.
>
> 2. The build instructions don't clearly explain what each of the maven
> goals do. How about a nice basic table that people can reference
> instead of having to skim through the document. For example, I have
> no idea what the difference is between the "bootstrap" and
> "bootstrap-all"
> goals. I could go on.

This is specified in the FAQ, and linked from this page. We can add
table with brief info.
http://wiki.java.net/bin/view/Projects/GlassFishBuildQuestions#BootStrap

> 3. Someone gave me a reference to the internal build instructions, which
> I found confusing. This doc should really be split into AS -vs- GF
> specific build info IMO.

> 4. The entire idea of the bootstrapping step seems to complicate the
> process. I happen to be working on a branch of GF, but my bootstrap
> directory is from the trunk. What if there is a parity error between
> the two branches? To avoid this, I don't even run the bootstrap goal,
> I just checkout/update the whole workspace in one step. This is a
> documented way of building GF, but why bother? Isn't it easier to
> just checkout the whole workspace?

if you use default values maven.repo.local is using location from
../../glassfish_dependencies where this issue won't happen, but you may
be overriding this value.. I am using 2-3 branches on same machine and
don't have any such problem.

> I personally ran into a lot of trouble letting maven run the cvs
> checkout for me. I couldn't get this to work under cygwin, so I have
> to fall back to an MKS shell or manually check out the entire
> workspace.

pre-requisite says you need to have CVS Client, and there is a link to
get the right one :
https://glassfish.dev.java.net/servlets/ProjectSource#wincvs

> 5. Why does the build have to bootstrap itself with a glassfish image?

This is to build standalone module, and not require to know or build any
dependent modules, so if you want to build tools, you can just checkout
tools module and run "maven bootstrap build" from the glassfish/tools
directory.. This was one of the objectives for GlassFish workspace.

> Why does the build have to download a copy of Ant?

To run Ant based build.xml script for building the workspace.

> 6. If the GF build process is "very stable, and easy to build", why is
> there an hour-long hands-on lab explaining the process? The lab docs
> say "Bring your own Laptop or you can use one of the machines in the
> Lab". I don't know about your laptop, but on mine the process of
> checking out and building the entire thing is about 45 minutes.

This is nothing to do with any GlassFish issue!

This hands-on lab is to attract more developers since the theme of this
years JavaOne is JavaEE 5, also this lab covers more than just a
GlassFish Build process, it spends about 20 mins on build and 40 mins on
how to use, manage and develope/deploy using Netbeans. See the exercise
agenda below.
Exercise 1: Get Started on GlassFish Build (15 mins)
    Start building the server, build few modules or all.
Exercise 2: Enhance GlassFish Server (25 mins)
    Update server code, build, verify and Admin Console
Exercise 3: GlassFish with NetBeans (20 mins)
    Use IDE to develop, build, manage server, Overview of Admin Console,
deploy and run Web App.
Exercise 4: Explore GlassFish (Self-Paced)
   Build whole glassfish server, Quicklook, JavaEE 5 Samples.

> 7. I'm no maven expert, so I can't really comment on the way it is being
> used by GF, but I think Kohsuke has given plenty of feedback on that
> front.
>
> 8. Integration with NetBeans seems flawed. The instructions have you
> manually run cvs and maven commands to bootstrap and grab sources.
> In some cases, you actually have to build things with Maven before
> you can start working in the IDE. Furthermore, the instructions only
> explain how to build a single module at a time - how do I build GF
> as a whole? Also, the NB project seems to use the downloaded GF image
> to resolve classes loaded in the editor rather than the actual source
> paths in the workspace. That sounds very bad to me. The bottom-line
> is that it just looks too difficult to even bother trying IMO.
> I think it is perfectly fine to have a build process that allows a great
> deal of flexibility, which seems to have been one of the original goals,
> but the base case has to be brain-dead simple:
>
> % cvs co glassfish
> % cd glassfish
> % maven build configure-runtime

What currently we have is very close to your base case to make it more
specific and flexibile
% cvs co glassfish/bootstrap
% cd glassfish/bootstrap
% maven checkout bootstrap build configure-runtime

simple developer usecase is as below, where particular developer is more
concerned about one or few module build than the whole workspace.
% maven -Dmodules=admin,tools checkout bootstrap build configure-runtime

And this is all open for any users, so just submit the patch if you want
to add your use-case in it.
thanks
Dinesh

>
> I hope you find this feedback useful.
>
> --Ryan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>