Skip to content

Simulator tooling is deeply embedded inside JavaSEPort #4775

@liannacasper

Description

@liannacasper

JavaSEPort currently owns simulator menus and directly instantiates Swing tools (NetworkMonitor, TestRecorder, ComponentTreeInspector), which prevents a clean host/app split.

Implement a two-loader bootstrap in Simulator.java using existing ClassPathLoader as a foundation.

  1. In Simulator.main(...), create:

    • host loader (simulator shell + tooling)
    • app loader (simulated app runtime)
  2. Define a narrow IPC bridge (e.g., SimulatorBridge interface package under com.codename1.impl.javase.simulator.bridge) with DTO-style payloads for:

    • network events
    • component tree snapshots
    • recorder events
    • screenshots
  3. Ensure bridge classes are loaded by a shared parent loader so both isolates can exchange typed messages safely.

  4. Remove direct static cross-calls between tooling and JavaSEPort where possible; route through bridge events.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions