OK, sounds good.

Gary

On Thu, Jul 4, 2024, 10:15 AM Alex Herbert <alex.d.herb...@gmail.com> wrote:

> Sealed classes are for restricted inheritance. This is not applicable here.
> In the RNG module a whole set of utility classes have been placed in an
> 'internal' package. Given that these should not be used directly I think
> the module exports can omit this package. The moditect plugin provides
> example configuration to do this for an internal package, which is what I
> am suggesting here.
>
> Alex
>
>
> On Thu, 4 Jul 2024 at 14:25, Gary Gregory <garydgreg...@gmail.com> wrote:
>
> > Can this alternatively be solved with Java's sealed class feature? That
> > would require Java 17 though...
> >
> > Gary
> >
> > On Thu, Jul 4, 2024, 9:18 AM Alex Herbert <alex.d.herb...@gmail.com>
> > wrote:
> >
> > > The RNG component has an internal package. So to not export this in the
> > > module info I had to tweak the exports for moditect inherited from
> > commons
> > > parent with a profile:
> > >
> > >     <profile>
> > >       <id>java-9-up</id>
> > >       <activation>
> > >         <jdk>[9,)</jdk>
> > >       </activation>
> > >       <build>
> > >         <plugins>
> > >           <plugin>
> > >             <groupId>org.moditect</groupId>
> > >             <artifactId>moditect-maven-plugin</artifactId>
> > >             <version>${commons.moditect-maven-plugin.version}</version>
> > >             <configuration>
> > >               <module>
> > >                 <moduleInfo>
> > >                   <exports>
> > >                     !${commons.module.name}*.internal*;
> > >                     *;
> > >                   </exports>
> > >                 </moduleInfo>
> > >               </module>
> > >             </configuration>
> > >           </plugin>
> > >         </plugins>
> > >       </build>
> > >     </profile>
> > >
> > > This could be integrated to commons parent. However it may affect
> binary
> > > compatibility on Java 9+ for any that do and have been released with
> the
> > > default export of all packages.
> > >
> > > Are there any other components that use internal packages?
> > >
> > > Alex
> > >
> >
>

Reply via email to