}
public CommonDeployment deploy(ServiceContainer serviceContainer) throws DeployException {
try {
if (serviceContainer == null) {
throw new DeployException("ServiceContainer not provided");
}
this.serviceContainer = serviceContainer;
HashMap<String, org.jboss.jca.common.api.metadata.ds.Driver> drivers = new HashMap<String, org.jboss.jca.common.api.metadata.ds.Driver>(
1);
DataSources dataSources = null;
if (dataSourceConfig != null) {
String driverName = dataSourceConfig.getDriver();
InstalledDriver installedDriver = driverRegistry.getValue().getInstalledDriver(driverName);
if (installedDriver != null) {
String moduleName = installedDriver.getModuleName() != null ? installedDriver.getModuleName().getName()
: null;
org.jboss.jca.common.api.metadata.ds.Driver driver = new DriverImpl(installedDriver.getDriverName(),
installedDriver.getMajorVersion(), installedDriver.getMinorVersion(), moduleName,
installedDriver.getDriverClassName(), installedDriver.getXaDataSourceClassName());
drivers.put(driverName, driver);
dataSources = new DatasourcesImpl(Arrays.asList(dataSourceConfig), null, drivers);
}
} else if (xaDataSourceConfig != null) {
String driverName = xaDataSourceConfig.getDriver();
InstalledDriver installedDriver = driverRegistry.getValue().getInstalledDriver(driverName);
if (installedDriver != null) {
String moduleName = installedDriver.getModuleName() != null ? installedDriver.getModuleName().getName()
: null;
org.jboss.jca.common.api.metadata.ds.Driver driver = new DriverImpl(installedDriver.getDriverName(),
installedDriver.getMajorVersion(), installedDriver.getMinorVersion(), moduleName,
installedDriver.getDriverClassName(), installedDriver.getXaDataSourceClassName());
drivers.put(driverName, driver);
dataSources = new DatasourcesImpl(null, Arrays.asList(xaDataSourceConfig), drivers);
}
}
CommonDeployment c = createObjectsAndInjectValue(new URL("file://DataSourceDeployment"), jndiName,
"uniqueJdbcLocalId", "uniqueJdbcXAId", dataSources, AbstractDataSourceService.class.getClassLoader());
return c;
} catch (MalformedURLException e) {
throw new DeployException("unable to deploy", e);
} catch (ValidateException e) {
throw new DeployException("unable to validate and deploy ds or xads", e);
}
}