Of course I looked everywhere except the constructor... Thanks a lot and sorry for the noise !
On Thu, Aug 31, 2017 at 4:43 PM, Oliver Heger <oliver.he...@oliver-heger.de> wrote: > > > Am 31.08.2017 um 08:12 schrieb Thomas Mortagne: >> OK but my use case is that the file may or may not already exist and >> if it already exist I need to modify it, not overwrite it. > > I see. Then there is a constructor of FileBasedConfigurationBuilder that > accepts a boolean allowFailOnInit flag. Setting this flag to true will > cause the behavior you are probably after: If the file does not exist, > an empty configuration is created. Otherwise, it is loaded from the file. > > Oliver > >> >> My point is that I did not really needed to care about that in 1.x. >> >> On Wed, Aug 30, 2017 at 5:49 PM, Oliver Heger >> <oliver.he...@oliver-heger.de> wrote: >>> Hi Thomas, >>> >>> Am 30.08.2017 um 10:56 schrieb Thomas Mortagne: >>>> Here is what I currently do: >>>> >>>> PropertiesBuilderParameters parameters = new >>>> Parameters().properties(); >>>> if (file.exists()) { >>>> new Parameters().properties().setFile(file); >>>> } >>>> >>>> FileBasedConfigurationBuilder<PropertiesConfiguration> builder >>>> = >>>> new >>>> FileBasedConfigurationBuilder<PropertiesConfiguration>(PropertiesConfiguration.class) >>>> .configure(parameters); >>>> PropertiesConfiguration properties = >>>> builder.getConfiguration(); >>>> >>>> properties.setProperty("property", "value"); >>>> >>>> builder.getFileHandler().save(file); >>>> >>>> but I find it more complex than it should. >>> >>> one option would be to create the PropertiesConfiguration directly, >>> populate it, and then save it using a FileHandler. This would roughly >>> look something like the following: >>> >>> PropertiesConfiguration config = new PropertiesConfiguration(); >>> config.addProperty(...); >>> >>> FileHandler handler = new FileHandler(config); >>> File out = new File("union.properties"); >>> handler.save(out); >>> >>> More information can be found in the user's guide in the section about >>> file-based configurations [1]. >>> >>> HTH >>> Oliver >>> >>> [1] >>> http://commons.apache.org/proper/commons-configuration/userguide/howto_filebased.html#File_Operations_on_Configurations >>> >>>> >>>> IMO the file handler should not care if the file exist or not by >>>> default (empty PropertiesConfiguration as in 1.x if it does not exist) >>>> and only fail if asked to in the parameters of the builder. At the >>>> very least it should be possible to have some way to tell the builder >>>> to not care about not existing file. >>>> >>>> On Wed, Aug 30, 2017 at 10:37 AM, Thomas Mortagne >>>> <thomas.morta...@gmail.com> wrote: >>>>> Hi, >>>>> >>>>> I trying to move from Commons Configuration 1.x to 2.1.1 and I cannot >>>>> figure out how to do something that used to be obvious: creating a >>>>> properties file that does not yet exist on the file system. >>>>> >>>>> In 1.x all I had to do is create a PropertiesConfiguration with a >>>>> File, set a few properties and then save. >>>>> >>>>> In 2.1.1 I cannot find how to configure the build for it to accept a >>>>> path to a file that does not exist, I always end up with: >>>>> >>>>> org.apache.commons.configuration2.ex.ConfigurationException: Could not >>>>> locate: >>>>> org.apache.commons.configuration2.io.FileLocator@28d79cba[fileName=store.properties,basePath=/media/data/projets/xwiki/src/git/xwiki-commons/xwiki-commons-core/xwiki-commons-job/target/test/jobs/status,sourceURL=,encoding=ISO-8859-1,fileSystem=<null>,locationStrategy=<null>] >>>>> at >>>>> org.apache.commons.configuration2.io.FileLocatorUtils.locateOrThrow(FileLocatorUtils.java:346) >>>>> at >>>>> org.apache.commons.configuration2.io.FileHandler.load(FileHandler.java:972) >>>>> at >>>>> org.apache.commons.configuration2.io.FileHandler.load(FileHandler.java:702) >>>>> >>>>> and from what I see in FileHandler sources it not really configurable. >>>>> >>>>> So did I missed something or am I really supposed to create an empty >>>>> file before using the builder ? >>>>> >>>>> Thanks, >>>>> -- >>>>> Thomas >>>> >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org >>> For additional commands, e-mail: user-h...@commons.apache.org >>> >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > For additional commands, e-mail: user-h...@commons.apache.org > -- Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org