From d797a9e26c6c553af66adf8dc2477ca432d6fefe Mon Sep 17 00:00:00 2001 From: Sebastian Zarnekow Date: Thu, 18 Dec 2014 09:36:58 +0100 Subject: [PATCH] [xtext][encoding] Make backwards binding of encoding provider backwards compatible Also mark the stateful instance as a singleton. Change-Id: Ic4e20432a228b5c94b58c81f1888feed65932ab0 --- .../parser/EclipseProjectPropertiesEncodingProvider.java | 3 +++ .../org/eclipse/xtext/service/DefaultRuntimeModule.java | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/parser/EclipseProjectPropertiesEncodingProvider.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/parser/EclipseProjectPropertiesEncodingProvider.java index f8211d17a..554471fca 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/parser/EclipseProjectPropertiesEncodingProvider.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/parser/EclipseProjectPropertiesEncodingProvider.java @@ -17,6 +17,8 @@ import java.util.Properties; import org.eclipse.emf.common.util.URI; +import com.google.inject.Singleton; + /** * Use this class to retrieve resource encodings from Eclipse project properties. The provider can be used * without a running Eclipse context, but depends on resources being stored in Eclipse projects. @@ -25,6 +27,7 @@ import org.eclipse.emf.common.util.URI; * @author Miro Spoenemann - Initial contribution and API * @since 2.8 */ +@Singleton public class EclipseProjectPropertiesEncodingProvider extends IEncodingProvider.Runtime { private static final String PROPERTIES_DIRNAME = ".settings"; diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java index fc6f8f498..51cc5125e 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java @@ -205,7 +205,14 @@ public abstract class DefaultRuntimeModule extends AbstractGenericModule { } public void configureRuntimeEncodingProvider(Binder binder) { - binder.bind(IEncodingProvider.class).annotatedWith(DispatchingProvider.Runtime.class).to(EclipseProjectPropertiesEncodingProvider.class); + binder.bind(IEncodingProvider.class).annotatedWith(DispatchingProvider.Runtime.class).to(IEncodingProvider.Runtime.class); + } + + /** + * @since 2.8 + */ + public Class bindRuntimeEncodingProvider() { + return EclipseProjectPropertiesEncodingProvider.class; } public Class> provideIEncodingProvider() {