Object ref = new ResourceReferenceFactory<ResourceException>(module.getConfigId(), new AbstractNameQuery(dataSourceAbstractName), DataSource.class);
put(jndiName, ref, getJndiContextMap(componentContext));
}
private DataSourceType processDefinition(DataSourceDefinition dsDefinition, AnnotatedApp annotatedApp) {
DataSourceType dataSource = findDataSource(dsDefinition, annotatedApp);
if (dataSource == null) {
dataSource = annotatedApp.addNewDataSource();
dataSource.addNewName().setStringValue(dsDefinition.name());
}
if (!dataSource.isSetClassName()) {
dataSource.addNewClassName().setStringValue(dsDefinition.className());
}
if (!dataSource.isSetDescription() && dsDefinition.description().trim().length() > 0) {
dataSource.addNewDescription().setStringValue(dsDefinition.description().trim());
}
if (!dataSource.isSetUrl() && dsDefinition.url().trim().length() > 0) {
dataSource.addNewUrl().setStringValue(dsDefinition.description().trim());
}
if (!dataSource.isSetUser() && dsDefinition.user().trim().length() > 0) {
dataSource.addNewUser().setStringValue(dsDefinition.user().trim());
}
if (!dataSource.isSetPassword() && dsDefinition.password().trim().length() > 0) {
dataSource.addNewPassword().setStringValue(dsDefinition.password().trim());
}
if (!dataSource.isSetDatabaseName() && dsDefinition.databaseName().trim().length() > 0) {
dataSource.addNewDatabaseName().setStringValue(dsDefinition.databaseName().trim());
}
if (!dataSource.isSetPortNumber() && dsDefinition.portNumber() != -1) {
dataSource.addNewPortNumber().setStringValue(String.valueOf(dsDefinition.portNumber()));
}
if (!dataSource.isSetServerName() && dsDefinition.serverName().trim().length() > 0) {
dataSource.addNewServerName().setStringValue(dsDefinition.serverName().trim());
}
if (!dataSource.isSetUrl() && dsDefinition.url().trim().length() > 0) {
dataSource.addNewUrl().setStringValue(dsDefinition.url().trim());
}
if (!dataSource.isSetInitialPoolSize() && dsDefinition.initialPoolSize() != -1) {
dataSource.addNewInitialPoolSize().setStringValue(String.valueOf(dsDefinition.initialPoolSize()));
}
if (!dataSource.isSetMaxPoolSize() && dsDefinition.maxPoolSize() != -1) {
dataSource.addNewMaxPoolSize().setStringValue(String.valueOf(dsDefinition.maxPoolSize()));
}
if (!dataSource.isSetMinPoolSize() && dsDefinition.minPoolSize() != -1) {
dataSource.addNewMinPoolSize().setStringValue(String.valueOf(dsDefinition.minPoolSize()));
}
if (!dataSource.isSetMaxIdleTime() && dsDefinition.maxIdleTime() != -1) {
dataSource.addNewMaxIdleTime().setStringValue(String.valueOf(dsDefinition.maxIdleTime()));
}
if (!dataSource.isSetMaxStatements() && dsDefinition.maxStatements() != -1) {
dataSource.addNewMaxStatements().setStringValue(String.valueOf(dsDefinition.maxStatements()));
}
if (!dataSource.isSetLoginTimeout() && dsDefinition.loginTimeout() != 0) {
dataSource.addNewLoginTimeout().setStringValue(String.valueOf(dsDefinition.loginTimeout()));
}
if (!dataSource.isSetIsolationLevel() && dsDefinition.isolationLevel() != -1) {
dataSource.setIsolationLevel(IsolationLevelType.Enum.forInt(dsDefinition.isolationLevel()));
}
if (!dataSource.isSetTransactional()) {
dataSource.addNewTransactional().setBooleanValue(dsDefinition.transactional());
}
if (dataSource.getPropertyArray() == null || dataSource.getPropertyArray().length == 0) {
String[] properties = dsDefinition.properties();
if (properties != null) {
for (String property : properties) {
String[] tokens = property.split("=");
PropertyType propertyType = dataSource.addNewProperty();
propertyType.addNewName().setStringValue(tokens[0]);
propertyType.addNewValue().setStringValue(tokens[1]);
}
}
}