Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

This document describes automatic module naming from the following releases onwards:

  • version 3.4.0 of the Shibboleth
identity provider onwards.
  • Identity Provider
  • version 0.10.0 of the Shibboleth Metadata Aggregator


Java 9 introduced the Java Platform Module System (JPMS), allowing — amongst other advantages — better encapsulation of the internals of software components.

...

...

In general, Shibboleth modules will be are given reserved module names based on their root package name. The following sections describe the specific proposal allocation for each current Shibboleth JAR.

...

ArtifactModuleNotes
idp-admin-apinet.shibboleth.idp.adminR
idp-admin-implnet.shibboleth.idp.admin.implR, S
idp-attribute-apinet.shibboleth.idp.attributeR
idp-attribute-filter-apinet.shibboleth.idp.attribute.filterR
idp-attribute-filter-implnet.shibboleth.idp.attribute.filter.implS
idp-attribute-filter-springnet.shibboleth.idp.attribute.filter.springR
idp-attribute-resolver-apinet.shibboleth.attribute.resolverR
idp-attribute-resolver-implnet.shibboleth.attribute.resolver.impl3, S
idp-attribute-resolver-springnet.shibboleth.attribute.resolver.springR
idp-authn-apinet.shibboleth.idp.authnR
idp-authn-implnet.shibboleth.idp.authn.implS
idp-cas-apinet.shibboleth.idp.casR
idp-cas-implnet.shibboleth.idp.cas.implS
idp-confn/anet.shibboleth.idp.conf7
idp-consent-apinet.shibboleth.idp.consent4
idp-consent-implnet.shibboleth.idp.consent.impl4, S
idp-corenet.shibboleth.idpR, 5
idp-distributionn/a1
idp-installernet.shibboleth.idp.installerR
idp-parentn/a1
idp-profile-apinet.shibboleth.idp.profileR, 6
idp-profile-implnet.shibboleth.idp.profile.implS, 6
idp-profile-springnet.shibboleth.idp.profile.springR
idp-saml-apinet.shibboleth.idp.samlR
idp-saml-implnet.shibboleth.idp.saml.implS
idp-schemanet.shibboleth.idp.schema2
idp-session-apinet.shibboleth.idp.sessionR
idp-session-implnet.shibboleth.idp.session.implS
idp-uinet.shibboleth.idp.uiR
idp-warn/a1

...

  1. No artifact, so no module name required.
  2. This module will be problematic in its current form should we move to real use of the JPMS. idp-schema has resources under a schema path, which is to say as far as Java is concerned in a package called schema. While this is valid, it's not ideal long term for the usual reasons around uniqueness: only one module may contain a given package, even if the package is not exported.
  3. idp-attribute-resolver-impl does not have a root package, but two. As well as net.shibboleth packages, it also includes a legacy package edu.internet2.middleware.shibboleth.common.attribute.provider (and two classes: BasicAttribute and V2SAMLProfileRequestContext) for backwards compatibility. This module will be named ignoring the legacy package.
  4. This module's actual root (and only) package is net.shibboleth.idp.consent.context. However, the corresponding -impl module's packages do not lie under this but under net.shibboleth.idp.consent. We therefore use the latter as the implicit root package for the module to provide consistency with other modules.
  5. Note that this omits the -core part of the artifact name. Is this an issue?
  6. idp-profile-api also includes net.shibboleth.idp.relyingparty so does not have a true root package. We should consider renaming this oddball package or moving it to a new module. Another one to have resolved if possible for V3.4.
  7. The JAR is not used on the class path, so doesn't need to be assigned a module name. However, an implementation detail means that we want to assign one anyway, see JPAR-113.
  8. R = Named according to the root package convention.
  9. S = Named as a submodule.

...