You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by am...@apache.org on 2005/07/21 03:38:23 UTC
svn commit: r219976 [5/12] - in /geronimo/trunk: ./ etc/
sandbox/console-core/ sandbox/console-core/src/
sandbox/console-core/src/java/ sandbox/console-core/src/java/org/
sandbox/console-core/src/java/org/apache/
sandbox/console-core/src/java/org/apach...
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerHelper.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerHelper.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerHelper.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerHelper.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,263 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.management.ObjectName;
+
+import org.apache.geronimo.common.DeploymentException;
+import org.apache.geronimo.console.util.ObjectNameConstants;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.KernelRegistry;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
+import org.apache.geronimo.kernel.config.ConfigurationUtil;
+import org.apache.geronimo.kernel.jmx.JMXUtil;
+
+public class DatabaseManagerHelper {
+ private final static File REPO_FOLDER;
+
+ private final static String PLAN_FILE;
+
+ private final static String MODULE_FILE;
+
+ private final static String TRANQL_RAR = "/tranql/rars/tranql-connector-1.0-SNAPSHOT.rar";
+
+ private final static String PLAN_XML = "/tranql/rars/datasourcePlan.xml";
+
+ private static final String LINE_SEP = System.getProperty("line.separator");
+
+ private static final String PLAN_TEMPLATE = getPlanTemplate();
+
+ // Deployer
+ private static final ObjectName DEPLOYER_NAME = JMXUtil
+ .getObjectName(ObjectNameConstants.DEPLOYER_OBJECT_NAME);
+
+ private static final String[] DEPLOYER_ARGS = { File.class.getName(),
+ File.class.getName() };
+
+ private static final String DEPLOY_METHOD = "deploy";
+
+ // Repository
+ private static final ObjectName REPO_NAME = JMXUtil
+ .getObjectName(ObjectNameConstants.REPO_OBJECT_NAME);
+
+ private static final String[] REPO_ARGS = { URI.class.getName() };
+
+ private static final String GETURL_METHOD = "getURL";
+
+ private List dependencies;
+
+ static {
+ // Initialize static vars
+ REPO_FOLDER = getRepositoryFile();
+ MODULE_FILE = REPO_FOLDER.getAbsolutePath() + TRANQL_RAR;
+ PLAN_FILE = REPO_FOLDER.getAbsolutePath() + PLAN_XML;
+ }
+
+ private static File getRepositoryFile() {
+ File repoFile = null;
+
+ try {
+ Kernel kernel = KernelRegistry.getSingleKernel();
+ URI uri = new URI(".");
+ URL rootURL = (URL) kernel.invoke(REPO_NAME, GETURL_METHOD,
+ new Object[] { uri }, REPO_ARGS);
+ uri = new URI(rootURL.toString());
+ repoFile = new File(uri);
+ } catch (URISyntaxException e) {
+ System.out.println("ERROR: Invalid repository URL");
+ e.printStackTrace();
+ } catch (Exception e) {
+ System.out.println("ERROR: Problem getting repository location");
+ e.printStackTrace();
+ }
+
+ return repoFile;
+ }
+
+ private static String getPlanTemplate() {
+ StringBuffer sb = new StringBuffer();
+ sb.append("<?xml version=\"1.0\"?>\n");
+ sb
+ .append("<connector xmlns=\"http://geronimo.apache.org/xml/ns/j2ee/connector\"\n");
+ sb.append(" version=\"1.5\" configId=\"{0}\" parentId=\"{1}\">\n");
+ sb.append(" <dependency>\n");
+ sb.append(" <uri>{2}</uri>\n");
+ sb.append(" </dependency>\n");
+ sb.append(" <resourceadapter>\n");
+ sb.append(" <outbound-resourceadapter>\n");
+ sb.append(" <connection-definition>\n");
+ sb
+ .append(" <connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface>\n");
+ sb.append(" <connectiondefinition-instance>\n");
+ sb.append(" <name>{3}</name>\n");
+ sb
+ .append(" <config-property-setting name=\"UserName\">{4}</config-property-setting>\n");
+ sb
+ .append(" <config-property-setting name=\"Password\">{5}</config-property-setting>\n");
+ sb
+ .append(" <config-property-setting name=\"Driver\">{6}</config-property-setting>\n");
+ sb
+ .append(" <config-property-setting name=\"ConnectionURL\">{7}</config-property-setting>\n");
+ sb.append(" <connectionmanager>\n");
+ sb.append(" <single-pool>\n");
+ sb.append(" <max-size>{8}</max-size>\n");
+ sb.append(" <min-size>{9}</min-size>\n");
+ sb.append(" <match-one/>\n");
+ sb.append(" </single-pool>\n");
+ sb.append(" </connectionmanager>\n");
+ sb.append(" <global-jndi-name>{10}</global-jndi-name>\n");
+ sb.append(" </connectiondefinition-instance>\n");
+ sb.append(" </connection-definition>\n");
+ sb.append(" </outbound-resourceadapter>\n");
+ sb.append(" </resourceadapter>\n");
+ sb.append("</connector>\n");
+
+ return sb.toString();
+ }
+
+ private void savePlan(String filename, Object[] args) {
+ MessageFormat mf = new MessageFormat(PLAN_TEMPLATE);
+ String plan = mf.format(args);
+
+ try {
+ File f = new File(filename);
+ f.createNewFile();
+ FileOutputStream fos = new FileOutputStream(f);
+ OutputStreamWriter osw = new OutputStreamWriter(fos);
+ Writer out = new BufferedWriter(osw);
+ out.write(plan);
+ out.flush();
+ out.close();
+ osw.close();
+ fos.close();
+ } catch (Exception e) {
+ System.out.println("ERROR: Problem creating the plan file");
+ e.printStackTrace();
+ }
+ }
+
+ public void deployPlan(Object[] args) {
+ savePlan(PLAN_FILE, args);
+ deployPlan(new File(MODULE_FILE), new File(PLAN_FILE));
+ }
+
+ public void deployPlan(File moduleFile, File planFile) {
+ try {
+ Kernel kernel = KernelRegistry.getSingleKernel();
+ List list = (List) kernel.invoke(DEPLOYER_NAME, DEPLOY_METHOD,
+ new Object[] { moduleFile, planFile }, DEPLOYER_ARGS);
+ System.out.println("Deployed: " + moduleFile + " : " + planFile);
+ ConfigurationManager configurationManager = ConfigurationUtil
+ .getConfigurationManager(kernel);
+ // start installed app/s
+ int size = list.size();
+ for (int i = 0; i < size; i++) {
+ String config = (String) list.get(i);
+ //URI configID = new URI(config);
+ //kernel.startConfiguration(configID);
+ ObjectName configName = null;
+ if (configurationManager.isLoaded(URI.create(config))) {
+ configName = JMXUtil
+ .getObjectName(ObjectNameConstants.CONFIG_GBEAN_PREFIX
+ + "\"" + config + "\"");
+ } else {
+ configName = configurationManager.load(URI.create(config));
+ }
+ kernel.startRecursiveGBean(configName);
+ }
+ } catch (DeploymentException e) {
+ StringBuffer buf = new StringBuffer(256);
+ Throwable cause = e;
+ while (cause != null) {
+ buf.append(cause.getMessage());
+ buf.append(LINE_SEP);
+ cause = cause.getCause();
+ }
+ System.out
+ .println("ERROR: Problem deploying the TranQL connector: "
+ + buf.toString());
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ System.out
+ .println("ERROR: Newly installed app has invalid config ID");
+ e.printStackTrace();
+ } catch (Exception e) {
+ System.out.println("ERROR: Problem creating the datasource");
+ e.printStackTrace();
+ }
+ }
+
+ public List getDependencies() {
+ List dependencies = null;
+
+ try {
+ dependencies = getListing(REPO_FOLDER, REPO_FOLDER
+ .getCanonicalPath());
+ Collections.sort(dependencies);
+ } catch (Exception e) {
+ System.out.println("ERROR: Problem getting dependencies");
+ e.printStackTrace();
+ }
+
+ return dependencies;
+ }
+
+ private List getListing(File dir, String basepath)
+ throws java.io.IOException {
+ if (dir == null) {
+ throw new IllegalArgumentException("directory argument is null");
+ }
+
+ if (!dir.isDirectory()) {
+ throw new IllegalArgumentException("directory argument expected");
+ }
+
+ List listing = new ArrayList();
+
+ List ls = Arrays.asList(dir.listFiles());
+ Iterator iter = ls.iterator();
+
+ while (iter.hasNext()) {
+ File f = (File) iter.next();
+
+ if (f.isDirectory()) {
+ List listing1 = getListing(f, basepath);
+ listing.addAll(listing1);
+ } else {
+ listing.add(f.getCanonicalPath().substring(
+ basepath.length() + 1).replace('\\', '/'));
+ }
+ }
+ return listing;
+ }
+}
\ No newline at end of file
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerPortlet.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerPortlet.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerPortlet.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerPortlet.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,58 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager;
+
+import java.sql.Connection;
+
+import javax.portlet.PortletContext;
+import javax.sql.DataSource;
+
+import org.apache.geronimo.console.databasemanager.derby.DerbyConnectorRenderer;
+import org.apache.geronimo.console.databasemanager.mssql.MSSQLConnectorRenderer;
+import org.apache.geronimo.console.databasemanager.tranql.TranQLConnectorRenderer;
+import org.apache.geronimo.console.util.ObjectNameConstants;
+import org.apache.geronimo.kernel.jmx.JMXUtil;
+
+public class DatabaseManagerPortlet extends
+ AbstractConnectionFactoryManagerPortlet {
+
+ public DatabaseManagerPortlet() {
+ super(JMXUtil.getObjectName(ObjectNameConstants.JCA_MANAGED_CF_QUERY),
+ "/WEB-INF/view/databasemanager/normal.jsp",
+ "/WEB-INF/view/databasemanager/help.jsp", DataSource.class);
+ }
+
+ protected void setUpExplicitRenderers(PortletContext context) {
+ RENDERERS.put("org.tranql.connector.jdbc.JDBCDriverMCF",
+ new TranQLConnectorRenderer(kernel, context));
+ RENDERERS
+ .put(
+ "org.apache.geronimo.derby.connector.DerbyXAManagedConnectionFactory",
+ new DerbyConnectorRenderer(kernel, context));
+ RENDERERS
+ .put(
+ "com.gluecode.se.mssql.connector.MSSQLXAManagedConnectionFactory",
+ new MSSQLConnectorRenderer(kernel, context));
+ }
+
+ protected void testConnection(Object cf) throws Exception {
+ DataSource ds = (DataSource) cf;
+ Connection c = ds.getConnection();
+ c.close();
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DatabaseManagerPortlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DetailViewRenderer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DetailViewRenderer.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DetailViewRenderer.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DetailViewRenderer.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,36 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager;
+
+import java.io.IOException;
+
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletException;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+public interface DetailViewRenderer {
+ void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse, ObjectName gbeanName)
+ throws PortletException, IOException;
+
+ void render(RenderRequest request, RenderResponse response,
+ ObjectName gbeanName) throws PortletException, IOException;
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/DetailViewRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerInfo.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerInfo.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerInfo.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerInfo.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,92 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.connectionmanager;
+
+public class ConnectionManagerInfo {
+
+ private final int partitionCount;
+
+ private final int connectionCount;
+
+ private final int idleConnectionCount;
+
+ private final int partitionMaxSize;
+
+ private final int partitionMinSize;
+
+ private final int blockingTimeoutMilliseconds;
+
+ private final int idleTimeoutMinutes;
+
+ public ConnectionManagerInfo(int partitionCount, int connectionCount,
+ int idleConnectionCount, int partitionMaxSize,
+ int partitionMinSize, int blockingTimeoutMilliseconds,
+ int idleTimeoutMinutes) {
+ this.partitionCount = partitionCount;
+ this.connectionCount = connectionCount;
+ this.idleConnectionCount = idleConnectionCount;
+ this.partitionMaxSize = partitionMaxSize;
+ this.partitionMinSize = partitionMinSize;
+ this.blockingTimeoutMilliseconds = blockingTimeoutMilliseconds;
+ this.idleTimeoutMinutes = idleTimeoutMinutes;
+ }
+
+ public int getPartitionCount() {
+ return partitionCount;
+ }
+
+ public int getConnectionCount() {
+ return connectionCount;
+ }
+
+ public int getIdleConnectionCount() {
+ return idleConnectionCount;
+ }
+
+ public int getPartitionMaxSize() {
+ return partitionMaxSize;
+ }
+
+ public int getPartitionMinSize() {
+ return partitionMinSize;
+ }
+
+ public int getBlockingTimeoutMilliseconds() {
+ return blockingTimeoutMilliseconds;
+ }
+
+ public int getIdleTimeoutMinutes() {
+ return idleTimeoutMinutes;
+ }
+
+ public String toString() {
+ StringBuffer buff = new StringBuffer("ConnectionManagerInfo:\n");
+ buff.append("partitionCount: ").append(partitionCount).append("\n");
+ buff.append("connectionCount: ").append(connectionCount).append("\n");
+ buff.append("idleConnectionCount: ").append(idleConnectionCount)
+ .append("\n");
+ buff.append("partitionMaxSize: ").append(partitionMaxSize).append("\n");
+ buff.append("partitionMinSize: ").append(partitionMinSize).append("\n");
+ buff.append("blockingTimeoutMilliseconds: ").append(
+ blockingTimeoutMilliseconds).append("\n");
+ buff.append("idleTimeoutMinutes: ").append(idleTimeoutMinutes).append(
+ "\n");
+
+ return buff.toString();
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerRenderer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerRenderer.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerRenderer.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerRenderer.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,122 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.connectionmanager;
+
+import java.io.IOException;
+
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletException;
+import javax.portlet.RenderRequest;
+
+import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContext;
+import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContextImpl;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.kernel.Kernel;
+
+public class ConnectionManagerRenderer {
+ private final Kernel kernel;
+
+ public ConnectionManagerRenderer(Kernel kernel) {
+ this.kernel = kernel;
+ }
+
+ public void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse, ObjectName gbeanName)
+ throws PortletException, IOException {
+ if (!"detail".equals(actionRequest.getParameter("mode"))) {
+ try {
+ J2eeContext j2eeContext = J2eeContextImpl.newContext(gbeanName,
+ NameFactory.JCA_RESOURCE);
+ ObjectName connectionManagerName = NameFactory
+ .getComponentName(null, null, null, null, null, null,
+ NameFactory.JCA_CONNECTION_MANAGER, j2eeContext);
+ Integer newPartitionMaxSize = Integer.decode(actionRequest
+ .getParameter("partitionMaxSize"));
+ Integer oldPartitionMaxSize = (Integer) kernel.getAttribute(
+ connectionManagerName, "partitionMaxSize");
+ if (!newPartitionMaxSize.equals(oldPartitionMaxSize)) {
+ kernel.setAttribute(connectionManagerName,
+ "partitionMaxSize", newPartitionMaxSize);
+ }
+ Integer newPartitionMinSize = Integer.decode(actionRequest
+ .getParameter("partitionMinSize"));
+ Integer oldPartitionMinSize = (Integer) kernel.getAttribute(
+ connectionManagerName, "partitionMinSize");
+ if (!newPartitionMinSize.equals(oldPartitionMinSize)) {
+ kernel.setAttribute(connectionManagerName,
+ "partitionMinSize", newPartitionMinSize);
+ }
+ Integer newblockingTimeoutMilliseconds = Integer
+ .decode(actionRequest
+ .getParameter("blockingTimeoutMilliseconds"));
+ Integer oldblockingTimeoutMilliseconds = (Integer) kernel
+ .getAttribute(connectionManagerName,
+ "blockingTimeoutMilliseconds");
+ if (!newblockingTimeoutMilliseconds
+ .equals(oldblockingTimeoutMilliseconds)) {
+ kernel.setAttribute(connectionManagerName,
+ "blockingTimeoutMilliseconds",
+ newblockingTimeoutMilliseconds);
+ }
+ Integer newidleTimeoutMinutes = Integer.decode(actionRequest
+ .getParameter("idleTimeoutMinutes"));
+ Integer oldidleTimeoutMinutes = (Integer) kernel.getAttribute(
+ connectionManagerName, "idleTimeoutMinutes");
+ if (!newidleTimeoutMinutes.equals(oldidleTimeoutMinutes)) {
+ kernel.setAttribute(connectionManagerName,
+ "idleTimeoutMinutes", newidleTimeoutMinutes);
+ }
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ }
+ }
+
+ public void addConnectionManagerInfo(RenderRequest request,
+ ObjectName gbeanName) throws PortletException, IOException {
+ J2eeContext j2eeContext = J2eeContextImpl.newContext(gbeanName,
+ NameFactory.JCA_RESOURCE);
+ ConnectionManagerInfo info = null;
+
+ try {
+ ObjectName connectionManagerName = NameFactory.getComponentName(
+ null, null, null, null, null, null,
+ NameFactory.JCA_CONNECTION_MANAGER, j2eeContext);
+ info = new ConnectionManagerInfo(((Integer) kernel.getAttribute(
+ connectionManagerName, "partitionCount")).intValue(),
+ ((Integer) kernel.getAttribute(connectionManagerName,
+ "connectionCount")).intValue(), ((Integer) kernel
+ .getAttribute(connectionManagerName,
+ "idleConnectionCount")).intValue(),
+ ((Integer) kernel.getAttribute(connectionManagerName,
+ "partitionMaxSize")).intValue(), ((Integer) kernel
+ .getAttribute(connectionManagerName,
+ "partitionMinSize")).intValue(),
+ ((Integer) kernel.getAttribute(connectionManagerName,
+ "blockingTimeoutMilliseconds")).intValue(),
+ ((Integer) kernel.getAttribute(connectionManagerName,
+ "idleTimeoutMinutes")).intValue());
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+
+ request.setAttribute("connectionManagerInfo", info);
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/connectionmanager/ConnectionManagerRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyConnectorRenderer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyConnectorRenderer.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyConnectorRenderer.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyConnectorRenderer.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,111 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.derby;
+
+import java.io.IOException;
+
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.geronimo.console.databasemanager.DetailViewRenderer;
+import org.apache.geronimo.kernel.Kernel;
+
+public class DerbyConnectorRenderer implements DetailViewRenderer {
+ private final Kernel kernel;
+
+ private final PortletRequestDispatcher detailView;
+
+ private final PortletRequestDispatcher configView;
+
+ public DerbyConnectorRenderer(Kernel kernel, PortletContext context) {
+ this.kernel = kernel;
+ detailView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/derby/normal.jsp");
+ configView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/derby/config.jsp");
+ }
+
+ public void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse, ObjectName gbeanName)
+ throws PortletException, IOException {
+ String password1 = actionRequest.getParameter("password1");
+ if (!password1.equals(actionRequest.getParameter("password2"))) {
+ actionResponse.setRenderParameter("badPassword", "true");
+ actionResponse.setRenderParameter("mode", "config");
+ } else {
+ if (!"detail".equals(actionRequest.getParameter("mode"))) {
+ try {
+ System.out.println("gbean = " + gbeanName.toString());
+ kernel.setAttribute(gbeanName, "UserName", actionRequest
+ .getParameter("UserName"));
+ kernel.setAttribute(gbeanName, "Password", password1);
+ kernel.setAttribute(gbeanName, "DatabaseName",
+ actionRequest.getParameter("DatabaseName"));
+
+ try {
+ kernel.setAttribute(gbeanName, "LoginTimeout", Integer
+ .valueOf(actionRequest
+ .getParameter("LoginTimeout")));
+ } catch (NumberFormatException e) {
+ // do nothing
+ }
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ }
+ actionResponse.setRenderParameter("mode", "detail");
+ }
+ actionResponse.setRenderParameter("name", actionRequest
+ .getParameter("name"));
+ }
+
+ public void render(RenderRequest request, RenderResponse response,
+ ObjectName gbeanName) throws PortletException, IOException {
+ request.setAttribute("badPassword", Boolean.valueOf(request
+ .getParameter("badPassword")));
+ DerbyInfo info = new DerbyInfo();
+ try {
+ info.setObjectName(gbeanName.toString());
+ info.setName(gbeanName.getKeyProperty("name"));
+ info.setUserName((String) kernel
+ .getAttribute(gbeanName, "UserName"));
+ info.setDatabaseName((String) kernel.getAttribute(gbeanName,
+ "DatabaseName"));
+ info.setCreateDatabase((String) kernel.getAttribute(gbeanName,
+ "CreateDatabase"));
+ info.setLoginTimeout((Integer) kernel.getAttribute(gbeanName,
+ "LoginTimeout"));
+ info.setJndiName((String) kernel.getAttribute(gbeanName,
+ "globalJNDIName"));
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ request.setAttribute("ds", info);
+ if ("config".equals(request.getParameter("mode"))) {
+ configView.include(request, response);
+ } else {
+ detailView.include(request, response);
+ }
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyConnectorRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyInfo.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyInfo.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyInfo.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyInfo.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,90 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.derby;
+
+public class DerbyInfo {
+ private String objectName;
+
+ private String name;
+
+ private String jndiName;
+
+ private String databaseName;
+
+ private String userName;
+
+ private String createDatabase;
+
+ private Integer loginTimeout;
+
+ public String getObjectName() {
+ return objectName;
+ }
+
+ public void setObjectName(String objectName) {
+ this.objectName = objectName;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getJndiName() {
+ return jndiName;
+ }
+
+ public void setJndiName(String jndiName) {
+ this.jndiName = jndiName;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
+ public void setDatabaseName(String databaseName) {
+ this.databaseName = databaseName;
+ }
+
+ public String getCreateDatabase() {
+ return createDatabase;
+ }
+
+ public void setCreateDatabase(String createDatabase) {
+ this.createDatabase = createDatabase;
+ }
+
+ public Integer getLoginTimeout() {
+ return loginTimeout;
+ }
+
+ public void setLoginTimeout(Integer loginTimeout) {
+ this.loginTimeout = loginTimeout;
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/derby/DerbyInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/generic/ConnectorRenderer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/generic/ConnectorRenderer.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/generic/ConnectorRenderer.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/generic/ConnectorRenderer.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,101 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.generic;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.geronimo.console.databasemanager.DetailViewRenderer;
+import org.apache.geronimo.gbean.GAttributeInfo;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.kernel.Kernel;
+
+public class ConnectorRenderer implements DetailViewRenderer {
+ private static final Set HIDDEN_ATTRIBUTES;
+
+ static {
+ HIDDEN_ATTRIBUTES = new HashSet();
+ HIDDEN_ATTRIBUTES.add("kernel");
+ HIDDEN_ATTRIBUTES.add("connectionImplClass");
+ HIDDEN_ATTRIBUTES.add("connectionInterface");
+ HIDDEN_ATTRIBUTES.add("connectionFactoryInterface");
+ HIDDEN_ATTRIBUTES.add("connectionFactoryImplClass");
+ HIDDEN_ATTRIBUTES.add("implementedInterfaces");
+ HIDDEN_ATTRIBUTES.add("managedConnectionFactoryClass");
+ HIDDEN_ATTRIBUTES.add("recoveryXAResources");
+ }
+
+ private final Kernel kernel;
+
+ private final PortletRequestDispatcher normalView;
+
+ private final PortletRequestDispatcher configView;
+
+ public ConnectorRenderer(Kernel kernel, PortletContext context) {
+ this.kernel = kernel;
+ normalView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/generic/normal.jsp");
+ configView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/generic/config.jsp");
+ }
+
+ public void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse, ObjectName gbeanName)
+ throws PortletException, IOException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void render(RenderRequest request, RenderResponse response,
+ ObjectName gbeanName) throws PortletException, IOException {
+ try {
+ GBeanInfo gbeanInfo = kernel.getGBeanInfo(gbeanName);
+ Set attributes = gbeanInfo.getAttributes();
+ Map values = new HashMap(attributes.size());
+ for (Iterator i = attributes.iterator(); i.hasNext();) {
+ GAttributeInfo attribute = (GAttributeInfo) i.next();
+ String name = attribute.getName();
+ if (HIDDEN_ATTRIBUTES.contains(name)) {
+ continue;
+ }
+ Object value = kernel.getAttribute(gbeanName, name);
+ values.put(name, value);
+ }
+ request.setAttribute("attributeMap", values);
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ if ("config".equals(request.getParameter("mode"))) {
+ configView.include(request, response);
+ } else {
+ normalView.include(request, response);
+ }
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/generic/ConnectorRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLConnectorRenderer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLConnectorRenderer.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLConnectorRenderer.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLConnectorRenderer.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,107 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.mssql;
+
+import java.io.IOException;
+
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.geronimo.console.databasemanager.DetailViewRenderer;
+import org.apache.geronimo.kernel.Kernel;
+
+public class MSSQLConnectorRenderer implements DetailViewRenderer {
+ private final Kernel kernel;
+
+ private final PortletRequestDispatcher detailView;
+
+ private final PortletRequestDispatcher configView;
+
+ public MSSQLConnectorRenderer(Kernel kernel, PortletContext context) {
+ this.kernel = kernel;
+ detailView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/mssql/normal.jsp");
+ configView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/mssql/config.jsp");
+ }
+
+ public void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse, ObjectName gbeanName)
+ throws PortletException, IOException {
+ String password1 = actionRequest.getParameter("password1");
+ if (!password1.equals(actionRequest.getParameter("password2"))) {
+ actionResponse.setRenderParameter("badPassword", "true");
+ actionResponse.setRenderParameter("mode", "config");
+ } else {
+ if (!"detail".equals(actionRequest.getParameter("mode"))) {
+ try {
+ kernel.setAttribute(gbeanName, "User", actionRequest
+ .getParameter("user"));
+ kernel.setAttribute(gbeanName, "Password", password1);
+ kernel.setAttribute(gbeanName, "ServerName", actionRequest
+ .getParameter("serverName"));
+ kernel.setAttribute(gbeanName, "PortNumber", new Integer(
+ actionRequest.getParameter("portNumber")));
+ kernel.setAttribute(gbeanName, "DatabaseName",
+ actionRequest.getParameter("databaseName"));
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ }
+ actionResponse.setRenderParameter("mode", "detail");
+ }
+ actionResponse.setRenderParameter("name", actionRequest
+ .getParameter("name"));
+ }
+
+ public void render(RenderRequest request, RenderResponse response,
+ ObjectName gbeanName) throws PortletException, IOException {
+ request.setAttribute("badPassword", Boolean.valueOf(request
+ .getParameter("badPassword")));
+ MSSQLInfo info = new MSSQLInfo();
+ try {
+ info.setObjectName(gbeanName.toString());
+ info.setName(gbeanName.getKeyProperty("name"));
+ info.setUser((String) kernel.getAttribute(gbeanName, "User"));
+ info.setPassword((String) kernel
+ .getAttribute(gbeanName, "Password"));
+ info.setServerName((String) kernel.getAttribute(gbeanName,
+ "ServerName"));
+ info.setPortNumber(kernel.getAttribute(gbeanName, "PortNumber")
+ .toString());
+ info.setDatabaseName((String) kernel.getAttribute(gbeanName,
+ "DatabaseName"));
+ info.setGlobalJNDIName((String) kernel.getAttribute(gbeanName,
+ "globalJNDIName"));
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ request.setAttribute("ds", info);
+ if ("config".equals(request.getParameter("mode"))) {
+ configView.include(request, response);
+ } else {
+ detailView.include(request, response);
+ }
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLConnectorRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLInfo.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLInfo.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLInfo.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLInfo.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,209 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.mssql;
+
+public class MSSQLInfo {
+ // Used
+ private String user;
+
+ private String password;
+
+ private String serverName;
+
+ private String portNumber;
+
+ private String databaseName;
+
+ private String globalJNDIName;
+
+ // Not used
+ private String objectName;
+
+ private String name;
+
+ private String driver;
+
+ private String connectionURL;
+
+ private String exceptionSorterClass;
+
+ /**
+ * @return Returns the connectionURL.
+ */
+ public String getConnectionURL() {
+ return connectionURL;
+ }
+
+ /**
+ * @param connectionURL
+ * The connectionURL to set.
+ */
+ public void setConnectionURL(String connectionURL) {
+ this.connectionURL = connectionURL;
+ }
+
+ /**
+ * @return Returns the exceptionSorterClass.
+ */
+ public String getExceptionSorterClass() {
+ return exceptionSorterClass;
+ }
+
+ /**
+ * @param exceptionSorterClass
+ * The exceptionSorterClass to set.
+ */
+ public void setExceptionSorterClass(String exceptionSorterClass) {
+ this.exceptionSorterClass = exceptionSorterClass;
+ }
+
+ /**
+ * @return Returns the databaseName.
+ */
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
+ /**
+ * @param databaseName
+ * The databaseName to set.
+ */
+ public void setDatabaseName(String databaseName) {
+ this.databaseName = databaseName;
+ }
+
+ /**
+ * @return Returns the globalJNDIName.
+ */
+ public String getGlobalJNDIName() {
+ return globalJNDIName;
+ }
+
+ /**
+ * @param globalJNDIName
+ * The globalJNDIName to set.
+ */
+ public void setGlobalJNDIName(String globalJNDIName) {
+ this.globalJNDIName = globalJNDIName;
+ }
+
+ /**
+ * @return Returns the name.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name
+ * The name to set.
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return Returns the objectName.
+ */
+ public String getObjectName() {
+ return objectName;
+ }
+
+ /**
+ * @param objectName
+ * The objectName to set.
+ */
+ public void setObjectName(String objectName) {
+ this.objectName = objectName;
+ }
+
+ /**
+ * @return Returns the password.
+ */
+ public String getPassword() {
+ return password;
+ }
+
+ /**
+ * @param password
+ * The password to set.
+ */
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * @return Returns the portNumber.
+ */
+ public String getPortNumber() {
+ return portNumber;
+ }
+
+ /**
+ * @param portNumber
+ * The portNumber to set.
+ */
+ public void setPortNumber(String portNumber) {
+ this.portNumber = portNumber;
+ }
+
+ /**
+ * @return Returns the serverName.
+ */
+ public String getServerName() {
+ return serverName;
+ }
+
+ /**
+ * @param serverName
+ * The serverName to set.
+ */
+ public void setServerName(String serverName) {
+ this.serverName = serverName;
+ }
+
+ /**
+ * @return Returns the user.
+ */
+ public String getUser() {
+ return user;
+ }
+
+ /**
+ * @param user
+ * The user to set.
+ */
+ public void setUser(String user) {
+ this.user = user;
+ }
+
+ /**
+ * @return Returns the driver.
+ */
+ public String getDriver() {
+ return driver;
+ }
+
+ /**
+ * @param driver
+ * The driver to set.
+ */
+ public void setDriver(String driver) {
+ this.driver = driver;
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/mssql/MSSQLInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLConnectorRenderer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLConnectorRenderer.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLConnectorRenderer.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLConnectorRenderer.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,105 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.tranql;
+
+import java.io.IOException;
+
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.geronimo.console.databasemanager.DetailViewRenderer;
+import org.apache.geronimo.kernel.Kernel;
+
+public class TranQLConnectorRenderer implements DetailViewRenderer {
+ private final Kernel kernel;
+
+ private final PortletRequestDispatcher detailView;
+
+ private final PortletRequestDispatcher configView;
+
+ public TranQLConnectorRenderer(Kernel kernel, PortletContext context) {
+ this.kernel = kernel;
+ detailView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/tranql/normal.jsp");
+ configView = context
+ .getRequestDispatcher("/WEB-INF/view/databasemanager/tranql/config.jsp");
+ }
+
+ public void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse, ObjectName gbeanName)
+ throws PortletException, IOException {
+ String password1 = actionRequest.getParameter("password1");
+ if (!password1.equals(actionRequest.getParameter("password2"))) {
+ actionResponse.setRenderParameter("badPassword", "true");
+ actionResponse.setRenderParameter("mode", "config");
+ } else {
+ if (!"detail".equals(actionRequest.getParameter("mode"))) {
+ try {
+ kernel.setAttribute(gbeanName, "UserName", actionRequest
+ .getParameter("UserName"));
+ kernel.setAttribute(gbeanName, "Password", password1);
+ kernel.setAttribute(gbeanName, "Driver", actionRequest
+ .getParameter("Driver"));
+ kernel.setAttribute(gbeanName, "ConnectionURL",
+ actionRequest.getParameter("ConnectionURL"));
+ kernel.setAttribute(gbeanName, "ExceptionSorterClass",
+ actionRequest.getParameter("ExceptionSorterClass"));
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ }
+ actionResponse.setRenderParameter("mode", "detail");
+ }
+ actionResponse.setRenderParameter("name", actionRequest
+ .getParameter("name"));
+ }
+
+ public void render(RenderRequest request, RenderResponse response,
+ ObjectName gbeanName) throws PortletException, IOException {
+ request.setAttribute("badPassword", Boolean.valueOf(request
+ .getParameter("badPassword")));
+ TranQLInfo info = new TranQLInfo();
+ try {
+ info.setObjectName(gbeanName.toString());
+ info.setName(gbeanName.getKeyProperty("name"));
+ info.setDriver((String) kernel.getAttribute(gbeanName, "Driver"));
+ info.setConnectionURL((String) kernel.getAttribute(gbeanName,
+ "ConnectionURL"));
+ info.setUserName((String) kernel
+ .getAttribute(gbeanName, "UserName"));
+ info.setExceptionSorterClass((String) kernel.getAttribute(
+ gbeanName, "ExceptionSorterClass"));
+ info.setjndiName((String) kernel.getAttribute(gbeanName,
+ "globalJNDIName"));
+ } catch (Exception e) {
+ throw new PortletException(e);
+ }
+ request.setAttribute("ds", info);
+ if ("config".equals(request.getParameter("mode"))) {
+ configView.include(request, response);
+ } else {
+ detailView.include(request, response);
+ }
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLConnectorRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLInfo.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLInfo.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLInfo.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLInfo.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,90 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.databasemanager.tranql;
+
+public class TranQLInfo {
+ private String objectName;
+
+ private String name;
+
+ private String jndiName;
+
+ private String userName;
+
+ private String driver;
+
+ private String connectionURL;
+
+ private String exceptionSorterClass;
+
+ public String getObjectName() {
+ return objectName;
+ }
+
+ public void setObjectName(String objectName) {
+ this.objectName = objectName;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getjndiName() {
+ return jndiName;
+ }
+
+ public void setjndiName(String jndiName) {
+ this.jndiName = jndiName;
+ }
+
+ public String getDriver() {
+ return driver;
+ }
+
+ public void setDriver(String driver) {
+ this.driver = driver;
+ }
+
+ public String getConnectionURL() {
+ return connectionURL;
+ }
+
+ public void setConnectionURL(String connectionURL) {
+ this.connectionURL = connectionURL;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getExceptionSorterClass() {
+ return exceptionSorterClass;
+ }
+
+ public void setExceptionSorterClass(String exceptionSorterClass) {
+ this.exceptionSorterClass = exceptionSorterClass;
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/databasemanager/tranql/TranQLInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogHelper.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogHelper.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogHelper.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogHelper.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,94 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.derbylogmanager;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Stack;
+
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+import org.apache.geronimo.console.util.KernelHelper;
+import org.apache.geronimo.console.util.ObjectNameConstants;
+
+public class DerbyLogHelper extends KernelHelper {
+ private static ObjectName objName;
+
+ private static ArrayList logs = new ArrayList();
+
+ private static boolean cached = false;
+
+ private static int lineCount = 0;
+
+ private static final String DATE_PATTERN_REGEX = "2004";
+
+ private static final String DERBY_SYSTEM_HOME = "derby.system.home";
+
+ private static final String DERBY_SYS_HOME_PROP = "derbySystemHome";
+
+ private static final String LOG_FILENAME = "derby.log";
+
+ public static Collection getLogs() throws IOException {
+ if (!cached) {
+ refresh();
+ }
+ return logs;
+ }
+
+ public static void refresh() throws IOException {
+ cached = false;
+ logs.clear();
+ BufferedReader in = new BufferedReader(getFileReader());
+ lineCount = 0;
+ Stack holder = new Stack();
+ for (String line = in.readLine(); line != null; line = in.readLine()) {
+ holder.push(line);
+ lineCount++;
+ }
+ logs.addAll(holder);
+ cached = true;
+ }
+
+ public static int getLineCount() {
+ return lineCount;
+ }
+
+ private static InputStreamReader getFileReader() throws IOException {
+ String pathToFile = getSystemHome() + File.separator + LOG_FILENAME;
+ return new FileReader(new File(pathToFile));
+ }
+
+ public static String getSystemHome() {
+ return System.getProperty(DERBY_SYSTEM_HOME);
+ }
+
+ static {
+ try {
+ objName = new ObjectName(ObjectNameConstants.DERBY_OBJECT_NAME);
+ } catch (MalformedObjectNameException e) {
+
+ }
+ }
+
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogViewerPortlet.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogViewerPortlet.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogViewerPortlet.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogViewerPortlet.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,75 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.derbylogmanager;
+
+import java.io.IOException;
+
+import javax.portlet.GenericPortlet;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+public class DerbyLogViewerPortlet extends GenericPortlet {
+
+ protected PortletRequestDispatcher normalView;
+
+ protected PortletRequestDispatcher helpView;
+
+ public void destroy() {
+ super.destroy();
+ normalView = null;
+ helpView = null;
+ }
+
+ protected void doHelp(RenderRequest renderRequest,
+ RenderResponse renderResponse) throws PortletException, IOException {
+ helpView.include(renderRequest, renderResponse);
+ }
+
+ protected void doView(RenderRequest renderRequest,
+ RenderResponse renderResponse) throws PortletException, IOException {
+ String action = renderRequest.getParameter("action");
+ if ("refresh".equals(action)) {
+ DerbyLogHelper.refresh();
+ }
+ try {
+ renderRequest.setAttribute("logs", DerbyLogHelper.getLogs());
+ renderRequest.setAttribute("lines", new Integer(DerbyLogHelper
+ .getLineCount()));
+ normalView.include(renderRequest, renderResponse);
+ } catch (Exception e) {
+ renderResponse.setContentType("text/html");
+ renderResponse.getWriter().println(
+ "<b>Could not load portlet: " + e.getMessage()
+ + "</b></br>");
+ throw new PortletException(e);
+ }
+ }
+
+ public void init(PortletConfig portletConfig) throws PortletException {
+ PortletContext pc = portletConfig.getPortletContext();
+ normalView = pc
+ .getRequestDispatcher("/WEB-INF/view/derbylogmanager/view.jsp");
+ helpView = pc
+ .getRequestDispatcher("/WEB-INF/view/derbylogmanager/help.jsp");
+ super.init(portletConfig);
+ }
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/derbylogmanager/DerbyLogViewerPortlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/JavaSystemInfoPortlet.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/JavaSystemInfoPortlet.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/JavaSystemInfoPortlet.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/JavaSystemInfoPortlet.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,120 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.infomanager;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.GenericPortlet;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.WindowState;
+
+public class JavaSystemInfoPortlet extends GenericPortlet {
+
+ private static final String NORMALVIEW_JSP = "/WEB-INF/view/infomanager/javaSysNormal.jsp";
+
+ private static final String MAXIMIZEDVIEW_JSP = "/WEB-INF/view/infomanager/javaSysMaximized.jsp";
+
+ private static final String HELPVIEW_JSP = "/WEB-INF/view/infomanager/javaSysHelp.jsp";
+
+ private static Map javaSysProps;
+
+ private PortletRequestDispatcher normalView;
+
+ private PortletRequestDispatcher maximizedView;
+
+ private PortletRequestDispatcher helpView;
+
+ public void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse) throws PortletException, IOException {
+ }
+
+ protected void doView(RenderRequest renderRequest,
+ RenderResponse renderResponse) throws IOException, PortletException {
+ if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) {
+ return;
+ }
+
+ javaSysProps = System.getProperties();
+ renderRequest.setAttribute("javaSysProps", javaSysProps);
+
+ String sep = (String) javaSysProps.get("path.separator");
+
+ String cp = (String) javaSysProps.get("sun.boot.class.path");
+ if (cp != null) {
+ renderRequest.setAttribute("bootClassPathList", split(cp, sep));
+ }
+ cp = (String) javaSysProps.get("java.library.path");
+ if (cp != null) {
+ renderRequest.setAttribute("javaLibraryPath", split(cp, sep));
+ }
+ cp = (String) javaSysProps.get("java.class.path");
+ if (cp != null) {
+ renderRequest.setAttribute("javaClassPath", split(cp, sep));
+ }
+
+ if (WindowState.NORMAL.equals(renderRequest.getWindowState())) {
+ normalView.include(renderRequest, renderResponse);
+ } else {
+ maximizedView.include(renderRequest, renderResponse);
+ }
+ }
+
+ private List split(String path, String sep) {
+ StringTokenizer st = new StringTokenizer(path, sep);
+
+ List l = new ArrayList();
+
+ while (st.hasMoreTokens()) {
+ l.add(st.nextToken());
+ }
+ return l;
+ }
+
+ protected void doHelp(RenderRequest renderRequest,
+ RenderResponse renderResponse) throws PortletException, IOException {
+ helpView.include(renderRequest, renderResponse);
+ }
+
+ public void init(PortletConfig portletConfig) throws PortletException {
+ super.init(portletConfig);
+ normalView = portletConfig.getPortletContext().getRequestDispatcher(
+ NORMALVIEW_JSP);
+ maximizedView = portletConfig.getPortletContext().getRequestDispatcher(
+ MAXIMIZEDVIEW_JSP);
+ helpView = portletConfig.getPortletContext().getRequestDispatcher(
+ HELPVIEW_JSP);
+ }
+
+ public void destroy() {
+ normalView = null;
+ maximizedView = null;
+ helpView = null;
+ super.destroy();
+ }
+
+}
\ No newline at end of file
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/JavaSystemInfoPortlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/ServerInfoPortlet.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/ServerInfoPortlet.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/ServerInfoPortlet.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/ServerInfoPortlet.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,235 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.infomanager;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.ObjectName;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.GenericPortlet;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.WindowState;
+
+import org.apache.geronimo.console.util.ObjectNameConstants;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.KernelRegistry;
+
+public class ServerInfoPortlet extends GenericPortlet {
+
+ public static final String SVRINFO_BASEDIR = "baseDirectory";
+
+ public static final String SVRINFO_VERSION = "version";
+
+ public static final String SVRINFO_BUILDDATE = "buildDate";
+
+ public static final String SVRINFO_BUILDTIME = "buildTime";
+
+ public static final String SVRINFO_COPYRIGHT = "copyright";
+
+ public static final String SVRINFO_PLATFORMARCH = "platformArch";
+
+ public static final String SVRINFO_GERONIMO_BUILD_VERSION = "geronimoBuildVersion";
+
+ public static final String SVRINFO_GERONIMO_SPEC_VERSION = "geronimoSpecVersion";
+
+ public static final String SVRINFO_PORTAL_CORE_VERSION = "portalCoreVersion";
+
+ public static final String JVMIMPL_JAVAVER = "javaVersion";
+
+ public static final String JVMIMPL_JAVAVENDOR = "javaVendor";
+
+ public static final String JVMIMPL_NODE = "node";
+
+ public static final String JVMIMPL_FREEMEM = "freeMemory";
+
+ public static final String JVMIMPL_MAXMEM = "maxMemory";
+
+ public static final String JVMIMPL_TOTALMEM = "totalMemory";
+
+ public static final String JVMIMPL_AVAILABLEPROCS = "availableProcessors";
+
+ private static final String NORMALVIEW_JSP = "/WEB-INF/view/infomanager/svrInfoNormal.jsp";
+
+ private static final String MAXIMIZEDVIEW_JSP = "/WEB-INF/view/infomanager/svrInfoMaximized.jsp";
+
+ private static final String HELPVIEW_JSP = "/WEB-INF/view/infomanager/svrInfoHelp.jsp";
+
+ private static Map svrProps = new HashMap();
+
+ private static Map jvmProps = new HashMap();
+
+ private Kernel kernel;
+
+ private PortletRequestDispatcher normalView;
+
+ private PortletRequestDispatcher maximizedView;
+
+ private PortletRequestDispatcher helpView;
+
+ public void processAction(ActionRequest actionRequest,
+ ActionResponse actionResponse) throws PortletException, IOException {
+ }
+
+ protected void doView(RenderRequest renderRequest,
+ RenderResponse renderResponse) throws IOException, PortletException {
+ if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) {
+ return;
+ }
+
+ try {
+ Object o = null;
+
+ // Kernel boot time
+ Date bootDate = kernel.getBootTime();
+ long bootTime = bootDate.getTime() / 1000;
+ long currentTime = System.currentTimeMillis() / 1000;
+ long elapsedTime = currentTime - bootTime;
+ svrProps.put("Kernel Boot Time", bootDate);
+ svrProps.put("Kernel Up Time", calcElapsedTime(elapsedTime));
+
+ // Server info
+ /*
+ * ObjectName svrInfo = new
+ * ObjectName(ObjectNameConstants.SERVER_INFO_OBJECT_NAME); o =
+ * kernel.getAttribute(svrInfo, SVRINFO_BASEDIR); svrProps.put("Base
+ * Directory", o); ObjectName joeSvrInfo = new
+ * ObjectName(ObjectNameConstants.SE_SERVER_INFO_NAME); o =
+ * kernel.getAttribute(joeSvrInfo, SVRINFO_PLATFORMARCH);
+ * svrProps.put("Platform Architecture", o); o =
+ * kernel.getAttribute(joeSvrInfo, SVRINFO_VERSION);
+ * svrProps.put("Version", o); o = kernel.getAttribute(joeSvrInfo,
+ * SVRINFO_GERONIMO_BUILD_VERSION); svrProps.put("Apache Geronimo
+ * Build Version", o); o = kernel.getAttribute(joeSvrInfo,
+ * SVRINFO_GERONIMO_SPEC_VERSION); svrProps.put("J2EE Specifications
+ * Version", o); o = kernel.getAttribute(joeSvrInfo,
+ * SVRINFO_PORTAL_CORE_VERSION); svrProps.put("JSR 168 Portal
+ * Version", o); o = kernel.getAttribute(joeSvrInfo,
+ * SVRINFO_BUILDDATE); svrProps.put("Build Date", o); o =
+ * kernel.getAttribute(joeSvrInfo, SVRINFO_BUILDTIME);
+ * svrProps.put("Build Time", o); o =
+ * kernel.getAttribute(joeSvrInfo, SVRINFO_COPYRIGHT);
+ * svrProps.put("Copyright", o);
+ */
+ renderRequest.setAttribute("svrProps", svrProps);
+
+ // JVM info
+ ObjectName jvmImpl = new ObjectName(
+ ObjectNameConstants.JVM_IMPL_NAME);
+ o = kernel.getAttribute(jvmImpl, JVMIMPL_JAVAVER);
+ jvmProps.put("Java Version", o);
+ o = kernel.getAttribute(jvmImpl, JVMIMPL_JAVAVENDOR);
+ jvmProps.put("Java Vendor", o);
+ o = kernel.getAttribute(jvmImpl, JVMIMPL_NODE);
+ jvmProps.put("Node", o);
+ o = kernel.getAttribute(jvmImpl, JVMIMPL_MAXMEM);
+ jvmProps.put("Max Memory", calcMemory((Long) o));
+ o = kernel.getAttribute(jvmImpl, JVMIMPL_TOTALMEM);
+ jvmProps.put("Total Memory", calcMemory((Long) o));
+ o = kernel.getAttribute(jvmImpl, JVMIMPL_FREEMEM);
+ jvmProps.put("Free Memory", calcMemory((Long) o));
+ o = kernel.getAttribute(jvmImpl, JVMIMPL_AVAILABLEPROCS);
+ jvmProps.put("Available Processors", o);
+ renderRequest.setAttribute("jvmProps", jvmProps);
+ } catch (Exception e) {
+ e.printStackTrace();
+ //throw new PortletException(e);
+ }
+
+ if (WindowState.NORMAL.equals(renderRequest.getWindowState())) {
+ normalView.include(renderRequest, renderResponse);
+ } else {
+ maximizedView.include(renderRequest, renderResponse);
+ }
+ }
+
+ protected void doHelp(RenderRequest renderRequest,
+ RenderResponse renderResponse) throws PortletException, IOException {
+ helpView.include(renderRequest, renderResponse);
+ }
+
+ public void init(PortletConfig portletConfig) throws PortletException {
+ super.init(portletConfig);
+ kernel = KernelRegistry.getSingleKernel();
+ normalView = portletConfig.getPortletContext().getRequestDispatcher(
+ NORMALVIEW_JSP);
+ maximizedView = portletConfig.getPortletContext().getRequestDispatcher(
+ MAXIMIZEDVIEW_JSP);
+ helpView = portletConfig.getPortletContext().getRequestDispatcher(
+ HELPVIEW_JSP);
+ }
+
+ public void destroy() {
+ kernel = null;
+ normalView = null;
+ maximizedView = null;
+ helpView = null;
+ super.destroy();
+ }
+
+ public static Map getServerInfo() {
+ return svrProps;
+ }
+
+ public static Map getJVMInfo() {
+ return jvmProps;
+ }
+
+ private String calcElapsedTime(long timeInSeconds) {
+ long days, hrs, mins, secs;
+ days = timeInSeconds / 86400;
+ timeInSeconds = timeInSeconds - (days * 86400);
+ hrs = timeInSeconds / 3600;
+ timeInSeconds = timeInSeconds - (hrs * 3600);
+ mins = timeInSeconds / 60;
+ timeInSeconds = timeInSeconds - (mins * 60);
+ secs = timeInSeconds;
+
+ StringBuffer sb = new StringBuffer();
+ sb.append(days);
+ sb.append(" day(s) ");
+ sb.append(hrs);
+ sb.append(" hour(s) ");
+ sb.append(mins);
+ sb.append(" minute(s) ");
+ sb.append(secs);
+ sb.append(" second(s)");
+
+ return sb.toString();
+ }
+
+ private String calcMemory(Long memory) {
+ long mb, kb;
+ long mem = memory.longValue();
+ mb = mem / 1048576;
+ // If less than 10MB return as KB
+ if (mb < 10) {
+ kb = mem / 1024;
+ return kb + "KB";
+ }
+ return mb + "MB";
+ }
+
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/infomanager/ServerInfoPortlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/internaldb/DBViewerHelper.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/internaldb/DBViewerHelper.java?rev=219976&view=auto
==============================================================================
--- geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/internaldb/DBViewerHelper.java (added)
+++ geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/internaldb/DBViewerHelper.java Wed Jul 20 18:38:12 2005
@@ -0,0 +1,134 @@
+/**
+ *
+ * Copyright 2004, 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.console.internaldb;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.Vector;
+
+public class DBViewerHelper {
+
+ private static final String SYS_TBL_PREFIX = "SYS.";
+
+ private static final int COUNT_COL = 1;
+
+ /**
+ * List the databases given the derby home directory.
+ *
+ * @param derbySysHome
+ * @return
+ */
+ public Collection getDerbyDatabases(String derbySysHome) {
+ Vector databases = new Vector();
+ File f = new File(derbySysHome);
+ // Check if this is a directory
+ if (f.isDirectory()) {
+ // Check for folders only
+ File[] files = f.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isDirectory()) {
+ databases.add(files[i].getName());
+ }
+ }
+ }
+
+ return databases;
+ }
+
+ /**
+ * @param derbySysHome
+ * @param dbName
+ * @return
+ */
+ public boolean isDBValid(String derbySysHome, String dbName) {
+ if ((derbySysHome == null) || (derbySysHome.trim().length() == 0)) {
+ return false;
+ }
+ if ((dbName == null) || (dbName.trim().length() == 0)) {
+ return false;
+ }
+
+ Collection databases = getDerbyDatabases(derbySysHome);
+ return databases.contains(dbName);
+ }
+
+ /**
+ * @param dbName
+ * @param tblName
+ * @return
+ */
+ public boolean isTblValid(String dbName, String tblName) {
+ if ((dbName == null) || (dbName.trim().length() == 0)) {
+ return false;
+ }
+ if ((tblName == null) || (tblName.trim().length() == 0)) {
+ return false;
+ }
+ return true;
+
+ // Removed this code because it doesn't seem necessary and causes a
+ // weird ClassCastException when rs.next() is called.
+ /*
+ else {
+ if (tblName.toUpperCase().startsWith(SYS_TBL_PREFIX)) {
+ tblName = tblName.substring(SYS_TBL_PREFIX.length());
+ }
+ }
+
+ Connection conn = null;
+ PreparedStatement ps = null;
+ ResultSet rs = null;
+ try {
+ conn = DerbyConnectionUtil.getDerbyConnection(dbName);
+ ps = conn.prepareStatement("SELECT count(*) FROM SYS.SYSTABLES"
+ + " WHERE tablename=?");
+ ps.setString(1, tblName.toUpperCase());
+ rs = ps.executeQuery();
+ if (rs.next()) {
+ int count = rs.getInt(COUNT_COL);
+ if (count == 1) {
+ return true;
+ }
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ System.out.println("ERROR: " + e.getMessage());
+ // Assume table is not valid
+ return false;
+ } finally {
+ // close DB connection
+ try {
+ if (rs != null) {
+ rs.close();
+ }
+ if (ps != null) {
+ ps.close();
+ }
+ if (conn != null) {
+ conn.close();
+ }
+ } catch (SQLException e) {
+ // problem closing DB connection
+ }
+ }
+
+ return false;
+ */
+ }
+
+}
Propchange: geronimo/trunk/sandbox/console-standard/src/java/org/apache/geronimo/console/internaldb/DBViewerHelper.java
------------------------------------------------------------------------------
svn:eol-style = native