- Make old repository name and id available to plugins (MigrationDAO)
- Build Map with paths of migrated repositories to new location
- Implement redirect (RepositoryLegacyProtocolRedirectFilter)
We have simplified the scm-manager bootstrap process, by replacing the
ServletContextListener call hierarchy with much simpler ModuleProviders.
We have also removed the parent injector. Now we create always a new
injector. If something goes wrong in the process of injector creation,
we will show a nicely styled error page instead of stacktrace on a white
page.
Therefore we have to
- add an API to create stores for repository ids, not only for
repositories,
- make v1 properties available in scm-core
- make sure that properties are extracted from repositories before the
update step of a plugin runs (this is done by sorting the update steps
in a way so that "core" update steps are executed before plugin update
steps with the same version)
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).
- 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