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);