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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions