Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 46439 invoked from network); 26 Jun 2007 21:38:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 26 Jun 2007 21:38:25 -0000 Received: (qmail 56051 invoked by uid 500); 26 Jun 2007 21:38:28 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 55909 invoked by uid 500); 26 Jun 2007 21:38:28 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 55898 invoked by uid 99); 26 Jun 2007 21:38:28 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Jun 2007 14:38:28 -0700 X-ASF-Spam-Status: No, hits=-98.6 required=10.0 tests=ALL_TRUSTED,INFO_TLD,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Jun 2007 14:38:23 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id E0A5D1A981A; Tue, 26 Jun 2007 14:38:02 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r550963 - in /geronimo/server/trunk/applications/console/geronimo-console-standard/src/main: java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java webapp/WEB-INF/view/dbwizard/list.jsp Date: Tue, 26 Jun 2007 21:38:02 -0000 To: scm@geronimo.apache.org From: jaydm@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070626213802.E0A5D1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jaydm Date: Tue Jun 26 14:38:01 2007 New Revision: 550963 URL: http://svn.apache.org/viewvc?view=rev&rev=550963 Log: Geronimo-3258 - Added delete option to database pool screen in console Modified: geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/dbwizard/list.jsp Modified: geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java?view=diff&rev=550963&r1=550962&r2=550963 ============================================================================== --- geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java (original) +++ geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java Tue Jun 26 14:38:01 2007 @@ -49,6 +49,7 @@ import java.util.SortedSet; import javax.enterprise.deploy.model.DDBean; import javax.enterprise.deploy.model.DDBeanRoot; +import javax.enterprise.deploy.shared.ModuleType; import javax.enterprise.deploy.spi.DeploymentConfiguration; import javax.enterprise.deploy.spi.DeploymentManager; import javax.enterprise.deploy.spi.Target; @@ -139,6 +140,7 @@ private static final String DOWNLOAD_MODE = "download"; private static final String DOWNLOAD_STATUS_MODE = "downloadStatus"; private static final String EDIT_EXISTING_MODE = "editExisting"; + private static final String DELETE_MODE = "delete"; private static final String SAVE_MODE = "save"; private static final String IMPORT_START_MODE = "startImport"; private static final String IMPORT_UPLOAD_MODE = "importUpload"; @@ -379,6 +381,10 @@ log.warn(" "+status.getPendingCount()+" not reviewed"); log.warn(" "+status.getFinishedCount()+" deployed"); actionRequest.getPortletSession().removeAttribute("ImportStatus"); + } else if(mode.equals(DELETE_MODE)) { + String name = actionRequest.getParameter("adapterAbstractName"); + loadConnectionFactory(actionRequest, name, data.getAbstractName(), data); + delete(actionRequest, actionResponse, data); } else { actionResponse.setRenderParameter(MODE_KEY, mode); } @@ -607,15 +613,15 @@ } private void loadConnectionFactory(ActionRequest actionRequest, String adapterName, String factoryName, PoolData data) { - AbstractName abstractAdapterName = new AbstractName(URI.create(adapterName)); - AbstractName abstractFactoryName = new AbstractName(URI.create(factoryName)); - + AbstractName abstractAdapterName = new AbstractName(URI.create(adapterName)); + AbstractName abstractFactoryName = new AbstractName(URI.create(factoryName)); + ResourceAdapterModule adapter = (ResourceAdapterModule) PortletManager.getManagedBean(actionRequest,abstractAdapterName); JCAManagedConnectionFactory factory = (JCAManagedConnectionFactory) PortletManager.getManagedBean(actionRequest, abstractFactoryName); data.adapterDisplayName = adapter.getDisplayName(); data.adapterDescription = adapter.getDescription(); try { - data.name = (String)abstractFactoryName.getName().get("name"); + data.name = (String)abstractFactoryName.getName().get("name"); if(data.isGeneric()) { data.url = (String) factory.getConfigProperty("ConnectionURL"); data.driverClass = (String) factory.getConfigProperty("Driver"); @@ -715,11 +721,11 @@ for (int i = 0; i < modules.length; i++) { ResourceAdapterModule module = modules[i]; AbstractName moduleName = PortletManager.getManagementHelper(renderRequest).getNameFor(module); - + JCAManagedConnectionFactory[] databases = PortletManager.getOutboundFactoriesForRA(renderRequest, module, "javax.sql.DataSource"); for (int j = 0; j < databases.length; j++) { JCAManagedConnectionFactory db = databases[j]; - AbstractName dbName = PortletManager.getManagementHelper(renderRequest).getNameFor(db); + AbstractName dbName = PortletManager.getManagementHelper(renderRequest).getNameFor(db); list.add(new ConnectionPool(moduleName, dbName, (String)dbName.getName().get(NameFactory.J2EE_NAME), ((GeronimoManagedBean)db).getState())); } } @@ -866,6 +872,46 @@ } else throw new SQLException("Driver "+data.getDriverClass()+" does not accept URL "+data.url); } + private void delete(PortletRequest request, ActionResponse response, PoolData data) { + // check to make sure the abstract name does not begin with 'org.apache.geronimo.configs' + // if it does not - then delete it -- otherwise it is a system database + if(data.getAbstractName() != null) { + boolean isSystemDatabasePool = (data.getAbstractName().indexOf("org.apache.geronimo.configs") == 0); + + if(! isSystemDatabasePool) { + DeploymentManager mgr = PortletManager.getDeploymentManager(request); + try { + // retrieve all running modules + TargetModuleID[] runningIds = mgr.getRunningModules(ModuleType.RAR, mgr.getTargets()); + + // index of module to keep + int index = -1; + + // only keep module id that is associated with selected DB pool + for(int i = 0; i < runningIds.length; i++) { + if(data.getAbstractName().contains(runningIds[i].getModuleID())) { + index = i; + break; + } + } + TargetModuleID[] ids = { runningIds[index] }; + + // undeploy the db pool + ProgressObject po = mgr.undeploy(ids); + waitForProgress(po); + + if(po.getDeploymentStatus().isCompleted()) { + log.info("Undeployment completed successfully!"); + } + } catch(Exception e) { + log.error("Undeployment unsuccessful!"); + } finally { + if(mgr != null) mgr.release(); + } + } + } + } + private static String save(PortletRequest request, ActionResponse response, PoolData data, boolean planOnly) { ImportStatus status = getImportStatus(request); if(data.abstractName == null || data.abstractName.equals("")) { // we're creating a new pool @@ -878,7 +924,7 @@ final DDBeanRoot ddBeanRoot = deployable.getDDBeanRoot(); Connector15DCBRoot root = (Connector15DCBRoot) config.getDConfigBeanRoot(ddBeanRoot); ConnectorDCB connector = (ConnectorDCB) root.getDConfigBean(ddBeanRoot.getChildBean(root.getXpaths()[0])[0]); - + EnvironmentData environment = new EnvironmentData(); connector.setEnvironment(environment); org.apache.geronimo.deployment.service.jsr88.Artifact configId = new org.apache.geronimo.deployment.service.jsr88.Artifact(); @@ -897,7 +943,7 @@ int length = jars[jars.length - 1].length() ==0? jars.length -1: jars.length; org.apache.geronimo.deployment.service.jsr88.Artifact[] dependencies = new org.apache.geronimo.deployment.service.jsr88.Artifact[length]; for (int i=0; i ">usage - <%-- - - - - - ">delete--%> + + + + + + ">delete