- reader = new InputStreamReader(in);
- // actually imports the CND
- CndImporter.registerNodeTypes(reader, session, true);
-
- // FIXME: what if argeo.cnd would not be the first called on
- // a new repo? argeo:dataModel would not be found
- String fileName = FilenameUtils.getName(url.getPath());
- if (dataModel == null) {
- dataModel = dataModels.addNode(fileName);
- dataModel.addMixin(ArgeoTypes.ARGEO_DATA_MODEL);
- dataModel.setProperty(ArgeoNames.ARGEO_URI, resUrl);
- } else {
- session.getWorkspace().getVersionManager()
- .checkout(dataModel.getPath());
- }
- if (dataModelBundle != null)
- dataModel.setProperty(
- ArgeoNames.ARGEO_DATA_MODEL_VERSION,
- dataModelBundle.getVersion().toString());
- else
- dataModel.setProperty(
- ArgeoNames.ARGEO_DATA_MODEL_VERSION, "0.0.0");
- JcrUtils.updateLastModified(dataModel);
- session.save();
- session.getWorkspace().getVersionManager()
- .checkin(dataModel.getPath());
- } finally {
- IOUtils.closeQuietly(in);
- IOUtils.closeQuietly(reader);
- }
+ reader = new InputStreamReader(new ByteArrayInputStream(cndContent));
+ // actually imports the CND
+ CndImporter.registerNodeTypes(reader, session, true);
+
+ if (dataModel != null && !dataModel.isNodeType(NodeType.NT_FILE)) {
+ dataModel.remove();
+ dataModel = null;
+ }