When we donated the sources, we did not donate the UI part of the
client, so the first thing we should probably do now is create a new
UI. Past experiences have indicated most people would like to use a
web based UI. Since the original client used the MVC pattern (it was
Swing based) I think GWT is a logical choice.
This afternoon I added some tasks to JIRA to build a basic version
which is modeled loosely after the old Swing client. I will try to
explain the Ui and related tasks in a bit more detail.
Let's start with the basic operation of the client. A client session
starts by "checking out" a version of the repositories containing the
metadata about components, groups, features and targets. You can then
manipulate the repository locally and finally commit it or revert the
local changes.
The UI consist of 4 columns, ordered from left to right, and you can
add items to each column and associate items in different columns with
each other by using drag and drop.
The idea is to build this UI step by step. The client side logic is
already in place (allowing you to perform all operations explained
above through OSGi services).
ACE-23 and 24 are about including a GWT application in the build, and
deploying it in OSGi using the PAX bundles.
ACE-25 then builds the 4 empty columns of the UI and hooks up the
right most column containing the targets. A target is an OSGi
framework and each target should somehow be uniquely identifyable
(which is a service that can be implemented in the management agent).
When this task is done, you should be able to launch the web UI and
see targets showing up when they are launched and succesfully talking
to the server.
ACE-26 Then adds the ability to add groups and features and have them
show up in the middle two columns.
ACE-27 Is about adding components (bundles or other supported
datatypes) to the left most column, uploading them to an OBR too.
ACE-28 then adds the ability to create associations between the
elements in the columns, using drag and drop, with ACE-30 visualizing
those associations by means of highlighting related items in adjacent
columns when you select something in a column.
ACE-29 then adds features to get, commit and revert repositories,
which is the point where the system actually starts becoming useable.
ACE-31 then adds the ability to remove associations and objects.
All these issues together should give us a basic client to work with.
I intend to start working on this from now on, but if anybody wants to
try and help out, feel free to do so. Especially if you have
experience with the PAX tools or even GWT! I'm sure some of these
tasks are a bit too much for those with no prior history of working on
this codebase, but we're here to help! :)
Also, if you have any comments or suggestions, let me know!
Greetings, Marcel