[Engine-devel] Java Development Lifecycle

Alon Bar-Lev alonbl at redhat.com
Tue Aug 27 11:45:22 UTC 2013



----- Original Message -----
> From: "Mooli Tayer" <mtayer at redhat.com>
> To: "engine-devel" <engine-devel at ovirt.org>
> Sent: Tuesday, August 27, 2013 2:29:01 PM
> Subject: [Engine-devel] Java Development Lifecycle
> 
> Hello,
> 
> I've been working on the engine for a few month now,
> And I feel I have not yet been able to find a productive and fast approach
> for Java development in different engine components.
> 
> This revolves mainly around:
> 
> Compiling and deploying artifacts:
> ==================================
> If I want to check a small change in the engine,
> Be it in an artifact that is part of engine.ear or when I am working on one
> of the side tools
> that might run as a service (e.g ovirt-engine-notifier)
> or just a single jar (engine-manage-domains)
> It is essential to compile only parts of the project and not all of it.
> 
> This can be achieved usually quite easily with mvn,
> however afterwards I would like to be able to also deploy and run it locally
> or even take all jars comprising a project and run them exploded inside my
> IDE
> (I use intellij idea) so I can enjoy live code editing and other benefits
> idea
> jboss & gwt integration offers. I have been using remote debug
> (which is available by default in the engine and non existent in other jars
> so
> I have to tamper manually with a python service file to add debug flags - see
> next)
> But it's not as powerful as running inside an IDE and I feel my current
> development lifecycle is
> not as fast and productive as it could have been.
> (I do understand the engine is complex regarding configuration and
> deployment, so it's a challenge)
> 
> Configuration:
> ==============
> This might be more of a todo item, I'm not sure..
> After deployment of an artifact to run on a machine(again, engine, notifier
> or whatever)
> if I want to change it's configuration
> (configure it for remote debug as mentioned or change it's logging behavior
> and so on)
> It seems I always have to do it in a different place which I always spend
> hours finding.
> It could be great if for all artifacts configuration could be streamlined and
> monolithic
> across different components.
> 
> These issues might seem obvious to some of you or unneeded to others, but
> I've decided to shout out
> in engine-devel because my usual way of approaching individuals has not got
> me very far,
> and also because I'm convinced some of you have found ways to be productive I
> am unaware of -
> Please share them! Others may have their own good ideas & approaches(or their
> own needs).

So to make long story short, you want:

1. Be able to partially build project.

This is already supported[1], so I do not understand what is missing.

[1] http://www.ovirt.org/OVirt_Engine_Development_Environment#Usage

2. Setup all components with debug port enabled at development mode.

This can be achieved quite easy, but there is a catch... in tools you might want to add environment variable to halt at startup and wait for debugger.

Patches are welcomed!

3. Be able to run all under ide without installation.

This is how developers worked until recently, it created an entire new category of art, running engine without actually setup it.

Artists are hard to find and harder to duplicate.

So I am sorry, but this is not the right way to go.

You can build partially, install over existing setup, and debug using remote debugger.

Any other mean is a waste of resources to set up, maintain and sync.

Regards,
Alon Bar-Lev.



More information about the Engine-devel mailing list