protected String getLocation(DataNodeDescriptor nodeDescriptor) { String location = nodeDescriptor.getParameters(); if (location == null) { throw new CayenneRuntimeException("Null 'location' for nodeDescriptor '%s'", nodeDescriptor.getName()); } return location; }
void validateConnection(DataNodeDescriptor node, ValidationResult validationResult) { String factory = node.getDataSourceFactoryType(); // TODO: andrus 03/10/2010 - null factory is allowed, however // 'getDataSourceDescriptor' must ne not null in this case if (factory != null && !XMLPoolingDataSourceFactory.class.getName().equals(factory)) { String parameters = node.getParameters(); if (Util.isEmptyString(parameters)) { addFailure( validationResult, node, "DataNode has empty 'parameters' string"); } } }
protected DataNodeDescriptor cloneDataNodeDescriptor( DataNodeDescriptor original, DataChannelDescriptor targetOwner) { DataNodeDescriptor clone = new DataNodeDescriptor(original.getName()); // do not clone 'configurationSource' as we may change the structure of the node clone.setAdapterType(original.getAdapterType()); clone.setDataChannelDescriptor(targetOwner); clone.setDataSourceDescriptor(original.getDataSourceDescriptor()); clone.setDataSourceFactoryType(original.getDataSourceFactoryType()); clone.setParameters(original.getParameters()); clone.setSchemaUpdateStrategyType(original.getSchemaUpdateStrategyType()); clone.getDataMapNames().addAll(original.getDataMapNames()); return clone; } }
@Override public DataNode createDataNode(DataNodeDescriptor nodeDescriptor) throws Exception { DataNode dataNode = new DataNode(nodeDescriptor.getName()); dataNode.setJdbcEventLogger(jdbcEventLogger); dataNode.setRowReaderFactory(rowReaderFactory); dataNode.setBatchTranslatorFactory(batchTranslatorFactory); dataNode.setSelectTranslatorFactory(selectTranslatorFactory); dataNode.setSqlTemplateProcessor(sqlTemplateProcessor); dataNode.setDataSourceLocation(nodeDescriptor.getParameters()); DataSource dataSource = dataSourceFactory.getDataSource(nodeDescriptor); dataNode.setDataSourceFactory(nodeDescriptor.getDataSourceFactoryType()); dataNode.setDataSource(dataSource); dataNode.setSchemaUpdateStrategy(schemaUpdateStrategyFactory.create(nodeDescriptor)); dataNode.setAdapter(adapterFactory.createAdapter(nodeDescriptor, dataSource)); return dataNode; }