zerodds_corba_ccm_ejb/lib.rs
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 ZeroDDS Contributors
3
4//! `zerodds-corba-ccm-ejb` — CCM↔EJB-Bridge.
5//!
6//! Crate `zerodds-corba-ccm-ejb`. Safety classification: **STANDARD**.
7//!
8//! Diese Bridge erlaubt es, CCM-Components in einem JEE-Container zu
9//! deployen oder umgekehrt EJBs als CCM-Receptacle zu konsumieren. Der
10//! Crate liefert die abstrakten Mappings — die konkreten JNI-/JVM-
11//! Bindings sind Caller-Layer (EJB-Container-Vendor).
12//!
13//! # Module
14//!
15//! * [`tx`] — CosTransactions ↔ JTA-UserTransaction-Mapping (OMG
16//! Transaction Service §10 + JEE JTA 1.3 §3.2).
17//! * [`connector_bean`] — ConnectorBean-Lifecycle: `@PostConstruct`,
18//! `@PreDestroy`, `@Resource`, `@TransactionAttribute` mapping zur
19//! CCM `ComponentExecutor`-Lifecycle.
20//! * [`stub_gen`] — Java-CCM-Stub-Codegen (Spec CCM 4.0 Annex A,
21//! Java-PSM): `<Comp>Bean.java` aus `ComponentDef`.
22//! * [`naming_glue`] — JNDI-Namespace ↔ CosNaming-NamingContext.
23//!
24//! # Beispiel
25//!
26//! ```
27//! use zerodds_corba_ccm_ejb::{JtaStatus, TxStatus, jta_status_from_cos};
28//!
29//! // CosTransactions::Status::Active ↔ JTA STATUS_ACTIVE.
30//! assert_eq!(jta_status_from_cos(TxStatus::Active), JtaStatus::Active);
31//! ```
32
33#![no_std]
34#![forbid(unsafe_code)]
35#![warn(missing_docs)]
36
37extern crate alloc;
38
39pub mod connector_bean;
40pub mod naming_glue;
41pub mod stub_gen;
42pub mod tx;
43
44pub use connector_bean::{ConnectorBean, LifecycleCallback, LifecyclePhase};
45pub use naming_glue::{JndiBinding, JndiContext, cos_naming_to_jndi, jndi_to_cos_naming};
46pub use stub_gen::{StubKind, generate_bean_stub};
47pub use tx::{JtaStatus, TxBridge, TxStatus, jta_status_from_cos, jta_status_to_cos};