configStringBuilder.append(" </bean>" + System.lineSeparator());
for(CdmPersistentDataSource dataSource : CdmPersistentDataSource.getAllDataSources()) {
- String beanId = dataSource.getName();
+ String beanId = xmlNCNamefrom(dataSource.getName());
String user = dataSource.getUsername();
String password = dataSource.getPassword();
String driverClass = dataSource.getCdmSourceProperty(CdmSourceProperties.DRIVER_CLASS);
return configStringBuilder.toString();
}
+ /**
+ * Assures that the datasource name is converted into a valid XML type NCName.
+ *
+ * Prefixes the string and replaces all forbidden characters by '_'.
+ *
+ * @param dataSource
+ * @return
+ */
+ public static String xmlNCNamefrom(String beanName) {
+ return "MGD_" + beanName.replaceAll("[^a-zA-Z0-9]", "_");
+ }
+
public static File writeManagedServerConfig(String config, String fileName) throws IOException {
File managedConfigFile = new File(CdmApplicationUtils.getWritableResourceDir(), fileName);
if(managedConfigFile.exists()) {
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
import eu.etaxonomy.taxeditor.remoting.server.CDMServerException;
+import eu.etaxonomy.taxeditor.remoting.server.CDMServerUtils;
/**
* @author cmathew
public void addInstancesFromDataSourcesConfig() {
for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){
- logger.info("Adding local instance " + dataSource.getName());
- addInstance(dataSource.getName(), dataSource.getName());
+ String datasourceNCName = CDMServerUtils.xmlNCNamefrom(dataSource.getName());
+ logger.info("Adding local instance " + dataSource.getName() + " as " + datasourceNCName);
+ addInstance(datasourceNCName, datasourceNCName);
}
}