public static Datastore createUniqueDatastoreFromResource(final DatastoreCatalog catalog, final Resource resource) { String name = resource.getName(); if (catalog.containsDatastore(name)) { final String originalName = name; int prefix = 1; do { name = originalName + "_" + prefix++; } while (catalog.containsDatastore(name)); } return createDatastoreFromResource(resource, name); }
@Override public void createDatastore(final Datastore datastore) { final String name = datastore.getName(); synchronized (_datastoreCatalog) { if (_datastoreCatalog.containsDatastore(name)) { logger.warn("Datastore '{}' already exists. No new datastore will be created!", name); } else { if (_datastoreCatalog instanceof MutableDatastoreCatalog) { ((MutableDatastoreCatalog) _datastoreCatalog).addDatastore(datastore); } else { throw new IllegalStateException( "Tried to create datastore '" + name + "', but the datastore catalog is not mutable"); } } } } }