application.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package application
  2. import (
  3. "ecos/application/service"
  4. "ecos/config"
  5. "git.sxidc.com/go-framework/baize"
  6. "git.sxidc.com/go-framework/baize/framework/core/api"
  7. "git.sxidc.com/go-framework/baize/framework/core/application"
  8. "git.sxidc.com/service-supports/fslog"
  9. "git.sxidc.com/service-supports/osm_sdk"
  10. "net/http"
  11. )
  12. var appInstance *application.App
  13. func NewApp() {
  14. if appInstance != nil {
  15. return
  16. }
  17. appInstance = baize.NewApplication(config.GetConfig().ApplicationConfig)
  18. osmConfig := config.GetConfig().OsmConfig
  19. err := osm_sdk.Init(osmConfig.Prefix, osmConfig.Namespace, osmConfig.Name, osmConfig.BaseUrl, 0)
  20. if err != nil {
  21. fslog.Error(err)
  22. panic(err)
  23. }
  24. // 注册Router
  25. appInstance.Api().PrefixRouter().RegisterVersionedRouter("v1")
  26. }
  27. func DestroyApp() {
  28. if appInstance == nil {
  29. return
  30. }
  31. baize.DestroyApplication(appInstance)
  32. appInstance = nil
  33. }
  34. func Start() error {
  35. // 初始化服务
  36. for _, svc := range service.RegisteredServices {
  37. err := svc.Init(appInstance)
  38. if err != nil {
  39. return err
  40. }
  41. }
  42. err := appInstance.Start()
  43. if err != nil {
  44. return err
  45. }
  46. return nil
  47. }
  48. func Finish() error {
  49. err := appInstance.Finish()
  50. if err != nil {
  51. return err
  52. }
  53. // 销毁服务
  54. for _, svc := range service.RegisteredServices {
  55. err := svc.Destroy()
  56. if err != nil {
  57. return err
  58. }
  59. }
  60. return nil
  61. }
  62. func ServerHttpForTest(w http.ResponseWriter, req *http.Request) {
  63. appInstance.Api().RootRouter().(*api.RootRouter).ServerHttp(w, req)
  64. }