1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
//! JMS component for rust-camel — Apache ActiveMQ / Artemis bridge via Tower services.
//!
//! # Behavior changes (Phase B hardening)
//!
//! - **No automatic resend on transport errors** (breaking): Previously a send
//! transport error triggered a channel refresh + automatic retry. The retry
//! could duplicate non-idempotent writes. Now the channel is refreshed but
//! the original error is returned to the caller. Callers that want retry
//! semantics must implement it at the route level.
//! - **max_bridges enforcement is now race-free**: Concurrent `get_or_create_slot`
//! calls are serialized during admission to prevent exceeding the configured
//! limit.
//! - **Broker URLs are redacted in logs**: Userinfo (`user:pass@`) is replaced
//! with `***@` before logging.
pub use JmsBundle;
pub use BrokerType;
pub use ;
pub use default_bridge_cache_dir;
pub use ;
pub use JmsHealthCheck;
/// Version of the Java bridge binary this crate is compatible with.
pub const BRIDGE_VERSION: &str = "0.5.0";
/// Serializes tests that mutate `CAMEL_JMS_BRIDGE_BINARY_PATH` via
/// `std::env::set_var`. Process-global env vars race under parallel test
/// threads: one test's `/bin/false` override leaks into another test's
/// bridge resolution window. This lock serializes only the affected tests
/// (rc-alwn). Uses `std::sync::Mutex` (const-constructible for statics);
/// each consumer test annotates `#[allow(clippy::await_holding_lock)]`
/// because the guard is safe to hold across `.await` in test scope.
pub static BRIDGE_ENV_LOCK: Mutex = new;