private void convertToKazuki(final File configFile) throws Exception {
    try (Reader r = new FileReader(configFile);
        FileInputStream is = new FileInputStream(configFile);
        Reader fr = new InputStreamReader(is)) {

      Xpp3DomBuilder.build(r);
      Configuration configuration = new NexusCapabilitiesConfigurationXpp3Reader().read(fr);
      List<CCapability> capabilities = configuration.getCapabilities();

      if (capabilities != null) {
        for (final CCapability c : capabilities) {

          // NEXUS-6349: do not convert outreach related capabilities and let outreach plugin
          // recreate them
          if ("OutreachMarkerCapability".equals(c.getTypeId())
              || "OutreachManagementCapability".equals(c.getTypeId())) {
            continue;
          }

          Map<String, String> properties = Maps.newHashMap();
          if (c.getProperties() != null) {
            for (final CCapabilityProperty property : c.getProperties()) {
              properties.put(property.getKey(), property.getValue());
            }
          }

          capabilityStorage.add(
              new CapabilityStorageItem(
                  c.getVersion(), c.getTypeId(), c.isEnabled(), c.getNotes(), properties));
        }
        log.info("Converted {} capabilities from capabilities.xml to Kazuki", capabilities.size());
      }
    }
  }
 public Configuration convertFromKazuki() throws IOException {
   Map<CapabilityIdentity, CapabilityStorageItem> capabilities = capabilityStorage.getAll();
   Configuration configuration = new Configuration();
   for (Entry<CapabilityIdentity, CapabilityStorageItem> entry : capabilities.entrySet()) {
     configuration.addCapability(asCCapability(entry.getKey().toString(), entry.getValue()));
   }
   return configuration;
 }
  public void convertToKazukiIfNecessary() throws Exception {
    File configFile = new File(configDir, "capabilities.xml");
    if (configFile.exists()) {
      log.info("Converting capabilities from capabilities.xml to Kazuki...");

      // ensure that there are no capabilities in Kazuki
      checkState(
          capabilityStorage.getAll().isEmpty(),
          "Could not upgrade capabilities.xml to Kazuki as Kazuki already contains capabilities");

      convertToKazuki(renameCapabilitiesXml(configFile));
    }
  }