Replaced the channel cache with one that is lazy loaded and updated from the database every time it is called.…
Replaced the channel cache with one that is lazy loaded and updated from the database every time it is called.
Moved the ChannelCache and DeployedChannelCache into inner classes in the DefaultChannelController to separate their logic.
Fixed memory leak where channels with changed names weren't removed from the channnelCacheByName map.
Changed ChannelController API to allow getting single, multiple, or all channels at the same time through the API. The controller simply pulls the appropriate channels from the refreshed channel cache and does not directly ever do a database call to get channel from the database. One caveat is that the channel cache is always refreshed when the API is used, which requires at least one database call to get the latest channel revisions numbers. Because of this, the number of calls to get channels from the ChannelController was optimized.
Issue:
MIRTH-2536