@@ -46,8 +46,8 @@ use temporalio_common::{
4646 } ,
4747 } ,
4848 telemetry:: {
49- Logger , OtelCollectorOptionsBuilder , PrometheusExporterOptions ,
50- PrometheusExporterOptionsBuilder , TelemetryOptions , TelemetryOptionsBuilder ,
49+ Logger , OtelCollectorOptions , PrometheusExporterOptions ,
50+ TelemetryOptions ,
5151 metrics:: CoreMeter ,
5252 } ,
5353 worker:: { WorkerTaskTypes , WorkerVersioningStrategy } ,
@@ -62,8 +62,8 @@ use temporalio_sdk::{
6262#[ cfg( any( feature = "test-utilities" , test) ) ]
6363pub ( crate ) use temporalio_sdk_core:: test_help:: NAMESPACE ;
6464use temporalio_sdk_core:: {
65- ClientOptions , CoreRuntime , RuntimeOptions , RuntimeOptionsBuilder , WorkerConfig ,
66- WorkerConfigBuilder , init_replay_worker, init_worker,
65+ ClientOptions , CoreRuntime , RuntimeOptions , WorkerConfig ,
66+ init_replay_worker, init_worker,
6767 replay:: { HistoryForReplay , ReplayWorkerInput } ,
6868 telemetry:: { build_otlp_metric_exporter, start_prometheus_metric_exporter} ,
6969 test_help:: { MockPollCfg , build_mock_pollers, mock_worker} ,
@@ -101,9 +101,9 @@ pub(crate) async fn init_core_and_create_wf(test_name: &str) -> CoreWfStarter {
101101 starter
102102}
103103
104- pub ( crate ) fn integ_worker_config ( tq : & str ) -> WorkerConfigBuilder {
105- let mut b = WorkerConfig :: builder ( ) ;
106- b . namespace ( NAMESPACE )
104+ pub ( crate ) fn integ_worker_config ( tq : & str ) -> WorkerConfig {
105+ WorkerConfig :: builder ( )
106+ . namespace ( NAMESPACE )
107107 . task_queue ( tq)
108108 . max_outstanding_activities ( 100_usize )
109109 . max_outstanding_local_activities ( 100_usize )
@@ -112,8 +112,9 @@ pub(crate) fn integ_worker_config(tq: &str) -> WorkerConfigBuilder {
112112 build_id : "test_build_id" . to_owned ( ) ,
113113 } )
114114 . task_types ( WorkerTaskTypes :: all ( ) )
115- . skip_client_worker_set_check ( true ) ;
116- b
115+ . skip_client_worker_set_check ( true )
116+ . build ( )
117+ . expect ( "Configuration options construct properly" )
117118}
118119
119120/// Create a worker replay instance preloaded with provided histories. Returns the worker impl.
@@ -129,9 +130,7 @@ where
129130 I : Stream < Item = HistoryForReplay > + Send + ' static ,
130131{
131132 init_integ_telem ( ) ;
132- let worker_cfg = integ_worker_config ( test_name)
133- . build ( )
134- . expect ( "Configuration options construct properly" ) ;
133+ let worker_cfg = integ_worker_config ( test_name) ;
135134 let worker = init_replay_worker ( ReplayWorkerInput :: new ( worker_cfg, histories) )
136135 . expect ( "Replay worker must init properly" ) ;
137136 Arc :: new ( worker)
@@ -177,7 +176,7 @@ pub(crate) fn init_integ_telem() -> Option<&'static CoreRuntime> {
177176 }
178177 Some ( INTEG_TESTS_RT . get_or_init ( || {
179178 let telemetry_options = get_integ_telem_options ( ) ;
180- let runtime_options = RuntimeOptionsBuilder :: default ( )
179+ let runtime_options = RuntimeOptions :: builder ( )
181180 . telemetry_options ( telemetry_options)
182181 . build ( )
183182 . expect ( "Runtime options build cleanly" ) ;
@@ -224,7 +223,7 @@ pub(crate) async fn get_cloud_client() -> RetryClient<Client> {
224223pub ( crate ) struct CoreWfStarter {
225224 /// Used for both the task queue and workflow id
226225 task_queue_name : String ,
227- pub worker_config : WorkerConfigBuilder ,
226+ pub worker_config : WorkerConfig ,
228227 /// Options to use when starting workflow(s)
229228 pub workflow_options : WorkflowOptions ,
230229 initted_worker : OnceCell < InitializedWorker > ,
@@ -298,10 +297,20 @@ impl CoreWfStarter {
298297 ) -> Self {
299298 let task_q_salt = rand_6_chars ( ) ;
300299 let task_queue = format ! ( "{test_name}_{task_q_salt}" ) ;
301- let mut worker_config = integ_worker_config ( & task_queue) ;
302- worker_config
300+ let worker_config = WorkerConfig :: builder ( )
303301 . namespace ( env:: var ( INTEG_NAMESPACE_ENV_VAR ) . unwrap_or ( NAMESPACE . to_string ( ) ) )
304- . max_cached_workflows ( 1000_usize ) ;
302+ . task_queue ( & task_queue)
303+ . max_outstanding_activities ( 100_usize )
304+ . max_outstanding_local_activities ( 100_usize )
305+ . max_outstanding_workflow_tasks ( 100_usize )
306+ . versioning_strategy ( WorkerVersioningStrategy :: None {
307+ build_id : "test_build_id" . to_owned ( ) ,
308+ } )
309+ . task_types ( WorkerTaskTypes :: all ( ) )
310+ . skip_client_worker_set_check ( true )
311+ . max_cached_workflows ( 1000_usize )
312+ . build ( )
313+ . expect ( "Configuration options construct properly" ) ;
305314 Self {
306315 task_queue_name : task_queue,
307316 worker_config,
@@ -452,10 +461,7 @@ impl CoreWfStarter {
452461 } else {
453462 init_integ_telem ( ) . unwrap ( )
454463 } ;
455- let cfg = self
456- . worker_config
457- . build ( )
458- . expect ( "Worker config must be valid" ) ;
464+ let cfg = self . worker_config . clone ( ) ;
459465 let client = if let Some ( client) = self . client_override . take ( ) {
460466 client
461467 } else {
@@ -794,41 +800,49 @@ pub(crate) fn get_integ_tls_config() -> Option<TlsOptions> {
794800}
795801
796802pub ( crate ) fn get_integ_telem_options ( ) -> TelemetryOptions {
797- let mut ob = TelemetryOptions :: builder ( ) ;
798803 let filter_string =
799804 env:: var ( "RUST_LOG" ) . unwrap_or_else ( |_| "INFO,temporalio_sdk_core=INFO" . to_string ( ) ) ;
805+
800806 if let Some ( url) = env:: var ( OTEL_URL_ENV_VAR )
801807 . ok ( )
802808 . map ( |x| x. parse :: < Url > ( ) . unwrap ( ) )
803809 {
804- let opts = OtelCollectorOptionsBuilder :: default ( )
810+ let opts = OtelCollectorOptions :: builder ( )
805811 . url ( url)
812+ . build ( ) ;
813+ TelemetryOptions :: builder ( )
814+ . metrics ( Arc :: new ( build_otlp_metric_exporter ( opts) . unwrap ( ) ) as Arc < dyn CoreMeter > )
815+ . logging ( Logger :: Console {
816+ filter : filter_string,
817+ } )
806818 . build ( )
807- . unwrap ( ) ;
808- ob. metrics ( Arc :: new ( build_otlp_metric_exporter ( opts) . unwrap ( ) ) as Arc < dyn CoreMeter > ) ;
809- }
810- if let Some ( addr) = env:: var ( PROM_ENABLE_ENV_VAR )
819+ } else if let Some ( addr) = env:: var ( PROM_ENABLE_ENV_VAR )
811820 . ok ( )
812821 . map ( |x| SocketAddr :: new ( [ 127 , 0 , 0 , 1 ] . into ( ) , x. parse ( ) . unwrap ( ) ) )
813822 {
814823 let prom_info = start_prometheus_metric_exporter (
815- PrometheusExporterOptionsBuilder :: default ( )
824+ PrometheusExporterOptions :: builder ( )
816825 . socket_addr ( addr)
817- . build ( )
818- . unwrap ( ) ,
826+ . build ( ) ,
819827 )
820828 . unwrap ( ) ;
821- ob. metrics ( prom_info. meter as Arc < dyn CoreMeter > ) ;
829+ TelemetryOptions :: builder ( )
830+ . metrics ( prom_info. meter as Arc < dyn CoreMeter > )
831+ . logging ( Logger :: Console {
832+ filter : filter_string,
833+ } )
834+ . build ( )
835+ } else {
836+ TelemetryOptions :: builder ( )
837+ . logging ( Logger :: Console {
838+ filter : filter_string,
839+ } )
840+ . build ( )
822841 }
823- ob. logging ( Logger :: Console {
824- filter : filter_string,
825- } )
826- . build ( )
827- . unwrap ( )
828842}
829843
830844pub ( crate ) fn get_integ_runtime_options ( telemopts : TelemetryOptions ) -> RuntimeOptions {
831- RuntimeOptionsBuilder :: default ( )
845+ RuntimeOptions :: builder ( )
832846 . telemetry_options ( telemopts)
833847 . build ( )
834848 . unwrap ( )
@@ -886,10 +900,9 @@ pub(crate) fn prom_metrics(
886900 options_override : Option < PrometheusExporterOptions > ,
887901) -> ( TelemetryOptions , SocketAddr , AbortOnDrop ) {
888902 let prom_exp_opts = options_override. unwrap_or_else ( || {
889- PrometheusExporterOptionsBuilder :: default ( )
903+ PrometheusExporterOptions :: builder ( )
890904 . socket_addr ( ANY_PORT . parse ( ) . unwrap ( ) )
891905 . build ( )
892- . unwrap ( )
893906 } ) ;
894907 let mut telemopts = get_integ_telem_options ( ) ;
895908 let prom_info = start_prometheus_metric_exporter ( prom_exp_opts) . unwrap ( ) ;
@@ -998,13 +1011,14 @@ impl Drop for ActivationAssertionsInterceptor {
9981011
9991012#[ cfg( feature = "ephemeral-server" ) ]
10001013use temporalio_sdk_core:: ephemeral_server:: {
1001- EphemeralExe , EphemeralExeVersion , TemporalDevServerConfigBuilder , default_cached_download,
1014+ EphemeralExe , EphemeralExeVersion , TemporalDevServerConfig , default_cached_download,
10021015} ;
10031016
10041017#[ cfg( feature = "ephemeral-server" ) ]
10051018pub ( crate ) fn integ_dev_server_config (
10061019 mut extra_args : Vec < String > ,
1007- ) -> TemporalDevServerConfigBuilder {
1020+ ui : bool ,
1021+ ) -> TemporalDevServerConfig {
10081022 let cli_version = if let Ok ( ver_override) = env:: var ( CLI_VERSION_OVERRIDE_ENV_VAR ) {
10091023 EphemeralExe :: CachedDownload {
10101024 version : EphemeralExeVersion :: Fixed ( ver_override. to_owned ( ) ) ,
@@ -1041,7 +1055,9 @@ pub(crate) fn integ_dev_server_config(
10411055 . map ( Into :: into) ,
10421056 ) ;
10431057
1044- let mut config = TemporalDevServerConfigBuilder :: default ( ) ;
1045- config. exe ( cli_version) . extra_args ( extra_args) ;
1046- config
1058+ TemporalDevServerConfig :: builder ( )
1059+ . exe ( cli_version)
1060+ . extra_args ( extra_args)
1061+ . ui ( ui)
1062+ . build ( )
10471063}
0 commit comments