# sap/sapmachine architecture

> Architecture diagram of the GitHub repository sap/sapmachine, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sap/sapmachine
- Repository: https://github.com/sap/sapmachine

## Overview

SapMachine is SAP’s downstream OpenJDK fork, distributing a Java Development Kit. The principal workflow is an application using JDK APIs and runtime services to perform work through platform and native capabilities. The sampled tree and excerpts cover only selected subsystems, so this map highlights those capabilities rather than claiming a complete JDK call graph; links between independently sampled components are omitted when their wiring is not established.

Main entry points: [`src/java.desktop/share/classes/javax/print/PrintService.java`](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/share/classes/javax/print/PrintService.java) (Print service API), [`src/java.base/share/classes/javax/net/ssl/SSLEngine.java`](https://github.com/sap/sapmachine/blob/sapmachine/src/java.base/share/classes/javax/net/ssl/SSLEngine.java) (TLS engine), [`src/java.desktop/windows/classes/sun/print/Win32PrintService.java`](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/windows/classes/sun/print/Win32PrintService.java) (Windows printing), [`src/java.desktop/unix/classes/sun/print/UnixPrintService.java`](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/unix/classes/sun/print/UnixPrintService.java) (Unix printing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_java_api["Java APIs"]
  node_ssl["TLS engine<br/>[SSLEngine.java]"]
  node_print_api["Print service API<br/>[PrintService.java]"]
end

subgraph group_desktop["Desktop Services"]
  node_render["Marlin renderer"]
  node_win_print["Windows printing"]
  node_unix_print["Unix printing"]
  node_d3d["Direct3D manager"]
end

subgraph group_management["Management and Debugging"]
  node_jmx["Relation service"]
  node_mbeans["Managed MBeans"]
  node_jdi["VM manager SPI"]
  node_connectors["Debug connectors"]
end

subgraph group_runtime["HotSpot Runtime"]
  node_hotspot["HotSpot VM"]
  node_oop_storage["Oop storage<br/>[oopStorage.cpp]"]
  node_jfr_storage["JFR storage<br/>[jfrStorage.cpp]"]
  node_symbol_engine["Windows symbols<br/>[symbolengine.cpp]"]
end

subgraph group_native["Native Platforms"]
  node_direct3d["Direct3D platform"]
  node_printer["OS print system"]
  node_dbghelp["Windows DbgHelp"]
end

node_app(("Java application"))
node_network(("Network transport"))
node_disk[("Disk storage")]

node_app -->|"wraps and unwraps"| node_ssl
node_ssl -->|"exchanges TLS buffers"| node_network
node_app -->|"requests print service"| node_print_api
node_print_api -->|"implemented by"| node_win_print
node_print_api -->|"implemented by"| node_unix_print
node_win_print -->|"queries printer"| node_printer
node_unix_print -->|"queries printer"| node_printer
node_app -->|"renders geometry"| node_render
node_d3d -->|"checks and manages adapters"| node_direct3d
node_app -->|"manages relations"| node_jmx
node_jmx -->|"tracks references"| node_mbeans
node_app -->|"uses VM manager"| node_jdi
node_jdi -->|"registers connectors"| node_connectors
node_app -->|"executes on"| node_hotspot
node_hotspot -->|"manages object references"| node_oop_storage
node_hotspot -->|"stores recording buffers"| node_jfr_storage
node_jfr_storage -->|"acquires disk buffers"| node_disk
node_hotspot -->|"uses symbol support"| node_symbol_engine
node_symbol_engine -->|"loads symbols"| node_dbghelp

click node_ssl "https://github.com/sap/sapmachine/blob/sapmachine/src/java.base/share/classes/javax/net/ssl/SSLEngine.java"
click node_print_api "https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/share/classes/javax/print/PrintService.java"
click node_render "https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java"
click node_win_print "https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/windows/classes/sun/print/Win32PrintService.java"
click node_unix_print "https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/unix/classes/sun/print/UnixPrintService.java"
click node_d3d "https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/windows/native/libawt/java2d/d3d/D3DPipelineManager.cpp"
click node_jmx "https://github.com/sap/sapmachine/blob/sapmachine/src/java.management/share/classes/javax/management/relation/RelationService.java"
click node_jdi "https://github.com/sap/sapmachine/blob/sapmachine/src/jdk.jdi/share/classes/com/sun/tools/jdi/VirtualMachineManagerService.java"
click node_oop_storage "https://github.com/sap/sapmachine/blob/sapmachine/src/hotspot/share/gc/shared/oopStorage.cpp"
click node_jfr_storage "https://github.com/sap/sapmachine/blob/sapmachine/src/hotspot/share/jfr/recorder/storage/jfrStorage.cpp"
click node_symbol_engine "https://github.com/sap/sapmachine/blob/sapmachine/src/hotspot/os/windows/symbolengine.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ssl,node_print_api toneBlue
class node_render,node_win_print,node_unix_print,node_d3d,node_disk toneAmber
class node_jmx,node_mbeans,node_jdi,node_connectors toneMint
class node_hotspot,node_oop_storage,node_jfr_storage,node_symbol_engine toneRose
class node_direct3d,node_printer,node_dbghelp,node_app,node_network toneIndigo
```

## Components

### Java APIs

- [TLS engine](https://github.com/sap/sapmachine/blob/sapmachine/src/java.base/share/classes/javax/net/ssl/SSLEngine.java): `src/java.base/share/classes/javax/net/ssl/SSLEngine.java`
- [Print service API](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/share/classes/javax/print/PrintService.java): `src/java.desktop/share/classes/javax/print/PrintService.java`

### Desktop Services

- [Marlin renderer](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java): `src/java.desktop/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java`
- [Windows printing](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/windows/classes/sun/print/Win32PrintService.java): `src/java.desktop/windows/classes/sun/print/Win32PrintService.java`
- [Unix printing](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/unix/classes/sun/print/UnixPrintService.java): `src/java.desktop/unix/classes/sun/print/UnixPrintService.java`
- [Direct3D manager](https://github.com/sap/sapmachine/blob/sapmachine/src/java.desktop/windows/native/libawt/java2d/d3d/D3DPipelineManager.cpp): `src/java.desktop/windows/native/libawt/java2d/d3d/D3DPipelineManager.cpp`

### Management and Debugging

- [Relation service](https://github.com/sap/sapmachine/blob/sapmachine/src/java.management/share/classes/javax/management/relation/RelationService.java): `src/java.management/share/classes/javax/management/relation/RelationService.java`
- **Managed MBeans**
- [VM manager SPI](https://github.com/sap/sapmachine/blob/sapmachine/src/jdk.jdi/share/classes/com/sun/tools/jdi/VirtualMachineManagerService.java): `src/jdk.jdi/share/classes/com/sun/tools/jdi/VirtualMachineManagerService.java`
- **Debug connectors**

### HotSpot Runtime

- **HotSpot VM**
- [Oop storage](https://github.com/sap/sapmachine/blob/sapmachine/src/hotspot/share/gc/shared/oopStorage.cpp): `src/hotspot/share/gc/shared/oopStorage.cpp`
- [JFR storage](https://github.com/sap/sapmachine/blob/sapmachine/src/hotspot/share/jfr/recorder/storage/jfrStorage.cpp): `src/hotspot/share/jfr/recorder/storage/jfrStorage.cpp`
- [Windows symbols](https://github.com/sap/sapmachine/blob/sapmachine/src/hotspot/os/windows/symbolengine.cpp): `src/hotspot/os/windows/symbolengine.cpp`

### Native Platforms

- **Direct3D platform**
- **OS print system**
- **Windows DbgHelp**

### Other components

- **Java application**
- **Network transport**
- **Disk storage**

## Connections

- Java application → TLS engine: wraps and unwraps
- TLS engine → Network transport: exchanges TLS buffers
- Java application → Print service API: requests print service
- Print service API → Windows printing: implemented by
- Print service API → Unix printing: implemented by
- Windows printing → OS print system: queries printer
- Unix printing → OS print system: queries printer
- Java application → Marlin renderer: renders geometry
- Direct3D manager → Direct3D platform: checks and manages adapters
- Java application → Relation service: manages relations
- Relation service → Managed MBeans: tracks references
- Java application → VM manager SPI: uses VM manager
- VM manager SPI → Debug connectors: registers connectors
- Java application → HotSpot VM: executes on
- HotSpot VM → Oop storage: manages object references
- HotSpot VM → JFR storage: stores recording buffers
- JFR storage → Disk storage: acquires disk buffers
- HotSpot VM → Windows symbols: uses symbol support
- Windows symbols → Windows DbgHelp: loads symbols
