2017-04-05 3 views
0

J'ai quelques difficultés conceptuelles avec les types Configuration et PropriétésConfiguration de la configuration d'Apache Commons.Configuration vs PropriétésConfiguration

PropertiesConfiguration config = createConfig(); 
BlazeGraphEmbedded graph = BlazeGraphEmbedded.open(repo, config); 

méthode createConfig():

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

Je suis en train de créer un objet de configuration pour passer à la méthode ouverte dans la classe BlazeGraphEmbedded. Cependant, ma méthode createConfig renvoie un objet PropertiesConfiguration, que la méthode BlazeGraphEmbedded.open (Repository, Configuration) n'acceptera pas. Je n'ai pas pu jeter mon PropertiesConfiguration à la configuration, il produit une erreur d'exécution:

Exception in thread "main" java.lang.ClassCastException: 
org.apache.commons.configuration2.PropertiesConfiguration cannot be cast to 
org.apache.commons.configuration.Configuration 

Je comprends que la configuration est une interface qui est mis en œuvre par PropertiesConfiguration, mais je suis floue sur les détails de la façon dont je peux utiliser les deux types différents pour faire fonctionner mon programme.

Répondre

0

Le problème était dans mes instructions d'importation. J'avais:

import org.apache.commons.configuration.Configuration; 
import org.apache.commons.configuration2.PropertiesConfiguration; 

J'ai donc importé de deux sources différentes, donc pourquoi les types n'étaient pas compatibles.