Skip to content

opcua-server tool still depends on Eclipse Milo 0.6.16 — interest in upgrading to Milo 1.x? #700

Open

Description

@LivingLikeKrillin

The plc4j/tools/opcua-server module still depends on Eclipse Milo 0.6.16
(dictionary-manager, sdk-server, and stack-server are all pinned to 0.6.16, and
dictionary-manager is a 0.6.x-only artifact).

Milo has since shipped 1.0 and is now on the 1.1.x line (latest 1.1.3); the 0.6.x series
is quite old. This would be a real migration rather than a version bump — between 0.6.x and
1.x, Milo:

  • reworked/renamed pieces like DataTypeDictionaryManager → BinaryDataTypeDictionaryManager,
  • moved several packages (e.g. sdk.server.api.config → sdk.server, sdk.server.api → sdk.server.items),
  • changed the server bootstrap (1.x transport abstraction) and the cert/identity-validator APIs,
  • and now requires Java 17+.

I'd be happy to take this on — I recently had a fix merged into Eclipse Milo itself and have
worked with its 1.x server SDK, so I've already mapped most of these API changes. Before I
start a PR, a couple of questions:

  1. Is there interest in keeping this tool on a current Milo release?
  2. Is there a specific reason it's still pinned to 0.6.16 (e.g. a minimum Java version for
    plc4x-extras I should respect)?

Happy to follow up with a PR if this is welcome.

Activity

  1. chrisdutz commented on Jun 4, 2026

    @chrisdutz
    Contributor

    I think there's always interest in improving things ... we're happy for any PR to help up improve things.

  2. chrisdutz commented on Aug 18, 2026

    @chrisdutz
    Contributor

    So ... are your still offering to update? Otherwise I'll probably close this issue soon.

  3. LivingLikeKrillin commented on Oct 19, 2026

    @LivingLikeKrillin
    Author

    @chrisdutz PR #783 is now open to update the tool to Milo 1.1.8, and an existing security directory (keystore and pki folder) keeps working. One behaviour change needs a decision from the maintainers: anonymous access becomes opt-in through a new allowAnonymousAccess config key (default false), because in 0.6 anonymous clients were granted read and write access to every configured tag. The details are in the PR description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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