RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Magnus Ihse Bursie
A lot (but not all) of the data in make/data is tied to a specific module. For 
instance, the publicsuffixlist is used by java.base, and fontconfig by 
java.desktop. (A few directories, like mainmanifest, is *actually* used by make 
for the whole build.) 

These data files should move to the module they belong to. The are, after all, 
"source code" for that module that is "compiler" into resulting deliverables, 
for that module. (But the "source code" language is not Java or C, but 
typically a highly domain specific language or data format, and the 
"compilation" is, often, a specialized transformation.) 

This misplacement of the data directory is most visible at code review time. 
When such data is changed, most of the time build-dev (or the new build label) 
is involved, even though this has nothing to do with the build. While this is 
annoying, a worse problem is if the actual team that needs to review the patch 
(i.e., the team owning the module) is missed in the review.

-

Commit messages:
 - Update references in test
 - Step 2: Update references
 - First stage, move actual data files

Changes: https://git.openjdk.java.net/jdk/pull/1611/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1611&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257733
  Stats: 78 lines in 1575 files changed: 3 ins; 1 del; 74 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1611.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1611/head:pull/1611

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Magnus Ihse Bursie
On Thu, 3 Dec 2020 23:44:20 GMT, Magnus Ihse Bursie  wrote:

> A lot (but not all) of the data in make/data is tied to a specific module. 
> For instance, the publicsuffixlist is used by java.base, and fontconfig by 
> java.desktop. (A few directories, like mainmanifest, is *actually* used by 
> make for the whole build.) 
> 
> These data files should move to the module they belong to. The are, after 
> all, "source code" for that module that is "compiler" into resulting 
> deliverables, for that module. (But the "source code" language is not Java or 
> C, but typically a highly domain specific language or data format, and the 
> "compilation" is, often, a specialized transformation.) 
> 
> This misplacement of the data directory is most visible at code review time. 
> When such data is changed, most of the time build-dev (or the new build 
> label) is involved, even though this has nothing to do with the build. While 
> this is annoying, a worse problem is if the actual team that needs to review 
> the patch (i.e., the team owning the module) is missed in the review.

To facilitate review, here is a list on how the different directories under 
make/data has moved.

**To java.base:**
* blacklistedcertsconverter
* cacerts
* characterdata
* charsetmapping
* cldr
* currency
* lsrdata
* publicsuffixlist
* tzdata
* unicodedata

**To java.desktop:**
* dtdbuilder
* fontconfig
* macosxicons
* x11wrappergen

**To jdk.compiler:**
* symbols

**To jdk.jdi:**
* jdwp

**Remaining in make:**
* bundle
* docs-resources
* macosxsigning
* mainmanifest

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Alan Bateman
On Fri, 4 Dec 2020 10:29:48 GMT, Magnus Ihse Bursie  wrote:

>> A lot (but not all) of the data in make/data is tied to a specific module. 
>> For instance, the publicsuffixlist is used by java.base, and fontconfig by 
>> java.desktop. (A few directories, like mainmanifest, is *actually* used by 
>> make for the whole build.) 
>> 
>> These data files should move to the module they belong to. The are, after 
>> all, "source code" for that module that is "compiler" into resulting 
>> deliverables, for that module. (But the "source code" language is not Java 
>> or C, but typically a highly domain specific language or data format, and 
>> the "compilation" is, often, a specialized transformation.) 
>> 
>> This misplacement of the data directory is most visible at code review time. 
>> When such data is changed, most of the time build-dev (or the new build 
>> label) is involved, even though this has nothing to do with the build. While 
>> this is annoying, a worse problem is if the actual team that needs to review 
>> the patch (i.e., the team owning the module) is missed in the review.
>
> To facilitate review, here is a list on how the different directories under 
> make/data has moved.
> 
> **To java.base:**
> * blacklistedcertsconverter
> * cacerts
> * characterdata
> * charsetmapping
> * cldr
> * currency
> * lsrdata
> * publicsuffixlist
> * tzdata
> * unicodedata
> 
> **To java.desktop:**
> * dtdbuilder
> * fontconfig
> * macosxicons
> * x11wrappergen
> 
> **To jdk.compiler:**
> * symbols
> 
> **To jdk.jdi:**
> * jdwp
> 
> **Remaining in make:**
> * bundle
> * docs-resources
> * macosxsigning
> * mainmanifest

Are you proposing any text or guidelines to be added to JEP 201 as part of this?

I think the location of jdwp.spec and its location in the build tree may need 
to be looked at again. It was convenient to have it in the make tree, from 
which the protocol spec, and source code for the front end (module jdk.jdi) and 
a header file for the back end (module jdk.jdwp.agent) are created. Given that 
the JDWP protocol is standard (not JDK-specific) then there may be an argument 
to put it in src/java.se instead of a JDK-specific module.

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: JDK-8257401: Use switch expressions in jdk.internal.net.http and java.net.http [v5]

2020-12-04 Thread Kartik Ohri
On Wed, 2 Dec 2020 16:35:24 GMT, Daniel Fuchs  wrote:

>> Kartik Ohri has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Align -> and remove trailing whitespace
>
> Marked as reviewed by dfuchs (Reviewer).

@pconcannon, If everything is in order, can you please approve the changes on 
Github. I'll then issue the integrate command. Thanks.

-

PR: https://git.openjdk.java.net/jdk/pull/1364


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Magnus Ihse Bursie
On Fri, 4 Dec 2020 11:14:49 GMT, Alan Bateman  wrote:

>> To facilitate review, here is a list on how the different directories under 
>> make/data has moved.
>> 
>> **To java.base:**
>> * blacklistedcertsconverter
>> * cacerts
>> * characterdata
>> * charsetmapping
>> * cldr
>> * currency
>> * lsrdata
>> * publicsuffixlist
>> * tzdata
>> * unicodedata
>> 
>> **To java.desktop:**
>> * dtdbuilder
>> * fontconfig
>> * macosxicons
>> * x11wrappergen
>> 
>> **To jdk.compiler:**
>> * symbols
>> 
>> **To jdk.jdi:**
>> * jdwp
>> 
>> **Remaining in make:**
>> * bundle
>> * docs-resources
>> * macosxsigning
>> * mainmanifest
>
> Are you proposing any text or guidelines to be added to JEP 201 as part of 
> this?
> 
> I think the location of jdwp.spec and its location in the build tree may need 
> to be looked at again. It was convenient to have it in the make tree, from 
> which the protocol spec, and source code for the front end (module jdk.jdi) 
> and a header file for the back end (module jdk.jdwp.agent) are created. Given 
> that the JDWP protocol is standard (not JDK-specific) then there may be an 
> argument to put it in src/java.se instead of a JDK-specific module.

@AlanBateman Well, I don't know about updating JEP 201. Do you mean that `data` 
should be added to the list `classes`, `native`, `conf`, `legal` as presented 
under the heading "New scheme"? That list does not seem to have been kept up to 
date anyway. A quick glance also shows that we now have at least `man` and 
`lib` as well in this place. So either we say there's precedence for not 
updating the list, in which case I will do nothing. Or we should bring JEP 201 
up-to-date with current practices, which then of course should include `data` 
but also all other new directories that has been added since JEP 201 was 
written.

I really don't care either way, but my personal opinion is that JEP 201 
presented a view on how the plan was to re-organize things, given the knowledge 
and state of affairs at that time, but how we keep the source code organized 
and structured from there on, is a living, day-to-day engineering effort that 
is just hampered by having to update a formal document, that serves little 
purpose now that it has been implemented.

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Magnus Ihse Bursie
On Fri, 4 Dec 2020 11:37:41 GMT, Magnus Ihse Bursie  wrote:

>> Are you proposing any text or guidelines to be added to JEP 201 as part of 
>> this?
>> 
>> I think the location of jdwp.spec and its location in the build tree may 
>> need to be looked at again. It was convenient to have it in the make tree, 
>> from which the protocol spec, and source code for the front end (module 
>> jdk.jdi) and a header file for the back end (module jdk.jdwp.agent) are 
>> created. Given that the JDWP protocol is standard (not JDK-specific) then 
>> there may be an argument to put it in src/java.se instead of a JDK-specific 
>> module.
>
> @AlanBateman Well, I don't know about updating JEP 201. Do you mean that 
> `data` should be added to the list `classes`, `native`, `conf`, `legal` as 
> presented under the heading "New scheme"? That list does not seem to have 
> been kept up to date anyway. A quick glance also shows that we now have at 
> least `man` and `lib` as well in this place. So either we say there's 
> precedence for not updating the list, in which case I will do nothing. Or we 
> should bring JEP 201 up-to-date with current practices, which then of course 
> should include `data` but also all other new directories that has been added 
> since JEP 201 was written.
> 
> I really don't care either way, but my personal opinion is that JEP 201 
> presented a view on how the plan was to re-organize things, given the 
> knowledge and state of affairs at that time, but how we keep the source code 
> organized and structured from there on, is a living, day-to-day engineering 
> effort that is just hampered by having to update a formal document, that 
> serves little purpose now that it has been implemented.

And I can certainly move jdwp.spec to java.base instead. That's the reason I 
need input on this: All I know is that is definitely not the responsibility of 
the Build Group to maintain that document, and I made my best guess at where to 
place it.

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Alan Bateman
On Fri, 4 Dec 2020 11:38:51 GMT, Magnus Ihse Bursie  wrote:

> And I can certainly move jdwp.spec to java.base instead. 

If jdwp.spec has to move to the src tree then src/java.se is probably the most 
suitable home because Java SE specifies JDWP as an optional interface. So 
nothing to do with java.base and the build will need to continue to generate 
the sources for the front-end (jdk.jdi) and back-end (jdk.jdwp.agent) as they 
implement the protocol.

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: JDK-8257401: Use switch expressions in jdk.internal.net.http and java.net.http [v5]

2020-12-04 Thread Patrick Concannon
On Fri, 4 Dec 2020 11:22:34 GMT, Kartik Ohri 
 wrote:

> @pconcannon, If everything is in order, can you please approve the changes on 
> Github. I'll then issue the integrate command. Thanks.

Hi @amCap1712, you will have to /integrate first, and then afterwards I will 
sponsor

-

PR: https://git.openjdk.java.net/jdk/pull/1364


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Erik Joelsson
On Fri, 4 Dec 2020 14:03:08 GMT, Erik Joelsson  wrote:

>>> And I can certainly move jdwp.spec to java.base instead. 
>> 
>> If jdwp.spec has to move to the src tree then src/java.se is probably the 
>> most suitable home because Java SE specifies JDWP as an optional interface. 
>> So nothing to do with java.base and the build will need to continue to 
>> generate the sources for the front-end (jdk.jdi) and back-end 
>> (jdk.jdwp.agent) as they implement the protocol.
>
> My understanding of JEPs is that they should be viewed as living documents. 
> In this case, I think it's perfectly valid to update JEP 201 with additional 
> source code layout. Both for this and for the other missing dirs.

Regarding the chosen layout. Did you consider following the existing pattern of 
src//{share,}/data?

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Erik Joelsson
On Fri, 4 Dec 2020 12:30:02 GMT, Alan Bateman  wrote:

>> And I can certainly move jdwp.spec to java.base instead. That's the reason I 
>> need input on this: All I know is that is definitely not the responsibility 
>> of the Build Group to maintain that document, and I made my best guess at 
>> where to place it.
>
>> And I can certainly move jdwp.spec to java.base instead. 
> 
> If jdwp.spec has to move to the src tree then src/java.se is probably the 
> most suitable home because Java SE specifies JDWP as an optional interface. 
> So nothing to do with java.base and the build will need to continue to 
> generate the sources for the front-end (jdk.jdi) and back-end 
> (jdk.jdwp.agent) as they implement the protocol.

My understanding of JEPs is that they should be viewed as living documents. In 
this case, I think it's perfectly valid to update JEP 201 with additional 
source code layout. Both for this and for the other missing dirs.

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Integrated: JDK-8257401: Use switch expressions in jdk.internal.net.http and java.net.http

2020-12-04 Thread Kartik Ohri
On Sat, 21 Nov 2020 11:45:42 GMT, Kartik Ohri 
 wrote:

> Hi!
> Kindly review this patch to replace switch statements with switch expressions 
> (where it makes sense) in the http client modules. The rationale is to 
> improve readability of the code.
> Regards,
> Kartik

This pull request has now been integrated.

Changeset: ac549008
Author:Kartik Ohri 
URL:   https://git.openjdk.java.net/jdk/commit/ac549008
Stats: 271 lines in 17 files changed: 2 ins; 124 del; 145 mod

8257401: Use switch expressions in jdk.internal.net.http and java.net.http

Reviewed-by: chegar, dfuchs, pconcannon

-

PR: https://git.openjdk.java.net/jdk/pull/1364


Re: RFR: 8257733: Move module-specific data from make to respective module

2020-12-04 Thread Magnus Ihse Bursie
On Fri, 4 Dec 2020 14:05:54 GMT, Erik Joelsson  wrote:

>> My understanding of JEPs is that they should be viewed as living documents. 
>> In this case, I think it's perfectly valid to update JEP 201 with additional 
>> source code layout. Both for this and for the other missing dirs.
>
> Regarding the chosen layout. Did you consider following the existing pattern 
> of src//{share,}/data?

@erikj79 Good point, that makes much more sense.

-

PR: https://git.openjdk.java.net/jdk/pull/1611


Re: RFR: 8257724: Incorrect package of the linked class in BaseSSLSocketImpl

2020-12-04 Thread Bradford Wetmore
On Thu, 3 Dec 2020 20:44:46 GMT, Xue-Lei Andrew Fan  wrote:

> In sun.security.ssl.BaseSSLSocketImpl.java, the package of SocketChannel in 
> the getChannel() spec is java.nio, which is incorrect. It should be 
> java.nio.channels.
> 
> Doc cleanup only, no new regression test.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8257724

Marked as reviewed by wetmore (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/1605


Re: RFR: 8257724: Incorrect package of the linked class in BaseSSLSocketImpl

2020-12-04 Thread Valerie Peng
On Thu, 3 Dec 2020 20:44:46 GMT, Xue-Lei Andrew Fan  wrote:

> In sun.security.ssl.BaseSSLSocketImpl.java, the package of SocketChannel in 
> the getChannel() spec is java.nio, which is incorrect. It should be 
> java.nio.channels.
> 
> Doc cleanup only, no new regression test.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8257724

Marked as reviewed by valeriep (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/1605


Integrated: 8257724: Incorrect package of the linked class in BaseSSLSocketImpl

2020-12-04 Thread Xue-Lei Andrew Fan
On Thu, 3 Dec 2020 20:44:46 GMT, Xue-Lei Andrew Fan  wrote:

> In sun.security.ssl.BaseSSLSocketImpl.java, the package of SocketChannel in 
> the getChannel() spec is java.nio, which is incorrect. It should be 
> java.nio.channels.
> 
> Doc cleanup only, no new regression test.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8257724

This pull request has now been integrated.

Changeset: fcc84795
Author:Xue-Lei Andrew Fan 
URL:   https://git.openjdk.java.net/jdk/commit/fcc84795
Stats: 4 lines in 1 file changed: 1 ins; 0 del; 3 mod

8257724: Incorrect package of the linked class in BaseSSLSocketImpl

Reviewed-by: valeriep, wetmore

-

PR: https://git.openjdk.java.net/jdk/pull/1605


Re: RFR: 8257725: No throws of SSLHandshakeException [v2]

2020-12-04 Thread Xue-Lei Andrew Fan
> In the StatusResponseManager.get() method spec, the SSLHandshakeException is 
> declared as throws exception. However, no such checked-exception would be 
> thrown in the method implementation. 
> 
> /** 
> ... 
>  * @throws SSLHandshakeException if an unsupported 
>  * {@code CertStatusRequest} is provided. 
>  */ 
> Map get(CertStatusRequestType type, 
> CertStatusRequest request, X509Certificate[] chain, long delay, 
> TimeUnit unit) {
> 
> As the exception is a checked-exception, and is not declared in the method, 
> it is safe to remove the throws spec.
> 
> Cleanup only, no new regression test.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8257725

Xue-Lei Andrew Fan has updated the pull request with a new target base due to a 
merge or a rebase. The incremental webrev excludes the unrelated changes 
brought in by the merge/rebase. The pull request contains three additional 
commits since the last revision:

 - Merge
 - 8257725: No throws of SSLHandshakeException
 - 8257724: Incorrect package of the linked class in BaseSSLSocketImpl

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1607/files
  - new: https://git.openjdk.java.net/jdk/pull/1607/files/13d84784..b5fc532f

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1607&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1607&range=00-01

  Stats: 2303 lines in 75 files changed: 1713 ins; 207 del; 383 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1607.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1607/head:pull/1607

PR: https://git.openjdk.java.net/jdk/pull/1607


Integrated: 8257725: No throws of SSLHandshakeException

2020-12-04 Thread Xue-Lei Andrew Fan
On Thu, 3 Dec 2020 20:58:55 GMT, Xue-Lei Andrew Fan  wrote:

> In the StatusResponseManager.get() method spec, the SSLHandshakeException is 
> declared as throws exception. However, no such checked-exception would be 
> thrown in the method implementation. 
> 
> /** 
> ... 
>  * @throws SSLHandshakeException if an unsupported 
>  * {@code CertStatusRequest} is provided. 
>  */ 
> Map get(CertStatusRequestType type, 
> CertStatusRequest request, X509Certificate[] chain, long delay, 
> TimeUnit unit) {
> 
> As the exception is a checked-exception, and is not declared in the method, 
> it is safe to remove the throws spec.
> 
> Cleanup only, no new regression test.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8257725

This pull request has now been integrated.

Changeset: d76039d3
Author:Xue-Lei Andrew Fan 
URL:   https://git.openjdk.java.net/jdk/commit/d76039d3
Stats: 3 lines in 1 file changed: 0 ins; 3 del; 0 mod

8257725: No throws of SSLHandshakeException

Reviewed-by: jnimeh

-

PR: https://git.openjdk.java.net/jdk/pull/1607


RFR: 8257788: Class fields could be local in the SunJSSE provider

2020-12-04 Thread Xue-Lei Andrew Fan
In the SunJSSE provider implementation, there are a few class fields are not 
used other than the constructors. Those fields could be removed and replaced 
with local variables.

Bug: https://bugs.openjdk.java.net/browse/JDK-8257788

-

Commit messages:
 - 8257788: Class fields could be local in the SunJSSE provider

Changes: https://git.openjdk.java.net/jdk/pull/1634/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1634&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257788
  Stats: 15 lines in 4 files changed: 0 ins; 11 del; 4 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1634.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1634/head:pull/1634

PR: https://git.openjdk.java.net/jdk/pull/1634


Re: RFR: 8257788: Class fields could be local in the SunJSSE provider

2020-12-04 Thread Hai-May Chao
On Fri, 4 Dec 2020 22:58:07 GMT, Xue-Lei Andrew Fan  wrote:

> In the SunJSSE provider implementation, there are a few class fields are not 
> used other than the constructors. Those fields could be removed and replaced 
> with local variables.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8257788

Looks good to me.

-

PR: https://git.openjdk.java.net/jdk/pull/1634


Re: RFR: 8242332: Add SHA3 support to SunPKCS11 provider [v2]

2020-12-04 Thread Valerie Peng
> Could someone please help review this RFE? SunPKCS11 provider is updated with 
> SHA-3 support, including MessageDigest, Hmac Mac, DSA/RSA/RSASSA-PSS/ECDSA 
> Signature, and Hmac KeyGenerator.
> 
> As SHA-3 can be used as drop-in replacement for SHA-2 which are already 
> supported by SunPKCS11 provider, the changes for MessageDigest, Mac, and 
> Signature are straightforward. P11KeyGenerator class is updated to support 
> general Hmac key generation including SHA-3 and more. 
> 
> While testing against NSS 3.57, there are some unexpected NSS errors with 
> CKM_ECDSA_SHA[224/256/384/512/3_224/3_256/3_384/3_512] and 
> CKM_DSA_SHA[224/256/384/512/3_224/3_256/3_384/3_512], so I disabled those 
> mechanisms in the NSS config file for regression tests. For ECDSA signatures, 
> SunPKCS11 provider will fallback to CKM_ECDSA and do the digesting ourselves.
> 
> Thanks,
> Valerie

Valerie Peng has updated the pull request incrementally with one additional 
commit since the last revision:

  Removed commented out code and minor cleanups on 2 RSASSA-PSS-related tests

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1546/files
  - new: https://git.openjdk.java.net/jdk/pull/1546/files/7b0d7882..4f7488b6

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1546&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1546&range=00-01

  Stats: 5 lines in 2 files changed: 0 ins; 2 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1546.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1546/head:pull/1546

PR: https://git.openjdk.java.net/jdk/pull/1546