2015-06-19 3 views
5

Используя новую версию 1.0 JavaMoney API с помощью reference implementation, мы пытаемся остановить загрузчик ресурсов от загрузки другого ExchangeRateProvider, переопределив javamoney.properties.Переопределение свойств в javamoney.properties?

{1}conversion.default-chain=MY-PROVIDER 
# Turn off loading of the default Moneta ExchangeRateProviders. 
{1}load.ECBCurrentRateProvider.type=NEVER 
{1}load.ECBHistoric90RateProvider.type=NEVER 
{1}load.ECBHistoricRateProvider.type=NEVER 
{1}load.IMFRateProvider.type=NEVER 
{1}load.AbstractECBRateProvider=NEVER 

Однако, журнал говорит мне, что они все еще загружены:

jun 19, 2015 8:27:58 AM org.javamoney.moneta.internal.convert.AbstractECBRateProvider newDataLoaded 
INFO: Loaded ECBCurrentRateProvider exchange rates for days:1 

Из интерфейса LoaderService «НИКОГДА» не триггерами загружает локальный ресурс (а не пульт дистанционного управления), но я также попробовал «ЛАЗИ».

public interface LoaderService { 

/** 
* Platform RI: The update policy defines how and when the 
* {@link LoaderService} tries to update the local cache with newest version of 
* the registered data resources, accessing the configured remote 
* {@link URI}s. By default no remote connections are done (
* {@link UpdatePolicy#NEVER}). 
* 
* @author Anatole Tresch 
*/ 
public enum UpdatePolicy { 
    /** 
    * The resource will never be updated from remote, only the fallback URL 
    * will be evaluated. 
    */ 
    NEVER, 
    /** 
    * The resource will be loaded automatically from remote only once on 
    * startup. 
    */ 
    ONSTARTUP, 
    /** 
    * The resource will be loaded automatically from remote only once, when 
    * accessed the first time. 
    */ 
    LAZY, 
    /** 
    * The resource should be regularly reloaded based on a schedule. 
    */ 
    SCHEDULED 
} 
... 

То, что мы уже отмечали, что в конструкторе ExchangeProviders в org.javamoney.moneta.internal.convert, есть призыв к loader.loadDataAsync:

AbstractECBRateProvider(ProviderContext context) { 
    super(context); 
    saxParserFactory.setNamespaceAware(false); 
    saxParserFactory.setValidating(false); 
    LoaderService loader = Bootstrap.getService(LoaderService.class); 
    loader.addLoaderListener(this, getDataId()); 
    loader.loadDataAsync(getDataId()); 
} 

Это такой же, как для случая «OnStartup» в методе registerData в DefaultLoaderService:

switch (updatePolicy) { 
     case NEVER: 
      loadDataLocal(resourceId); 
      break; 
     case ONSTARTUP: 
      loadDataAsync(resourceId); 
      break; 
     case SCHEDULED: 
      addScheduledLoad(res); 
      break; 
     case LAZY: 
     default: 
      break; 
    } 

Может ли это быть причиной того, что он не будет загружен независимо от того, что я ставлю в моем javamoney.pr operties?

Как вообще отключить других ExchangeRateProviders? Мы только хотим использовать наш заказ ExchangeRateProvider.

ответ

4

Выглядит, у нас есть проблема здесь. Можете ли вы подать заявку на Jira в нашем проекте java.net/javamoney (и проверить, была ли эта проблема уже подана :)). В следующие дни мы планируем опубликовать выпуск патчей ri, поэтому мы также можем исправить это.

Большое спасибо! Anatole

+0

Благодарим за отзыв! Я подал Jira: https://java.net/jira/browse/JAVAMONEY-131. – Truls

Смежные вопросы