title: Editing configuration files in Pax Exam
body: <p>I am using Pax Exam to perform integration tests to my OSGi application. I have a configuration factory in which I specify the Karaf feature of my application to be installed in the test container and then modify some of a proerty of a .cfg file installed as part of my feature.</p>
  
  <pre><code>public class TestConfigurationFactory implements ConfigurationFactory {
  
  @Override
  public Option[] createConfiguration() {
      return options(
              karafDistributionConfiguration()
                      .frameworkUrl(
                              maven().groupId("org.apache.karaf")
                                      .artifactId("apache-karaf")
                                      .version("3.0.1").type("tar.gz"))
                      .unpackDirectory(new File("target/exam"))
                      .useDeployFolder(false),
              keepRuntimeFolder(),
              // Karaf (own) features.
              KarafDistributionOption.features(
                      maven().groupId("org.apache.karaf.features")
                              .artifactId("standard").classifier("features")
                              .version("3.0.1").type("xml"), "scr"),
              // CXF features.
              KarafDistributionOption.features(maven()
                      .groupId("org.apache.cxf.karaf")
                      .artifactId("apache-cxf").version("2.7.9")
                      .classifier("features").type("xml")),
              // Application features.
              KarafDistributionOption.features(
                      maven().groupId("com.me.project")
                              .artifactId("my-karaf-features")
                              .version("1.0.0-SNAPSHOT")
                              .classifier("features").type("xml"), "my-feature"),
              KarafDistributionOption.editConfigurationFilePut(
                         "etc/com.me.test.cfg", "key", "value"));
  }
  }
  </code></pre>
  
  <p>The property I specify in <code>editConfigurationFilePut</code> is modified correctly, however the rest of the .cfg file's properties are deleted. If I use the <code>editConfigurationFilePut</code> method to edit one of Karaf's configuration files it works as expected (just adds the new property without modifying the existing ones) so I am thinking that perhaps the problem is that Pax Exam attempts to modify the configuration before the .cfg file is installed by my feature and therefore creates a new file to put the property in. If this is the case is there some way to synchronise this process so that the .cfg file is edited only after the feature is properly installed?</p>