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 2006/04/13 15:44:26 UTC
svn commit: r393803 - in /geronimo/branches/1.1:
applications/console-core/src/java/org/apache/geronimo/console/util/
applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/
applications/console-standard/src/java/org/apache/geroni...
Author: ammulder
Date: Thu Apr 13 06:43:49 2006
New Revision: 393803
URL: http://svn.apache.org/viewcvs?rev=393803&view=rev
Log:
More progress on cleaning up portlets after the 1.1 merge
Added:
geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ConfigurationData.java
Modified:
geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java
geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java
geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/BaseApacheHandler.java
geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/WebAppHandler.java
geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/util/PortletManager.java
geronimo/branches/1.1/modules/j2ee/src/java/org/apache/geronimo/j2ee/management/impl/J2EEApplicationImpl.java
geronimo/branches/1.1/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebAppContext.java
geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/J2EEApplication.java
geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/WebModule.java
geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
Added: geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ConfigurationData.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ConfigurationData.java?rev=393803&view=auto
==============================================================================
--- geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ConfigurationData.java (added)
+++ geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ConfigurationData.java Thu Apr 13 06:43:49 2006
@@ -0,0 +1,78 @@
+/**
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * 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.util;
+
+import java.io.Serializable;
+import org.apache.geronimo.kernel.management.State;
+import org.apache.geronimo.kernel.config.ConfigurationModuleType;
+import org.apache.geronimo.gbean.AbstractName;
+
+/**
+ * Standard metadata about a configuration
+ *
+ * @version $Rev: 355877 $ $Date: 2005-12-10 21:48:27 -0500 (Sat, 10 Dec 2005) $
+ */
+public class ConfigurationData implements Serializable, Comparable {
+ private final State state;
+ private final AbstractName parentName;
+ private final String childName;
+ private final ConfigurationModuleType type;
+ private final AbstractName moduleBeanName;
+
+ public ConfigurationData(AbstractName parentName, String childName, State state, ConfigurationModuleType type, AbstractName moduleBeanName) {
+ this.childName = childName;
+ this.parentName = parentName;
+ this.state = state;
+ this.type = type;
+ this.moduleBeanName = moduleBeanName;
+ }
+
+ public boolean isChild() {
+ return childName != null;
+ }
+
+ public String getChildName() {
+ return childName;
+ }
+
+ public AbstractName getModuleBeanName() {
+ return moduleBeanName;
+ }
+
+ public AbstractName getParentName() {
+ return parentName;
+ }
+
+ public State getState() {
+ return state;
+ }
+
+ public ConfigurationModuleType getType() {
+ return type;
+ }
+
+ public int compareTo(Object o) {
+ ConfigurationData other = (ConfigurationData) o;
+ int test = getParentName().toString().compareTo(other.getParentName().toString());
+ if(test == 0) {
+ if(getChildName() != null && other.getChildName() != null) {
+ return getChildName().compareTo(other.getChildName());
+ } else if(getChildName() == null && other.getChildName() == null) {
+ return 0;
+ } else return getChildName() == null ? 1 : -1;
+ } else return test;
+ }
+}
Modified: geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java (original)
+++ geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/KernelManagementHelper.java Thu Apr 13 06:43:49 2006
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -41,17 +40,14 @@
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.AbstractNameQuery;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
-import org.apache.geronimo.j2ee.management.impl.Util;
import org.apache.geronimo.kernel.GBeanNotFoundException;
import org.apache.geronimo.kernel.Kernel;
-import org.apache.geronimo.kernel.management.State;
import org.apache.geronimo.kernel.config.ConfigurationInfo;
import org.apache.geronimo.kernel.config.ConfigurationManager;
import org.apache.geronimo.kernel.config.ConfigurationModuleType;
import org.apache.geronimo.kernel.config.ConfigurationUtil;
import org.apache.geronimo.kernel.config.NoSuchStoreException;
import org.apache.geronimo.kernel.config.Configuration;
-import org.apache.geronimo.kernel.config.ConfigurationStore;
import org.apache.geronimo.kernel.proxy.ProxyManager;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.management.AppClientModule;
@@ -67,7 +63,6 @@
import org.apache.geronimo.management.JMSResource;
import org.apache.geronimo.management.ResourceAdapter;
import org.apache.geronimo.management.Servlet;
-import org.apache.geronimo.management.WebModule;
import org.apache.geronimo.management.geronimo.J2EEApplication;
import org.apache.geronimo.management.geronimo.J2EEDomain;
import org.apache.geronimo.management.geronimo.J2EEServer;
@@ -76,6 +71,7 @@
import org.apache.geronimo.management.geronimo.JCAResource;
import org.apache.geronimo.management.geronimo.JVM;
import org.apache.geronimo.management.geronimo.ResourceAdapterModule;
+import org.apache.geronimo.management.geronimo.WebModule;
import org.apache.geronimo.security.jaas.JaasLoginModuleUse;
import org.apache.geronimo.system.logging.SystemLog;
@@ -577,24 +573,11 @@
}
- public J2EEResource[] getResources(J2EEApplication application) {
- J2EEResource[] result = new J2EEResource[0];
- try {
- String[] names = application.getResources();
- Object[] temp = pm.createProxies(names, KernelManagementHelper.class.getClassLoader());
- result = new J2EEResource[temp.length];
- System.arraycopy(temp, 0, result, 0, temp.length);
- } catch (Exception e) {
- log.error("Unable to look up related GBean", e);
- }
- return result;
- }
-
public JCAResource[] getJCAResources(J2EEApplication application) {
List list = new ArrayList();
try {
//todo: filter based on ObjectName or something, but what counts as a "JCAResource"?
- J2EEResource[] all = getResources(application);
+ J2EEResource[] all = application.getResources();
for (int i = 0; i < all.length; i++) {
if(all[i] instanceof JCAResource) {
list.add(all[i]);
@@ -709,22 +692,7 @@
}
public Artifact getConfigurationNameFor(AbstractName abstractName) {
- try {
- return abstractName.getArtifact();
-// Set parents = kernel.getDependencyManager().getParents(ObjectName.getInstance(objectName));
-// if(parents.size() == 0) {
-// throw new IllegalStateException("No parents for GBean '"+objectName+"'");
-// }
-// for (Iterator it = parents.iterator(); it.hasNext();) {
-// ObjectName name = (ObjectName) it.next();
-// if(Configuration.isConfigurationObjectName(name)) {
-// return Configuration.getConfigurationID(name);
-// }
-// }
- } catch (Exception e) {
- log.error("Unable to look up related GBean", e);
- }
- return null;
+ return abstractName.getArtifact();
}
public String getGBeanDescription(AbstractName abstractName) {
@@ -789,7 +757,7 @@
return kernel.getAbstractNameFor(component);
}
- public ConfigurationInfo[] getConfigurations(ConfigurationModuleType type, boolean includeChildModules) {
+ public ConfigurationData[] getConfigurations(ConfigurationModuleType type, boolean includeChildModules) {
ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
List stores = mgr.listStores();
List results = new ArrayList();
@@ -799,39 +767,43 @@
List infos = mgr.listConfigurations(storeName);
for (Iterator j = infos.iterator(); j.hasNext();) {
ConfigurationInfo info = (ConfigurationInfo) j.next();
+ AbstractName configuration = mgr.getConfiguration(info.getConfigID()).getAbstractName();
if(type == null || type.getValue() == info.getType().getValue()) {
- results.add(info);
+
+ results.add(new ConfigurationData(configuration, null, info.getState(), info.getType(), kernel.getAbstractNameFor(info.getConfigID())));
}
- if(includeChildModules && (type == null || info.getType().getValue() == ConfigurationModuleType.EAR.getValue())) {
- String dest = type.equals(ConfigurationModuleType.EAR) ? "J2EEApplication" :
- type.equals(ConfigurationModuleType.EJB) ? "EJBModule" :
- type.equals(ConfigurationModuleType.RAR) ? "ResourceAdapterModule" :
- type.equals(ConfigurationModuleType.WAR) ? "WebModule" :
- type.equals(ConfigurationModuleType.CAR) ? "AppClientModule" : null;
- String[] modules = Util.getObjectNames(kernel, "*:", new String[]{dest});
+ if(includeChildModules && info.getType().getValue() == ConfigurationModuleType.EAR.getValue()) {
+ J2EEApplication app = (J2EEApplication) getModuleForConfiguration(info.getConfigID());
+ Object[] modules = null;
+ if(type == null) {
+ modules = app.getModulesInstances();
+ } else if(type.equals(ConfigurationModuleType.CAR)) {
+ modules = app.getClientModules();
+ } else if(type.equals(ConfigurationModuleType.EJB)) {
+ modules = app.getEJBModules();
+ } else if(type.equals(ConfigurationModuleType.RAR)) {
+ modules = app.getRAModules();
+ } else if(type.equals(ConfigurationModuleType.WAR)) {
+ modules = app.getWebModules();
+ } //todo: handle dynamically registered module types, etc.
+ if(modules == null) continue;
for (int k = 0; k < modules.length; k++) {
- String name = modules[k];
- if(name.indexOf("J2EEApplication="+info.getConfigID()) > -1) {
- ObjectName temp = null;
- try {
- temp = ObjectName.getInstance(name);
- } catch (MalformedObjectNameException e) {
- throw new IllegalStateException("Bad ObjectName, Should Never Happen: "+e.getMessage());
- }
- State state;
- if (kernel.isLoaded(temp)) {
- try {
- state = State.fromInt(kernel.getGBeanState(temp));
- } catch (Exception e) {
- state = null;
- }
- } else {
- // If the configuration is not loaded by the kernel
- // and defined by the store, then it is stopped.
- state = State.STOPPED;
- }
- results.add(new ConfigurationInfo(info.getStoreName(), Artifact.create(temp.getKeyProperty(NameFactory.J2EE_NAME)), type, info.getCreated(), info.getOwnedConfigurations(), state, info.getConfigID()));
+ Object module = modules[k];
+ ConfigurationModuleType moduleType = type;
+ if(moduleType == null) {
+ if(module instanceof WebModule) moduleType = ConfigurationModuleType.WAR;
+ else if(module instanceof EJBModule) moduleType = ConfigurationModuleType.EJB;
+ else if(module instanceof ResourceAdapterModule) moduleType = ConfigurationModuleType.RAR;
+ else if(module instanceof AppClientModule) moduleType = ConfigurationModuleType.CAR;
+ }
+ String moduleName;
+ if(type != null && type.equals(ConfigurationModuleType.WAR)) {
+ moduleName = ((WebModule)module).getWARName();
+ } else {
+ //todo: solutions for other module types
+ moduleName = (String) kernel.getAbstractNameFor(module).getName().get(NameFactory.J2EE_NAME);
}
+ results.add(new ConfigurationData(configuration, moduleName, info.getState(), moduleType, kernel.getAbstractNameFor(module)));
}
}
}
@@ -840,54 +812,32 @@
// in the unlikely event it does, just continue
}
}
- Collections.sort(results, new Comparator() {
- public int compare(Object o1, Object o2) {
- ConfigurationInfo ci1 = (ConfigurationInfo) o1;
- ConfigurationInfo ci2 = (ConfigurationInfo) o2;
- return ci1.getConfigID().toString().compareTo(ci2.getConfigID().toString());
- }
- });
- return (ConfigurationInfo[]) results.toArray(new ConfigurationInfo[results.size()]);
+ Collections.sort(results);
+ return (ConfigurationData[]) results.toArray(new ConfigurationData[results.size()]);
}
public J2EEDeployedObject getModuleForConfiguration(Artifact configuration) {
ConfigurationManager manager = ConfigurationUtil.getConfigurationManager(kernel);
- ConfigurationStore store = manager.getStoreForConfiguration(configuration);
- ObjectName base = kernel.getAbstractNameFor(store).getObjectName();
Configuration config = manager.getConfiguration(configuration);
- Configuration parent = config.getEnclosingConfiguration();
ConfigurationModuleType type = config.getModuleType();
+ AbstractName result;
try {
- ObjectName module = null;
if(type.equals(ConfigurationModuleType.CAR)) {
- if(parent == null) {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication=null,j2eeType=AppClientModule,name="+configuration);
- } else {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication="+parent.getId()+",j2eeType=AppClientModule,name="+configuration);
- }
+ result = config.findGBean(new AbstractNameQuery(AppClientModule.class.getName()));
} else if(type.equals(ConfigurationModuleType.EAR)) {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication="+configuration+",j2eeType=J2EEApplication,name="+configuration);
+ result = config.findGBean(new AbstractNameQuery(J2EEApplication.class.getName()));
} else if(type.equals(ConfigurationModuleType.EJB)) {
- if(parent == null) {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication=null,j2eeType=EJBModule,name="+configuration);
- } else {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication="+parent.getId()+",j2eeType=EJBModule,name="+configuration);
- }
+ result = config.findGBean(new AbstractNameQuery(EJBModule.class.getName()));
} else if(type.equals(ConfigurationModuleType.RAR)) {
- if(parent == null) {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication=null,j2eeType=ResourceAdapterModule,name="+configuration);
- } else {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication="+parent.getId()+",j2eeType=ResourceAdapterModule,name="+configuration);
- }
+ result = config.findGBean(new AbstractNameQuery(ResourceAdapterModule.class.getName()));
} else if(type.equals(ConfigurationModuleType.WAR)) {
- if(parent == null) {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication=null,j2eeType=WebModule,name="+configuration);
- } else {
- module = ObjectName.getInstance(base.getDomain()+":J2EEServer="+base.getKeyProperty("J2EEServer")+",J2EEApplication="+parent.getId()+",j2eeType=WebModule,name="+configuration);
- }
+ result = config.findGBean(new AbstractNameQuery(WebModule.class.getName()));
+ System.out.println("CL: "+WebModule.class.getClassLoader());
+ } else {
+ return null;
}
- return (J2EEDeployedObject) kernel.getProxyManager().createProxy(module, getClass().getClassLoader());
- } catch (MalformedObjectNameException e) {
+ return (J2EEDeployedObject) kernel.getProxyManager().createProxy(result, getClass().getClassLoader());
+ } catch (GBeanNotFoundException e) {
throw new IllegalStateException("Bad config ID: "+e.getMessage());
}
}
Modified: geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java (original)
+++ geronimo/branches/1.1/applications/console-core/src/java/org/apache/geronimo/console/util/ManagementHelper.java Thu Apr 13 06:43:49 2006
@@ -36,7 +36,6 @@
import org.apache.geronimo.management.JMSResource;
import org.apache.geronimo.management.ResourceAdapter;
import org.apache.geronimo.management.Servlet;
-import org.apache.geronimo.management.WebModule;
import org.apache.geronimo.management.J2EEDeployedObject;
import org.apache.geronimo.management.geronimo.J2EEApplication;
import org.apache.geronimo.management.geronimo.J2EEDomain;
@@ -46,6 +45,7 @@
import org.apache.geronimo.management.geronimo.JCAResource;
import org.apache.geronimo.management.geronimo.JVM;
import org.apache.geronimo.management.geronimo.ResourceAdapterModule;
+import org.apache.geronimo.management.geronimo.WebModule;
import org.apache.geronimo.system.logging.SystemLog;
/**
@@ -82,7 +82,6 @@
WebModule[] getWebModules(J2EEApplication application);
EJBModule[] getEJBModules(J2EEApplication application);
ResourceAdapterModule[] getRAModules(J2EEApplication application);
- J2EEResource[] getResources(J2EEApplication application);
JCAResource[] getJCAResources(J2EEApplication application);
JDBCResource[] getJDBCResources(J2EEApplication application);
JMSResource[] getJMSResources(J2EEApplication application);
@@ -116,6 +115,6 @@
Subject testLoginModule(J2EEServer server, LoginModule module, Map options, String username, String password) throws LoginException;
Object[] findByInterface(Class iface);
AbstractName getNameFor(Object component);
- ConfigurationInfo[] getConfigurations(ConfigurationModuleType type, boolean includeChildModules);
+ ConfigurationData[] getConfigurations(ConfigurationModuleType type, boolean includeChildModules);
J2EEDeployedObject getModuleForConfiguration(Artifact configuration);
}
Modified: geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/BaseApacheHandler.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/BaseApacheHandler.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/BaseApacheHandler.java (original)
+++ geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/BaseApacheHandler.java Thu Apr 13 06:43:49 2006
@@ -43,22 +43,28 @@
}
public final static class WebAppData implements Serializable {
- private String configId;
+ private String parentConfigId;
+ private String childName;
+ private String moduleBeanName;
private boolean enabled;
private String dynamicPattern;
private boolean serveStaticContent;
private String contextRoot;
private String webAppDir;
- public WebAppData(String configId, boolean enabled, String dynamicPattern, boolean serveStaticContent) {
- this.configId = configId;
+ public WebAppData(String parentConfigId, String childName, String moduleBeanName, boolean enabled, String dynamicPattern, boolean serveStaticContent) {
+ this.parentConfigId = parentConfigId;
this.enabled = enabled;
this.dynamicPattern = dynamicPattern;
this.serveStaticContent = serveStaticContent;
+ this.moduleBeanName = moduleBeanName;
+ this.childName = childName;
}
public WebAppData(PortletRequest request, String prefix) {
- configId = request.getParameter(prefix+"configId");
+ parentConfigId = request.getParameter(prefix+"configId");
+ childName = request.getParameter(prefix+"childName");
+ moduleBeanName = request.getParameter(prefix+"moduleBeanName");
dynamicPattern = request.getParameter(prefix+"dynamicPattern");
String test = request.getParameter(prefix+"enabled");
enabled = test != null && !test.equals("") && !test.equals("false");
@@ -69,12 +75,14 @@
}
public void save(ActionResponse response, String prefix) {
- response.setRenderParameter(prefix+"configId", configId);
+ response.setRenderParameter(prefix+"configId", parentConfigId);
+ response.setRenderParameter(prefix+"moduleBeanName", moduleBeanName);
response.setRenderParameter(prefix+"dynamicPattern", dynamicPattern);
response.setRenderParameter(prefix+"enabled", Boolean.toString(enabled));
response.setRenderParameter(prefix+"serveStaticContent", Boolean.toString(serveStaticContent));
if(contextRoot != null) response.setRenderParameter(prefix+"contextRoot", contextRoot);
if(webAppDir != null) response.setRenderParameter(prefix+"webAppDir", webAppDir);
+ if(childName != null) response.setRenderParameter(prefix+"childName", childName);
}
public boolean isEnabled() {
@@ -85,12 +93,12 @@
this.enabled = enabled;
}
- public String getConfigId() {
- return configId;
+ public String getParentConfigId() {
+ return parentConfigId;
}
- public void setConfigId(String configId) {
- this.configId = configId;
+ public void setParentConfigId(String parentConfigId) {
+ this.parentConfigId = parentConfigId;
}
public String getDynamicPattern() {
@@ -123,6 +131,18 @@
public void setWebAppDir(String webAppDir) {
this.webAppDir = webAppDir;
+ }
+
+ public String getChildName() {
+ return childName;
+ }
+
+ public String getModuleBeanName() {
+ return moduleBeanName;
+ }
+
+ public String getName() {
+ return childName == null ? parentConfigId : childName;
}
}
Modified: geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/WebAppHandler.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/WebAppHandler.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/WebAppHandler.java (original)
+++ geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/apache/jk/WebAppHandler.java Thu Apr 13 06:43:49 2006
@@ -16,11 +16,7 @@
*/
package org.apache.geronimo.console.apache.jk;
-import java.io.File;
import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.util.List;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
@@ -30,13 +26,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.console.MultiPageModel;
+import org.apache.geronimo.console.util.ConfigurationData;
import org.apache.geronimo.console.util.PortletManager;
-import org.apache.geronimo.gbean.AbstractName;
-import org.apache.geronimo.kernel.config.ConfigurationInfo;
import org.apache.geronimo.kernel.config.ConfigurationModuleType;
-import org.apache.geronimo.kernel.config.ConfigurationStore;
-import org.apache.geronimo.kernel.config.NoSuchConfigException;
-import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.management.geronimo.WebModule;
/**
@@ -57,45 +49,30 @@
public void renderView(RenderRequest request, RenderResponse response, MultiPageModel amodel) throws PortletException, IOException {
ApacheModel model = (ApacheModel) amodel;
- ConfigurationInfo[] webApps = PortletManager.getConfigurations(request, ConfigurationModuleType.WAR, true);
+ ConfigurationData[] webApps = PortletManager.getConfigurations(request, ConfigurationModuleType.WAR, true);
if(model.getWebApps().size() == 0) {
List list = model.getWebApps();
for (int i = 0; i < webApps.length; i++) {
- ConfigurationInfo app = webApps[i];
+ ConfigurationData app = webApps[i];
+log.error("*********** "+app.getType()+": "+app.getParentName()+" / "+app.getChildName());
if(!app.getState().isRunning()) {
continue;
}
- AbstractName storeName = app.getStoreName();
- ConfigurationStore store = (ConfigurationStore) PortletManager.getManagedBean(request, storeName);
- WebModule web = (WebModule) PortletManager.getModule(request, app.getConfigID());
- WebAppData data = new WebAppData(app.getConfigID().toString(), false, null, false);
+ WebModule web = (WebModule) PortletManager.getManagedBean(request, app.getModuleBeanName());
+ WebAppData data = new WebAppData(app.getParentName().toString(), app.getChildName(), app.getModuleBeanName().toString(), false, null, false);
data.setContextRoot(web.getContextPath());
- try {
- String path = getPathToConfiguration(store, app.getParentID() == null ? app.getConfigID() : app.getParentID(), app.getParentID() == null ? null : app.getConfigID());
- if(app.getParentID() == null) {
- path = path + File.separator + "web";
- } else {
- path = path + File.separator + app.getConfigID();
- }
- data.setWebAppDir(path);
- } catch (NoSuchConfigException e) {
- log.error("I sure didn't expect to get this exception", e);
+ String path;
+ if(web.getWARDirectory().getProtocol().equals("file")) {
+ path = web.getWARDirectory().getPath();
+ } else {
+ path = "WARMustBeUnpacked";
}
+
+ data.setWebAppDir(path);
list.add(data);
}
}
request.setAttribute("webApps", webApps);
- }
-
- private String getPathToConfiguration(ConfigurationStore store, Artifact moduleOrParentID, Artifact childID) throws NoSuchConfigException {
- try {
- return store.resolve(moduleOrParentID, childID.toString(), new URI("")).getPath();
- } catch (MalformedURLException e) {
- log.error("Unable to locate path to web app "+moduleOrParentID+(childID == null ? "" : " / "+childID), e);
- } catch (URISyntaxException e) {
- log.error("Unable to locate path to web app "+moduleOrParentID+(childID == null ? "" : " / "+childID), e);
- }
- return "PATH_TO_EXPLODED_WAR_IN_REPO";
}
public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel amodel) throws PortletException, IOException {
Modified: geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/util/PortletManager.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/util/PortletManager.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/util/PortletManager.java (original)
+++ geronimo/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/util/PortletManager.java Thu Apr 13 06:43:49 2006
@@ -389,7 +389,7 @@
return helper.getModuleForConfiguration(configuration);
}
- public static ConfigurationInfo[] getConfigurations(PortletRequest request, ConfigurationModuleType type, boolean includeChildModules) {
+ public static ConfigurationData[] getConfigurations(PortletRequest request, ConfigurationModuleType type, boolean includeChildModules) {
ManagementHelper helper = getManagementHelper(request);
return helper.getConfigurations(type, includeChildModules);
}
Modified: geronimo/branches/1.1/modules/j2ee/src/java/org/apache/geronimo/j2ee/management/impl/J2EEApplicationImpl.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/j2ee/src/java/org/apache/geronimo/j2ee/management/impl/J2EEApplicationImpl.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/j2ee/src/java/org/apache/geronimo/j2ee/management/impl/J2EEApplicationImpl.java (original)
+++ geronimo/branches/1.1/modules/j2ee/src/java/org/apache/geronimo/j2ee/management/impl/J2EEApplicationImpl.java Thu Apr 13 06:43:49 2006
@@ -18,14 +18,19 @@
import java.util.Hashtable;
import javax.management.ObjectName;
-
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.management.J2EEServer;
-import org.apache.geronimo.management.geronimo.J2EEApplication;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.jmx.JMXUtil;
+import org.apache.geronimo.management.AppClientModule;
+import org.apache.geronimo.management.EJBModule;
+import org.apache.geronimo.management.J2EEModule;
+import org.apache.geronimo.management.J2EEResource;
+import org.apache.geronimo.management.geronimo.J2EEApplication;
+import org.apache.geronimo.management.geronimo.J2EEServer;
+import org.apache.geronimo.management.geronimo.ResourceAdapterModule;
+import org.apache.geronimo.management.geronimo.WebModule;
/**
* @version $Rev$ $Date$
@@ -99,10 +104,34 @@
new String[]{"AppClientModule", "EJBModule", "WebModule", "ResourceAdapterModule"});
}
- public String[] getResources() {
- return Util.getObjectNames(kernel,
- baseName,
- new String[]{"JavaMailResource", "JCAConnectionFactory", "JDBCResource", "JDBCDriver", "JMSResource", "JNDIResource", "JTAResource", "RMI_IIOPResource", "URLResource"});
+ public J2EEModule[] getModulesInstances() {
+ return (J2EEModule[]) Util.getObjects(kernel, baseName,
+ new String[]{"AppClientModule", "EJBModule", "WebModule", "ResourceAdapterModule"}, J2EEModule.class);
+ }
+
+ public J2EEResource[] getResources() {
+ return (J2EEResource[]) Util.getObjects(kernel, baseName,
+ new String[]{"JavaMailResource", "JCAConnectionFactory", "JDBCResource", "JDBCDriver", "JMSResource", "JNDIResource", "JTAResource", "RMI_IIOPResource", "URLResource"}, J2EEResource.class);
+ }
+
+ public AppClientModule[] getClientModules() {
+ return (AppClientModule[]) Util.getObjects(kernel, baseName,
+ new String[]{"AppClientModule"}, AppClientModule.class);
+ }
+
+ public EJBModule[] getEJBModules() {
+ return (EJBModule[]) Util.getObjects(kernel, baseName,
+ new String[]{"EJBModule"}, EJBModule.class);
+ }
+
+ public ResourceAdapterModule[] getRAModules() {
+ return (ResourceAdapterModule[]) Util.getObjects(kernel, baseName,
+ new String[]{"ResourceAdapterModule"}, ResourceAdapterModule.class);
+ }
+
+ public WebModule[] getWebModules() {
+ return (WebModule[]) Util.getObjects(kernel, baseName,
+ new String[]{"WebModule"}, WebModule.class);
}
public String getDeploymentDescriptor() {
@@ -121,9 +150,6 @@
infoFactory.addAttribute("objectName", String.class, false);
infoFactory.addReference("j2eeServer", J2EEServer.class);
infoFactory.addAttribute("deploymentDescriptor", String.class, true);
- infoFactory.addAttribute("server", String.class, false);
- infoFactory.addAttribute("modules", String[].class, false);
- infoFactory.addAttribute("resources", String[].class, false);
infoFactory.addInterface(J2EEApplication.class);
infoFactory.setConstructor(new String[]{
Modified: geronimo/branches/1.1/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebAppContext.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebAppContext.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebAppContext.java (original)
+++ geronimo/branches/1.1/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebAppContext.java Thu Apr 13 06:43:49 2006
@@ -59,6 +59,7 @@
import org.mortbay.jetty.servlet.WebApplicationHandler;
import javax.management.ObjectName;
+import javax.management.MalformedObjectNameException;
import javax.naming.Context;
import java.io.IOException;
import java.net.URI;
@@ -75,7 +76,7 @@
/**
* Wrapper for a WebApplicationContext that sets up its J2EE environment.
*
- * @version $Rev: 386763 $ $Date$
+ * @version $Rev$ $Date$
*/
public class JettyWebAppContext extends WebApplicationContext implements GBeanLifecycle, JettyServletRegistration, WebModule {
private static Log log = LogFactory.getLog(JettyWebAppContext.class);
@@ -88,6 +89,7 @@
private final JettyContainer jettyContainer;
private final String webAppRoot;
+ private final URL configurationBaseURL;
private final WebApplicationHandler handler;
private String displayName;
private final String[] welcomeFiles;
@@ -151,6 +153,7 @@
welcomeFiles = null;
objectName = null;
sessionManager = null;
+ configurationBaseURL = null;
}
public JettyWebAppContext(String objectName,
@@ -206,6 +209,7 @@
ObjectName myObjectName = JMXUtil.getObjectName(objectName);
verifyObjectName(myObjectName);
}
+ this.configurationBaseURL = configurationBaseUrl;
this.jettyContainer = jettyContainer;
@@ -300,6 +304,19 @@
public boolean isEventProvider() {
return true;
+ }
+
+ public URL getWARDirectory() {
+ return configurationBaseURL;
+ }
+
+ public String getWARName() {
+ //todo: make this return something more consistent
+ try {
+ return ObjectName.getInstance(objectName).getKeyProperty(NameFactory.J2EE_NAME);
+ } catch (MalformedObjectNameException e) {
+ return null;
+ }
}
public String getContainerName() {
Modified: geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/J2EEApplication.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/J2EEApplication.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/J2EEApplication.java (original)
+++ geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/J2EEApplication.java Thu Apr 13 06:43:49 2006
@@ -16,6 +16,11 @@
*/
package org.apache.geronimo.management.geronimo;
+import org.apache.geronimo.management.J2EEResource;
+import org.apache.geronimo.management.J2EEModule;
+import org.apache.geronimo.management.EJBModule;
+import org.apache.geronimo.management.AppClientModule;
+
/**
* Represents the JSR-77 type with the same name
*
@@ -26,8 +31,16 @@
* A list of J2EEResources deployed with this application. This is not
* a standard JSR-77 feature, I guess because most servers deploy most
* resources at the top level, but RARs can always be embedded...
- *
- * @return the ObjectName Strings of the resources deployed with this EAR
*/
- String[] getResources();
+ J2EEResource[] getResources();
+
+ J2EEModule[] getModulesInstances();
+
+ WebModule[] getWebModules();
+
+ EJBModule[] getEJBModules();
+
+ ResourceAdapterModule[] getRAModules();
+
+ AppClientModule[] getClientModules();
}
Modified: geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/WebModule.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/WebModule.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/WebModule.java (original)
+++ geronimo/branches/1.1/modules/management/src/java/org/apache/geronimo/management/geronimo/WebModule.java Thu Apr 13 06:43:49 2006
@@ -16,6 +16,8 @@
*/
package org.apache.geronimo.management.geronimo;
+import java.net.URL;
+
/**
* Geronimo extension to the standard JSR-77 WebModule type.
*
@@ -32,4 +34,17 @@
* WebModule.
*/
public String getContainerName();
+
+ /**
+ * Gets a name for this WAR file that can be used to identify the WAR to a
+ * user. This is not guaranteed to be anything in particular.
+ */
+ public String getWARName();
+
+ /**
+ * Gets the location of the web module "source" (typically an exploded
+ * directory). This is where e.g. a web server would look for static
+ * content or a user would copy updated JSPs to.
+ */
+ public URL getWARDirectory();
}
Modified: geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java?rev=393803&r1=393802&r2=393803&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java (original)
+++ geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java Thu Apr 13 06:43:49 2006
@@ -43,6 +43,7 @@
import org.apache.geronimo.transaction.context.TransactionContextManager;
import javax.management.ObjectName;
+import javax.management.MalformedObjectNameException;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
@@ -110,6 +111,8 @@
private final String originalSpecDD;
+ private final URL configurationBaseURL;
+
public TomcatWebAppContext(
ClassLoader classLoader,
String objectName,
@@ -170,6 +173,8 @@
this.server = server;
this.application = application;
+ this.configurationBaseURL = configurationBaseUrl;
+
if (tomcatRealm != null){
realm = (Realm)tomcatRealm.getInternalObject();
if (realm == null){
@@ -242,6 +247,19 @@
public boolean isEventProvider() {
return true;
+ }
+
+ public URL getWARDirectory() {
+ return configurationBaseURL;
+ }
+
+ public String getWARName() {
+ //todo: make this return something more consistent
+ try {
+ return ObjectName.getInstance(objectName).getKeyProperty(NameFactory.J2EE_NAME);
+ } catch (MalformedObjectNameException e) {
+ return null;
+ }
}
public String getContainerName() {