Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/classes/sun/util/locale/provider/LocaleServiceProviderPool.java
          +++ new/src/share/classes/sun/util/locale/provider/LocaleServiceProviderPool.java
↓ open down ↓ 118 lines elided ↑ open up ↑
 119  119      }
 120  120  
 121  121      /**
 122  122       * The sole constructor.
 123  123       *
 124  124       * @param c class of the locale sensitive service
 125  125       */
 126  126      private LocaleServiceProviderPool (final Class<? extends LocaleServiceProvider> c) {
 127  127          providerClass = c;
 128  128  
 129      -        // Add the JRE Locale Data Adapter implementation.
 130      -        providers.putIfAbsent(LocaleProviderAdapter.Type.JRE,
 131      -            LocaleProviderAdapter.forJRE().getLocaleServiceProvider(c));
 132      -
 133      -        // Add the SPI Locale Data Adapter implementation.
 134      -        LocaleProviderAdapter lda = LocaleProviderAdapter.forType(LocaleProviderAdapter.Type.SPI);
 135      -        LocaleServiceProvider provider = lda.getLocaleServiceProvider(c);
 136      -        if (provider != null) {
 137      -            providers.putIfAbsent(LocaleProviderAdapter.Type.SPI, provider);
 138      -        }
 139      -
 140      -        // Add the CLDR Locale Data Adapter implementation, if needed.
 141      -        lda =  LocaleProviderAdapter.forType(LocaleProviderAdapter.Type.CLDR);
 142      -        if (lda != null) {
 143      -            provider = lda.getLocaleServiceProvider(c);
 144      -            if (provider != null) {
 145      -                providers.putIfAbsent(LocaleProviderAdapter.Type.CLDR, provider);
      129 +        for (LocaleProviderAdapter.Type type : LocaleProviderAdapter.getAdapterPreference()) {
      130 +            LocaleProviderAdapter lda = LocaleProviderAdapter.forType(type);
      131 +            if (lda != null) {
      132 +                LocaleServiceProvider provider = lda.getLocaleServiceProvider(c);
      133 +                if (provider != null) {
      134 +                    providers.putIfAbsent(type, provider);
      135 +                }
 146  136              }
 147  137          }
 148      -
 149      -        // Add the Host Locale Data Adapter implementation, if needed.
 150      -        lda =  LocaleProviderAdapter.forType(LocaleProviderAdapter.Type.HOST);
 151      -        if (lda != null) {
 152      -            provider = lda.getLocaleServiceProvider(c);
 153      -            if (provider != null) {
 154      -                providers.putIfAbsent(LocaleProviderAdapter.Type.HOST, provider);
 155      -            }
 156      -        }
 157  138      }
 158  139  
 159  140      static void config(Class<? extends Object> caller, String message) {
 160  141          PlatformLogger logger = PlatformLogger.getLogger(caller.getCanonicalName());
 161  142          logger.config(message);
 162  143      }
 163  144  
 164  145      /**
 165  146       * Lazy loaded set of available locales.
 166  147       * Loading all locales is a very long operation.
↓ open down ↓ 264 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX