Class: MendixBridge::BackendServer

Inherits:
Object
  • Object
show all
Defined in:
lib/mendix_bridge/backend_server.rb

Constant Summary collapse

INVENTORY_FILES =
{
  "/inventory/project-tree.json" => ["inventory", "project-tree.json"],
  "/inventory/element-details.json" => ["inventory", "element-details.json"],
  "/inventory/dependencies.json" => ["inventory", "dependencies.json"],
  "/inventory/mendix-project.json" => ["mendix-project.json"],
  "/inventory/ui-layouts.json" => ["inventory", "ui-layouts.json"]
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(inventory_dir:, web_root:, mxcli:, bind: "127.0.0.1", port: 4567, logger: nil, run_cmd: nil) ⇒ BackendServer

Returns a new instance of BackendServer.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/mendix_bridge/backend_server.rb', line 26

def initialize(
  inventory_dir:,
  web_root:,
  mxcli:,
  bind: "127.0.0.1",
  port: 4567,
  logger: nil,
  run_cmd: nil
)
  @inventory_dir = File.expand_path(inventory_dir)
  @web_root = File.expand_path(web_root)
  @mxcli = File.expand_path(mxcli)
  @layout_mutex = Mutex.new
  @app_mutex = Mutex.new
  @app_log = []
  @app_pid = nil
  @app_type = nil       # :docker | :direct
  @docker_running = false
  @auth_user = nil
  @run_cmd_override = run_cmd
  @xas_log = []
  @xas_mutex = Mutex.new
  @database_mutex = Mutex.new
  @xas_proxy_enabled = false
  @xas_target_port = nil
  validate!
  @server = WEBrick::HTTPServer.new(
    BindAddress: bind,
    Port: port,
    Logger: logger || WEBrick::Log.new(File::NULL),
    AccessLog: []
  )
  @port = @server.listeners.first.addr[1]
  mount_routes
end

Instance Attribute Details

#portObject (readonly)

Returns the value of attribute port.



24
25
26
# File 'lib/mendix_bridge/backend_server.rb', line 24

def port
  @port
end

Instance Method Details

#shutdownObject



66
67
68
# File 'lib/mendix_bridge/backend_server.rb', line 66

def shutdown
  @server.shutdown
end

#startObject



62
63
64
# File 'lib/mendix_bridge/backend_server.rb', line 62

def start
  @server.start
end