diff --git a/make/data/symbols/java.base-7.sym.txt b/make/data/symbols/java.base-7.sym.txt index a3f31688497..5d8369f74cb 100644 --- a/make/data/symbols/java.base-7.sym.txt +++ b/make/data/symbols/java.base-7.sym.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -632,10 +632,37 @@ class name java/security/cert/X509CRL class name java/security/cert/X509Certificate -method name verify descriptor (Ljava/security/PublicKey;Ljava/security/Provider;)V +class name java/security/interfaces/RSAKey +-method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; + -class name java/security/spec/DSAGenParameterSpec class name java/security/spec/MGF1ParameterSpec -field name SHA224 descriptor Ljava/security/spec/MGF1ParameterSpec; +-field name SHA512_224 descriptor Ljava/security/spec/MGF1ParameterSpec; +-field name SHA512_256 descriptor Ljava/security/spec/MGF1ParameterSpec; + +class name java/security/spec/PSSParameterSpec +-field name TRAILER_FIELD_BC descriptor I +-method name toString descriptor ()Ljava/lang/String; + +class name java/security/spec/RSAKeyGenParameterSpec +-method name descriptor (ILjava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V +-method name getKeyParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; + +class name java/security/spec/RSAMultiPrimePrivateCrtKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;[Ljava/security/spec/RSAOtherPrimeInfo;Ljava/security/spec/AlgorithmParameterSpec;)V + +class name java/security/spec/RSAPrivateCrtKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V + +class name java/security/spec/RSAPrivateKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V +-method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; + +class name java/security/spec/RSAPublicKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V +-method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; class name java/text/Collator -method name getInstance descriptor (Ljava/util/Locale;)Ljava/text/Collator; @@ -1457,6 +1484,14 @@ method name newUpdater descriptor (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/ -class name java/util/function/UnaryOperator +class name java/util/jar/Attributes$Name +-field name EXTENSION_INSTALLATION descriptor Ljava/util/jar/Attributes$Name; +-field name IMPLEMENTATION_VENDOR_ID descriptor Ljava/util/jar/Attributes$Name; +-field name IMPLEMENTATION_URL descriptor Ljava/util/jar/Attributes$Name; +field name EXTENSION_INSTALLATION descriptor Ljava/util/jar/Attributes$Name; flags 19 +field name IMPLEMENTATION_VENDOR_ID descriptor Ljava/util/jar/Attributes$Name; flags 19 +field name IMPLEMENTATION_URL descriptor Ljava/util/jar/Attributes$Name; flags 19 + class name java/util/jar/JarFile -method name stream descriptor ()Ljava/util/stream/Stream; @@ -1535,6 +1570,9 @@ class name java/util/zip/ZipEntry class name java/util/zip/ZipFile -method name stream descriptor ()Ljava/util/stream/Stream; +class name javax/crypto/SealedObject +header extends java/lang/Object implements java/io/Serializable flags 21 + class name javax/crypto/SecretKey header extends java/lang/Object implements java/security/Key flags 601 @@ -1559,6 +1597,12 @@ class name javax/net/ssl/ExtendedSSLSession -class name javax/net/ssl/SNIServerName +class name javax/net/ssl/SSLEngine +-method name getApplicationProtocol descriptor ()Ljava/lang/String; +-method name getHandshakeApplicationProtocol descriptor ()Ljava/lang/String; +-method name setHandshakeApplicationProtocolSelector descriptor (Ljava/util/function/BiFunction;)V +-method name getHandshakeApplicationProtocolSelector descriptor ()Ljava/util/function/BiFunction; + class name javax/net/ssl/SSLParameters -method name setServerNames descriptor (Ljava/util/List;)V -method name getServerNames descriptor ()Ljava/util/List; @@ -1566,6 +1610,14 @@ class name javax/net/ssl/SSLParameters -method name getSNIMatchers descriptor ()Ljava/util/Collection; -method name setUseCipherSuitesOrder descriptor (Z)V -method name getUseCipherSuitesOrder descriptor ()Z +-method name getApplicationProtocols descriptor ()[Ljava/lang/String; +-method name setApplicationProtocols descriptor ([Ljava/lang/String;)V + +class name javax/net/ssl/SSLSocket +-method name getApplicationProtocol descriptor ()Ljava/lang/String; +-method name getHandshakeApplicationProtocol descriptor ()Ljava/lang/String; +-method name setHandshakeApplicationProtocolSelector descriptor (Ljava/util/function/BiFunction;)V +-method name getHandshakeApplicationProtocolSelector descriptor ()Ljava/util/function/BiFunction; class name javax/net/ssl/SSLSocketFactory -method name createSocket descriptor (Ljava/net/Socket;Ljava/io/InputStream;Z)Ljava/net/Socket; diff --git a/make/data/symbols/java.base-8.sym.txt b/make/data/symbols/java.base-8.sym.txt index 5f3cc3e082c..051003c2799 100644 --- a/make/data/symbols/java.base-8.sym.txt +++ b/make/data/symbols/java.base-8.sym.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -8200,6 +8200,7 @@ method name getW descriptor ()Ljava/security/spec/ECPoint; flags 401 class name java/security/interfaces/RSAKey header extends java/lang/Object flags 601 classAnnotations @Ljdk/Profile+Annotation;(value=I1) method name getModulus descriptor ()Ljava/math/BigInteger; flags 401 +method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1 class name java/security/interfaces/RSAMultiPrimePrivateCrtKey header extends java/lang/Object implements java/security/interfaces/RSAPrivateKey flags 601 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -8363,6 +8364,8 @@ field name SHA224 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19 field name SHA256 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19 field name SHA384 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19 field name SHA512 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19 +field name SHA512_224 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19 +field name SHA512_256 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19 method name descriptor (Ljava/lang/String;)V flags 1 method name getDigestAlgorithm descriptor ()Ljava/lang/String; flags 1 @@ -8375,6 +8378,7 @@ method name getFormat descriptor ()Ljava/lang/String; flags 11 class name java/security/spec/PSSParameterSpec header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) field name DEFAULT descriptor Ljava/security/spec/PSSParameterSpec; flags 19 +field name TRAILER_FIELD_BC descriptor I constantValue 1 flags 19 method name descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V flags 1 method name descriptor (I)V flags 1 method name getDigestAlgorithm descriptor ()Ljava/lang/String; flags 1 @@ -8382,6 +8386,7 @@ method name getMGFAlgorithm descriptor ()Ljava/lang/String; flags 1 method name getMGFParameters descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1 method name getSaltLength descriptor ()I flags 1 method name getTrailerField descriptor ()I flags 1 +method name toString descriptor ()Ljava/lang/String; flags 1 class name java/security/spec/RSAKeyGenParameterSpec header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -8390,6 +8395,8 @@ field name F4 descriptor Ljava/math/BigInteger; flags 19 method name descriptor (ILjava/math/BigInteger;)V flags 1 method name getKeysize descriptor ()I flags 1 method name getPublicExponent descriptor ()Ljava/math/BigInteger; flags 1 +method name descriptor (ILjava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1 +method name getKeyParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1 class name java/security/spec/RSAMultiPrimePrivateCrtKeySpec header extends java/security/spec/RSAPrivateKeySpec flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -8401,6 +8408,7 @@ method name getPrimeExponentP descriptor ()Ljava/math/BigInteger; flags 1 method name getPrimeExponentQ descriptor ()Ljava/math/BigInteger; flags 1 method name getCrtCoefficient descriptor ()Ljava/math/BigInteger; flags 1 method name getOtherPrimeInfo descriptor ()[Ljava/security/spec/RSAOtherPrimeInfo; flags 1 +method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;[Ljava/security/spec/RSAOtherPrimeInfo;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1 class name java/security/spec/RSAOtherPrimeInfo header extends java/lang/Object flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -8418,18 +8426,23 @@ method name getPrimeQ descriptor ()Ljava/math/BigInteger; flags 1 method name getPrimeExponentP descriptor ()Ljava/math/BigInteger; flags 1 method name getPrimeExponentQ descriptor ()Ljava/math/BigInteger; flags 1 method name getCrtCoefficient descriptor ()Ljava/math/BigInteger; flags 1 +method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1 class name java/security/spec/RSAPrivateKeySpec header extends java/lang/Object implements java/security/spec/KeySpec flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;)V flags 1 method name getModulus descriptor ()Ljava/math/BigInteger; flags 1 method name getPrivateExponent descriptor ()Ljava/math/BigInteger; flags 1 +method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1 +method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1 class name java/security/spec/RSAPublicKeySpec header extends java/lang/Object implements java/security/spec/KeySpec flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;)V flags 1 method name getModulus descriptor ()Ljava/math/BigInteger; flags 1 method name getPublicExponent descriptor ()Ljava/math/BigInteger; flags 1 +method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1 +method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1 class name java/security/spec/X509EncodedKeySpec header extends java/security/spec/EncodedKeySpec flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -10429,6 +10442,7 @@ method name values descriptor ()[Ljava/time/chrono/JapaneseEra; flags 9 method name getValue descriptor ()I flags 1 method name range descriptor (Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange; flags 1 method name toString descriptor ()Ljava/lang/String; flags 1 +method name getDisplayName descriptor (Ljava/time/format/TextStyle;Ljava/util/Locale;)Ljava/lang/String; flags 1 class name java/time/chrono/MinguoChronology header extends java/time/chrono/AbstractChronology implements java/io/Serializable flags 31 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -15563,15 +15577,15 @@ field name MAIN_CLASS descriptor Ljava/util/jar/Attributes$Name; flags 19 field name SEALED descriptor Ljava/util/jar/Attributes$Name; flags 19 field name EXTENSION_LIST descriptor Ljava/util/jar/Attributes$Name; flags 19 field name EXTENSION_NAME descriptor Ljava/util/jar/Attributes$Name; flags 19 -field name EXTENSION_INSTALLATION descriptor Ljava/util/jar/Attributes$Name; flags 19 field name IMPLEMENTATION_TITLE descriptor Ljava/util/jar/Attributes$Name; flags 19 field name IMPLEMENTATION_VERSION descriptor Ljava/util/jar/Attributes$Name; flags 19 field name IMPLEMENTATION_VENDOR descriptor Ljava/util/jar/Attributes$Name; flags 19 -field name IMPLEMENTATION_VENDOR_ID descriptor Ljava/util/jar/Attributes$Name; flags 19 -field name IMPLEMENTATION_URL descriptor Ljava/util/jar/Attributes$Name; flags 19 field name SPECIFICATION_TITLE descriptor Ljava/util/jar/Attributes$Name; flags 19 field name SPECIFICATION_VERSION descriptor Ljava/util/jar/Attributes$Name; flags 19 field name SPECIFICATION_VENDOR descriptor Ljava/util/jar/Attributes$Name; flags 19 +field name EXTENSION_INSTALLATION descriptor Ljava/util/jar/Attributes$Name; flags 19 deprecated true runtimeAnnotations @Ljava/lang/Deprecated; +field name IMPLEMENTATION_VENDOR_ID descriptor Ljava/util/jar/Attributes$Name; flags 19 deprecated true runtimeAnnotations @Ljava/lang/Deprecated; +field name IMPLEMENTATION_URL descriptor Ljava/util/jar/Attributes$Name; flags 19 deprecated true runtimeAnnotations @Ljava/lang/Deprecated; method name descriptor (Ljava/lang/String;)V flags 1 method name equals descriptor (Ljava/lang/Object;)Z flags 1 method name hashCode descriptor ()I flags 1 @@ -16698,6 +16712,7 @@ method name descriptor ()V flags 1 class name javax/crypto/SealedObject header extends java/lang/Object implements java/io/Serializable flags 21 +innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19 field name encodedParams descriptor [B flags 4 method name descriptor (Ljava/io/Serializable;Ljavax/crypto/Cipher;)V thrownTypes java/io/IOException,javax/crypto/IllegalBlockSizeException flags 1 method name descriptor (Ljavax/crypto/SealedObject;)V flags 4 @@ -17086,6 +17101,10 @@ method name setEnableSessionCreation descriptor (Z)V flags 401 method name getEnableSessionCreation descriptor ()Z flags 401 method name getSSLParameters descriptor ()Ljavax/net/ssl/SSLParameters; flags 1 method name setSSLParameters descriptor (Ljavax/net/ssl/SSLParameters;)V flags 1 +method name getApplicationProtocol descriptor ()Ljava/lang/String; flags 1 +method name getHandshakeApplicationProtocol descriptor ()Ljava/lang/String; flags 1 +method name setHandshakeApplicationProtocolSelector descriptor (Ljava/util/function/BiFunction;)V flags 1 signature (Ljava/util/function/BiFunction;Ljava/lang/String;>;)V +method name getHandshakeApplicationProtocolSelector descriptor ()Ljava/util/function/BiFunction; flags 1 signature ()Ljava/util/function/BiFunction;Ljava/lang/String;>; class name javax/net/ssl/SSLEngineResult header extends java/lang/Object flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -17156,6 +17175,8 @@ method name setSNIMatchers descriptor (Ljava/util/Collection;)V flags 11 signatu method name getSNIMatchers descriptor ()Ljava/util/Collection; flags 11 signature ()Ljava/util/Collection; method name setUseCipherSuitesOrder descriptor (Z)V flags 11 method name getUseCipherSuitesOrder descriptor ()Z flags 11 +method name getApplicationProtocols descriptor ()[Ljava/lang/String; flags 1 +method name setApplicationProtocols descriptor ([Ljava/lang/String;)V flags 1 class name javax/net/ssl/SSLPeerUnverifiedException header extends javax/net/ssl/SSLException flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I1) @@ -17272,6 +17293,10 @@ method name setEnableSessionCreation descriptor (Z)V flags 401 method name getEnableSessionCreation descriptor ()Z flags 401 method name getSSLParameters descriptor ()Ljavax/net/ssl/SSLParameters; flags 1 method name setSSLParameters descriptor (Ljavax/net/ssl/SSLParameters;)V flags 1 +method name getApplicationProtocol descriptor ()Ljava/lang/String; flags 1 +method name getHandshakeApplicationProtocol descriptor ()Ljava/lang/String; flags 1 +method name setHandshakeApplicationProtocolSelector descriptor (Ljava/util/function/BiFunction;)V flags 1 signature (Ljava/util/function/BiFunction;Ljava/lang/String;>;)V +method name getHandshakeApplicationProtocolSelector descriptor ()Ljava/util/function/BiFunction; flags 1 signature ()Ljava/util/function/BiFunction;Ljava/lang/String;>; class name javax/net/ssl/SSLSocketFactory header extends javax/net/SocketFactory flags 421 classAnnotations @Ljdk/Profile+Annotation;(value=I1) diff --git a/make/data/symbols/java.base-9.sym.txt b/make/data/symbols/java.base-9.sym.txt index bdaa9a35800..99a4f8e9f0e 100644 --- a/make/data/symbols/java.base-9.sym.txt +++ b/make/data/symbols/java.base-9.sym.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -2083,13 +2083,42 @@ method name equals descriptor (Ljava/lang/Object;)Z flags 1 method name toString descriptor ()Ljava/lang/String; flags 1 method name clone descriptor ()Ljava/lang/Object; thrownTypes java/lang/CloneNotSupportedException flags 1041 +class name java/security/interfaces/RSAKey +-method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; + class name java/security/spec/EncodedKeySpec method name descriptor ([BLjava/lang/String;)V flags 4 method name getAlgorithm descriptor ()Ljava/lang/String; flags 1 +class name java/security/spec/MGF1ParameterSpec +-field name SHA512_224 descriptor Ljava/security/spec/MGF1ParameterSpec; +-field name SHA512_256 descriptor Ljava/security/spec/MGF1ParameterSpec; + class name java/security/spec/PKCS8EncodedKeySpec method name descriptor ([BLjava/lang/String;)V flags 1 +class name java/security/spec/PSSParameterSpec +-field name TRAILER_FIELD_BC descriptor I +-method name toString descriptor ()Ljava/lang/String; + +class name java/security/spec/RSAKeyGenParameterSpec +-method name descriptor (ILjava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V +-method name getKeyParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; + +class name java/security/spec/RSAMultiPrimePrivateCrtKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;[Ljava/security/spec/RSAOtherPrimeInfo;Ljava/security/spec/AlgorithmParameterSpec;)V + +class name java/security/spec/RSAPrivateCrtKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V + +class name java/security/spec/RSAPrivateKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V +-method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; + +class name java/security/spec/RSAPublicKeySpec +-method name descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V +-method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; + class name java/security/spec/X509EncodedKeySpec method name descriptor ([BLjava/lang/String;)V flags 1 @@ -2224,9 +2253,6 @@ innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang class name java/time/chrono/IsoChronology method name epochSecond descriptor (IIIIIILjava/time/ZoneOffset;)J flags 1 -class name java/time/chrono/JapaneseEra -method name getDisplayName descriptor (Ljava/time/format/TextStyle;Ljava/util/Locale;)Ljava/lang/String; flags 1 - class name java/time/format/DateTimeFormatter header extends java/lang/Object flags 31 innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19 @@ -3221,12 +3247,6 @@ header extends java/lang/Object implements java/util/function/Function flags 601 innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19 class name java/util/jar/Attributes$Name --field name EXTENSION_INSTALLATION descriptor Ljava/util/jar/Attributes$Name; --field name IMPLEMENTATION_VENDOR_ID descriptor Ljava/util/jar/Attributes$Name; --field name IMPLEMENTATION_URL descriptor Ljava/util/jar/Attributes$Name; -field name EXTENSION_INSTALLATION descriptor Ljava/util/jar/Attributes$Name; flags 19 deprecated true runtimeAnnotations @Ljava/lang/Deprecated; -field name IMPLEMENTATION_VENDOR_ID descriptor Ljava/util/jar/Attributes$Name; flags 19 deprecated true runtimeAnnotations @Ljava/lang/Deprecated; -field name IMPLEMENTATION_URL descriptor Ljava/util/jar/Attributes$Name; flags 19 deprecated true runtimeAnnotations @Ljava/lang/Deprecated; field name MULTI_RELEASE descriptor Ljava/util/jar/Attributes$Name; flags 19 class name java/util/jar/JarFile @@ -3381,6 +3401,9 @@ method name finalize descriptor ()V thrownTypes java/io/IOException flags 4 depr class name javax/crypto/ExemptionMechanism -method name finalize descriptor ()V +class name javax/crypto/SealedObject +header extends java/lang/Object implements java/io/Serializable flags 21 + class name javax/net/ssl/ExtendedSSLSession method name getStatusResponses descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<[B>; @@ -3388,12 +3411,6 @@ class name javax/net/ssl/HandshakeCompletedEvent -method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate; method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate; thrownTypes javax/net/ssl/SSLPeerUnverifiedException flags 1 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9") -class name javax/net/ssl/SSLEngine -method name getApplicationProtocol descriptor ()Ljava/lang/String; flags 1 -method name getHandshakeApplicationProtocol descriptor ()Ljava/lang/String; flags 1 -method name setHandshakeApplicationProtocolSelector descriptor (Ljava/util/function/BiFunction;)V flags 1 signature (Ljava/util/function/BiFunction;Ljava/lang/String;>;)V -method name getHandshakeApplicationProtocolSelector descriptor ()Ljava/util/function/BiFunction; flags 1 signature ()Ljava/util/function/BiFunction;Ljava/lang/String;>; - class name javax/net/ssl/SSLEngineResult header extends java/lang/Object flags 21 innerclass innerClass javax/net/ssl/SSLEngineResult$HandshakeStatus outerClass javax/net/ssl/SSLEngineResult innerClassName HandshakeStatus flags 4019 @@ -3409,19 +3426,11 @@ method name setEnableRetransmissions descriptor (Z)V flags 1 method name getEnableRetransmissions descriptor ()Z flags 1 method name setMaximumPacketSize descriptor (I)V flags 1 method name getMaximumPacketSize descriptor ()I flags 1 -method name getApplicationProtocols descriptor ()[Ljava/lang/String; flags 1 -method name setApplicationProtocols descriptor ([Ljava/lang/String;)V flags 1 class name javax/net/ssl/SSLSession -method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate; method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate; thrownTypes javax/net/ssl/SSLPeerUnverifiedException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9") -class name javax/net/ssl/SSLSocket -method name getApplicationProtocol descriptor ()Ljava/lang/String; flags 1 -method name getHandshakeApplicationProtocol descriptor ()Ljava/lang/String; flags 1 -method name setHandshakeApplicationProtocolSelector descriptor (Ljava/util/function/BiFunction;)V flags 1 signature (Ljava/util/function/BiFunction;Ljava/lang/String;>;)V -method name getHandshakeApplicationProtocolSelector descriptor ()Ljava/util/function/BiFunction; flags 1 signature ()Ljava/util/function/BiFunction;Ljava/lang/String;>; - class name javax/security/auth/Policy header extends java/lang/Object flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="1.4") diff --git a/make/data/symbols/java.desktop-7.sym.txt b/make/data/symbols/java.desktop-7.sym.txt index 131531e2b01..0163545ddd3 100644 --- a/make/data/symbols/java.desktop-7.sym.txt +++ b/make/data/symbols/java.desktop-7.sym.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -77,6 +77,9 @@ class name javax/swing/ImageIcon field name component descriptor Ljava/awt/Component; flags 1c field name tracker descriptor Ljava/awt/MediaTracker; flags 1c +class name javax/swing/JComboBox +-method name processKeyBinding descriptor (Ljavax/swing/KeyStroke;Ljava/awt/event/KeyEvent;IZ)Z + class name javax/swing/JComponent field name accessibleContext descriptor Ljavax/accessibility/AccessibleContext; flags 4 -method name hide descriptor ()V @@ -90,8 +93,12 @@ field name accessibleFocusHandler descriptor Ljava/awt/event/FocusListener; flag class name javax/swing/JDesktopPane -method name remove descriptor (Ljava/awt/Component;)V -class name javax/swing/JViewport --method name addNotify descriptor ()V +class name javax/swing/JList$AccessibleJList$AccessibleJListChild +method name getAccessibleAction descriptor ()Ljavax/accessibility/AccessibleAction; flags 1 + +class name javax/swing/plaf/basic/BasicRadioButtonUI +-method name installListeners descriptor (Ljavax/swing/AbstractButton;)V +-method name uninstallListeners descriptor (Ljavax/swing/AbstractButton;)V class name javax/swing/tree/DefaultMutableTreeNode -method name setParent descriptor (Ljavax/swing/tree/MutableTreeNode;)V diff --git a/make/data/symbols/java.desktop-8.sym.txt b/make/data/symbols/java.desktop-8.sym.txt index 835cdde3043..3daa15e5081 100644 --- a/make/data/symbols/java.desktop-8.sym.txt +++ b/make/data/symbols/java.desktop-8.sym.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -13524,6 +13524,7 @@ method name getItemAt descriptor (I)Ljava/lang/Object; flags 1 signature (I)TE; method name createDefaultKeySelectionManager descriptor ()Ljavax/swing/JComboBox$KeySelectionManager; flags 4 method name paramString descriptor ()Ljava/lang/String; flags 4 method name getAccessibleContext descriptor ()Ljavax/accessibility/AccessibleContext; flags 1 +method name processKeyBinding descriptor (Ljavax/swing/KeyStroke;Ljava/awt/event/KeyEvent;IZ)Z flags 4 class name javax/swing/JComboBox$AccessibleJComboBox header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleAction,javax/accessibility/AccessibleSelection flags 21 @@ -14604,7 +14605,6 @@ method name getAccessibleChild descriptor (I)Ljavax/accessibility/Accessible; fl method name getLocale descriptor ()Ljava/util/Locale; flags 1 method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 1 method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 1 -method name getAccessibleAction descriptor ()Ljavax/accessibility/AccessibleAction; flags 1 method name getAccessibleComponent descriptor ()Ljavax/accessibility/AccessibleComponent; flags 1 method name getAccessibleSelection descriptor ()Ljavax/accessibility/AccessibleSelection; flags 1 method name getAccessibleText descriptor ()Ljavax/accessibility/AccessibleText; flags 1 @@ -16720,7 +16720,6 @@ method name updateUI descriptor ()V flags 1 method name getUIClassID descriptor ()Ljava/lang/String; flags 1 method name addImpl descriptor (Ljava/awt/Component;Ljava/lang/Object;I)V flags 4 method name remove descriptor (Ljava/awt/Component;)V flags 1 -method name addNotify descriptor ()V flags 1 method name scrollRectToVisible descriptor (Ljava/awt/Rectangle;)V flags 1 method name setBorder descriptor (Ljavax/swing/border/Border;)V flags 11 method name getInsets descriptor ()Ljava/awt/Insets; flags 11 @@ -20281,6 +20280,8 @@ method name getDefaultIcon descriptor ()Ljavax/swing/Icon; flags 1 method name paint descriptor (Ljava/awt/Graphics;Ljavax/swing/JComponent;)V flags 21 method name paintFocus descriptor (Ljava/awt/Graphics;Ljava/awt/Rectangle;Ljava/awt/Dimension;)V flags 4 method name getPreferredSize descriptor (Ljavax/swing/JComponent;)Ljava/awt/Dimension; flags 1 +method name installListeners descriptor (Ljavax/swing/AbstractButton;)V flags 4 +method name uninstallListeners descriptor (Ljavax/swing/AbstractButton;)V flags 4 class name javax/swing/plaf/basic/BasicRootPaneUI header extends javax/swing/plaf/RootPaneUI implements java/beans/PropertyChangeListener flags 21 classAnnotations @Ljdk/Profile+Annotation;(value=I4) diff --git a/make/data/symbols/java.desktop-9.sym.txt b/make/data/symbols/java.desktop-9.sym.txt index 421eb345695..cf0ab3466a8 100644 --- a/make/data/symbols/java.desktop-9.sym.txt +++ b/make/data/symbols/java.desktop-9.sym.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -2524,7 +2524,6 @@ method name getPopupMenuListeners descriptor ()[Ljavax/swing/event/PopupMenuList method name setAction descriptor (Ljavax/swing/Action;)V flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(visualUpdate=Ztrue,description="the\u005C;u0020;Action\u005C;u0020;instance\u005C;u0020;connected\u005C;u0020;with\u005C;u0020;this\u005C;u0020;ActionEvent\u005C;u0020;source") method name getSelectedObjects descriptor ()[Ljava/lang/Object; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(bound=Zfalse) method name setEnabled descriptor (Z)V flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(description="The\u005C;u0020;enabled\u005C;u0020;state\u005C;u0020;of\u005C;u0020;the\u005C;u0020;component.",preferred=Ztrue) -method name processKeyBinding descriptor (Ljavax/swing/KeyStroke;Ljava/awt/event/KeyEvent;IZ)Z flags 4 method name setKeySelectionManager descriptor (Ljavax/swing/JComboBox$KeySelectionManager;)V flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="The\u005C;u0020;objects\u005C;u0020;that\u005C;u0020;changes\u005C;u0020;the\u005C;u0020;selection\u005C;u0020;when\u005C;u0020;a\u005C;u0020;key\u005C;u0020;is\u005C;u0020;pressed.") method name getItemCount descriptor ()I flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(bound=Zfalse) method name getAccessibleContext descriptor ()Ljavax/accessibility/AccessibleContext; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(bound=Zfalse) @@ -3039,6 +3038,7 @@ class name javax/swing/JList$AccessibleJList$AccessibleJListChild header extends javax/accessibility/AccessibleContext implements javax/accessibility/Accessible,javax/accessibility/AccessibleComponent,javax/accessibility/AccessibleAction flags 21 innerclass innerClass javax/swing/JList$AccessibleJList outerClass javax/swing/JList innerClassName AccessibleJList flags 4 innerclass innerClass javax/swing/JList$AccessibleJList$AccessibleJListChild outerClass javax/swing/JList$AccessibleJList innerClassName AccessibleJListChild flags 4 +method name getAccessibleAction descriptor ()Ljavax/accessibility/AccessibleAction; flags 1 method name doAccessibleAction descriptor (I)Z flags 1 method name getAccessibleActionDescription descriptor (I)Ljava/lang/String; flags 1 method name getAccessibleActionCount descriptor ()I flags 1 @@ -3907,7 +3907,6 @@ innerclass innerClass javax/swing/JViewport$AccessibleJViewport outerClass javax innerclass innerClass javax/swing/JViewport$ViewListener outerClass javax/swing/JViewport innerClassName ViewListener flags 4 innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19 -method name setUI descriptor (Ljavax/swing/plaf/ViewportUI;)V --method name addNotify descriptor ()V -method name getInsets descriptor (Ljava/awt/Insets;)Ljava/awt/Insets; -method name setScrollMode descriptor (I)V method name setUI descriptor (Ljavax/swing/plaf/ViewportUI;)V flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(hidden=Ztrue,visualUpdate=Ztrue,description="The\u005C;u0020;UI\u005C;u0020;object\u005C;u0020;that\u005C;u0020;implements\u005C;u0020;the\u005C;u0020;Component's\u005C;u0020;LookAndFeel.") @@ -4402,8 +4401,6 @@ innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang class name javax/swing/plaf/basic/BasicRadioButtonUI header extends javax/swing/plaf/basic/BasicToggleButtonUI flags 21 innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19 -method name installListeners descriptor (Ljavax/swing/AbstractButton;)V flags 4 -method name uninstallListeners descriptor (Ljavax/swing/AbstractButton;)V flags 4 class name javax/swing/plaf/basic/BasicScrollBarUI header extends javax/swing/plaf/ScrollBarUI implements java/awt/LayoutManager,javax/swing/SwingConstants flags 21 diff --git a/make/data/symbols/symbols b/make/data/symbols/symbols index 71fd9b5581d..969a615c5ca 100644 --- a/make/data/symbols/symbols +++ b/make/data/symbols/symbols @@ -27,7 +27,7 @@ # ########################################################## # #command used to generate this file: -#build.tools.symbolgenerator.CreateSymbols build-description-incremental symbols include.list +#build.tools.symbolgenerator.CreateSymbols build-description-incremental-file symbols include.list 8 jdk8-updated.classes --normalize-method-flags # generate platforms 7:8:9:A:B:C:D:E platform version 8 files java.activation-8.sym.txt:java.base-8.sym.txt:java.compiler-8.sym.txt:java.corba-8.sym.txt:java.datatransfer-8.sym.txt:java.desktop-8.sym.txt:java.instrument-8.sym.txt:java.logging-8.sym.txt:java.management-8.sym.txt:java.management.rmi-8.sym.txt:java.naming-8.sym.txt:java.prefs-8.sym.txt:java.rmi-8.sym.txt:java.scripting-8.sym.txt:java.security.jgss-8.sym.txt:java.security.sasl-8.sym.txt:java.sql-8.sym.txt:java.sql.rowset-8.sym.txt:java.transaction-8.sym.txt:java.xml-8.sym.txt:java.xml.bind-8.sym.txt:java.xml.crypto-8.sym.txt:java.xml.ws-8.sym.txt:java.xml.ws.annotation-8.sym.txt:jdk.httpserver-8.sym.txt:jdk.management-8.sym.txt:jdk.scripting.nashorn-8.sym.txt:jdk.sctp-8.sym.txt:jdk.security.auth-8.sym.txt:jdk.security.jgss-8.sym.txt diff --git a/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java b/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java index b385f8d7924..2ac123d87c8 100644 --- a/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java +++ b/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java @@ -31,6 +31,7 @@ import build.tools.symbolgenerator.CreateSymbols import build.tools.symbolgenerator.CreateSymbols .ModuleHeaderDescription .RequiresDescription; + import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.BufferedOutputStream; @@ -43,6 +44,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.StringWriter; import java.io.Writer; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.FileVisitResult; import java.nio.file.FileVisitor; @@ -220,7 +222,7 @@ public class CreateSymbols { long timestamp, String currentVersion, String systemModules) throws IOException { LoadDescriptions data = load(ctDescriptionFileExtra != null ? Paths.get(ctDescriptionFileExtra) : null, - Paths.get(ctDescriptionFile), null); + Paths.get(ctDescriptionFile)); splitHeaders(data.classes); @@ -303,7 +305,7 @@ public class CreateSymbols { public static String EXTENSION = ".sig"; - LoadDescriptions load(Path ctDescriptionWithExtraContent, Path ctDescriptionOpen, String deletePlatform) throws IOException { + LoadDescriptions load(Path ctDescriptionWithExtraContent, Path ctDescriptionOpen) throws IOException { Map platforms = new LinkedHashMap<>(); if (ctDescriptionWithExtraContent != null && Files.isRegularFile(ctDescriptionWithExtraContent)) { @@ -317,8 +319,7 @@ public class CreateSymbols { case "platform": PlatformInput platform = PlatformInput.load(ctDescriptionWithExtraContent, reader); - if (!platform.version.equals(deletePlatform)) - platforms.put(platform.version, platform); + platforms.put(platform.version, platform); reader.moveNext(); break; default: @@ -336,13 +337,11 @@ public class CreateSymbols { case "generate": String[] platformsAttr = reader.attributes.get("platforms").split(":"); generatePlatforms = new HashSet<>(List.of(platformsAttr)); - generatePlatforms.remove(deletePlatform); reader.moveNext(); break; case "platform": PlatformInput platform = PlatformInput.load(ctDescriptionOpen, reader); - if (!platform.version.equals(deletePlatform) && - !platforms.containsKey(platform.version)) + if (!platforms.containsKey(platform.version)) platforms.put(platform.version, platform); reader.moveNext(); break; @@ -408,18 +407,28 @@ public class CreateSymbols { ClassList result = new ClassList(); - for (ClassDescription desc : classes.values()) { + classes.values().forEach(result::add); + return new LoadDescriptions(result, + modules, + new ArrayList<>(platforms.values())); + } + + private static void removeVersion(LoadDescriptions load, String deletePlatform) { + for (Iterator it = load.classes.iterator(); it.hasNext();) { + ClassDescription desc = it.next(); Iterator chdIt = desc.header.iterator(); while (chdIt.hasNext()) { ClassHeaderDescription chd = chdIt.next(); - chd.versions = reduce(chd.versions, generatePlatforms); - if (chd.versions.isEmpty()) + chd.versions = removeVersion(chd.versions, deletePlatform); + if (chd.versions.isEmpty()) { chdIt.remove(); + } } if (desc.header.isEmpty()) { + it.remove(); continue; } @@ -428,7 +437,7 @@ public class CreateSymbols { while (methodIt.hasNext()) { MethodDescription method = methodIt.next(); - method.versions = reduce(method.versions, generatePlatforms); + method.versions = removeVersion(method.versions, deletePlatform); if (method.versions.isEmpty()) methodIt.remove(); } @@ -438,37 +447,29 @@ public class CreateSymbols { while (fieldIt.hasNext()) { FieldDescription field = fieldIt.next(); - field.versions = reduce(field.versions, generatePlatforms); + field.versions = removeVersion(field.versions, deletePlatform); if (field.versions.isEmpty()) fieldIt.remove(); } - - result.add(desc); } - Map moduleList = new HashMap<>(); - - for (ModuleDescription desc : modules.values()) { + for (Iterator it = load.modules.values().iterator(); it.hasNext();) { + ModuleDescription desc = it.next(); Iterator mhdIt = desc.header.iterator(); while (mhdIt.hasNext()) { ModuleHeaderDescription mhd = mhdIt.next(); - mhd.versions = reduce(mhd.versions, generatePlatforms); + mhd.versions = removeVersion(mhd.versions, deletePlatform); if (mhd.versions.isEmpty()) mhdIt.remove(); } if (desc.header.isEmpty()) { + it.remove(); continue; } - - moduleList.put(desc.name, desc); } - - return new LoadDescriptions(result, - moduleList, - new ArrayList<>(platforms.values())); } static final class LoadDescriptions { @@ -550,6 +551,17 @@ public class CreateSymbols { return sb.toString(); } + private static String removeVersion(String original, String remove) { + StringBuilder sb = new StringBuilder(); + + for (char v : original.toCharArray()) { + if (v != remove.charAt(0)) { + sb.append(v); + } + } + return sb.toString(); + } + private static class PlatformInput { public final String version; public final String basePlatform; @@ -1271,24 +1283,9 @@ public class CreateSymbols { Map modules = new HashMap<>(); for (VersionDescription desc : versions) { - List classFileData = new ArrayList<>(); + Iterable classFileData = loadClassData(desc.classes); - try (BufferedReader descIn = - Files.newBufferedReader(Paths.get(desc.classes))) { - String line; - while ((line = descIn.readLine()) != null) { - ByteArrayOutputStream data = new ByteArrayOutputStream(); - for (int i = 0; i < line.length(); i += 2) { - String hex = line.substring(i, i + 2); - data.write(Integer.parseInt(hex, 16)); - } - classFileData.add(data.toByteArray()); - } - } catch (IOException ex) { - throw new IllegalStateException(ex); - } - - loadVersionClasses(classes, modules, classFileData, excludesIncludes, desc.version); + loadVersionClasses(classes, modules, classFileData, excludesIncludes, desc.version, null); } List platforms = @@ -1299,7 +1296,7 @@ public class CreateSymbols { null)) .collect(Collectors.toList()); - dumpDescriptions(classes, modules, platforms, descDest.resolve("symbols"), args); + dumpDescriptions(classes, modules, platforms, Set.of(), descDest.resolve("symbols"), args); } //where: private static final String DO_NO_MODIFY = @@ -1332,11 +1329,33 @@ public class CreateSymbols { "# ##########################################################\n" + "#\n"; + private Iterable loadClassData(String path) { + List classFileData = new ArrayList<>(); + + try (BufferedReader descIn = + Files.newBufferedReader(Paths.get(path))) { + String line; + while ((line = descIn.readLine()) != null) { + ByteArrayOutputStream data = new ByteArrayOutputStream(); + for (int i = 0; i < line.length(); i += 2) { + String hex = line.substring(i, i + 2); + data.write(Integer.parseInt(hex, 16)); + } + classFileData.add(data.toByteArray()); + } + } catch (IOException ex) { + throw new IllegalStateException(ex); + } + + return classFileData; + } + private void loadVersionClasses(ClassList classes, Map modules, Iterable classData, ExcludeIncludeList excludesIncludes, - String version) { + String version, + String baseline) { Map currentVersionModules = new HashMap<>(); @@ -1460,12 +1479,12 @@ public class CreateSymbols { ClassDescription existing = classes.find(clazz.name, true); if (existing != null) { - addClassHeader(existing, header, version); + addClassHeader(existing, header, version, baseline); for (MethodDescription currentMethod : clazz.methods) { - addMethod(existing, currentMethod, version); + addMethod(existing, currentMethod, version, baseline); } for (FieldDescription currentField : clazz.fields) { - addField(existing, currentField, version); + addField(existing, currentField, version, baseline); } } else { classes.add(clazz); @@ -1502,6 +1521,7 @@ public class CreateSymbols { private void dumpDescriptions(ClassList classes, Map modules, List versions, + Set forceWriteVersions, Path ctDescriptionFile, String[] args) throws IOException { classes.sort(); @@ -1568,7 +1588,7 @@ public class CreateSymbols { for (PlatformInput desc : versions) { List files = desc.files; - if (files == null) { + if (files == null || forceWriteVersions.contains(desc.version)) { files = new ArrayList<>(); for (Entry> e : module2Classes.entrySet()) { StringWriter data = new StringWriter(); @@ -1586,9 +1606,34 @@ public class CreateSymbols { String dataString = data.toString(); if (!dataString.isEmpty()) { - try (Writer out = Files.newBufferedWriter(f)) { - out.append(DO_NO_MODIFY.replace("{YEAR}", String.valueOf(year))); - out.write(dataString); + String existingYear = null; + boolean hasChange = true; + if (Files.isReadable(f)) { + String oldContent = Files.readString(f, StandardCharsets.UTF_8); + int yearPos = DO_NO_MODIFY.indexOf("{YEAR}"); + String headerPattern = + Pattern.quote(DO_NO_MODIFY.substring(0, yearPos)) + + "([0-9]+)(, [0-9]+)?" + + Pattern.quote(DO_NO_MODIFY.substring(yearPos + "{YEAR}".length())); + String pattern = headerPattern + + Pattern.quote(dataString); + Matcher m = Pattern.compile(pattern, Pattern.MULTILINE).matcher(oldContent); + if (m.matches()) { + hasChange = false; + } else { + m = Pattern.compile(headerPattern).matcher(oldContent); + if (m.find()) { + existingYear = m.group(1); + } + } + } + if (hasChange) { + try (Writer out = Files.newBufferedWriter(f, StandardCharsets.UTF_8)) { + String currentYear = String.valueOf(year); + String yearSpec = (existingYear != null && !currentYear.equals(existingYear) ? existingYear + ", " : "") + currentYear; + out.append(DO_NO_MODIFY.replace("{YEAR}", yearSpec)); + out.write(dataString); + } } files.add(f.getFileName().toString()); } @@ -1630,15 +1675,17 @@ public class CreateSymbols { } } - public void createIncrementalBaseLine(String ctDescriptionFile, - String excludeFile, - String[] args) throws IOException { - String specVersion = System.getProperty("java.specification.version"); + private void incrementalUpdate(String ctDescriptionFile, + String excludeFile, + String platformVersion, + Iterable classBytes, + Function baseline, + String[] args) throws IOException { String currentVersion = - Integer.toString(Integer.parseInt(specVersion), Character.MAX_RADIX); - currentVersion = currentVersion.toUpperCase(Locale.ROOT); + Integer.toString(Integer.parseInt(platformVersion), Character.MAX_RADIX); + String version = currentVersion.toUpperCase(Locale.ROOT); Path ctDescriptionPath = Paths.get(ctDescriptionFile).toAbsolutePath(); - LoadDescriptions data = load(null, ctDescriptionPath, currentVersion); + LoadDescriptions data = load(null, ctDescriptionPath); ClassList classes = data.classes; Map modules = data.modules; @@ -1647,23 +1694,70 @@ public class CreateSymbols { ExcludeIncludeList excludeList = ExcludeIncludeList.create(excludeFile); - Iterable classBytes = dumpCurrentClasses(); - loadVersionClasses(classes, modules, classBytes, excludeList, currentVersion); + loadVersionClasses(classes, modules, classBytes, excludeList, "$", version); - String baseline; + removeVersion(data, version); - if (versions.isEmpty()) { - baseline = null; - } else { - baseline = versions.stream() - .sorted((v1, v2) -> v2.version.compareTo(v1.version)) - .findFirst() - .get() - .version; + for (ModuleDescription md : data.modules.values()) { + for (ModuleHeaderDescription header : md.header) { + header.versions = header.versions.replace("$", version); + } } - versions.add(new PlatformInput(null, currentVersion, baseline, null)); - dumpDescriptions(classes, modules, versions, ctDescriptionPath, args); + for (ClassDescription clazzDesc : data.classes) { + for (ClassHeaderDescription header : clazzDesc.header) { + header.versions = header.versions.replace("$", version); + } + for (MethodDescription method : clazzDesc.methods) { + method.versions = method.versions.replace("$", version); + } + for (FieldDescription field : clazzDesc.fields) { + field.versions = field.versions.replace("$", version); + } + } + + if (versions.stream().noneMatch(inp -> version.equals(inp.version))) { + versions.add(new PlatformInput(null, version, baseline.apply(data), null)); + } + + Set writeVersions = new HashSet<>(); + + writeVersions.add(version); + + //re-write all platforms that have version as their basline: + versions.stream() + .filter(inp -> version.equals(inp.basePlatform)) + .map(inp -> inp.version) + .forEach(writeVersions::add); + dumpDescriptions(classes, modules, versions, writeVersions, ctDescriptionPath, args); + } + + public void createIncrementalBaseLineFromDataFile(String ctDescriptionFile, + String excludeFile, + String version, + String dataFile, + String baseline, + String[] args) throws IOException { + incrementalUpdate(ctDescriptionFile, excludeFile, version, loadClassData(dataFile), x -> baseline, args); + } + + public void createIncrementalBaseLine(String ctDescriptionFile, + String excludeFile, + String[] args) throws IOException { + String specVersion = System.getProperty("java.specification.version"); + Iterable classBytes = dumpCurrentClasses(); + Function baseline = data -> { + if (data.versions.isEmpty()) { + return null; + } else { + return data.versions.stream() + .sorted((v1, v2) -> v2.version.compareTo(v1.version)) + .findFirst() + .get() + .version; + } + }; + incrementalUpdate(ctDescriptionFile, excludeFile, specVersion, classBytes, baseline, args); } private List dumpCurrentClasses() throws IOException { @@ -1757,7 +1851,7 @@ public class CreateSymbols { classes.add(clazzDesc); } - addClassHeader(clazzDesc, headerDesc, version); + addClassHeader(clazzDesc, headerDesc, version, null); for (Method m : cf.methods) { if (!include(m.access_flags.flags)) @@ -1769,7 +1863,7 @@ public class CreateSymbols { for (Attribute attr : m.attributes) { readAttribute(cf, methDesc, attr); } - addMethod(clazzDesc, methDesc, version); + addMethod(clazzDesc, methDesc, version, null); } for (Field f : cf.fields) { if (!include(f.access_flags.flags)) @@ -1781,7 +1875,7 @@ public class CreateSymbols { for (Attribute attr : f.attributes) { readAttribute(cf, fieldDesc, attr); } - addField(clazzDesc, fieldDesc, version); + addField(clazzDesc, fieldDesc, version, null); } } @@ -1840,11 +1934,11 @@ public class CreateSymbols { return (accessFlags & (AccessFlags.ACC_PUBLIC | AccessFlags.ACC_PROTECTED)) != 0; } - private void addClassHeader(ClassDescription clazzDesc, ClassHeaderDescription headerDesc, String version) { + private void addClassHeader(ClassDescription clazzDesc, ClassHeaderDescription headerDesc, String version, String baseline) { //normalize: boolean existed = false; for (ClassHeaderDescription existing : clazzDesc.header) { - if (existing.equals(headerDesc)) { + if (existing.equals(headerDesc) && (!existed || (baseline != null && existing.versions.contains(baseline)))) { headerDesc = existing; existed = true; } @@ -1880,14 +1974,13 @@ public class CreateSymbols { } } - private void addMethod(ClassDescription clazzDesc, MethodDescription methDesc, String version) { + private void addMethod(ClassDescription clazzDesc, MethodDescription methDesc, String version, String baseline) { //normalize: boolean methodExisted = false; for (MethodDescription existing : clazzDesc.methods) { - if (existing.equals(methDesc)) { + if (existing.equals(methDesc) && (!methodExisted || (baseline != null && existing.versions.contains(baseline)))) { methodExisted = true; methDesc = existing; - break; } } methDesc.versions += version; @@ -1896,13 +1989,12 @@ public class CreateSymbols { } } - private void addField(ClassDescription clazzDesc, FieldDescription fieldDesc, String version) { + private void addField(ClassDescription clazzDesc, FieldDescription fieldDesc, String version, String baseline) { boolean fieldExisted = false; for (FieldDescription existing : clazzDesc.fields) { - if (existing.equals(fieldDesc)) { + if (existing.equals(fieldDesc) && (!fieldExisted || (baseline != null && existing.versions.contains(baseline)))) { fieldExisted = true; fieldDesc = existing; - break; } } fieldDesc.versions += version; @@ -2311,6 +2403,7 @@ public class CreateSymbols { } static abstract class FeatureDescription { + int flagsNormalization = ~0; int flags; boolean deprecated; String signature; @@ -2375,7 +2468,7 @@ public class CreateSymbols { @Override public int hashCode() { int hash = 3; - hash = 89 * hash + this.flags; + hash = 89 * hash + (this.flags & flagsNormalization); hash = 89 * hash + (this.deprecated ? 1 : 0); hash = 89 * hash + Objects.hashCode(this.signature); hash = 89 * hash + listHashCode(this.classAnnotations); @@ -2392,7 +2485,7 @@ public class CreateSymbols { return false; } final FeatureDescription other = (FeatureDescription) obj; - if (this.flags != other.flags) { + if ((this.flags & flagsNormalization) != (other.flags & flagsNormalization)) { return false; } if (this.deprecated != other.deprecated) { @@ -3044,6 +3137,7 @@ public class CreateSymbols { } static class MethodDescription extends FeatureDescription { + static int METHODS_FLAGS_NORMALIZATION = ~0; String name; String descriptor; List thrownTypes; @@ -3051,6 +3145,10 @@ public class CreateSymbols { List> classParameterAnnotations; List> runtimeParameterAnnotations; + public MethodDescription() { + flagsNormalization = METHODS_FLAGS_NORMALIZATION; + } + @Override public int hashCode() { int hash = super.hashCode(); @@ -3775,6 +3873,24 @@ public class CreateSymbols { args); break; } + case "build-description-incremental-file": { + if (args.length != 6 && args.length != 7) { + help(); + return ; + } + + if (args.length == 7) { + if ("--normalize-method-flags".equals(args[6])) { + MethodDescription.METHODS_FLAGS_NORMALIZATION = ~(0x100 | 0x20); + } else { + help(); + return ; + } + } + + new CreateSymbols().createIncrementalBaseLineFromDataFile(args[1], args[2], args[3], args[4], "".equals(args[5]) ? null : args[5], args); + break; + } case "build-description-incremental": { if (args.length != 3) { help(); diff --git a/test/langtools/tools/javac/sym/ElementStructureTest.java b/test/langtools/tools/javac/sym/ElementStructureTest.java index 8f0736663df..29776ce28c2 100644 --- a/test/langtools/tools/javac/sym/ElementStructureTest.java +++ b/test/langtools/tools/javac/sym/ElementStructureTest.java @@ -134,10 +134,10 @@ public class ElementStructureTest { (byte) 0x90, (byte) 0xFA, (byte) 0x98, (byte) 0xCD }; static final byte[] hash8 = new byte[] { - (byte) 0x0B, (byte) 0xEB, (byte) 0x16, (byte) 0xF5, - (byte) 0x7F, (byte) 0xB0, (byte) 0x18, (byte) 0xF1, - (byte) 0x78, (byte) 0x11, (byte) 0xED, (byte) 0x30, - (byte) 0x19, (byte) 0x4D, (byte) 0xDE, (byte) 0x8A + (byte) 0x24, (byte) 0x38, (byte) 0x52, (byte) 0x1C, + (byte) 0x5E, (byte) 0x83, (byte) 0x82, (byte) 0xE6, + (byte) 0x41, (byte) 0xC2, (byte) 0xDD, (byte) 0x2A, + (byte) 0xFD, (byte) 0xFF, (byte) 0x5E, (byte) 0x2F }; final static Map version2Hash = new HashMap<>();