Great, just created AMDATU-460 to start design and implementation work on this.

On Oct 27, 2011, at 9:33 , Bram de Kruijff wrote:

> 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
> 


_______________________________________________
Amdatu-developers mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-developers

Reply via email to