+ String alias = properties.get(GeoToolsConstants.ALIAS_KEY);
+ Node dataStoreNode = getDataStoreNode(systemSession, alias);
+ try {
+ dataStoreNode.setProperty(GIS_ALIAS, alias);
+
+ // TODO synchronize namespace if registered
+ for (Name name : dataStore.getNames()) {
+ String sourceName = name.getLocalPart();
+ if (!dataStoreNode.hasNode(sourceName)) {
+ Node featureSourceNode = dataStoreNode.addNode(sourceName);
+ featureSourceNode.addMixin(GisTypes.GIS_FEATURE_SOURCE);
+ }
+ }
+
+ // TODO check feature sources which are registered but not available
+ // anymore
+ systemSession.save();
+ registeredDataStores.put(alias, dataStore);
+ JcrUtils.discardQuietly(systemSession);
+ } catch (Exception e) {
+ throw new ArgeoException("Cannot register data store " + alias
+ + ", " + dataStore, e);
+ }