Skip to main content

Desktop Connector and Runtime

This page documents the desktop launch path and the connector layer that bridges the desktop client to local XML data, remote Nuxeo services, and on-disk archives.

Purpose

The desktop connector runtime decides how the desktop application starts, which endpoint mode is active, and how desktop actions are routed to local or remote services.

Scope

This page covers launcher, entry-point, and endpoint composition for the desktop client. It does not cover the workflow UI or entity model details, which are documented on their own pages.

Entry Points

  • SC/suredms-desktop-client/src/main/java/com/sureclinical/suredms/BaseLauncher.java
  • SC/suredms-desktop-client/src/main/java/com/sureclinical/suredms/BaseEntryPoint.java
  • SC/suredms-desktop-client-connector/src/main/java/com/sureclinical/suredms/endpoints/EndPoints.java
  • SC/suredms-desktop-client-connector/src/main/java/com/sureclinical/suredms/xml/XMLParser.java
  • SC/suredms-desktop-client-connector/src/main/java/com/sureclinical/suredms/xml/XMLEndPoints.java
  • SC/suredms-desktop-client-connector/src/main/java/com/sureclinical/suredms/nuxeo

Primary Components

  • BaseLauncher is the desktop bootstrap class. It initializes folders, applies platform-specific workarounds, creates the entry point, configures the main frame, and shuts the application down safely.
  • BaseEntryPoint is the applet-style entry point used by the desktop runtime. It exposes the command-line parameter map, default service host/path values, and codebase handling.
  • EndPoints is the connector factory. It selects local, remote, or demo endpoint implementations and also exposes the document updater behavior used by the desktop runtime.
  • XMLParser reads local XML archive exports and maps them into desktop entity objects such as archives, documents, persons, organizations, content types, and metadata definitions.
  • XMLEndPoints and the Nuxeo endpoint classes provide the concrete transport layer used by the desktop client.

Runtime Flow

  1. The launcher starts the desktop process, logs runtime details, and converts command-line arguments into applet-style parameters.
  2. The entry point is created and initialized.
  3. The desktop client instance is brought up and the UI frame is created on the Swing thread.
  4. The endpoint factory chooses local XML, remote Nuxeo, or demo mode based on the login type.
  5. Document updates are routed through the current endpoint implementation so local archives and remote repositories behave consistently.

Endpoint Behavior

  • Local mode reads file roots from the configured path list and uses XML archive parsing.
  • Remote mode opens the configured Nuxeo base URL and routes document actions to the server.
  • Demo mode uses a separate endpoint set for sample or development data.
  • When Nuxeo is not attached, the document updater falls back to local archive persistence and event firing.

Dependencies and Integrations

  • XMLParser depends on the shared entity model from suredms-desktop-client-data.
  • NuxeoClientImpl and the remote endpoint classes provide server connectivity.
  • DeploymentUtils, LookAndFeelManager, UiThreadPool, and DesktopClient handle runtime UI setup and application lifecycle concerns.

Edge Cases and Constraints

  • The launcher must initialize logging and folders very early in startup.
  • The desktop app supports test mode, autologin, and -open file handling.
  • Local archives and remote Nuxeo mode share the same higher-level entity contracts, but persistence happens through different back ends.