Ich habe einige konzeptionelle Schwierigkeiten mit den Typen Konfiguration und PropertiesConfiguration von Apache Commons Konfiguration.Konfiguration vs. Eigenschaften Konfiguration
PropertiesConfiguration config = createConfig();
BlazeGraphEmbedded graph = BlazeGraphEmbedded.open(repo, config);
createConfig() -Methode:
public static PropertiesConfiguration createConfig()
{
PropertiesConfiguration config = null;
Parameters params = new Parameters();
BasicConfigurationBuilder<PropertiesConfiguration> builder =
new BasicConfigurationBuilder<PropertiesConfiguration>(PropertiesConfiguration.class)
.configure(params.basic()
.setListDelimiterHandler(new DefaultListDelimiterHandler(','))
.setThrowExceptionOnMissing(true));
try {
config = builder.getConfiguration();
config.addProperty("VALUE_FACTORY", BVF_extendo4000.INSTANCE);
} catch (ConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Returning config.");
return config;
}
Ich versuche, ein Configuration-Objekt zu erstellen, um die offene Methode in der Klasse BlazeGraphEmbedded passieren. Meine createConfig-Methode gibt jedoch ein PropertiesConfiguration-Objekt zurück, das die Methode BlazeGraphEmbedded.open (Repository, Configuration) nicht akzeptiert. Ich war nicht in der Lage, meine PropertiesConfiguration zu Konfiguration zu werfen, es erzeugt einen Laufzeitfehler:
Exception in thread "main" java.lang.ClassCastException:
org.apache.commons.configuration2.PropertiesConfiguration cannot be cast to
org.apache.commons.configuration.Configuration
Ich verstehe, dass Konfiguration ist eine Schnittstelle, die von PropertiesConfiguration implementiert ist, aber ich bin fuzzy auf die Details, wie ich verwenden kann, die zwei verschiedenen Arten, um mein Programm laufen zu lassen.