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

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

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 6.17.0
    • Fix Version/s: 7.0.0-M4
    • Component/s: wicket
    • Labels:
      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

              • Assignee:
                mgrigorov Martin Grigorov
                Reporter:
                mgrigorov Martin Grigorov
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: