Tech Stack: Java 17, Maven multi-module
Milo is an open-source OPC UA (IEC 62541) implementation for Java, enabling industrial communication and IoT integration. It provides a complete client/server SDK for building OPC UA applications.
Architecture:
- opc-ua-stack: Low-level protocol layer (encoding, transport, security, channels)
- opc-ua-sdk: High-level API layer — the primary API for most applications
- Client API:
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/OpcUaClient.java - Server API:
opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/OpcUaServer.java - Examples:
milo-examples/client-examples/andmilo-examples/server-examples/
| Command | Purpose |
|---|---|
mvn -q clean compile |
Compile without tests |
mvn -q clean verify |
Full build with tests and formatting check |
mvn -q spotless:apply |
Fix code formatting issues |
Before running any tests, read .claude/docs/testing.md for module targeting flags and
test patterns.
- Testing patterns:
.claude/docs/testing.md - Java conventions:
.claude/docs/java-coding-conventions.md - Dependencies:
.claude/docs/dependencies.md
Use these steps to verify any completed work. Implementation plans should include these as success criteria.
-
Format and compile using the
maven-command-runneragent:mvn -q spotless:apply- Format codemvn -q clean compile- Compile (skip tests)
-
Request code review from the
preflightagent, which will:- Review changes for correctness, style, and adherence to project conventions
- Report APPROVED or CHANGES REQUESTED
Before committing, ensure all verification steps pass and preflight approval is received.
Build Rule: ALWAYS use the
maven-command-runneragent for Maven commands.