I would like to save a complete object tree of a CDOResourceFolder to file.
But I get an exception (see attachment) if I execute the following code.
Is this serialization not possible, or am I doing something wrong?
@Rule public TemporaryFolder testFolder = new TemporaryFolder();
private void testExport2File(CDOTransaction transaction) throws IOException {
CDOResourceFolder folder = transaction.createResourceFolder("/serializationtest");
CDOResource res = folder.addResource("someres");
export2File(testFolder.newFile(), EcoreUtil.copy(folder)); //<<<< this still works
Annotation mockupObject = EtypesFactory.eINSTANCE.createAnnotation();
mockupObject.setSource("somesource");
res.getContents().add(mockupObject);
export2File(testFolder.newFile(), EcoreUtil.copy(folder)); //<<<<< exception here
}
private void export2File(File destination, EObject object) throws IOException {
String fileName = destination.getAbsolutePath();
System.out.println("Exporting to: " + fileName);
Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
Map<String, Object> m = reg.getExtensionToFactoryMap();
m.put("key", new XMIResourceFactoryImpl());
ResourceSet resSet = new ResourceSetImpl();
Resource resource = resSet.createResource(URI.createFileURI(fileName));
resource.getContents().add(object);
resource.save(Collections.EMPTY_MAP);
}