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