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