Uptake Jakarta Dependencies: istack commons, GF, Copyright plugin & mimepull (#4002)
Signed-off-by: Jan Supol <jan.supol@oracle.com>
diff --git a/core-common/pom.xml b/core-common/pom.xml
index ea7c997..91b312c 100644
--- a/core-common/pom.xml
+++ b/core-common/pom.xml
@@ -95,7 +95,7 @@
</plugin>
<plugin>
<groupId>com.sun.istack</groupId>
- <artifactId>maven-istack-commons-plugin</artifactId>
+ <artifactId>istack-commons-maven-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<plugin>
@@ -126,6 +126,8 @@
<!-- Note: When you're changing these properties change them also in bundles/jaxrs-ri/pom.xml. -->
<Import-Package>
sun.misc.*;resolution:=optional,
+ javax.activation.*;version="!",
+ javax.annotation.*;version="!",
*
</Import-Package>
<Export-Package>org.glassfish.jersey.*;version=${project.version}</Export-Package>
diff --git a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizable.java b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizable.java
index a518896..d9a0274 100644
--- a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizable.java
+++ b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizable.java
@@ -16,6 +16,9 @@
package org.glassfish.jersey.internal.l10n;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
/**
* Localizable message.
*
@@ -54,4 +57,11 @@
* @return the localization messages resource bundle name.
*/
public String getResourceBundleName();
+
+ /**
+ * Get the resource bundle of the given localization.
+ * @param locale the given {@code Locale}
+ * @return the localization messages resource bundle for given locale.
+ */
+ public ResourceBundle getResourceBundle(Locale locale);
}
diff --git a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessage.java b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessage.java
index e5e402d..b941485 100644
--- a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessage.java
+++ b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessage.java
@@ -16,17 +16,30 @@
package org.glassfish.jersey.internal.l10n;
+import java.util.Arrays;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
/**
* @author WS Development Team
*/
public final class LocalizableMessage implements Localizable {
private final String _bundlename;
+ private final LocalizableMessageFactory.ResourceBundleSupplier _rbSupplier;
+
private final String _key;
private final Object[] _args;
+ @Deprecated
public LocalizableMessage(String bundlename, String key, Object... args) {
+ this(bundlename, null, key, args);
+ }
+
+ public LocalizableMessage(String bundlename, LocalizableMessageFactory.ResourceBundleSupplier rbSupplier,
+ String key, Object... args) {
_bundlename = bundlename;
+ _rbSupplier = rbSupplier;
_key = key;
if (args == null) {
args = new Object[0];
@@ -41,11 +54,20 @@
@Override
public Object[] getArguments() {
- return _args.clone();
+ return Arrays.copyOf(_args, _args.length);
}
@Override
public String getResourceBundleName() {
return _bundlename;
}
-}
+
+ @Override
+ public ResourceBundle getResourceBundle(Locale locale) {
+ if (_rbSupplier == null) {
+ return null;
+ }
+
+ return _rbSupplier.getResourceBundle(locale);
+ }
+}
\ No newline at end of file
diff --git a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessageFactory.java b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessageFactory.java
index 5886fe0..d5d62e2 100644
--- a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessageFactory.java
+++ b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/LocalizableMessageFactory.java
@@ -16,19 +16,39 @@
package org.glassfish.jersey.internal.l10n;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
/**
* @author WS Development Team
*/
public class LocalizableMessageFactory {
private final String _bundlename;
+ private final ResourceBundleSupplier _rbSupplier;
+ @Deprecated
public LocalizableMessageFactory(String bundlename) {
_bundlename = bundlename;
+ _rbSupplier = null;
+ }
+
+ public LocalizableMessageFactory(String bundlename, ResourceBundleSupplier rbSupplier) {
+ _bundlename = bundlename;
+ _rbSupplier = rbSupplier;
}
public Localizable getMessage(String key, Object... args) {
- return new LocalizableMessage(_bundlename, key, args);
+ return new LocalizableMessage(_bundlename, _rbSupplier, key, args);
+ }
+
+ public interface ResourceBundleSupplier {
+ /**
+ * Gets the ResourceBundle.
+ * @param locale the requested bundle's locale
+ * @return ResourceBundle
+ */
+ ResourceBundle getResourceBundle(Locale locale);
}
}
diff --git a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizer.java b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizer.java
index b812d64..058617f 100644
--- a/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizer.java
+++ b/core-common/src/main/java/org/glassfish/jersey/internal/l10n/Localizer.java
@@ -86,7 +86,12 @@
alternateBundleName,
_locale);
} catch (MissingResourceException e2) {
- // try OSGi
+ //try context classloader
+ try {
+ bundle = ResourceBundle.getBundle(bundlename, _locale,
+ Thread.currentThread().getContextClassLoader());
+ } catch (MissingResourceException e3) {
+ // try OSGi
OsgiRegistry osgiRegistry = ReflectionHelper.getOsgiRegistryInstance();
if (osgiRegistry != null) {
bundle = osgiRegistry.getResourceBundle(bundlename);
@@ -101,6 +106,7 @@
}
}
}
+ }
}
}
}