samedi 31 mai 2008

First week report!

Here it is, the first week is (almost) over. This week I was working on setting up an OBR (next week will be for that too). SIP Communicator recently got an interesting proposal by Luminis. They are ready to provide SC with a provisionning server. It will work as follows:

  1. The developper will match the bundles with groups and groups with licenses via a special client that communicates with the provisioning server.
  2. The user of SC will open an update UI, and will be proposed licenses (users don't want to see 25 bundles for the same feature. They want the whole feature in one package, which we call a license)
  3. When downloading the licenses, the server will send deployment packages to the client associated with the licenses chosen.
  4. The client application will install the deployment packages via a deployment admin.

Some things still have to be cleared up though. How will the client application communicate to retrieve the licenses? How will the server return the deployment packages (No OBR for deployment packages)?

What are the pros and cons of both approaches?

Provisioning server

Pros

  • Users of SC can install features instead of bundles
  • Easy to match bundles with groups/licenses
  • Usage of deployment admin to install deployment pacakages
  • Provided by Luminis :)

Cons

  • No standards for communicating with the provisioning server. (Nothing like an OBR for deployment packages.
  • The developper would have to create a service to talk to his repository)
  • DeploymentAdmin isn't in the current release of Felix yet. From what I've seen, it will be in the next one.

OBR

Pros

  • Easy for the developper
  • Implementation already available in Felix

Cons

  • Bundles aren't always significative for the user.
  • A feature approach is much more interesting

Everything will be clarified during next week! We will most probably use Luminis server, but we could also use both solutions. To be continued... :)

samedi 17 mai 2008

Managed to make the Felix OBR work!

This week I was playing with Felix OBR (OSGi bundle repository). I had a couple of problems including inconsistency and inheritance. I'll explain my problems and the solutions here.

My goal was to use the Felix OBR in the SIP Communicator project. The first thing I did was to add the Felix OBR jar file to the class path, add the OSGi obr and Felix OBR packages to my bundle, and try the code in my start method. It didn't work. Everytime I was trying to use a class of the OSGi obr package, it would tell me another class of the same package was already loaded.

I found out that the OBR was already installed as a bundle in SC. I searched and found that it was loaded in the felix.auto.start system property. I then removed the Felix OBR package import in my manifest, as I only needed the OSGi obr package. Since it was already loaded as a bundle, I only had to get the reference to the service, using RepositoryAdmin.class.getName(). Everything worked afterwards! Thanks to SC developers mailing list and Felix users mailing list!

This week I also discussed the project schedule for the summer with my mentor Cristina. I'll post it as soon as it's confirmed!

TODO List:

  • Continue playing with Felix OBR
  • Think of the project functionnalities

dimanche 11 mai 2008

Long time no post!

From the last post to now, my main goal was to familiarize with SIP Communicator.s source code. I've gotten much better with, as I understand pretty much all the package structure!

My progress with Felix is going great too. I can now say I master all the concepts of it. I only want practice coding right now (especially about the Felix bundle repository: http://felix.apache.org/site/apache-felix-osgi-bundle-repository-obr.html).

My goals for the next week is to pratice coding and continue getting better with the source code. This week I will also discuss the project schedule with my mentor, so I'll think about this too.

TODO list:

  • Understanding the source code
  • Praticing with Felix bundle repository framework
  • Discussing the project schedule