Yes, something along those lines is what I was thinking. Preferably it would be added in an existing class in the javafx.web module rather than a new class if a suitable one can be found. In either case, it will need to be done in a way that does not expose these constants as part of the public API (e.g., either they need to go into a non-public class, or a public class in a non-exported package, or the new constants need to be package scope).

Thanks.

-- Kevin


Johan Vos wrote:
Hi Kevin,

Just to make sure I understand this approach: you want a (new or existing) Foo.Java file in the modules/javafx.web space that contains e.g. this:

public static int DIRECTIONALITY_LEFT_TO_RIGHT = Character.DIRECTIONALITY_LEFT_TO_RIGHT;

Applying javac -h (which the build already does) will generate Foo.h In modules/javafx.web/src/main/native/Source/WTF/wtf/unicode/java/UnicodeJava.h we replace the

#include java_lang_Character.h

with

#include Foo.h


Is this correct?


- Johan


On Thu, Nov 30, 2017 at 2:13 PM Kevin Rushforth <kevin.rushfo...@oracle.com <mailto:kevin.rushfo...@oracle.com>> wrote:

    Hi Johan,

    Thanks for filing the bug.

    If we really do need Character and IDN, then the cleanest approach
    might be to define new fields in a  suitable JavaFX class and
    assign the appropriate values to them.


    -- Kevin



    Johan Vos wrote:
    I filed a bug (https://bugs.openjdk.java.net/browse/JDK-8192806)
    and I am looking into it.

    It seems a bit weird to me that the java.lang.Character and
    java.net.IDN header files are needed. I'll remove them and see
    where it fails.
    But if they are needed (and they probably are), it won't be easy
    to generate them with javac -h as that requires the source code
    instead of the classfiles. That would require access to the
    java.lang.Character and java.net.IDN java source code in OpenJDK,
    from within OpenJFX.

    - Johan

    On Wed, Nov 29, 2017 at 8:02 PM Kevin Rushforth
    <kevin.rushfo...@oracle.com <mailto:kevin.rushfo...@oracle.com>>
    wrote:

        Hi Johan,

        Thanks for pointing this out. I had missed that this was
        targeted to JDK 10.

        We eliminated all but one use of javah, in favor of javac -h,
        in JDK 9
        [1]. The only one remaining is in the web module. I can't
        remember why
        that wasn't switched at the same time (I have a fuzzy
        recollection that
        it might have had something to do with incremental
        compilation), but
        yes, it seems like this will need to be fixed.

        If you would like to file a bug then this would be a great
        thing for the
        community to work on. This will block us from moving to JDK
        10 as a boot
        JDK, so if we end up doing that for JDK 10 then this would
        need to be
        done soon.

        Let me know if you would like to work on this.

        Thanks.

        -- Kevin

        [1] https://bugs.openjdk.java.net/browse/JDK-8161704


        Johan Vos wrote:
        > Hi,
        >
        > I learned javah might be removed in Java 10 (
        > http://openjdk.java.net/jeps/313) but as far as I know, it
        is still used in
        > OpenJFX:
        >
        > defineProperty("JAVAH",
        cygpath("$JDK_HOME/bin/javah${IS_WINDOWS ? '.exe' :
        > ''}"))
        >
        > Are there already plans to move to javac -h instead?
        > It seems a relative easy task that might be done by someone
        from the wider
        > community?
        >
        > Thanks,
        >
        > - Johan
        >

Reply via email to