Author: ammulder
Date: Mon Nov 7 00:12:29 2005
New Revision: 331239
URL: http://svn.apache.org/viewcvs?rev=331239&view=rev
Log:
Revised database pool portlet with more of a wizard-style interface
and using the management API and JSR-88 for configuration and
deployment. GERONIMO-1138.
Add repositories and JSR-88 to the management API.
Use a fancier repository rather than direct filesystem access
to deal with database driver JARs, etc.
Reduce per-web-page logging a bit.
Added:
geronimo/trunk/applications/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/
geronimo/trunk/applications/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/DatabaseInfo.java (with props)
geronimo/trunk/applications/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java (with props)
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/basicParams.jsp (with props)
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/confirmURL.jsp (with props)
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/edit.jsp (with props)
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/list.jsp (with props)
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/selectDatabase.jsp (with props)
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/testConnection.jsp (with props)
geronimo/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/jmx/LocalDeploymentManager.java (with props)
geronimo/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java (with props)
geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/repository/ListableRepository.java (with props)
geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/repository/WriteableRepository.java (with props)
geronimo/trunk/modules/management/src/java/org/apache/geronimo/management/geronimo/JCAManagedConnectionFactory.java (with props)
geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/repository/FileSystemRepository.java (with props)
Modified:
geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java
geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java
geronimo/trunk/applications/console-ear/src/plan/geronimo-application.xml
geronimo/trunk/applications/console-framework/src/webapp/WEB-INF/data/pageregistry.xml
geronimo/trunk/applications/console-framework/src/webapp/WEB-INF/data/portletentityregistry.xml
geronimo/trunk/applications/console-standard/project.xml
geronimo/trunk/applications/console-standard/src/java/org/apache/geronimo/console/util/PortletManager.java
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/portlet.xml
geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/web.xml
geronimo/trunk/modules/assembly/project.xml
geronimo/trunk/modules/assembly/src/plan/system-plan.xml
geronimo/trunk/modules/assembly/src/plan/webconsole-jetty-plan.xml
geronimo/trunk/modules/assembly/src/plan/webconsole-tomcat-plan.xml
geronimo/trunk/modules/assembly/src/var/log/server-log4j.properties
geronimo/trunk/modules/connector-builder/src/java/org/apache/geronimo/connector/deployment/RARConfigurer.java
geronimo/trunk/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/RAR_1_5DConfigBeanTest.java
geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/JCAResourceImpl.java
geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapper.java
geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapperGBean.java
geronimo/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/factories/DeploymentFactoryImpl.java
geronimo/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/jmx/JMXDeploymentManager.java
geronimo/trunk/modules/j2ee/src/java/org/apache/geronimo/j2ee/management/impl/J2EEServerImpl.java
geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/repository/Repository.java
geronimo/trunk/modules/management/src/java/org/apache/geronimo/management/geronimo/J2EEServer.java
Modified: geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java?rev=331239&r1=331238&r2=331239&view=diff
==============================================================================
--- geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java (original)
+++ geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java Mon Nov 7 00:12:29 2005
@@ -22,7 +22,6 @@
import javax.management.ObjectName;
import javax.management.MalformedObjectNameException;
-import org.apache.geronimo.management.geronimo.*;
import org.apache.geronimo.management.J2EEDomain;
import org.apache.geronimo.management.J2EEDeployedObject;
import org.apache.geronimo.management.AppClientModule;
@@ -40,11 +39,24 @@
import org.apache.geronimo.management.JDBCDataSource;
import org.apache.geronimo.management.JDBCDriver;
import org.apache.geronimo.management.JCAConnectionFactory;
-import org.apache.geronimo.management.JCAManagedConnectionFactory;
+import org.apache.geronimo.management.geronimo.J2EEServer;
+import org.apache.geronimo.management.geronimo.J2EEApplication;
+import org.apache.geronimo.management.geronimo.JVM;
+import org.apache.geronimo.management.geronimo.WebContainer;
+import org.apache.geronimo.management.geronimo.WebConnector;
+import org.apache.geronimo.management.geronimo.WebManager;
+import org.apache.geronimo.management.geronimo.WebAccessLog;
+import org.apache.geronimo.management.geronimo.EJBManager;
+import org.apache.geronimo.management.geronimo.EJBConnector;
+import org.apache.geronimo.management.geronimo.JMSManager;
+import org.apache.geronimo.management.geronimo.JMSBroker;
+import org.apache.geronimo.management.geronimo.JMSConnector;
+import org.apache.geronimo.management.geronimo.JCAManagedConnectionFactory;
import org.apache.geronimo.j2ee.management.impl.Util;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.GBeanNotFoundException;
+import org.apache.geronimo.kernel.repository.Repository;
import org.apache.geronimo.kernel.proxy.ProxyManager;
import org.apache.geronimo.system.logging.SystemLog;
import org.apache.geronimo.pool.GeronimoExecutor;
@@ -192,6 +204,89 @@
return (ResourceAdapterModule[]) list.toArray(new ResourceAdapterModule[list.size()]);
}
+ public JCAManagedConnectionFactory[] getOutboundFactories(J2EEServer server, String connectionFactoryInterface) {
+ List list = new ArrayList();
+ try {
+ String[] names = server.getDeployedObjects();
+ for (int i = 0; i < names.length; i++) {
+ ObjectName name = ObjectName.getInstance(names[i]);
+ String type = name.getKeyProperty(NameFactory.J2EE_TYPE);
+ if(type.equals(NameFactory.RESOURCE_ADAPTER_MODULE)) {
+ ResourceAdapterModule module = (ResourceAdapterModule) pm.createProxy(name, KernelManagementHelper.class.getClassLoader());
+ ResourceAdapter[] adapters = getResourceAdapters(module);
+ for (int j = 0; j < adapters.length; j++) {
+ ResourceAdapter adapter = adapters[j];
+ JCAResource[] resources = getRAResources(adapter);
+ for (int k = 0; k < resources.length; k++) {
+ JCAResource resource = resources[k];
+ JCAConnectionFactory[] factories = getConnectionFactories(resource);
+ for (int l = 0; l < factories.length; l++) {
+ JCAConnectionFactory factory = factories[l];
+ JCAManagedConnectionFactory mcf = getManagedConnectionFactory(factory);
+ if(mcf.getConnectionFactoryInterface().equals(connectionFactoryInterface)) {
+ list.add(mcf);
+ continue;
+ }
+ for (int m = 0; m < mcf.getImplementedInterfaces().length; m++) {
+ String iface = mcf.getImplementedInterfaces()[m];
+ if(iface.equals(connectionFactoryInterface)) {
+ list.add(mcf);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("Unable to look up related GBean", e);
+ }
+ return (JCAManagedConnectionFactory[]) list.toArray(new JCAManagedConnectionFactory[list.size()]);
+ }
+
+ public ResourceAdapterModule[] getOutboundRAModules(J2EEServer server, String connectionFactoryInterface) {
+ List list = new ArrayList();
+ try {
+ String[] names = server.getDeployedObjects();
+ for (int i = 0; i < names.length; i++) {
+ ObjectName name = ObjectName.getInstance(names[i]);
+ String type = name.getKeyProperty(NameFactory.J2EE_TYPE);
+ if(type.equals(NameFactory.RESOURCE_ADAPTER_MODULE)) {
+ ResourceAdapterModule module = (ResourceAdapterModule) pm.createProxy(name, KernelManagementHelper.class.getClassLoader());
+ ResourceAdapter[] adapters = getResourceAdapters(module);
+ outer:
+ for (int j = 0; j < adapters.length; j++) {
+ ResourceAdapter adapter = adapters[j];
+ JCAResource[] resources = getRAResources(adapter);
+ for (int k = 0; k < resources.length; k++) {
+ JCAResource resource = resources[k];
+ JCAConnectionFactory[] factories = getConnectionFactories(resource);
+ for (int l = 0; l < factories.length; l++) {
+ JCAConnectionFactory factory = factories[l];
+ JCAManagedConnectionFactory mcf = getManagedConnectionFactory(factory);
+ if(mcf.getConnectionFactoryInterface().equals(connectionFactoryInterface)) {
+ list.add(module);
+ break outer;
+ }
+ for (int m = 0; m < mcf.getImplementedInterfaces().length; m++) {
+ String iface = mcf.getImplementedInterfaces()[m];
+ if(iface.equals(connectionFactoryInterface)) {
+ list.add(module);
+ break outer;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("Unable to look up related GBean", e);
+ }
+ return (ResourceAdapterModule[]) list.toArray(new ResourceAdapterModule[list.size()]);
+ }
+
public J2EEResource[] getResources(J2EEServer server) {
J2EEResource[] result = new J2EEResource[0];
try {
@@ -237,7 +332,20 @@
result = new JVM[temp.length];
System.arraycopy(temp, 0, result, 0, temp.length);
} catch (Exception e) {
- log.error("Unable to look up related GBean", e);
+ log.error("Unable to look up JVMs for J2EEServer", e);
+ }
+ return result;
+ }
+
+ public Repository[] getRepositories(J2EEServer server) {
+ Repository[] result = new Repository[0];
+ try {
+ String[] names = server.getRepositories();
+ Object[] temp = pm.createProxies(names, KernelManagementHelper.class.getClassLoader());
+ result = new Repository[temp.length];
+ System.arraycopy(temp, 0, result, 0, temp.length);
+ } catch (Exception e) {
+ log.error("Unable to look up repositories for J2EEServer", e);
}
return result;
}
@@ -250,7 +358,7 @@
result = new WebManager[temp.length];
System.arraycopy(temp, 0, result, 0, temp.length);
} catch (Exception e) {
- log.error("Unable to look up related GBean", e);
+ log.error("Unable to look up WebManagers for J2EEServer", e);
}
return result;
}
@@ -623,13 +731,31 @@
return new Servlet[0]; //todo
}
- public ResourceAdapter getResourceAdapters(ResourceAdapterModule module) {
- return null; //todo
+ public ResourceAdapter[] getResourceAdapters(ResourceAdapterModule module) {
+ ResourceAdapter[] result = new ResourceAdapter[0];
+ try {
+ String[] names = module.getResourceAdapters();
+ Object[] temp = pm.createProxies(names, KernelManagementHelper.class.getClassLoader());
+ result = new ResourceAdapter[temp.length];
+ System.arraycopy(temp, 0, result, 0, temp.length);
+ } catch (Exception e) {
+ log.error("Unable to look up resource adapters for module", e);
+ }
+ return result;
}
// resource adapter properties
public JCAResource[] getRAResources(ResourceAdapter adapter) {
- return new JCAResource[0]; //todo
+ JCAResource[] result = new JCAResource[0];
+ try {
+ String[] names = adapter.getJCAResources();
+ Object[] temp = pm.createProxies(names, KernelManagementHelper.class.getClassLoader());
+ result = new JCAResource[temp.length];
+ System.arraycopy(temp, 0, result, 0, temp.length);
+ } catch (Exception e) {
+ log.error("Unable to look up JCA resources for resource adapter", e);
+ }
+ return result;
}
// resource properties
@@ -642,11 +768,26 @@
}
public JCAConnectionFactory[] getConnectionFactories(JCAResource resource) {
- return new JCAConnectionFactory[0]; //todo
+ JCAConnectionFactory[] result = new JCAConnectionFactory[0];
+ try {
+ String[] names = resource.getConnectionFactories();
+ Object[] temp = pm.createProxies(names, KernelManagementHelper.class.getClassLoader());
+ result = new JCAConnectionFactory[temp.length];
+ System.arraycopy(temp, 0, result, 0, temp.length);
+ } catch (Exception e) {
+ log.error("Unable to look up connection factories for JCA resource", e);
+ }
+ return result;
}
public JCAManagedConnectionFactory getManagedConnectionFactory(JCAConnectionFactory factory) {
- return null; //todo
+ try {
+ String name = factory.getManagedConnectionFactory();
+ return (JCAManagedConnectionFactory) pm.createProxy(ObjectName.getInstance(name), KernelManagementHelper.class.getClassLoader());
+ } catch (Exception e) {
+ log.error("Unable to look up managed connection factory for connection factory", e);
+ return null;
+ }
}
public Object getObject(String objectName) {
Modified: geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java?rev=331239&r1=331238&r2=331239&view=diff
==============================================================================
--- geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java (original)
+++ geronimo/trunk/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java Mon Nov 7 00:12:29 2005
@@ -30,13 +30,13 @@
import org.apache.geronimo.management.JDBCDataSource;
import org.apache.geronimo.management.JDBCDriver;
import org.apache.geronimo.management.JCAConnectionFactory;
-import org.apache.geronimo.management.JCAManagedConnectionFactory;
import org.apache.geronimo.management.EJB;
import org.apache.geronimo.management.Servlet;
import org.apache.geronimo.management.ResourceAdapter;
import org.apache.geronimo.management.geronimo.*;
import org.apache.geronimo.system.logging.SystemLog;
import org.apache.geronimo.pool.GeronimoExecutor;
+import org.apache.geronimo.kernel.repository.Repository;
/**
* A helper interface to navigate between management objects. This is not
@@ -59,11 +59,14 @@
WebModule[] getWebModules(J2EEServer server);
EJBModule[] getEJBModules(J2EEServer server);
ResourceAdapterModule[] getRAModules(J2EEServer server);
+ ResourceAdapterModule[] getOutboundRAModules(J2EEServer server, String connectionFactoryInterface);
+ JCAManagedConnectionFactory[] getOutboundFactories(J2EEServer server, String connectionFactoryInterface);
J2EEResource[] getResources(J2EEServer server);
JCAResource[] getJCAResources(J2EEServer server);
JDBCResource[] getJDBCResources(J2EEServer server);
JMSResource[] getJMSResources(J2EEServer server);
JVM[] getJavaVMs(J2EEServer server);
+ Repository[] getRepositories(J2EEServer server);
WebManager[] getWebManagers(J2EEServer server);
WebAccessLog getWebAccessLog(WebManager manager, WebContainer container);
WebAccessLog getWebAccessLog(WebManager manager, String containerObjectName);
@@ -108,7 +111,7 @@
// module properties
EJB[] getEJBs(EJBModule module);
Servlet[] getServlets(WebModule module);
- ResourceAdapter getResourceAdapters(ResourceAdapterModule module);
+ ResourceAdapter[] getResourceAdapters(ResourceAdapterModule module);
// resource adapter properties
JCAResource[] getRAResources(ResourceAdapter adapter);
Modified: geronimo/trunk/applications/console-ear/src/plan/geronimo-application.xml
URL: http://svn.apache.org/viewcvs/geronimo/trunk/applications/console-ear/src/plan/geronimo-application.xml?rev=331239&r1=331238&r2=331239&view=diff
==============================================================================
--- geronimo/trunk/applications/console-ear/src/plan/geronimo-application.xml (original)
+++ geronimo/trunk/applications/console-ear/src/plan/geronimo-application.xml Mon Nov 7 00:12:29 2005
@@ -20,6 +20,47 @@
Create Database Pool -- Step 3: Final Pool Configuration
+ + + + + + + + + + Propchange: geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/confirmURL.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/edit.jsp URL: http://svn.apache.org/viewcvs/geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/edit.jsp?rev=331239&view=auto ============================================================================== --- geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/edit.jsp (added) +++ geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/edit.jsp Mon Nov 7 00:12:29 2005 @@ -0,0 +1,17 @@ +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%> +This page edits a new or existing database pool.
+ + + + + + Propchange: geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/edit.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/list.jsp URL: http://svn.apache.org/viewcvs/geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/list.jsp?rev=331239&view=auto ============================================================================== --- geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/list.jsp (added) +++ geronimo/trunk/applications/console-standard/src/webapp/WEB-INF/view/dbwizard/list.jsp Mon Nov 7 00:12:29 2005 @@ -0,0 +1,14 @@ +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%> +This page lists all the available database pools.
+Create Database Pool -- Step 1: Select Name and Database
+ + + + + +<%-- +
+
Create Database Pool -- Step 4: Test Connection
+ + + + + +