1. 程式人生 > >onos實現driver的自動載入

onos實現driver的自動載入

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