public boolean stop(ApplicationContext stopContext) { asrManager.undeployResources(applicationName); return true; }
private void addListenerToResources(Collection<Resource> resources){ if(resources != null){ for(Resource resource : resources){ addListenerToResource(resource); } } }
private void undeployResource(Resource resource){ try{ getResourceDeployer(resource).undeployResource(resource); }catch(Exception e){ Object[] params = {ConnectorsUtil.getGenericResourceInfo(resource), e}; _logger.log(Level.WARNING, "resources.resource-manager.undeploy-resource-failed", params); }finally{ removeListenerFromResource(resource); } }
public boolean start(ApplicationContext startupContext) throws Exception { DeploymentContext dc = (DeploymentContext)startupContext; final DeployCommandParameters deployParams = dc.getCommandParameters(DeployCommandParameters.class); //during app. deployment, create resources config and load resources if(deployParams.origin == OpsParams.Origin.deploy || deployParams.origin == OpsParams.Origin.deploy_instance){ ResourcesDeployer.deployResources(applicationName, true); }else if (deployParams.origin == OpsParams.Origin.load || deployParams.origin == OpsParams.Origin.create_application_ref) { //<application> and its <resources>, <modules> are already available. //Deploy them. //during app. load (eg: server start or application/application-ref enable(), load resources asrManager.deployResources(applicationName); } return true; }
/** * Do cleanup of system-resource-adapter, resources, pools */ public void preDestroy() { if (isConnectorRuntimeInitialized()) { Collection<Application> apps = applications.getApplications(); if(apps != null){ for(Application app : apps){ Resources resources = app.getResources(); if(resources != null){ undeploySystemResources(resources); } List<Module> modules = app.getModule(); if(modules != null){ for(Module module : modules){ Resources moduleScopedResources = module.getResources(); if(moduleScopedResources != null){ undeploySystemResources(moduleScopedResources); } } } } } } else { if(_logger.isLoggable(Level.FINEST)){ _logger.finest("ConnectorRuntime not initialized, hence skipping " + "resource-adapters shutdown, resources, pools cleanup"); } } }
getResourceDeployer(resource).deployResource(resource, applicationName, moduleName); } catch (Exception e) { Object[] params = {ConnectorsUtil.getGenericResourceInfo(resource), e}; addListenerToResources(resources);
public void undeployResources(Collection<Resource> resources){ for(Resource resource : resources){ undeployResource(resource); } }
private void addListenerToResource(Resource instance) { ObservableBean bean = null; if(_logger.isLoggable(Level.FINEST)){ debug("adding listener : " + instance); } bean = (ObservableBean) ConfigSupport.getImpl((ConfigBeanProxy)instance); bean.addListener(this); }
/** * Remove listener from all resources - JDBC Connection Pools/JDBC Resources/ * Connector Connection Pools/ Connector Resources. * Invoked from preDestroy() */ private void removeListenerFromResources(Resources resources) { if(resources != null){ for (Resource configuredResource : resources.getResources()) { removeListenerFromResource(configuredResource); } } }
public void deployResources(String applicationName){ Application app = applications.getApplication(applicationName); if(app != null){ Resources appScopedResources = app.getResources(); if(appScopedResources != null){ deployResources(appScopedResources.getResources()); } List<Module> modules = app.getModule(); if(modules != null){ for(Module module : modules){ Resources moduleScopedResources = module.getResources(); if(moduleScopedResources != null){ deployResources(moduleScopedResources.getResources()); } } } } }
private void undeploySystemResources(Resources resources) { Collection<Resource> systemResources = ConnectorsUtil.getAllSystemRAResourcesAndPools(resources); for(Resource resource : systemResources){ undeployResource(resource); } }
/** * Remove listener from a generic resource (JDBC Connection Pool/Connector * Connection Pool/JDBC resource/Connector resource) * Used in the case of delete asadmin command * @param instance remove the resource from listening to resource events */ private void removeListenerFromResource(Resource instance) { ObservableBean bean = null; debug("removing listener : " + instance); bean = (ObservableBean) ConfigSupport.getImpl((ConfigBeanProxy)instance); bean.removeListener(this); }
public void postConstruct() { Collection<Application> apps = applications.getApplications(); if(apps != null){ for(Application app : apps){ Resources resources = app.getResources(); if(resources != null){ deployResources(resources.getResources()); } List<Module> modules = app.getModule(); if(modules != null){ for(Module module : modules){ Resources moduleResources = module.getResources(); if(moduleResources != null){ deployResources(moduleResources.getResources()); } } } } } }
public void undeployResources(String applicationName){ Application app = applications.getApplication(applicationName); if(app != null){ List<Module> modules = app.getModule(); if(modules != null){ for(Module module : modules){ Resources moduleScopedResources = module.getResources(); if(moduleScopedResources != null){ undeployResources(moduleScopedResources); } } } Resources appScopedResources = app.getResources(); if(appScopedResources != null){ undeployResources(appScopedResources); } } }
/** * undeploy the given set of resources<br> * resources (bindable) are removed first and then the pools * @param resources list of resources */ public void undeployResources(Resources resources){ for(Resource resource : resources.getResources()){ //destroy all resources first and then pools if(!(resource instanceof ResourcePool) && !(resource instanceof ResourceAdapterConfig)){ // no need to undeploy resource-adapter-config as it (config) will be removed by the end of undeploy // operation of the application. undeployResource(resource); } } Collection<ResourcePool> pools = resources.getResources(ResourcePool.class); for(ResourcePool pool : pools){ undeployResource(pool); } }