2015-06-19 15 views
5

Sử dụng phiên bản 1.0 mới JavaMoney API với reference implementation chúng tôi cố gắng ngăn trình tải tài nguyên tải xuống ExchangeRateProvider khác bằng cách ghi đè javamoney.properties.Thuộc tính ghi đè trong 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 

Tuy nhiên, nhật ký nói với tôi rằng họ vẫn đang được nạp:

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

Từ giao diện LoaderService 'KHÔNG BAO GIỜ' gây nên tải các tài nguyên địa phương (và không điều khiển từ xa), nhưng tôi cũng đã đã thử 'LAZY'.

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

gì chúng tôi đã lưu ý là trong các nhà xây dựng của ExchangeProviders trong org.javamoney.moneta.internal.convert, có một cuộc gọi đến 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()); 
} 

Đây là tương tự như đối với trường hợp 'ONSTARTUP' trong phương pháp registerData trong DefaultLoaderService:

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

này có thể là một lý do mà nó được nạp không có vấn đề gì tôi đặt trong javamoney.pr của tôi operties?

Làm cách nào để tắt hoàn toàn các ExchangeRateProviders khác? Chúng tôi chỉ muốn sử dụng tùy chỉnh ExchangeRateProvider của chúng tôi.

Trả lời

4

Có vẻ chúng tôi gặp sự cố ở đây. Bạn có thể vui lòng gửi một vấn đề Jira trong dự án java.net/javamoney của chúng tôi (và kiểm tra xem vấn đề này đã được đệ trình chưa :)). Chúng tôi dự định phát hành bản phát hành bản vá của ri vào những ngày tiếp theo, vì vậy chúng tôi cũng có thể sửa lỗi này.

Cảm ơn rất nhiều! Anatole

+0

Cảm ơn bạn đã phản hồi! Tôi đã nộp một Jira: https://java.net/jira/browse/JAVAMONEY-131. – Truls

Các vấn đề liên quan