Bug 460818 - Provide central LocalizationHelper for dynamic language
switch
https://bugs.eclipse.org/bugs/show_bug.cgi?id=460818
diff --git a/bundles/org.eclipse.emf.emfforms.localization/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfforms.localization/META-INF/MANIFEST.MF
index 536b267..60f3517 100644
--- a/bundles/org.eclipse.emf.emfforms.localization/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfforms.localization/META-INF/MANIFEST.MF
@@ -7,5 +7,6 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.osgi.service.localization;version="[1.1.0,2.0.0)",
- org.osgi.framework;version="[1.3.0,2.0.0)"
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.log;version="1.3.0"
 Export-Package: org.eclipse.emf.emfforms.spi.localization;version="1.6.0"
diff --git a/bundles/org.eclipse.emf.emfforms.localization/src/org/eclipse/emf/emfforms/spi/localization/LocalizationServiceHelper.java b/bundles/org.eclipse.emf.emfforms.localization/src/org/eclipse/emf/emfforms/spi/localization/LocalizationServiceHelper.java
index a7e9d88..1295040 100644
--- a/bundles/org.eclipse.emf.emfforms.localization/src/org/eclipse/emf/emfforms/spi/localization/LocalizationServiceHelper.java
+++ b/bundles/org.eclipse.emf.emfforms.localization/src/org/eclipse/emf/emfforms/spi/localization/LocalizationServiceHelper.java
@@ -19,6 +19,7 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogService;
 
 /**
  * Helper class for retrieving translated strings.
@@ -37,10 +38,18 @@
 	}
 
 	private final BundleContext bundleContext;
+	private ServiceReference<LogService> logServiceReference;
+	private LogService logService;
 
 	private LocalizationServiceHelper() {
 		bundleContext = FrameworkUtil.getBundle(LocalizationServiceHelper.class)
 			.getBundleContext();
+
+		logServiceReference = bundleContext.getServiceReference(LogService.class);
+		if (logServiceReference == null) {
+			return;
+		}
+		logService = bundleContext.getService(logServiceReference);
 	}
 
 	private String getLocale() {
@@ -61,11 +70,21 @@
 		final BundleLocalization bundleLocalization = bundleContext.getService(serviceReference);
 		final ResourceBundle resourceBundle = bundleLocalization.getLocalization(bundle, localeLanguage);
 		if (resourceBundle == null) {
-			// TODO log -> move report service in common
+			logService
+				.log(
+					LogService.LOG_WARNING,
+					String
+						.format(
+							"No ResourceBundle found for Language '%1$s' in Bundle %2$s with Version %3$s.", localeLanguage, bundle.getSymbolicName(), bundle.getVersion().toString())); //$NON-NLS-1$
 			return key;
 		}
 		if (!resourceBundle.containsKey(key)) {
-			// TODO log -> move report service in common
+			logService
+				.log(
+					LogService.LOG_WARNING,
+					String
+						.format(
+							"The ResourceBundle for Language '%1$s' in Bundle %2$s with Version %3$s doesn't contain the key '%4$s'.", localeLanguage, bundle.getSymbolicName(), bundle.getVersion().toString(), key)); //$NON-NLS-1$
 			return key;
 		}
 		final String result = resourceBundle.getString(key);