Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] OSGi-ECF-Mgmt-Ui

Hi Florian,

On 3/14/2015 12:34 PM, Florian Pirchner wrote:
Hi there,

now i dived deeper into the MTO structure.

And would like discuss an issue.

Wouldn't it be a good idea, to enrich the MTOs. For instance, the BundleMTO does not provide the start level. So an additional service request for each bundle to IBundleManager#getBundleStartLevel() is required to get the BundleStartLevelMTO.

Indeed, the bundle and its start level are separated by the spec. But for the management UI it would increase performance, if we could reduce server request. Specially if the mgmt.framework is provided by RS or RSA.

This is a great question. The reason things are the way they are currently wrt start level info and bundles is essentially because of what you say above: the bundle and it's start level are separated by the spec.

But you are quite right that it *might* make sense to...in some cases...provide more information (like startlevel, etc) in the MTOs. (BTW, MTO stands for 'Management Transfer Object'...which is a variant of 'Data Transfer Object'...now used in the OSGi specifications (R6). It is quite possible that you are right Florian, in saying that for most management use cases it would make sense to include the Bundle start level information. But to be honest with everyone, I'm not yet sure that's the case (that most management use cases would require or even imply showing the bundle's current start level by default/without additional services).

We can/could/will add/enhance the MTOs...via adding fields (like bundle start level), and/or sub-classes, etc. Whatever makes sense. But I think it does make sense to get some more management use case experience to determine whether or not to do this. Note that I've already broken this rule WRT BundleMTO even though it's not part of the OSGI-specified BundleDTO, I do include the bundle's manifest contents in the BundleMTO. That one seemed pretty obvious to me :).

But again...I have no objection to adding information to MTOs (and/or extending them) when we can show that it makes sense. I just would like to keep things as simple as possible to start, and add things as we find through usage that it's necessary. Adding things is so much easier than deleting them...at least when it comes to API :).


A similar example is BundleWireMTO. providerWiring and requirerWiring returns an int value for the wiring. Maybe we could preload things in the manager host and return WiringMTO instead or additional.

Yes that's true...and may make perfect sense. Truth is that I'm not sure, and so to get things started I did the simplest possible (and pretty-closely mirrored the OSGi-standardized DTO structure...at least WRT the wiring API).


Maybe that is not possible for reason. But i would really appreciate these changes.

It's possible...but I would really like to get some of the basics in place and get a little experience with usage and use cased before adding to many things...assuming that those things/that information are going to be required 'greedily' as opposed to 'lazily'.


If you (Scott) accept these enhancements, then i would love to implement them.

I have no objection to other people adding things to the org.eclipse.ecf.mgmt.* APIs, and I've tried to structure things so that this is natural (i.e. modular and extensible). For example, note that all the *Manager implementations implement IAdaptable, meaning that they are already structured to provide adapters at runtime. I've also defined most of the host impl methods to be protected (or public if part of service api of course).

But I would like to try to get some usage experience...before adding too much. I just feel that's a good modular way to go :).

Scott




Back to the top