On 14-Jan-2013, at 1:14 PM, Frank Zhang <frank.zh...@citrix.com> wrote:

>> 
>>> From the url mapping it seems to be used for mycloud which is obsolete
>>> I think
>> 
>> Should we remove it and get rid of the servlet class then?
> 
> Chiradeep and Edison are right person for this question

Comment on this please, Chiradeep or Edison?

> 
>> 
>>> _pluginsMap is non-static but s_locators is. ComponentLocator.
>>> getLocator which essentially calls ComponentLocator
>>> .getLocatorInternal will synchronize on s_locators, that means
>>> ComponentLocators having the same name should not be initialized twice.
>> So  pluggable services  twice initialized  should be caused by some other 
>> issue.
>> 
>> Looking at the code, we are getting a component by
>> ConfigurationServer.Name and then by ManagementServer.Name, and from
>> debugging earlier I'd found the issues with this code;
>> 
>>          ConfigurationServer c =
>> (ConfigurationServer)ComponentLocator.getComponent(ConfigurationServ
>> er.Name);
>>          //ConfigurationServer c = new ConfigurationServerImpl();
>>          try {
>>              c.persistDefaultValues();
>>              s_locator =
>> ComponentLocator.getLocator(ManagementServer.Name);
>>                  ManagementServer ms =
>> (ManagementServer)ComponentLocator.getComponent(ManagementServ
>> er.Name);
> 
> Then we always have two copies of each singleton. It didn't cause problem 
> before because most time we use  
> ComponentLocator.getComponent(ManagementServer.Name)
> 
>> 
>>> I don't know where does our Spring IOC get initialized, but if
>>> ComponentLocator is loaded by spring with a name other than
>>> ManagementServer.Name, then there would be two copies of
>>> ComponentLocator which load all plugins twice
>> 
>> For javelin ComponentLocator is no more and starting that we will use spring
>> DI and for getting components without @Inject I've seen usage of a new
>> ComponentContext.
>> 
>> Regards.

Reply via email to