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

Reply via email to