<i18n dev> RFR: 8257733: Move module-specific data from make to respective module
    Magnus Ihse Bursie 
    ihse at openjdk.java.net
       
    Mon Dec  7 14:28:05 UTC 2020
    
    
  
On Fri, 4 Dec 2020 15:17:06 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
>> Regarding the chosen layout. Did you consider following the existing pattern of src/<module>/{share,<OS>}/data?
>
> @erikj79 Good point, that makes much more sense.
I'm not sure about the formal process for suggesting changes to a delivered JEP, but this is the text I suggest should replace the current definition of the new scheme:
    src/$MODULE/{share,$OS}/classes/$PACKAGE/*.java
                            native/include/*.{h,hpp}
                                   $LIBRARY/*.{c,cpp}
                            conf/*
                            legal/*
                            data/*
                            man/*
                            lib/*
where:
  - $MODULE is a module name (_e.g._, `java.base`);
  - The `share` directory contains shared, cross-platform code, as
    before;
  - The `$OS` directory contains operating-system-specific code, as
    before, where `$OS` is one of `unix`, `windows`, _etc._;
  - The `classes` directory contains Java source files and resource files
    organized into a directory tree reflecting their API `$PACKAGE`
    hierarchy, as before;
  - The `native` directory contains C or C++ source files, as before but
    organized differently:
    - The `include` directory contains C or C++ header files intended to
      be exported for external use (_e.g._, `jni.h`);
    - C or C++ source files are placed in a `$LIBRARY` directory, whose
      name is that of the shared library or DLL into which the compiled
      code will be linked (_e.g._, `libjava` or `libawt`); and, finally,
  - The `conf` directory contains configuration files meant to be edited
    by end users (_e.g._, `net.properties`).
  - The `legal` directory contains legal notices.
  - The `data` directory contains data files needed for building the module.
  - The `man` directory contains man pages in nroff or markdown format.
  - The `lib` directory contains configuration files not meant to be edited
    by end users.
Rendered as markdown, it would look somewhat like this:
    src/$MODULE/{share,$OS}/classes/$PACKAGE/*.java
                            native/include/*.{h,hpp}
                                   $LIBRARY/*.{c,cpp}
                            conf/*
                            legal/*
                            data/*
                            man/*
                            lib/*
where:
  - $MODULE is a module name (_e.g._, `java.base`);
  - The `share` directory contains shared, cross-platform code, as
    before;
  - The `$OS` directory contains operating-system-specific code, as
    before, where `$OS` is one of `unix`, `windows`, _etc._;
  - The `classes` directory contains Java source files and resource files
    organized into a directory tree reflecting their API `$PACKAGE`
    hierarchy, as before;
  - The `native` directory contains C or C++ source files, as before but
    organized differently:
    - The `include` directory contains C or C++ header files intended to
      be exported for external use (_e.g._, `jni.h`);
    - C or C++ source files are placed in a `$LIBRARY` directory, whose
      name is that of the shared library or DLL into which the compiled
      code will be linked (_e.g._, `libjava` or `libawt`); and, finally,
  - The `conf` directory contains configuration files meant to be edited
    by end users (_e.g._, `net.properties`).
  - The `legal` directory contains legal notices.
  - The `data` directory contains data files needed for building the module.
  - The `man` directory contains man pages in nroff or markdown format.
  - The `lib` directory contains configuration files not meant to be edited
    by end users.
-------------
PR: https://git.openjdk.java.net/jdk/pull/1611
    
    
More information about the i18n-dev
mailing list