onos實現driver的自動載入
阿新 • • 發佈:2019-02-18
AbstractDriverLoader
已知driverAdminServer
根據path讀取配置檔案的內容
1、進入到XMLDriverLoader裡,根據XML
建立Provider------------------------------------------------------------------------------------>XMLDriverLoader
進入loadDrivers(InputStream ,DriverResolver)
1、建立一個XMLConfiguration,感覺主要功能是為了將讀取的配置檔案內容生成一個document。
2、將形成的XMLConfiguration傳入loadDrivers()
對配置檔案中的每一個driver進行遍歷,對每個driver進行如下操作:
(1)根據配置檔案生成一個DefaultDriver
(2)將driver放入drivers 和provider裡面
返回provider
DriverManager
根據返回的provider進入registerProvider()
對provider裡的每一個driver進行迴圈:
(1)呼叫DefaultDriverProvider--------------------------------------------------------------->DefaultDriverProvider
進入addDriver(),為provider提供特定的driver,
如果已經存在就合併,如果
沒有則新增到drivers裡
(2)進入DefaultDriver獲得driver的一些資訊
(3)將driver的資訊加入到driverByKey裡
【形如:“juniper--IOS”->DefaultDriver{name="juniper-netconf,
",parents=.......}】
(4)對driver中的每一個behavior進行迴圈,加入到classes中。
【形如:org.onosproject.drivers.juniper.InterfaceConfigJuniperIosImpl
--->class org.onosproject.......juniper........】
(5)將provider加入providers裡