Commit Graph

902 Commits

Author SHA1 Message Date
Sebastian Sdorra
a4cb2f7caa fix migration with unknown permissions 2019-07-18 12:17:20 +02:00
Eduard Heimbuch
0840109d56 add securityV1Migration-Test 2019-07-16 16:27:50 +02:00
Eduard Heimbuch
00e051a45f fix Tests / add Test 2019-07-16 08:07:44 +02:00
Eduard Heimbuch
0c75dda18e fix Test 2019-07-12 08:40:12 +02:00
René Pfeuffer
f631dc1724 Redirect protocol requests for migrated repositories
- Make old repository name and id available to plugins (MigrationDAO)
- Build Map with paths of migrated repositories to new location
- Implement redirect (RepositoryLegacyProtocolRedirectFilter)
2019-07-02 10:46:26 +02:00
René Pfeuffer
c881a3eca7 Store original repository name in migration plan 2019-07-01 15:30:03 +02:00
Sebastian Sdorra
bc4d6bfa74 merge with 2.0.0-m3 2019-06-26 09:27:52 +02:00
Eduard Heimbuch
802dfd73ca Merged in feature/updatestep_api_for_plugins (pull request #273)
Feature/updatestep api for plugins
2019-06-25 12:25:05 +00:00
Sebastian Sdorra
2654b017fb fixed broken ClassLoaderLifeCycle unit tests 2019-06-25 13:34:42 +02:00
Sebastian Sdorra
ebb23981b2 merge with 2.0.0-m3 2019-06-25 09:53:44 +02:00
Sebastian Sdorra
80febf9424 added modules, classloading and view packages to sonia.scm.lifecycle 2019-06-25 09:49:52 +02:00
Sebastian Sdorra
c7365b74da move StaticResourceServlet to package sonia.scm 2019-06-25 08:41:02 +02:00
Sebastian Sdorra
99f1c8c55e rename package sonia.scm.boot to sonia.scm.lifecycle 2019-06-25 08:36:57 +02:00
René Pfeuffer
1e586b020c Make sure task is not executed after is has cancelled himself 2019-06-24 17:51:38 +02:00
Sebastian Sdorra
9662b8a00b simplify scm-manager bootstrap
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.
2019-06-24 16:59:28 +02:00
Sebastian Sdorra
6c064a005a implemented optional injection of ServletContextListeners 2019-06-21 09:50:03 +02:00
Sebastian Sdorra
de5bee4947 refactor listener modules 2019-06-21 09:29:06 +02:00
Sebastian Sdorra
bacdf4d711 close every registered Closeable, instead of explicitly close a special set of instances 2019-06-21 08:41:26 +02:00
René Pfeuffer
9581bf946b Enable plugins to create config stores for repository config
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)
2019-06-20 16:12:16 +02:00
Sebastian Sdorra
d658a1a662 fix re registration of BootstrapContextFilter after restart 2019-06-20 14:58:32 +02:00
Sebastian Sdorra
c02ac21b6a merge repository heads 2019-06-19 13:07:53 +02:00
Sebastian Sdorra
33702e0e9d added RestartStrategies to be able to swap the context recreation strategy 2019-06-19 11:53:58 +02:00
Sebastian Sdorra
91fd259f07 use ClassLoaderLeakPreventor to reduce ClassLoaderLeaks of plugins 2019-06-19 11:52:20 +02:00
René Pfeuffer
d3b65ac3bd Check stored values instead of resulting xml files 2019-06-19 10:38:22 +02:00
René Pfeuffer
d43ad44da9 Enhance in-memory store factories for tests 2019-06-19 10:14:29 +02:00
René Pfeuffer
fae3de7b6c Extract update step test util 2019-06-19 09:31:56 +02:00
Sebastian Sdorra
bc8c89cbf8 fix sonar issue squid:S1989: Exceptions should not be thrown from servlet methods 2019-06-13 12:03:02 +02:00
René Pfeuffer
02616916af Merge with 2.0.0-m3 2019-06-13 11:24:32 +02:00
René Pfeuffer
67a78fd3b2 Fix typo 2019-06-13 10:38:15 +02:00
René Pfeuffer
ffa4625e36 Merge with 2.0.0-m3 2019-06-13 10:06:38 +02:00
Sebastian Sdorra
3c5b7ab535 display error on startup, if previous version is older than 1.60 2019-06-13 09:58:30 +02:00
René Pfeuffer
4991c2ad31 Merge with 2.0.0-m3 2019-06-13 06:34:52 +02:00
René Pfeuffer
0dda448ac8 Heed peer review 2019-06-13 06:24:35 +02:00
Sebastian Sdorra
5c7ae749c2 create new error module, which displays errors before migration 2019-06-12 18:26:58 +02:00
Sebastian Sdorra
4c91ef0100 make PluginLoader dependency of MustacheTemplateEngine optional 2019-06-12 17:04:32 +02:00
Sebastian Sdorra
614c61a00c keep select migration strategy in case of an error 2019-06-12 11:36:15 +02:00
René Pfeuffer
046ccfb2a0 Merge with 2.0.0-m3 2019-06-11 15:02:02 +02:00
René Pfeuffer
a6caa03d86 Create migration module only if necessary 2019-06-11 14:34:44 +02:00
René Pfeuffer
72f3334afe Merge with 2.0.0-m3 2019-06-11 13:55:43 +02:00
René Pfeuffer
802fb3e0cf Use manually entered namespace and name 2019-06-11 13:10:31 +02:00
René Pfeuffer
8a6b57e06c Add new migration strategies "delete" and "ignore" 2019-06-07 13:52:54 +02:00
René Pfeuffer
25bc48e349 Merge with 2.0.0-m3 2019-06-06 15:44:57 +02:00
René Pfeuffer
1065899e99 Add missing test 2019-06-06 12:52:10 +02:00
René Pfeuffer
77a1ad50fe Refresh repository dao after repository.xml file was renamed
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.
2019-06-06 10:45:56 +02:00
René Pfeuffer
b26b702930 Merge with 2.0.0-m3 2019-06-06 09:49:38 +02:00
René Pfeuffer
575a03521f Fix group v1 migration with empty group database file 2019-06-06 08:41:38 +02:00
Sebastian Sdorra
3c373a4c4d replace QuartzScheduler with a more lightweight scheduler
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).
2019-06-05 16:15:06 +02:00
René Pfeuffer
b274952fa9 Create explicit method to create new repository locations 2019-06-05 14:27:35 +02:00
René Pfeuffer
e52518a12b Cleanup
- 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
2019-06-05 08:21:37 +02:00
René Pfeuffer
da4f3e6691 Resolve config files via resolve method of context provider 2019-06-03 16:02:04 +02:00