diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java index 34f2230b2..a03cb1391 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ActionNamesAction.java @@ -31,25 +31,24 @@ import java.util.TreeSet; /** * ActionNamesAction - * */ public class ActionNamesAction extends ActionSupport { private static final long serialVersionUID = -5389385242431387840L; - private Set actionNames; + private Set actionNames; private String namespace = ""; - private Set namespaces; + private Set namespaces; private String extension; - + protected ConfigurationHelper configHelper; @Inject public void setConfigurationHelper(ConfigurationHelper cfg) { this.configHelper = cfg; } - - public Set getActionNames() { + + public Set getActionNames() { return actionNames; } @@ -60,7 +59,7 @@ public class ActionNamesAction extends ActionSupport { public void setNamespace(String namespace) { this.namespace = namespace; } - + @Inject(StrutsConstants.STRUTS_ACTION_EXTENSION) public void setExtension(String ext) { this.extension = ext; @@ -70,15 +69,15 @@ public class ActionNamesAction extends ActionSupport { return configHelper.getActionConfig(namespace, actionName); } - public Set getNamespaces() { + public Set getNamespaces() { return namespaces; } public String getExtension() { - if ( extension == null) { + if (extension == null) { return "action"; } - if (extension.indexOf(",") > -1) { + if (extension.contains(",")) { return extension.substring(0, extension.indexOf(",")); } return extension; @@ -93,8 +92,7 @@ public class ActionNamesAction extends ActionSupport { if (namespace == null) { namespace = ""; } - actionNames = - new TreeSet(configHelper.getActionNames(namespace)); + actionNames = new TreeSet(configHelper.getActionNames(namespace)); return SUCCESS; } } diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ListValidatorsAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ListValidatorsAction.java index a2dfb8e8e..10e9913f9 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ListValidatorsAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ListValidatorsAction.java @@ -41,7 +41,7 @@ public class ListValidatorsAction extends ActionSupport { private String clazz; private String context; - List validators = Collections.EMPTY_LIST; + List validators = Collections.emptyList(); private ActionValidatorManager actionValidatorManager; diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java index 3cfb82259..d5a0fd664 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java @@ -21,18 +21,6 @@ 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; @@ -40,6 +28,18 @@ import com.opensymphony.xwork2.conversion.ObjectTypeDeterminer; import com.opensymphony.xwork2.conversion.impl.XWorkConverter; import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; +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 java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; /** * Shows the beans loaded by the internal Guice container. Only shows beans that are recognized by Struts as official @@ -47,11 +47,11 @@ import com.opensymphony.xwork2.inject.Inject; */ public class ShowBeansAction extends ActionNamesAction { - Map> bindings; + Map> bindings; @Inject public void setContainer(Container container) { - bindings = new TreeMap>(); + bindings = new TreeMap>(); 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)); @@ -63,12 +63,11 @@ public class ShowBeansAction extends ActionNamesAction { 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> getBeans() - { + + public Map> getBeans() { return bindings; } - + protected Set addBindings(Container container, Class type, String constName) { Set bindings = new TreeSet(); String chosenName = container.getInstance(String.class, constName); @@ -76,6 +75,9 @@ public class ShowBeansAction extends ActionNamesAction { chosenName = "struts"; } Set names = container.getInstanceNames(type); + if (names == null) { + names = Collections.emptySet(); + } if (!names.contains(chosenName)) { bindings.add(new Binding(getInstanceClassName(container, type, "default"), chosenName, constName, true)); } @@ -97,33 +99,36 @@ public class ShowBeansAction extends ActionNamesAction { } return instName; } - + public class Binding implements Comparable { 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) { diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java index 6464ec6d0..ee8e9932b 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConfigAction.java @@ -39,8 +39,6 @@ public class ShowConfigAction extends ActionNamesAction { private static final long serialVersionUID = -1630527489407671652L; - private static final PropertyDescriptor[] PDSAT = new PropertyDescriptor[0]; - private String namespace; private String actionName; private ActionConfig config; @@ -60,7 +58,7 @@ public class ShowConfigAction extends ActionNamesAction { this.detailView = detailView; } - public Set getActionNames() { + public Set getActionNames() { return actionNames; } diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java index b328da6b2..cf292e02a 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowConstantsAction.java @@ -21,29 +21,28 @@ 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; +import java.util.HashMap; +import java.util.Map; + /** * Shows all constants as loaded by Struts */ public class ShowConstantsAction extends ActionNamesAction { - Map consts; - + private Map constants; + @Inject public void setContainer(Container container) { - consts = new HashMap(); + constants = new HashMap(); for (String key : container.getInstanceNames(String.class)) { - consts.put(key, container.getInstance(String.class, key)); + constants.put(key, container.getInstance(String.class, key)); } } - - public Map getConstants() - { - return consts; + + public Map getConstants() { + return constants; } } diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowJarsAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowJarsAction.java index 403ec1258..4343bf2a5 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowJarsAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowJarsAction.java @@ -21,48 +21,34 @@ package org.apache.struts2.config_browser; +import com.opensymphony.xwork2.util.ClassLoaderUtil; + import java.io.IOException; import java.net.URL; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Map; import java.util.Properties; -import com.opensymphony.xwork2.inject.Container; -import com.opensymphony.xwork2.inject.Inject; -import com.opensymphony.xwork2.util.ClassLoaderUtil; - /** * Shows all constants as loaded by Struts */ public class ShowJarsAction extends ActionNamesAction { - List poms; - - @Inject - public void setContainer(Container container) { + public List getJarPoms() { try { - poms = configHelper.getJarProperties(); - } - catch (IOException ioe) { + return configHelper.getJarProperties(); + } catch (IOException ioe) { // this is the config browser, so it doesn't seem necessary to do more than just // send up a debug message if (LOG.isDebugEnabled()) { LOG.debug("IOException caught while retrieving jar properties - " + ioe.getMessage()); } - poms = Collections.EMPTY_LIST; // maybe avoiding NPE later + return Collections.emptyList(); // maybe avoiding NPE later } } - - public List getJarPoms() - { - return poms; - } - - public Iterator getPluginsLoaded() - { + + public Iterator getPluginsLoaded() { try { return ClassLoaderUtil.getResources("struts-plugin.xml", ShowJarsAction.class, false); } catch (IOException e) { @@ -71,4 +57,5 @@ public class ShowJarsAction extends ActionNamesAction { } return null; } + } diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowValidatorAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowValidatorAction.java index 1669a980c..3453b906c 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowValidatorAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowValidatorAction.java @@ -21,6 +21,14 @@ package org.apache.struts2.config_browser; +import com.opensymphony.xwork2.inject.Inject; +import com.opensymphony.xwork2.util.logging.Logger; +import com.opensymphony.xwork2.util.logging.LoggerFactory; +import com.opensymphony.xwork2.util.reflection.ReflectionContextFactory; +import com.opensymphony.xwork2.util.reflection.ReflectionException; +import com.opensymphony.xwork2.util.reflection.ReflectionProvider; +import com.opensymphony.xwork2.validator.Validator; + import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; @@ -30,14 +38,6 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; -import com.opensymphony.xwork2.inject.Inject; -import com.opensymphony.xwork2.util.logging.Logger; -import com.opensymphony.xwork2.util.logging.LoggerFactory; -import com.opensymphony.xwork2.util.reflection.ReflectionContextFactory; -import com.opensymphony.xwork2.util.reflection.ReflectionException; -import com.opensymphony.xwork2.util.reflection.ReflectionProvider; -import com.opensymphony.xwork2.validator.Validator; - /** * ShowValidatorAction * @@ -47,8 +47,8 @@ public class ShowValidatorAction extends ListValidatorsAction { private static Logger LOG = LoggerFactory.getLogger(ShowValidatorAction.class); - Set properties = Collections.EMPTY_SET; - int selected = 0; + private Set properties = Collections.emptySet(); + private int selected = 0; ReflectionProvider reflectionProvider; ReflectionContextFactory reflectionContextFactory; @@ -76,16 +76,16 @@ public class ShowValidatorAction extends ListValidatorsAction { } public Validator getSelectedValidator() { - return (Validator) validators.get(selected); + return validators.get(selected); } public String execute() throws Exception { loadValidators(); Validator validator = getSelectedValidator(); - properties = new TreeSet(); + properties = new TreeSet(); try { - Map context = reflectionContextFactory.createDefaultContext(validator); - BeanInfo beanInfoFrom = null; + Map context = reflectionContextFactory.createDefaultContext(validator); + BeanInfo beanInfoFrom; try { beanInfoFrom = Introspector.getBeanInfo(validator.getClass(), Object.class); } catch (IntrospectionException e) { @@ -96,8 +96,7 @@ public class ShowValidatorAction extends ListValidatorsAction { PropertyDescriptor[] pds = beanInfoFrom.getPropertyDescriptors(); - for (int i = 0; i < pds.length; i++) { - PropertyDescriptor pd = pds[i]; + for (PropertyDescriptor pd : pds) { String name = pd.getName(); Object value = null; if (pd.getReadMethod() == null) { @@ -118,10 +117,11 @@ public class ShowValidatorAction extends ListValidatorsAction { addActionError("Unable to retrieve properties: " + e.toString()); } - if (hasErrors()) + if (hasErrors()) { return ERROR; - else + } else { return SUCCESS; + } } public static class PropertyInfo implements Comparable { diff --git a/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl b/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl index d7e86510d..0ab3bd106 100644 --- a/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl +++ b/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl @@ -32,7 +32,7 @@ <@s.param name="namespace">${namespace} <@s.param name="actionName">${name} -
  • ${name}
  • +
  • <@s.a href="%{showConfig}">${name}
  • diff --git a/plugins/config-browser/src/main/resources/config-browser/page-header.ftl b/plugins/config-browser/src/main/resources/config-browser/page-header.ftl index 0b5964fef..11f730217 100644 --- a/plugins/config-browser/src/main/resources/config-browser/page-header.ftl +++ b/plugins/config-browser/src/main/resources/config-browser/page-header.ftl @@ -41,7 +41,7 @@ - <#if !hideNav?exists> -
    + <#if !hideNav??>
    - <#if namespaces?exists>
    Namespaces
    -
    - <#foreach namespace in namespaces>
    <@s.url id="namespaceLink" action="actionNames" includeParams="none"><@s.param name="namespace">${namespace}<#if namespace == ""> default <#else> ${namespace}
    -
    -
    + <#if namespaces??> +
    Namespaces
    +
    + <#foreach namespace in namespaces> +
    + <@s.url var="namespaceLink" action="actionNames" includeParams="none"> + <@s.param name="namespace">${namespace} + + <@s.a href="%{namespaceLink}"><#if namespace == ""> default <#else> ${namespace} +
    + +
    + +
    - <#if actionNames?exists>
    Actions in <#if namespace == ""> default <#else> ${namespace}
    - <#foreach name in actionNames>
    <@s.url id="actionLink" action="showConfig" includeParams="none"><@s.param name="namespace">${namespace}<@s.param name="actionName">${name}${name}
    -
    + <#if actionNames??> +
    Actions in <#if namespace == ""> default <#else> ${namespace}
    + <#foreach name in actionNames> +
    + <@s.url id="actionLink" action="showConfig" includeParams="none" escapeAmp="false"> + <@s.param name="namespace">${namespace} + <@s.param name="actionName">${name} + + <@s.a href="%{actionLink}">${name} +
    + + +
    diff --git a/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl b/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl index 7584ec6a3..34987a17f 100644 --- a/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl +++ b/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl @@ -34,8 +34,8 @@ ${p}
    Default location: - ${base}${namespace}/${actionName}.${extension} +
    Default location: + ${base}${namespace}/${actionName}<#if extension != "">.${extension}
    diff --git a/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl b/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl index ae4ebba71..47c6fe32a 100644 --- a/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl +++ b/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl @@ -24,7 +24,7 @@ <#assign row = 0> - <#if validators?exists> + <#if validators??> <#foreach i in validators> class="b"<#else>class="a"> diff --git a/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl b/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl index 8b48096e8..860c50984 100644 --- a/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl +++ b/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl @@ -44,7 +44,7 @@ <#macro tab name, url, isSelected> <#if isSelected == "true"> - <#else> diff --git a/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl b/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl index 03b4aa6ef..d890a9d67 100644 --- a/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl +++ b/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl @@ -34,11 +34,11 @@ <#foreach prop in properties> class="b"<#else>class="a"> - - +
    FieldType 
    ${i.fieldName!"(see expression)"}${name} + ${name}${name}
    ${prop.name}<#if prop.value?exists> + <#if prop.value??> <#if prop.value?is_collection>(size = ${prop.value?size})<#foreach v in prop.value>${v.value}, <#else>${prop.value?string} <#else> null <#if prop.value?exists && prop.value?is_collection>(collection)<#else>${prop.type.name}<#if prop.value?? && prop.value?is_collection>(collection)<#else>${prop.type.name}
    <#call endPage>