Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-5713

Move /wicket.properties to /META-INF/wicket/xyz.properties

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 6.17.0
    • 7.0.0-M4
    • wicket
    • None

    Description

      As found at http://markmail.org/message/gzychpjelr4eshly the current location of wicket.properties (at the root of the classpath entry) is problematic when an uberjar is used because usually the developer doesn't know how org.apache.wicket.IInitializer works and doesn't add code to merge the contents of all wicket.propeties files in the classpath into one.

      But even if the developer tried to merge them then it will fail again because org.apache.wicket.Application#load(Properties) doesn't expect more than one value per key, e.g. separated by comma.

      Garret Wilson suggested to move /wicket.properties files in /META-INF/wicket/ and use more qualified names, e.g. org.apache.wicket.core.properties.

      The first problem is that there are no JRE and Servlet APIs to find such files easily. We need to scan the classpath to be able to find them and load them.
      Is this costly ?
      https://github.com/ronmamo/reflections is wildly used library that provides this functionality (and much more) and it is using the same logic and seems to be quite fast!

      So let's give it a try!

      We should still support /wicket.properties for backward compatibility. We can log a WARN message when such is found and suggest to be moved in /META-INF/wicket/

      Attachments

        Issue Links

          Activity

            People

              mgrigorov Martin Tzvetanov Grigorov
              mgrigorov Martin Tzvetanov Grigorov
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: