OK. Then the solution is to register listeners for tenant creation in
the components as well.

Supun..

On Sun, Sep 19, 2010 at 1:22 PM, Ruwan Linton <[email protected]> wrote:
>  On 9/18/10 2:15 PM, Supun Kamburugamuva wrote:
>>
>> On Fri, Sep 17, 2010 at 4:58 PM, Ruwan Linton<[email protected]>  wrote:
>>>
>>>  Hmmm, I didn't get it. A component initialization, (which will happen
>>> most of the time inline with the system initialization) and a tenant
>>> initialization are 2 different things.
>>>
>>> A particular component would want to initialize itself at the system
>>> initialization while it might want to do certain task for each and every
>>> tenant when it is initializing. Note that all tenants are using the same
>>> instance of a given component.
>>>
>> Yes what you say is true but there is another side. There are things
>> that components should do when a tenant created as well. For example
>> proxy server admin registers a Axis Observer. This axis observer
>> should be registered for each and every tenant. At the moment
>> registration happens in the components activation method. But this
>> doesn't work across both multi tenant deployment and standalone
>> deployment.
>>
>> Another example is statistics collection. We have a singleton class to
>> collect the statistics. But ideally this component should get notified
>> when to create a instance of this statistics store rather than
>> creating at the start-up.
>>
>> Another example is registering synapse artifact deployers. Each and
>> every component should create the deployers when a tenant is created.
>>
>> We can create work arounds and get rid of these problems. For example
>> now proxy observer is created inside the stratos synapse management
>> component. But these are ugly and in the long term hard to maintain.
>
> I don't think we should unify these, which is because there could be
> components that needs to do separate things when carbon is getting
> initialized and a tenant is getting initialized.
>
> If we want to go for unified initialization, we need to design the API in a
> manner it could differentiate the system and tenant initializations. One
> approach would be to pass-in the tenant id or something specific to that
> tenant and pass null for the system initialization. Then again that is a bad
> API design :-)
>
> Ruwan
>>
>> Thanks,
>> Supun..
>>
>>
>>> Ruwan
>>>
>>> On 9/17/10 2:22 PM, Srinath Perera wrote:
>>>>
>>>> +1
>>>>
>>>> On Fri, Sep 17, 2010 at 2:16 PM, Supun Kamburugamuva<[email protected]>
>>>>  wrote:
>>>>>
>>>>> I'm looking for way for a component to know when it has to initialize
>>>>> and when it has to destroy?
>>>>>
>>>>> At the moment we have two instances where a component should
>>>>> initialize.
>>>>>
>>>>> 1. Carbon initialization
>>>>> 2. Tenant initialization
>>>>>
>>>>> But these two are two different cases. From a component perspective
>>>>> they shouldn't know weather it is a system initialization or a tenant
>>>>> initialization. It would be great to have a unified mechanism across
>>>>> the platform for a component to decide when to initialize and when to
>>>>> destroy.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> --
>>>>> Supun Kamburugamuva
>>>>> Technical Lead
>>>>> WSO2 Inc.;  http://wso2.org
>>>>> E-mail: [email protected];  Mobile: +94 77 431 3585
>>>>> Blog: http://supunk.blogspot.com
>>>>>
>>>>> _______________________________________________
>>>>> Carbon-dev mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>
>>>>
>>>
>>> --
>>> Ruwan Linton
>>> Software Architect&    Product Manager, WSO2 ESB; http://wso2.org/esb
>>> WSO2 Inc.; http://wso2.com
>>>
>>> Lean . Enterprise . Middleware
>>>
>>> phone: +1 408 754 7388 ext 51789
>>> email: [email protected]; cell: +94 77 341 3097
>>> blog: http://blog.ruwan.org
>>> linkedin: http://www.linkedin.com/in/ruwanlinton
>>> tweet: http://twitter.com/ruwanlinton
>>>
>>>
>>> _______________________________________________
>>> Carbon-dev mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>
>>
>>
>
>
> --
> Ruwan Linton
> Software Architect&  Product Manager, WSO2 ESB; http://wso2.org/esb
> WSO2 Inc.; http://wso2.com
>
> Lean . Enterprise . Middleware
>
> phone: +1 408 754 7388 ext 51789
> email: [email protected]; cell: +94 77 341 3097
> blog: http://blog.ruwan.org
> linkedin: http://www.linkedin.com/in/ruwanlinton
> tweet: http://twitter.com/ruwanlinton
>
>



-- 
Supun Kamburugamuva
Technical Lead
WSO2 Inc.;  http://wso2.org
E-mail: [email protected];  Mobile: +94 77 431 3585
Blog: http://supunk.blogspot.com

_______________________________________________
Carbon-dev mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to