incubator-cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chiradeep Vittal <Chiradeep.Vit...@citrix.com>
Subject Re: CloudStack servlet issue
Date Tue, 15 Jan 2013 00:33:55 GMT
"MyCloud" was intended to ease cloud-onboarding: somebody would run the
orchestration server and others could just install the agent and register
the agent with the 3rd party management server. I think the idea still has
potential, so I would leave it in.

On 1/14/13 3:02 PM, "Rohit Yadav" <rohit.yadav@citrix.com> wrote:

>
>On 14-Jan-2013, at 1:14 PM, Frank Zhang <Frank.Zhang@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.
>


Mime
View raw message