[ls] make ResourceServiceProviderServiceLoader non-static

This commit is contained in:
Jan Koehnlein 2016-07-20 13:44:07 +02:00
parent cf71598677
commit c70555edd9
2 changed files with 10 additions and 10 deletions

View file

@ -22,9 +22,11 @@ import com.google.inject.Singleton
@Singleton
class ResourceServiceProviderServiceLoader implements Provider<IResourceServiceProvider.Registry> {
private static ServiceLoader<ISetup> setupLoader = ServiceLoader.load(ISetup)
private ServiceLoader<ISetup> setupLoader = ServiceLoader.load(ISetup)
private def static IResourceServiceProvider.Registry loadRegistry() {
private IResourceServiceProvider.Registry registry = loadRegistry
private def IResourceServiceProvider.Registry loadRegistry() {
val registry = new ResourceServiceProviderRegistryImpl()
for (ISetup cp : setupLoader) {
val injector = cp.createInjectorAndDoEMFRegistration();
@ -43,8 +45,6 @@ class ResourceServiceProviderServiceLoader implements Provider<IResourceServiceP
return registry;
}
private static IResourceServiceProvider.Registry registry = loadRegistry
override get() {
return registry
}

View file

@ -26,11 +26,13 @@ import org.eclipse.xtext.resource.impl.ResourceServiceProviderRegistryImpl;
@Singleton
@SuppressWarnings("all")
public class ResourceServiceProviderServiceLoader implements Provider<IResourceServiceProvider.Registry> {
private static ServiceLoader<ISetup> setupLoader = ServiceLoader.<ISetup>load(ISetup.class);
private ServiceLoader<ISetup> setupLoader = ServiceLoader.<ISetup>load(ISetup.class);
private static IResourceServiceProvider.Registry loadRegistry() {
private IResourceServiceProvider.Registry registry = this.loadRegistry();
private IResourceServiceProvider.Registry loadRegistry() {
final ResourceServiceProviderRegistryImpl registry = new ResourceServiceProviderRegistryImpl();
for (final ISetup cp : ResourceServiceProviderServiceLoader.setupLoader) {
for (final ISetup cp : this.setupLoader) {
{
final Injector injector = cp.createInjectorAndDoEMFRegistration();
final IResourceServiceProvider resourceServiceProvider = injector.<IResourceServiceProvider>getInstance(IResourceServiceProvider.class);
@ -56,10 +58,8 @@ public class ResourceServiceProviderServiceLoader implements Provider<IResourceS
return registry;
}
private static IResourceServiceProvider.Registry registry = ResourceServiceProviderServiceLoader.loadRegistry();
@Override
public IResourceServiceProvider.Registry get() {
return ResourceServiceProviderServiceLoader.registry;
return this.registry;
}
}