/** * undeploy all resources/pools pertaining to this resource adapter */ public boolean undeployGlobalResources(boolean failIfResourcesExist) { boolean status; //TODO ASR : should we undeploy app-scoped connector resources also ? //TODO ASR : should we stop deployment by checking app-scoped connector resources also ? Collection<Resource> resources = resourcesUtil.filterConnectorResources(resourceManager.getAllResources(), moduleName, true); if (failIfResourcesExist && resources.size() > 0) { String message = "one or more resources of resource-adapter [ " + moduleName + " ] exist, " + "use '--cascade=true' to delete them during undeploy"; _logger.log(Level.WARNING, "resources.of.rar.exist", moduleName); status = false; throw new RuntimeException(message); } else { resourceManager.undeployResources(resources); status = true; } return status; }
/** * Do cleanup of system-resource-adapter, resources, pools */ public void preDestroy() { if (isConnectorRuntimeInitialized()) { Collection<Resource> resources = ConnectorsUtil.getAllSystemRAResourcesAndPools(domain.getResources()); undeployResources(resources); ConnectorRuntime cr = getConnectorRuntime(); if (cr != null) { // clean up will take care of any system RA resources, pools // (including pools via datasource-definition) cr.cleanUpResourcesAndShutdownAllActiveRAs(); } } else { if(logger.isLoggable(Level.FINEST)) { logger.finest("ConnectorRuntime not initialized, hence skipping " + "resource-adapters shutdown, resources, pools cleanup"); } } removeListenerForAllResources(); removeListenerForResources(); removeListenerForResourceRefs(); removeListenerForServer(); }
Collection<Resource> resources = getResourcesUtil().filterConnectorResources(getResourcesUtil().getGlobalResources(), moduleName, true); runtime.getGlobalResourceManager().undeployResources(resources); stopAndRemoveActiveResourceAdapter(moduleName); String moduleDir = ConnectorsUtil.getLocation(moduleName);