@Override public DriverDeploymentInfo resync(DriverDef driverDef, DriverDeploymentInfo deploymentInfo) throws Exception { String deploymentId = DeploymentIdGenerator.generateDeploymentId(driverDef); DriverDeploymentInfo currentDeploymentInfo = findDeploymentInfo(deploymentId, driverDef); DriverDeploymentInfo result = new DriverDeploymentInfo(deploymentId, currentDeploymentInfo.getDriverDeploymentId(), true, driverDef.getUuid(), driverDef.getDriverClass()); managedDrivers.put(result.getDeploymentId(), result); return result; }
/** * Gets the deployment information for all the drivers currently deployed on the Wildfly server. * @return a list with the deployment information for all the drivers. * @throws Exception exceptions may be thrown if e.g. communication with the Wildfly server fails, etc. */ public List< DriverDeploymentInfo > getDeploymentsInfo() throws Exception { List< DriverDeploymentInfo > deploymentsInfo = new ArrayList<>(); DriverDeploymentInfo deploymentInfo; String uuid; boolean managed; for (WildflyDriverDef internalDef : driverMgmtClient.getDeployedDrivers()) { try { uuid = DeploymentIdGenerator.extractUuid(internalDef.getDriverName()); } catch (Exception e) { uuid = internalDef.getDriverName(); } managed = managedDrivers.containsKey(internalDef.getDriverName()); deploymentInfo = new DriverDeploymentInfo(internalDef.getDriverName(), internalDef.getDriverName(), managed, uuid, internalDef.getDriverClass()); deploymentsInfo.add(deploymentInfo); } return deploymentsInfo; }
@Override public synchronized DriverDeploymentInfo getDriverDeploymentInfo(String uuid) throws Exception { try { DriverDeploymentInfo deploymentInfo = driverProvider.getDeploymentInfo(uuid); if (deploymentInfo != null && driverDeploymentCache.get(deploymentInfo) != null) { DriverDeploymentInfo updatedInfo = new DriverDeploymentInfo(deploymentInfo.getDeploymentId(), deploymentInfo.getDriverDeploymentId(), deploymentInfo.isManaged(), deploymentInfo.getUuid(), deploymentInfo.getDriverClass()); updatedInfo.getDependants().addAll(driverDeploymentCache.get(deploymentInfo).getDependants()); deploymentInfo = updatedInfo; } return deploymentInfo; } catch (Exception e) { logger.error("It was not possible to read the deploymentInfo for driver: " + uuid); throw e; } }
/** * Deploys a driver definition on the Wildfly server. * @param driverDef A driver definition to be deployed. * @return The deployment information for the just deployed driver. * @throws Exception exceptions may be thrown if was not possible to deploy the driver. */ public DriverDeploymentInfo deploy(final DriverDef driverDef) throws Exception { final URI uri = artifactResolver.resolve(driverDef.getGroupId(), driverDef.getArtifactId(), driverDef.getVersion()); if (uri == null) { throw new Exception("Unable to get driver library artifact for driver: " + driverDef); } String deploymentId = DeploymentIdGenerator.generateDeploymentId(driverDef); driverMgmtClient.deploy(deploymentId, uri); DriverDeploymentInfo generatedDeploymentInfo = findDeploymentInfo(deploymentId, driverDef); DriverDeploymentInfo deploymentInfo = new DriverDeploymentInfo(deploymentId, generatedDeploymentInfo.getDeploymentId(), true, driverDef.getUuid(), driverDef.getDriverClass()); managedDrivers.put(deploymentInfo.getDeploymentId(), deploymentInfo); return deploymentInfo; }
@Before public void setup() { when(providerFactory.getDataSourceProvider()).thenReturn(dataSourceProvider); when(providerFactory.getDriverProvider()).thenReturn(driverProvider); runtimeManager = new DataSourceRuntimeManagerMock(providerFactory); dataSourceDef = new DataSourceDef(); dataSourceDef.setUuid(DS1_UUID); dataSourceDef.setName(DS1_NAME); dataSourceDef.setDriverUuid(DRIVER1_UUID); dataSourceDef.setConnectionURL(DS1_CONNECTION_URL); dataSourceDef.setUser(DS1_USER); dataSourceDef.setPassword(DS1_PASSWORD); driverDef = new DriverDef(); driverDef.setUuid(DRIVER1_UUID); driverDef.setName(DRIVER1_NAME); driverDef.setDriverClass(DRIVER1_CLASS); driverDef.setArtifactId(ARTIFACT_ID); driverDef.setGroupId(GROUP_ID); driverDef.setVersion(VERSION); driverDeploymentInfo = new DriverDeploymentInfo(); dataSourceDeploymentInfo = new DataSourceDeploymentInfo(); }