JDK-8199912 - jshell /open URL

Michal Vala mvala at redhat.com
Thu Apr 26 13:23:07 UTC 2018


Hi Christian,

thanks for comments.
Updated webrev: https://michalvala.fedorapeople.org/webrevs/JDK-8199912/webrev.01/

I replaced http request with passing proper source to Scanner. The order of if 
condition is by probability of the hit. I'm assuming that simple local file path 
is the most common option, then resource as it's used at the start of the jshell 
and is cheaper than url request, which is last.

I've added also few testcases.

Thoughts?

On 04/26/2018 09:31 AM, Christian Stein wrote:
> Hi Michal,
> 
> 1] I hope so! :)
> 
> 2] Would a simple `java.nio.Files.copy()` using
> `java.net.URL`/`openStream()` suffice?
> 
>    try (var stream = new URL(fileUrl).openStream()) {
>      Files.copy(stream, target);
>    }
> 
> Or a `stream.transferTo(target)` where `target` is piped into the `Scanner`
> instance.
> This would by-pass the dependency to `java.net.http`.
> 
> 3] Mh, try to create a URI/URL and catch `URISyntaxException` and friends?
> 
> 4] When using the `URL.openStream` + `transferTo` methods all http responses
> are encapsulated in `IOExceptions`.
> 
> While typing this response, one could refactor the existing `runFile(...)`
> method
> to only support URIs, local files are just a special case using the
> `file://` protocol.
> 
> Cheers,
> Christian
> 
> 
> 
> On Thu, Apr 26, 2018 at 9:01 AM, Michal Vala <mvala at redhat.com> wrote:
> 
>> Hi,
>> I've been implementing jshell function to open scripts from url -
>> JDK-8199912.
>>
>> Here's the rough working implementation: https://michalvala.fedorapeopl
>> e.org/webrevs/JDK-8199912/webrev.00/
>>
>> Few questions:
>>
>> 1] Is this requirement still valid?
>> 2] Is dependency on java.net.http module ok?
>> 3] Is there any better way how to detect http URL? This is ugly, but I
>> haven't find any better example inside jdk.
>> 4] Any better way how to handle http response status?
>>
>>
>>
>> --
>> Michal Vala
>> OpenJDK QE
>> Red Hat Czech
>>
> 

-- 
Michal Vala
OpenJDK QE
Red Hat Czech


More information about the kulla-dev mailing list