private void load() throws ProvisionException {
   try {
     ArtifactsIO io = new ArtifactsIO();
     Set<IArtifactDescriptor> initialDescriptors = io.readXML(new FileInputStream(p2DataFile));
     for (IArtifactDescriptor descriptor : initialDescriptors) {
       internalAddDescriptor(descriptor);
     }
   } catch (IOException e) {
     String message = "Error while reading repository from " + p2DataFile;
     int code = ProvisionException.REPOSITORY_FAILED_READ;
     Status status = new Status(IStatus.ERROR, Activator.ID, code, message, e);
     throw new ProvisionException(status);
   }
 }
 private void internalStore() throws IOException {
   // store without exception handling
   ArtifactsIO io = new ArtifactsIO();
   io.writeXML(descriptors, p2DataFile);
 }