Skip to content

Commit 98b63ee

Browse files
committed
Pass loader into TriggerAppBuilder
Signed-off-by: Ryan Levick <[email protected]>
1 parent 49694dd commit 98b63ee

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

crates/componentize/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ mod tests {
466466
let out_dir = PathBuf::from(std::env::var_os("OUT_DIR").unwrap());
467467
let mut cmd = process::Command::new("cargo");
468468
cmd.arg("build")
469-
.current_dir(&format!("tests/{name}"))
469+
.current_dir(format!("tests/{name}"))
470470
.arg("--release")
471471
.arg("--target=wasm32-wasi")
472472
.env("CARGO_TARGET_DIR", out_dir);

crates/trigger/src/cli.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@ use spin_common::sloth;
1414
use spin_common::ui::quoted_path;
1515
use spin_common::url::parse_file_url;
1616
use spin_factors::RuntimeFactors;
17-
use spin_factors_executor::FactorsExecutor;
17+
use spin_factors_executor::{ComponentLoader, FactorsExecutor};
1818

19-
use crate::loader::ComponentLoader;
20-
use crate::{Trigger, TriggerApp};
19+
use crate::{loader::ComponentLoader as ComponentLoaderImpl, Trigger, TriggerApp};
2120
pub use initial_kv_setter::InitialKvSetterHook;
2221
pub use launch_metadata::LaunchMetadata;
2322
pub use sqlite_statements::SqlStatementExecutorHook;
@@ -220,7 +219,15 @@ impl<T: Trigger<B::Factors>, B: RuntimeFactorsBuilder> FactorsTriggerCommand<T,
220219
follow_components,
221220
log_dir,
222221
};
223-
let run_fut = builder.run(app, common_options, self.builder_args).await?;
222+
223+
let run_fut = builder
224+
.run(
225+
app,
226+
common_options,
227+
self.builder_args,
228+
&ComponentLoaderImpl::new(),
229+
)
230+
.await?;
224231

225232
let (abortable, abort_handle) = futures::future::abortable(run_fut);
226233
ctrlc::set_handler(move || abort_handle.abort())?;
@@ -302,6 +309,7 @@ impl<T: Trigger<B::Factors>, B: RuntimeFactorsBuilder> TriggerAppBuilder<T, B> {
302309
app: App,
303310
common_options: FactorsConfig,
304311
options: B::CliArgs,
312+
loader: &impl ComponentLoader,
305313
) -> anyhow::Result<TriggerApp<T, B::Factors>> {
306314
let mut core_engine_builder = {
307315
self.trigger.update_core_config(&mut self.engine_config)?;
@@ -319,7 +327,7 @@ impl<T: Trigger<B::Factors>, B: RuntimeFactorsBuilder> TriggerAppBuilder<T, B> {
319327
let configured_app = {
320328
let _sloth_guard = warn_if_wasm_build_slothful();
321329
executor
322-
.load_app(app, runtime_config.into(), &ComponentLoader::default())
330+
.load_app(app, runtime_config.into(), loader)
323331
.await?
324332
};
325333

@@ -332,8 +340,9 @@ impl<T: Trigger<B::Factors>, B: RuntimeFactorsBuilder> TriggerAppBuilder<T, B> {
332340
app: App,
333341
common_options: FactorsConfig,
334342
options: B::CliArgs,
343+
loader: &impl ComponentLoader,
335344
) -> anyhow::Result<impl Future<Output = anyhow::Result<()>>> {
336-
let configured_app = self.build(app, common_options, options).await?;
345+
let configured_app = self.build(app, common_options, options, loader).await?;
337346
Ok(self.trigger.run(configured_app))
338347
}
339348
}

crates/trigger/src/loader.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@ use spin_factors::AppComponent;
55

66
#[derive(Default)]
77
pub struct ComponentLoader {
8+
_private: (),
89
#[cfg(feature = "unsafe-aot-compilation")]
910
aot_compilation_enabled: bool,
1011
}
1112

1213
impl ComponentLoader {
14+
/// Create a new `ComponentLoader`
15+
pub fn new() -> Self {
16+
Self::default()
17+
}
18+
1319
/// Updates the TriggerLoader to load AOT precompiled components
1420
///
1521
/// **Warning: This feature may bypass important security guarantees of the

tests/testing-framework/src/runtimes/in_process_spin.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::sync::Arc;
44

55
use anyhow::Context as _;
66
use spin_runtime_factors::{FactorsBuilder, TriggerAppArgs, TriggerFactors};
7-
use spin_trigger::cli::TriggerAppBuilder;
7+
use spin_trigger::{cli::TriggerAppBuilder, loader::ComponentLoader};
88
use spin_trigger_http::{HttpServer, HttpTrigger};
99
use test_environment::{
1010
http::{Request, Response},
@@ -111,6 +111,7 @@ async fn initialize_trigger(
111111
app,
112112
spin_trigger::cli::FactorsConfig::default(),
113113
TriggerAppArgs::default(),
114+
&ComponentLoader::new(),
114115
)
115116
.await?;
116117
let server = builder.trigger.into_server(trigger_app)?;

0 commit comments

Comments
 (0)