You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2007/09/02 12:49:27 UTC

svn commit: r571945 - in /struts/struts2/trunk/plugins/config-browser/src/main: java/org/apache/struts2/config_browser/ resources/ resources/config-browser/

Author: mrdon
Date: Sun Sep  2 03:49:26 2007
New Revision: 571945

URL: http://svn.apache.org/viewvc?rev=571945&view=rev
Log:
Added display of constants and beans
WW-2153

Added:
    struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java
    struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java
    struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showBeans.ftl
    struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showConstants.ftl
Modified:
    struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java
    struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ConfigurationHelper.java
    struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java
    struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/config-styles.css
    struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
    struts/struts2/trunk/plugins/config-browser/src/main/resources/struts-plugin.xml

Modified: struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java?rev=571945&r1=571944&r2=571945&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java (original)
+++ struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java Sun Sep  2 03:49:26 2007
@@ -26,6 +26,8 @@
 import org.apache.struts2.StrutsConstants;
 
 import com.opensymphony.xwork2.ActionSupport;
+import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.inject.Inject;
 
@@ -41,7 +43,14 @@
     private String namespace = "";
     private Set namespaces;
     private String extension;
+    
+    private ConfigurationHelper configHelper;
 
+    @Inject
+    public void setConfigurationHelper(ConfigurationHelper cfg) {
+        this.configHelper = cfg;
+    }
+    
     public Set getActionNames() {
         return actionNames;
     }
@@ -60,7 +69,7 @@
     }
 
     public ActionConfig getConfig(String actionName) {
-        return ConfigurationHelper.getActionConfig(namespace, actionName);
+        return configHelper.getActionConfig(namespace, actionName);
     }
 
     public Set getNamespaces() {
@@ -75,7 +84,7 @@
     }
 
     public String execute() throws Exception {
-        namespaces = ConfigurationHelper.getNamespaces();
+        namespaces = configHelper.getNamespaces();
         if (namespaces.size() == 0) {
             addActionError("There are no namespaces in this configuration");
             return ERROR;
@@ -84,7 +93,7 @@
             namespace = "";
         }
         actionNames =
-                new TreeSet(ConfigurationHelper.getActionNames(namespace));
+                new TreeSet(configHelper.getActionNames(namespace));
         return SUCCESS;
     }
 }

Modified: struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ConfigurationHelper.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ConfigurationHelper.java?rev=571945&r1=571944&r2=571945&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ConfigurationHelper.java (original)
+++ struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ConfigurationHelper.java Sun Sep  2 03:49:26 2007
@@ -26,25 +26,34 @@
 
 import org.apache.struts2.dispatcher.Dispatcher;
 
+import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
+import com.opensymphony.xwork2.inject.Inject;
 
 /**
  * ConfigurationHelper
  */
 public class ConfigurationHelper {
+    
+    private Configuration configuration;
 
-    public static Set getNamespaces() {
+    @Inject
+    public void setConfiguration(Configuration config) {
+        this.configuration = config;
+    }
+    
+    public Set getNamespaces() {
         Set namespaces = Collections.EMPTY_SET;
-        Map allActionConfigs = Dispatcher.getInstance().getConfigurationManager().getConfiguration().getRuntimeConfiguration().getActionConfigs();
+        Map allActionConfigs = configuration.getRuntimeConfiguration().getActionConfigs();
         if (allActionConfigs != null) {
             namespaces = allActionConfigs.keySet();
         }
         return namespaces;
     }
 
-    public static Set getActionNames(String namespace) {
+    public Set getActionNames(String namespace) {
         Set actionNames = Collections.EMPTY_SET;
-        Map allActionConfigs = Dispatcher.getInstance().getConfigurationManager().getConfiguration().getRuntimeConfiguration().getActionConfigs();
+        Map allActionConfigs = configuration.getRuntimeConfiguration().getActionConfigs();
         if (allActionConfigs != null) {
             Map actionMappings = (Map) allActionConfigs.get(namespace);
             if (actionMappings != null) {
@@ -54,9 +63,9 @@
         return actionNames;
     }
 
-    public static ActionConfig getActionConfig(String namespace, String actionName) {
+    public ActionConfig getActionConfig(String namespace, String actionName) {
         ActionConfig config = null;
-        Map allActionConfigs = Dispatcher.getInstance().getConfigurationManager().getConfiguration().getRuntimeConfiguration().getActionConfigs();
+        Map allActionConfigs = configuration.getRuntimeConfiguration().getActionConfigs();
         if (allActionConfigs != null) {
             Map actionMappings = (Map) allActionConfigs.get(namespace);
             if (actionMappings != null) {

Added: struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java?rev=571945&view=auto
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java (added)
+++ struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java Sun Sep  2 03:49:26 2007
@@ -0,0 +1,138 @@
+/*
+ * $Id: ActionNamesAction.java 474191 2006-11-13 08:30:40Z mrdon $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.struts2.config_browser;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.components.UrlRenderer;
+import org.apache.struts2.dispatcher.mapper.ActionMapper;
+import org.apache.struts2.dispatcher.multipart.MultiPartRequest;
+import org.apache.struts2.views.freemarker.FreemarkerManager;
+import org.apache.struts2.views.velocity.VelocityManager;
+
+import com.opensymphony.xwork2.ActionProxyFactory;
+import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.TextProvider;
+import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.ObjectTypeDeterminer;
+import com.opensymphony.xwork2.util.XWorkConverter;
+
+/**
+ * Shows the beans loaded by the internal Guice container.  Only shows beans that are recognized by Struts as official
+ * plugin extension points.
+ */
+public class ShowBeansAction extends ActionNamesAction {
+
+    Map<String,Set<Binding>> bindings;
+
+    @Inject
+    public void setContainer(Container container) {
+        bindings = new TreeMap<String,Set<Binding>>();
+        bindings.put(ObjectFactory.class.getName(), addBindings(container, ObjectFactory.class, StrutsConstants.STRUTS_OBJECTFACTORY));
+        bindings.put(XWorkConverter.class.getName(), addBindings(container, XWorkConverter.class, StrutsConstants.STRUTS_XWORKCONVERTER));
+        bindings.put(TextProvider.class.getName(), addBindings(container, TextProvider.class, StrutsConstants.STRUTS_XWORKTEXTPROVIDER));
+        bindings.put(ActionProxyFactory.class.getName(), addBindings(container, ActionProxyFactory.class, StrutsConstants.STRUTS_ACTIONPROXYFACTORY));
+        bindings.put(ObjectTypeDeterminer.class.getName(), addBindings(container, ObjectTypeDeterminer.class, StrutsConstants.STRUTS_OBJECTTYPEDETERMINER));
+        bindings.put(ActionMapper.class.getName(), addBindings(container, ActionMapper.class, StrutsConstants.STRUTS_MAPPER_CLASS));
+        bindings.put(MultiPartRequest.class.getName(), addBindings(container, MultiPartRequest.class, StrutsConstants.STRUTS_MULTIPART_PARSER));
+        bindings.put(FreemarkerManager.class.getName(), addBindings(container, FreemarkerManager.class, StrutsConstants.STRUTS_FREEMARKER_MANAGER_CLASSNAME));
+        bindings.put(VelocityManager.class.getName(), addBindings(container, VelocityManager.class, StrutsConstants.STRUTS_VELOCITY_MANAGER_CLASSNAME));
+        bindings.put(UrlRenderer.class.getName(), addBindings(container, UrlRenderer.class, StrutsConstants.STRUTS_URL_RENDERER));
+    }
+    
+    public Map<String, Set<Binding>> getBeans()
+    {
+        return bindings;
+    }
+    
+    protected Set<Binding> addBindings(Container container, Class type, String constName) {
+        Set<Binding> bindings = new TreeSet<Binding>();
+        String chosenName = container.getInstance(String.class, constName);
+        if (chosenName == null) {
+            chosenName = "struts";
+        }
+        Set<String> names = container.getInstanceNames(type);
+        if (!names.contains(chosenName)) {
+            bindings.add(new Binding(getInstanceClassName(container, type, "default"), chosenName, constName, true));
+        }
+        for (String name : names) {
+            if (!"default".equals(name)) {
+                bindings.add(new Binding(getInstanceClassName(container, type, name), name, constName, name.equals(chosenName)));
+            }
+        }
+        return bindings;
+    }
+
+    String getInstanceClassName(Container container, Class type, String name) {
+        String instName = "Class unable to be loaded";
+        try {
+            Object inst = container.getInstance(type, name);
+            instName = inst.getClass().getName();
+        } catch (Exception ex) {
+            // Ignoring beans unable to be loaded
+        }
+        return instName;
+    }
+    
+    public class Binding implements Comparable<Binding> {
+        private String impl;
+        private String alias;
+        private String constant;
+        private boolean isDefault;
+        
+        public Binding(String impl, String alias, String constant, boolean def) {
+            this.impl = impl;
+            this.alias = alias;
+            this.constant = constant;
+            this.isDefault = def;
+        }
+        public String getImpl() {
+            return impl;
+        }
+        public String getAlias() {
+            return alias;
+        }
+        public String getConstant() {
+            return constant;
+        }
+        
+        public boolean isDefault() {
+            return isDefault;
+        }
+        
+        public int compareTo(Binding b2) {
+            int ret = 0;
+            if (isDefault) {
+                ret = -1;
+            } else if (b2.isDefault()) {
+                ret = 1;
+            } else {
+                ret = alias.compareTo(b2.getAlias());
+            }
+            return ret;
+        }
+    }
+}

Modified: struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java?rev=571945&r1=571944&r2=571945&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java (original)
+++ struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java Sun Sep  2 03:49:26 2007
@@ -30,7 +30,9 @@
 import org.apache.commons.logging.LogFactory;
 
 import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
+import com.opensymphony.xwork2.inject.Inject;
 
 /**
  * ShowConfigAction
@@ -48,6 +50,9 @@
     private String detailView = "results";
     private PropertyDescriptor[] properties;
     private static Log log = LogFactory.getLog(ShowConfigAction.class);
+    
+    private ConfigurationHelper configHelper;
+    private ObjectFactory objectFactory;
 
     public String getDetailView() {
         return detailView;
@@ -64,6 +69,16 @@
     public String getNamespace() {
         return namespace;
     }
+    
+    @Inject
+    public void setConfigurationHelper(ConfigurationHelper cfg) {
+        this.configHelper = cfg;
+    }
+    
+    @Inject
+    public void setObjectFactory(ObjectFactory fac) {
+        this.objectFactory = fac;
+    }
 
     public String stripPackage(Class clazz) {
         return clazz.getName().substring(clazz.getName().lastIndexOf('.') + 1);
@@ -91,11 +106,11 @@
 
     public String execute() throws Exception {
         super.execute();
-        config = ConfigurationHelper.getActionConfig(namespace, actionName);
+        config = configHelper.getActionConfig(namespace, actionName);
         actionNames =
-                new TreeSet(ConfigurationHelper.getActionNames(namespace));
+                new TreeSet(configHelper.getActionNames(namespace));
         try {
-            Class clazz = ObjectFactory.getObjectFactory().getClassInstance(getConfig().getClassName());
+            Class clazz = objectFactory.getClassInstance(getConfig().getClassName());
             java.util.Collection pds = OgnlRuntime.getPropertyDescriptors(clazz).values();
             properties = (PropertyDescriptor[]) pds.toArray(PDSAT);
         } catch (Exception e) {

Added: struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java?rev=571945&view=auto
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java (added)
+++ struts/struts2/trunk/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java Sun Sep  2 03:49:26 2007
@@ -0,0 +1,48 @@
+/*
+ * $Id: ActionNamesAction.java 474191 2006-11-13 08:30:40Z mrdon $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.struts2.config_browser;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.inject.Inject;
+
+/**
+ * Shows all constants as loaded by Struts
+ */
+public class ShowConstantsAction extends ActionNamesAction {
+
+    Map<String,String> consts;
+    
+    @Inject
+    public void setContainer(Container container) {
+        consts = new HashMap<String,String>();
+        for (String key : container.getInstanceNames(String.class)) {
+            consts.put(key, container.getInstance(String.class, key));
+        }
+    }
+    
+    public Map<String,String> getConstants()
+    {
+        return consts;
+    }
+}

Modified: struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/config-styles.css
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/config-styles.css?rev=571945&r1=571944&r2=571945&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/config-styles.css (original)
+++ struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/config-styles.css Sun Sep  2 03:49:26 2007
@@ -1,24 +1,3 @@
-/*
- * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-
 <style type="text/css">
 	/* colors, backgrounds, borders, link indication */
 body {

Modified: struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl?rev=571945&r1=571944&r2=571945&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl (original)
+++ struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/page-header.ftl Sun Sep  2 03:49:26 2007
@@ -46,7 +46,18 @@
 				<#-- Quick hack to show menu features :)
 -->				<#-- This should be done via contribution from the actions
 -->				<#-- themselves. E.g via a collection of MenuItems with url and name
--->				<div id="projecttools" class="toolgroup">
+-->				<div class="toolgroup">
+					<div class="label"><strong>Configuration</strong></div>
+					<div class="body">
+						<div><@s.url id="constantsLink" action="showConstants" includeParams="none" />
+							<a href="${constantsLink}">Constants</a>
+						</div>
+						<div><@s.url id="beansLink" action="showBeans" includeParams="none" />
+							<a href="${beansLink}">Beans</a>
+						</div>
+					</div>
+				</div>
+				<div id="projecttools" class="toolgroup">
 					<#if namespaces?exists>					<div class="label"><strong>Namespaces</strong></div>
 					<div class="body">
 						<#foreach namespace in namespaces>						<div><@s.url id="namespaceLink" action="actionNames" includeParams="none"><@s.param name="namespace">${namespace}</@...@s.url><a href="${namespaceLink}"><#if namespace == ""> default <#else> ${namespace} </#if></a></div>

Added: struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showBeans.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showBeans.ftl?rev=571945&view=auto
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showBeans.ftl (added)
+++ struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showBeans.ftl Sun Sep  2 03:49:26 2007
@@ -0,0 +1,46 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<#include "tigris-macros.ftl"/>
+<@startPage pageTitle="Struts Beans"/>
+<h3>Struts Beans</h3>
+
+<table width="100%">
+	<tr>
+		<th>Type</th>
+		<th>Alias</th>
+		<th>Implementation</th>
+		<th>Constant Name</th>
+	</tr>
+	<#list beans.entrySet() as entry>
+		<#list entry.value as b>
+			<tr <#if b_index==0>class="a"<#else>class="b"</#if>>
+			<td><#if b_index==0>${entry.key}</#if></td>
+			<td>${b.alias}</td>
+			<td>${b.impl}</td>
+			<td><#if b_index==0>${b.constant}</#if></td>
+			</tr>
+		</#list>
+	</#list>
+</table>
+
+<@endPage />

Added: struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showConstants.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showConstants.ftl?rev=571945&view=auto
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showConstants.ftl (added)
+++ struts/struts2/trunk/plugins/config-browser/src/main/resources/config-browser/showConstants.ftl Sun Sep  2 03:49:26 2007
@@ -0,0 +1,36 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<#include "tigris-macros.ftl"/>
+<@startPage pageTitle="Struts Constants"/>
+<h3>Struts Constants</h3>
+
+<table width="100%">
+	<#list constants.entrySet() as r>
+		<tr <#if r_index%2 gt 0>class="b"<#else>class="a"</#if>>
+		<td>${r.key}</td>
+		<td>${r.value}</td>
+		</tr>
+	</#list>
+</table>
+
+<@endPage />

Modified: struts/struts2/trunk/plugins/config-browser/src/main/resources/struts-plugin.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/config-browser/src/main/resources/struts-plugin.xml?rev=571945&r1=571944&r2=571945&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/config-browser/src/main/resources/struts-plugin.xml (original)
+++ struts/struts2/trunk/plugins/config-browser/src/main/resources/struts-plugin.xml Sun Sep  2 03:49:26 2007
@@ -27,6 +27,9 @@
     "http://struts.apache.org/dtds/struts-2.0.dtd">
     
 <struts>
+
+    <bean class="org.apache.struts2.config_browser.ConfigurationHelper" />
+    
     <package name="config-browser" extends="struts-default" namespace="/config-browser">
         <interceptors>
             <interceptor-stack name="config-browser-default">
@@ -50,6 +53,14 @@
 
         <action name="showConfig" class="org.apache.struts2.config_browser.ShowConfigAction">
             <result type="freemarker" name="success">/config-browser/showConfig.ftl</result>
+        </action>
+        
+        <action name="showConstants" class="org.apache.struts2.config_browser.ShowConstantsAction">
+            <result type="freemarker" name="success">/config-browser/showConstants.ftl</result>
+        </action>
+        
+        <action name="showBeans" class="org.apache.struts2.config_browser.ShowBeansAction">
+            <result type="freemarker" name="success">/config-browser/showBeans.ftl</result>
         </action>
 
         <action name="showValidators" class="org.apache.struts2.config_browser.ListValidatorsAction">