AgentExtensionsManager and AgentCoreResourceExtension
This patch introduces the following classes:
L2Agent - abstract class for common L2Agent implementions.
AgentExtensionsManager - to load AgentCoreResourceExtension.
AgentCoreResourceExtension - interface class to define
the AgentCoreResourceExtension API.
This allows better segregation between L2 Agent Core
and L2 Agent Extensions.
The patch is missing unit test but it was tested manually.
I added a unit tests @TODO comments to come back
to them later.