Note |
---|
This document describes automatic module naming from the following releases onwards:
|
Java 9 introduced the Java Platform Module System (JPMS), allowing — amongst other advantages — better encapsulation of the internals of software components.
...
- Please report any modularity issues with Shibboleth using JIRA.
- Shibboleth JARs will be are provided with appropriate automatic module names to reduce future name stability issues.
...
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.
...
Artifact | Module | Notes |
---|---|---|
idp-admin-api | net.shibboleth.idp.admin | R |
idp-admin-impl | net.shibboleth.idp.admin.impl | R, S |
idp-attribute-api | net.shibboleth.idp.attribute | R |
idp-attribute-filter-api | net.shibboleth.idp.attribute.filter | R |
idp-attribute-filter-impl | net.shibboleth.idp.attribute.filter.impl | S |
idp-attribute-filter-spring | net.shibboleth.idp.attribute.filter.spring | R |
idp-attribute-resolver-api | net.shibboleth.attribute.resolver | R |
idp-attribute-resolver-impl | net.shibboleth.attribute.resolver.impl | 3, S |
idp-attribute-resolver-spring | net.shibboleth.attribute.resolver.spring | R |
idp-authn-api | net.shibboleth.idp.authn | R |
idp-authn-impl | net.shibboleth.idp.authn.impl | S |
idp-cas-api | net.shibboleth.idp.cas | R |
idp-cas-impl | net.shibboleth.idp.cas.impl | S |
idp-confn/a | net.shibboleth.idp.conf | 7 |
idp-consent-api | net.shibboleth.idp.consent | 4 |
idp-consent-impl | net.shibboleth.idp.consent.impl | 4, S |
idp-core | net.shibboleth.idp | R, 5 |
idp-distribution | n/a | 1 |
idp-installer | net.shibboleth.idp.installer | R |
idp-parent | n/a | 1 |
idp-profile-api | net.shibboleth.idp.profile | R, 6 |
idp-profile-impl | net.shibboleth.idp.profile.impl | S, 6 |
idp-profile-spring | net.shibboleth.idp.profile.spring | R |
idp-saml-api | net.shibboleth.idp.saml | R |
idp-saml-impl | net.shibboleth.idp.saml.impl | S |
idp-schema | net.shibboleth.idp.schema | 2 |
idp-session-api | net.shibboleth.idp.session | R |
idp-session-impl | net.shibboleth.idp.session.impl | S |
idp-ui | net.shibboleth.idp.ui | R |
idp-war | n/a | 1 |
...
- No artifact, so no module name required.
- This module will be problematic in its current form should we move to real use of the JPMS.
idp-schema
has resources under aschema
path, which is to say as far as Java is concerned in a package calledschema
. 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. idp-attribute-resolver-impl
does not have a root package, but two. As well asnet.shibboleth
packages, it also includes a legacy packageedu.internet2.middleware.shibboleth.common.attribute.provider
(and two classes:BasicAttribute
andV2SAMLProfileRequestContext
) for backwards compatibility. This module will be named ignoring the legacy package.- 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 undernet.shibboleth.idp.consent
. We therefore use the latter as the implicit root package for the module to provide consistency with other modules. - Note that this omits the
-core
part of the artifact name. Is this an issue? idp-profile-api
also includesnet.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.- 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.
- R = Named according to the root package convention.
- S = Named as a submodule.
...