----- Original Message -----
From: "Mooli Tayer" <mtayer(a)redhat.com>
To: "engine-devel" <engine-devel(a)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.