He Marcel On Wed, Oct 26, 2011 at 5:51 PM, Marcel Offermans <[email protected]> wrote: > Hello Bram, > > On Oct 26, 2011, at 12:21 PM, Bram de Kruijff wrote: >> 2011/10/25 Marcel Offermans <[email protected]>: >>> Now that we released Amdatu Platform, we should probably continue this >>> discussion. >>> I think the most important thing we need to do, is to figure out what our >>> Tenant interface should look like, and how we want to configure the tenants. >>> Looking at the current Tenant interface, each tenant has an "id" and "name". >>> That makes sense. It also has a set of properties, and methods to access and >>> modify them. I would propose that we remove the method to modify the >>> properties (putProperty) and I'm also not sure what the actual use of the >>> "matches" method is: if you have a method to access the Dictionary of >>> properties, then you can use the standard OSGi filter mechanism to do >>> matches (in a more flexible way even). >>> So I propose we move to this interface: >>> public interface Tenant { >>> String getId(); >>> >>> String getName(); >>> >>> Dictionary getProperties(); >>> } >> >> Mostly agreed. Just a thought/question though... why is Tenant not (or >> does not extend) org.osgi.service.useradmin.User? Does it not make >> sense to regard tenants as users (of a specific type) at the platform >> level, and store them using a well know mechanism with standard >> interfaces? We could still publish them as Tenant extends User >> services or whatever to do compatibility. > > Going along with that thought, that would mean that we would first install an > implementation of UserAdmin (optionally plus backend, but probably a file > based solution is fine for this). Then we would have a bundle that would > start listening to UserAdmin events, and perhaps filter out the ones that are > about users that are of the type "tenant". Based on those, it would publish > these Tenant services (that extend User). It definitely sounds more > complicated to me. Also, I don't see what all the extra methods that a User > has would add to our tenant interface. > > Furthermore, since I think we agreed before that we do not necessarily want > CRUD operations for tenants (they are already deprecated in our current API). > > All in all, to me at least a tenant has to be identifyable, it probably needs > a human-readable name and it might require a few properties (mainly used in > the code that services incoming requests and assigns them to the correct > tenant). That's all. Do you see this differently?
Agreed >>> Also, I propose we configure the tenants via ConfigurationAdmin, using a >>> ManagedServiceFactory, requiring at least an ID for each tenant, and >>> optionally the name. Any other properties will be exposed via >>> getProperties(). >> >> Think so yes. This mapping to ManagedServiceFactory will be trivial to >> map to Ace configuration files lateron right? > > Exactly, so we can provision the tenants lateron. So +1 for me grz Bram > Greetings, Marcel > > > _______________________________________________ > Amdatu-developers mailing list > [email protected] > http://lists.amdatu.org/mailman/listinfo/amdatu-developers > _______________________________________________ Amdatu-developers mailing list [email protected] http://lists.amdatu.org/mailman/listinfo/amdatu-developers

