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