datawire_mdk 2.0.12 → 2.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/mdk.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk; Mdk; end
@@ -429,7 +429,7 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
429
429
  @_reflection_hack = ::Hash.new()
430
430
  @_runtime = runtime
431
431
  if (!((runtime).dependencies.hasService("failurepolicy_factory")))
432
- (runtime).dependencies.registerService("failurepolicy_factory", ::Quark.mdk_discovery.CircuitBreakerFactory.new(runtime))
432
+ (runtime).dependencies.registerService("failurepolicy_factory", self.getFailurePolicy(runtime))
433
433
  end
434
434
  @_disco = ::Quark.mdk_discovery.Discovery.new(runtime)
435
435
  env = runtime.getEnvVarsService()
@@ -471,7 +471,12 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
471
471
  if ((config).start_with?("synapse:path="))
472
472
  result = ::Quark.mdk_discovery.synapse.Synapse.new((config)[(13)...((config).size)])
473
473
  else
474
- raise (("Unknown MDK discovery source: ") + (config))
474
+ if ((config).start_with?("static:nodes="))
475
+ json = (config)[(13)...((config).size)]
476
+ result = ::Quark.mdk_discovery.StaticRoutes.parseJSON(json)
477
+ else
478
+ raise (("Unknown MDK discovery source: ") + (config))
479
+ end
475
480
  end
476
481
  end
477
482
  return result
@@ -479,6 +484,21 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
479
484
  nil
480
485
  end
481
486
 
487
+ ##
488
+ # Choose FailurePolicy based on environment variables.
489
+
490
+ def getFailurePolicy(runtime)
491
+
492
+ config = runtime.getEnvVarsService().var("MDK_FAILURE_POLICY").orElseGet("")
493
+ if ((config) == ("recording"))
494
+ return ::Quark.mdk_discovery.RecordingFailurePolicyFactory.new()
495
+ else
496
+ return ::Quark.mdk_discovery.CircuitBreakerFactory.new(runtime)
497
+ end
498
+
499
+ nil
500
+ end
501
+
482
502
  def _timeout()
483
503
 
484
504
  return 10.0
@@ -621,13 +641,70 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
621
641
  end
622
642
  MDKImpl.unlazy_statics
623
643
 
644
+ def self._TLSInit; TLSInit; end
645
+ class TLSInit < ::DatawireQuarkCore::QuarkObject
646
+ extend ::DatawireQuarkCore::Static
647
+
648
+ static mdk__TLSInit_ref: -> { nil }
649
+
650
+
651
+
652
+ def initialize()
653
+ self.__init_fields__
654
+
655
+ nil
656
+ end
657
+
658
+
659
+
660
+
661
+ def getValue()
662
+
663
+ return false
664
+
665
+ nil
666
+ end
667
+
668
+ def _getClass()
669
+
670
+ return "mdk._TLSInit"
671
+
672
+ nil
673
+ end
674
+
675
+ def _getField(name)
676
+
677
+ return nil
678
+
679
+ nil
680
+ end
681
+
682
+ def _setField(name, value)
683
+
684
+ nil
685
+
686
+ nil
687
+ end
688
+
689
+ def __init_fields__()
690
+
691
+
692
+ nil
693
+ end
694
+
695
+
696
+ end
697
+ TLSInit.unlazy_statics
698
+
624
699
  def self.SessionImpl; SessionImpl; end
625
700
  class SessionImpl < ::DatawireQuarkCore::QuarkObject
626
701
  attr_accessor :_mdk, :_resolved, :_context, :_experimental
627
702
  extend ::DatawireQuarkCore::Static
628
703
 
629
704
  static _levels: -> { {"CRITICAL" => 0, "ERROR" => 1, "WARN" => 2, "INFO" => 3, "DEBUG" => 4} }
705
+ static _inLogging: -> { ::DatawireQuarkCore::TLS.new(::Quark.mdk._TLSInit.new()) }
630
706
  static mdk_SessionImpl_ref: -> { nil }
707
+ static quark_List_quark_List_mdk_discovery_Node___ref: -> { nil }
631
708
  static quark_List_mdk_discovery_Node__ref: -> { nil }
632
709
  static quark_List_quark_Map_quark_String_quark_String___ref: -> { nil }
633
710
  static quark_List_quark_String__ref: -> { nil }
@@ -730,8 +807,13 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
730
807
  def _log(level, category, text)
731
808
 
732
809
  if (((@_mdk)._tracer) != (nil))
810
+ if (::Quark.mdk.SessionImpl._inLogging.getValue())
811
+ return
812
+ end
813
+ ::Quark.mdk.SessionImpl._inLogging.setValue(true)
733
814
  (@_mdk)._tracer.setContext(@_context)
734
815
  (@_mdk)._tracer.log((@_mdk).procUUID, level, category, text)
816
+ ::Quark.mdk.SessionImpl._inLogging.setValue(false)
735
817
  end
736
818
 
737
819
  nil
@@ -740,7 +822,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
740
822
  def critical(category, text)
741
823
 
742
824
  if (self._enabled("CRITICAL"))
743
- (@_mdk).logger.error(((category) + (": ")) + (text))
744
825
  self._log("CRITICAL", category, text)
745
826
  end
746
827
 
@@ -750,7 +831,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
750
831
  def error(category, text)
751
832
 
752
833
  if (self._enabled("ERROR"))
753
- (@_mdk).logger.error(((category) + (": ")) + (text))
754
834
  self._log("ERROR", category, text)
755
835
  end
756
836
 
@@ -760,7 +840,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
760
840
  def warn(category, text)
761
841
 
762
842
  if (self._enabled("WARN"))
763
- (@_mdk).logger.warn(((category) + (": ")) + (text))
764
843
  self._log("WARN", category, text)
765
844
  end
766
845
 
@@ -770,7 +849,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
770
849
  def info(category, text)
771
850
 
772
851
  if (self._enabled("INFO"))
773
- (@_mdk).logger.info(((category) + (": ")) + (text))
774
852
  self._log("INFO", category, text)
775
853
  end
776
854
 
@@ -780,7 +858,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
780
858
  def debug(category, text)
781
859
 
782
860
  if (self._enabled("DEBUG"))
783
- (@_mdk).logger.debug(((category) + (": ")) + (text))
784
861
  self._log("DEBUG", category, text)
785
862
  end
786
863
 
@@ -833,15 +910,22 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
833
910
 
834
911
  def _resolvedCallback(result)
835
912
 
836
- (@_resolved) << (result)
913
+ (self._current_interaction()) << (result)
837
914
  return result
838
915
 
839
916
  nil
840
917
  end
841
918
 
919
+ def _current_interaction()
920
+
921
+ return (@_resolved)[((@_resolved).size) - (1)]
922
+
923
+ nil
924
+ end
925
+
842
926
  def start_interaction()
843
927
 
844
- @_resolved = ::DatawireQuarkCore::List.new([])
928
+ (@_resolved) << (::DatawireQuarkCore::List.new([]))
845
929
 
846
930
  nil
847
931
  end
@@ -864,8 +948,8 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
864
948
 
865
949
  def fail_interaction(message)
866
950
 
867
- suspects = @_resolved
868
- @_resolved = ::DatawireQuarkCore::List.new([])
951
+ suspects = self._current_interaction()
952
+ (@_resolved)[((@_resolved).size) - (1)] = (::DatawireQuarkCore::List.new([]))
869
953
  involved = ::DatawireQuarkCore::List.new([])
870
954
  idx = 0
871
955
  while ((idx) < ((suspects).size)) do
@@ -882,8 +966,8 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
882
966
 
883
967
  def finish_interaction()
884
968
 
885
- nodes = @_resolved
886
- @_resolved = ::DatawireQuarkCore::List.new([])
969
+ nodes = self._current_interaction()
970
+ (@_resolved).delete_at(((@_resolved).size) - (1))
887
971
  idx = 0
888
972
  while ((idx) < ((nodes).size)) do
889
973
  node = (nodes)[idx]
@@ -915,6 +999,9 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
915
999
  if ((name) == ("_levels"))
916
1000
  return ::Quark.mdk.SessionImpl._levels
917
1001
  end
1002
+ if ((name) == ("_inLogging"))
1003
+ return ::Quark.mdk.SessionImpl._inLogging
1004
+ end
918
1005
  if ((name) == ("_mdk"))
919
1006
  return (self)._mdk
920
1007
  end
@@ -937,6 +1024,9 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
937
1024
  if ((name) == ("_levels"))
938
1025
  ::Quark.mdk.SessionImpl._levels = ::DatawireQuarkCore.cast(value) { ::Hash }
939
1026
  end
1027
+ if ((name) == ("_inLogging"))
1028
+ ::Quark.mdk.SessionImpl._inLogging = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::TLS }
1029
+ end
940
1030
  if ((name) == ("_mdk"))
941
1031
  (self)._mdk = ::DatawireQuarkCore.cast(value) { ::Quark.mdk.MDKImpl }
942
1032
  end
@@ -956,7 +1046,7 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
956
1046
  def __init_fields__()
957
1047
 
958
1048
  self._mdk = nil
959
- self._resolved = ::DatawireQuarkCore::List.new([])
1049
+ self._resolved = ::DatawireQuarkCore::List.new([::DatawireQuarkCore::List.new([])])
960
1050
  self._context = nil
961
1051
  self._experimental = false
962
1052
 
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
data/lib/mdk_discovery.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
@@ -7,8 +7,8 @@ require "datawire-quark-core"
7
7
  require_relative 'quark/reflect' # 0 ('quark',) ()
8
8
  require_relative 'mdk_runtime/actors' # 0 ('mdk_runtime',) ()
9
9
  require_relative 'mdk_runtime' # 0 () ()
10
- require_relative 'mdk_runtime/promise' # 0 ('mdk_runtime',) ()
11
10
  require_relative 'quark' # 0 () ()
11
+ require_relative 'mdk_runtime/promise' # 0 ('mdk_runtime',) ()
12
12
  require_relative 'mdk_util' # 0 () ()
13
13
  require_relative 'mdk_discovery/protocol' # 0 ('mdk_discovery',) ()
14
14
  require_relative 'mdk_discovery/synapse' # 0 ('mdk_discovery',) ()
@@ -285,6 +285,182 @@ class DiscoverySourceFactory < ::DatawireQuarkCore::QuarkObject
285
285
  end
286
286
  DiscoverySourceFactory.unlazy_statics
287
287
 
288
+ def self._StaticRoutesActor; StaticRoutesActor; end
289
+ ##
290
+ # Discovery actor for hard-coded static routes.
291
+
292
+ class StaticRoutesActor < ::DatawireQuarkCore::QuarkObject
293
+ attr_accessor :_subscriber, :_knownNodes
294
+ extend ::DatawireQuarkCore::Static
295
+
296
+ static mdk_discovery__StaticRoutesActor_ref: -> { nil }
297
+
298
+
299
+
300
+ def initialize(subscriber, knownNodes)
301
+
302
+ self.__init_fields__
303
+ (self)._subscriber = subscriber
304
+ (self)._knownNodes = knownNodes
305
+
306
+ nil
307
+ end
308
+
309
+
310
+
311
+
312
+ def onStart(dispatcher)
313
+
314
+ idx = 0
315
+ while ((idx) < (((self)._knownNodes).size)) do
316
+ dispatcher.tell(self, ::Quark.mdk_discovery.NodeActive.new(((self)._knownNodes)[idx]), (self)._subscriber)
317
+ idx = (idx) + (1)
318
+ end
319
+
320
+ nil
321
+ end
322
+
323
+ def onMessage(origin, message)
324
+
325
+ nil
326
+
327
+ nil
328
+ end
329
+
330
+ def onStop()
331
+
332
+ nil
333
+
334
+ nil
335
+ end
336
+
337
+ def _getClass()
338
+
339
+ return "mdk_discovery._StaticRoutesActor"
340
+
341
+ nil
342
+ end
343
+
344
+ def _getField(name)
345
+
346
+ if ((name) == ("_subscriber"))
347
+ return (self)._subscriber
348
+ end
349
+ if ((name) == ("_knownNodes"))
350
+ return (self)._knownNodes
351
+ end
352
+ return nil
353
+
354
+ nil
355
+ end
356
+
357
+ def _setField(name, value)
358
+
359
+ if ((name) == ("_subscriber"))
360
+ (self)._subscriber = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
361
+ end
362
+ if ((name) == ("_knownNodes"))
363
+ (self)._knownNodes = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
364
+ end
365
+
366
+ nil
367
+ end
368
+
369
+ def __init_fields__()
370
+
371
+ self._subscriber = nil
372
+ self._knownNodes = nil
373
+
374
+ nil
375
+ end
376
+
377
+
378
+ end
379
+ StaticRoutesActor.unlazy_statics
380
+
381
+ def self.StaticRoutes; StaticRoutes; end
382
+ ##
383
+ # Create a DiscoverySource with hard-coded static routes.
384
+
385
+ class StaticRoutes < ::DatawireQuarkCore::QuarkObject
386
+ attr_accessor :_knownNodes
387
+ extend ::DatawireQuarkCore::Static
388
+
389
+ static mdk_discovery_StaticRoutes_ref: -> { nil }
390
+
391
+
392
+
393
+ def initialize(knowNodes)
394
+
395
+ self.__init_fields__
396
+ (self)._knownNodes = knowNodes
397
+
398
+ nil
399
+ end
400
+
401
+
402
+
403
+
404
+ def self.parseJSON(json_encoded)
405
+
406
+ nodes = ::DatawireQuarkCore::List.new([])
407
+ ::Quark.quark.fromJSON(::Quark.quark.reflect.QuarkClass.get("quark.List<mdk_discovery.Node>"), nodes, ::DatawireQuarkCore::JSONObject.parse(json_encoded))
408
+ return ::Quark.mdk_discovery.StaticRoutes.new(nodes)
409
+
410
+ nil
411
+ end
412
+
413
+ def isRegistrar()
414
+
415
+ return false
416
+
417
+ nil
418
+ end
419
+
420
+ def create(subscriber, runtime)
421
+
422
+ return ::Quark.mdk_discovery._StaticRoutesActor.new(subscriber, (self)._knownNodes)
423
+
424
+ nil
425
+ end
426
+
427
+ def _getClass()
428
+
429
+ return "mdk_discovery.StaticRoutes"
430
+
431
+ nil
432
+ end
433
+
434
+ def _getField(name)
435
+
436
+ if ((name) == ("_knownNodes"))
437
+ return (self)._knownNodes
438
+ end
439
+ return nil
440
+
441
+ nil
442
+ end
443
+
444
+ def _setField(name, value)
445
+
446
+ if ((name) == ("_knownNodes"))
447
+ (self)._knownNodes = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
448
+ end
449
+
450
+ nil
451
+ end
452
+
453
+ def __init_fields__()
454
+
455
+ self._knownNodes = nil
456
+
457
+ nil
458
+ end
459
+
460
+
461
+ end
462
+ StaticRoutes.unlazy_statics
463
+
288
464
  def self.RegisterNode; RegisterNode; end
289
465
  ##
290
466
  # Message sent to DiscoveryRegistrar Actor to register a node.
@@ -795,6 +971,152 @@ class CircuitBreakerFactory < ::Quark.mdk_discovery.FailurePolicyFactory
795
971
  end
796
972
  CircuitBreakerFactory.unlazy_statics
797
973
 
974
+ def self.RecordingFailurePolicy; RecordingFailurePolicy; end
975
+ ##
976
+ # FailurePolicy that records failures and successes.
977
+
978
+ class RecordingFailurePolicy < ::DatawireQuarkCore::QuarkObject
979
+ attr_accessor :successes, :failures
980
+ extend ::DatawireQuarkCore::Static
981
+
982
+ static mdk_discovery_RecordingFailurePolicy_ref: -> { nil }
983
+
984
+
985
+
986
+ def initialize()
987
+ self.__init_fields__
988
+
989
+ nil
990
+ end
991
+
992
+
993
+
994
+
995
+ def success()
996
+
997
+ (self).successes = ((self).successes) + (1)
998
+
999
+ nil
1000
+ end
1001
+
1002
+ def failure()
1003
+
1004
+ (self).failures = ((self).failures) + (1)
1005
+
1006
+ nil
1007
+ end
1008
+
1009
+ def available()
1010
+
1011
+ return true
1012
+
1013
+ nil
1014
+ end
1015
+
1016
+ def _getClass()
1017
+
1018
+ return "mdk_discovery.RecordingFailurePolicy"
1019
+
1020
+ nil
1021
+ end
1022
+
1023
+ def _getField(name)
1024
+
1025
+ if ((name) == ("successes"))
1026
+ return (self).successes
1027
+ end
1028
+ if ((name) == ("failures"))
1029
+ return (self).failures
1030
+ end
1031
+ return nil
1032
+
1033
+ nil
1034
+ end
1035
+
1036
+ def _setField(name, value)
1037
+
1038
+ if ((name) == ("successes"))
1039
+ (self).successes = ::DatawireQuarkCore.cast(value) { ::Integer }
1040
+ end
1041
+ if ((name) == ("failures"))
1042
+ (self).failures = ::DatawireQuarkCore.cast(value) { ::Integer }
1043
+ end
1044
+
1045
+ nil
1046
+ end
1047
+
1048
+ def __init_fields__()
1049
+
1050
+ self.successes = 0
1051
+ self.failures = 0
1052
+
1053
+ nil
1054
+ end
1055
+
1056
+
1057
+ end
1058
+ RecordingFailurePolicy.unlazy_statics
1059
+
1060
+ def self.RecordingFailurePolicyFactory; RecordingFailurePolicyFactory; end
1061
+ ##
1062
+ # Factory for FailurePolicy useful for testing.
1063
+
1064
+ class RecordingFailurePolicyFactory < ::Quark.mdk_discovery.FailurePolicyFactory
1065
+ extend ::DatawireQuarkCore::Static
1066
+
1067
+ static mdk_discovery_RecordingFailurePolicyFactory_ref: -> { nil }
1068
+
1069
+
1070
+
1071
+ def initialize()
1072
+
1073
+ super()
1074
+
1075
+ nil
1076
+ end
1077
+
1078
+
1079
+
1080
+
1081
+ def create()
1082
+
1083
+ return ::Quark.mdk_discovery.RecordingFailurePolicy.new()
1084
+
1085
+ nil
1086
+ end
1087
+
1088
+ def _getClass()
1089
+
1090
+ return "mdk_discovery.RecordingFailurePolicyFactory"
1091
+
1092
+ nil
1093
+ end
1094
+
1095
+ def _getField(name)
1096
+
1097
+ return nil
1098
+
1099
+ nil
1100
+ end
1101
+
1102
+ def _setField(name, value)
1103
+
1104
+ nil
1105
+
1106
+ nil
1107
+ end
1108
+
1109
+ def __init_fields__()
1110
+
1111
+ super
1112
+
1113
+ nil
1114
+ end
1115
+
1116
+
1117
+ end
1118
+ RecordingFailurePolicyFactory.unlazy_statics
1119
+
798
1120
  def self.Cluster; Cluster; end
799
1121
  ##
800
1122
  # A Cluster is a group of providers of (possibly different versions of)