mirror of
https://github.com/appium/appium.git
synced 2026-04-27 13:59:33 -05:00
f4c0b5b9b4
This PR changes the shape of plugin classes as well as how CLI args get assigned. - The `pluginName` static property has been removed. `name` is now assigned via the `BasePlugin` constructor, and is derived from the plugin name in the manifest. This means that an implementor only needs to provide a `pluginName` in the manifest, and the data is not duplicated. The value in this map (the plugin name) is used to instantiate the plugin, instead of passing static `pluginName` property into the constructor. - CLI args are now passed in through the constructor instead of assigned to the plugin instance after the fact. Implementation details: `getActivePlugins()` and `getActiveDrivers()` now return a `Map` of an extension _class_ to an extension name. The key is _not_ an instance, and is effectively a singleton, so we are not at risk of a memory leak. This change does not otherwise affect drivers.