Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-3452

let struts.custom.i18n.resources supports wildcard

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • 6.5.0
    • None
    • Important

    Description

      <constant name="struts.custom.i18n.resources" value="resources.i18n.messages,com.acme.messages.*" />
      

      following code is my uncompleted patch,I want to know how to scan wildcard resources using xwork/struts2 util class.

      org.apache.struts2.config.BeanSelectionProvider line:245

              LocalizedTextUtil.addDefaultResourceBundle("org/apache/struts2/struts-messages");
      
              String bundles = props.getProperty(StrutsConstants.STRUTS_CUSTOM_I18N_RESOURCES);
              if (bundles != null && bundles.length() > 0) {
                  StringTokenizer customBundles = new StringTokenizer(props.getProperty(StrutsConstants.STRUTS_CUSTOM_I18N_RESOURCES), ", ");
      
                  while (customBundles.hasMoreTokens()) {
                      String name = customBundles.nextToken();
                      // add start
                      if(name.contains("*")){
                      	Collection<String> resources = new HashSet<String>(); //TODO scan resources from classpath
                      	for(String res : resources)
                      		try {
                                  LOG.info("Loading global messages from " + res);
                                  LocalizedTextUtil.addDefaultResourceBundle(res);
                              } catch (Exception e) {
                                  LOG.error("Could not find messages file " + res + ".properties. Skipping");
                              }
                              continue;
                      }
                      // add end
                      try {
                          LOG.info("Loading global messages from " + name);
                          LocalizedTextUtil.addDefaultResourceBundle(name);
                      } catch (Exception e) {
                          LOG.error("Could not find messages file " + name + ".properties. Skipping");
                      }
                  }
              }
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            quaff Yanming Zhou
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 4h
                4h
                Remaining:
                Remaining Estimate - 4h
                4h
                Logged:
                Time Spent - Not Specified
                Not Specified