2015-06-19 18 views
5

reference implementation ile JavaMoney API'un yeni 1.0 sürümünü kullanarak javamoney.properties'i geçersiz kılarak kaynak yükleyicinin diğer ExchangeRateProvider'ı yüklemesini durdurmaya çalışıyoruz. LoaderService arayüzüne 'ASLA' Yerel kaynak (ve uzaktan) yüklenirken tetikler itibarenjavamoney.properties içinde özellikleri geçersiz kılma?

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

, ama ben de ettik:

{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 

Ancak, günlük hala yükleniyor söylüyor 'LAZY' denedi.

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 
} 
... 

Ne not ettik org.javamoney.moneta.internal.convert içinde ExchangeProviders kurucuları içindedir, loader.loadDataAsync çağrısı olmasıdır:

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

budur vaka için aynı 'ONSTARTUP' DefaultLoaderService yöntemin registerData yılında:

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

bu benim javamoney.pr koymak ne olursa olsun yüklenmiş olduğundan bir sebep olabilir zellikler?

Diğer ExchangeRateProvider'ları tamamen nasıl kapatabiliriz? Sadece bizim özel ExchangeRateProvider'u kullanmak istiyoruz.

cevap

4

Burada bir sorunumuz var görünüyor. Lütfen java.net/javamoney projemizde bir Jira sorunu gönderir misiniz (ve bu konunun zaten dosyalanmış olup olmadığını kontrol edin :)). Önümüzdeki günlerde Ri'nun bir yama yayınlamasını planlıyoruz, bu yüzden bunu düzeltebiliriz.

Çok teşekkürler! Anatole

+0

Yanıt için teşekkürler! Bir Jira'ya başvurdum: https://java.net/jira/browse/JAVAMONEY-131. – Truls