Without this, the XmlRepositoryDAO will be initialized at a time
where there is no repository-paths.xml file. Therefore the dao cannot
initialize with the existing repositories whose paths are kept in
repositories.xml at that time.
In this commit we trigger a refresh after the file was renamed, so
that the PathBasedRepositoryLocationResolver can read the moved
repository-paths.xml file and all repositories will be found.
The new scheduler is based on the cron-utils package and uses the same cron syntax as quartz.
CronScheduler was mainly introduced, because of a ClassLoader leak with the old Quartz implementation.
The leak comes from shiros use of InheriatableThreadLocal in combination with the WorkerThreads of Quartz.
CronScheduler uses a ThreadFactory which clears the Shiro context before a new Thread is created (see CronThreadFactory).
This change is required, because some cachings of resteasy are not cleared by removing them from ServletContext.
Some classes use static or ThreadLocals, which are causing a ClassLoader leak.
However this change will clear those caches.
- Mark PathBasedRepositoryLocationResolver as singleton so that other
users will get the same instance and will not overwrite the paths
set by migration.
- Set path kept by InlineMigrationStrategy in location resolver to
store the path.
- Add logging
- Add type of repository to migration web page
Repository owners got an frontend error when they hat no permission to
read the global repository roles. We therefore remove the dedicated
permission to read repository.
Additionally we fix the 'write' permission to match the entry in the
'permissions.xml' file.