final AnnotationValue classValue = datasourceAnnotation.value("className");
if (classValue == null || classValue.asString().equals(Object.class.getName())) {
throw new IllegalArgumentException("@DataSourceDefinition annotations must provide a driver class name.");
}
final String type = classValue.asString();
final DirectDataSourceInjectionSource directDataSourceInjectionSource = new DirectDataSourceInjectionSource();
directDataSourceInjectionSource.setClassName(type);
directDataSourceInjectionSource.setDatabaseName(asString(datasourceAnnotation, DirectDataSourceInjectionSource.DATABASE_NAME_PROP));
directDataSourceInjectionSource.setDescription(asString(datasourceAnnotation, DirectDataSourceInjectionSource.DESCRIPTION_PROP));
directDataSourceInjectionSource.setInitialPoolSize(asInt(datasourceAnnotation, DirectDataSourceInjectionSource.INITIAL_POOL_SIZE_PROP));