I see.

One more question: Since the osMap content is not changed, is there a special 
reason you move the code from a static block into a static method?

Thanks
Max

> On Aug 15, 2018, at 3:07 PM, sha.ji...@oracle.com wrote:
> 
> On 2018/8/15 14:54, Weijun Wang wrote:
>> I notice one behavior change in PKCS11Test.java.
>> 
>>  693     private static String[] getNssLibPaths(String osId) {
>>  694         String[] preferablePaths = getPreferableNssLibPaths(osId);
>>  695         if (preferablePaths.length != 0) {
>>  696             return preferablePaths;
>>  697         } else {
>>  698             return getOsMap().get(osId);
>>  699         }
>>  700     }
>> 
>> If getPreferableNssLibPaths(osId) returns a non-empty array, it seems you 
>> will not look at osMap at all. This means if the system property is set but 
>> it does not contain NSS libraries you will not look into osMap as a 
>> fallback. Is this intended?
> Yes.
> 
> I assume user have specified the full libs. If the specified libs are not 
> enough, that may be a user's mistake.
> If it allows the tests work with custom libs and system libs, that may be 
> confused.
> 
> Best regards,
> John Jiang
> 
>> 
>> Thanks
>> Max
>> 
>> 
>>> On Aug 15, 2018, at 2:45 PM, sha.ji...@oracle.com wrote:
>>> 
>>> Hi Max,
>>> Thanks for your comments very much!
>>> 
>>> Please review this version: 
>>> http://cr.openjdk.java.net/~jjiang/8164639/werbrev.03/
>>> All of your comments are addressed.
>>> 
>>> Assume external developers have no JIB jar, the artifact resolving fails 
>>> quickly. The tests will be skipped for this case.
>>> 
>>> Best regards,
>>> John Jiang
>>> 
>>> On 2018/8/15 11:23, Weijun Wang wrote:
>>>> Two comments on PKCS11Test.java:
>>>> 
>>>> First,
>>>> 
>>>>  865     private static String fetchNssLib(Class<?> clazz) {
>>>>  866         try {
>>>>  867             String path = 
>>>> ArtifactResolver.resolve(clazz).entrySet().stream()
>>>>  868                     .findAny().get().getValue() + File.separator + 
>>>> "nsslib"
>>>>  869                     + File.separator;
>>>>  870             return path;
>>>>  871         } catch (ArtifactResolverException e) {
>>>>  872             throw new RuntimeException("Fetch artifact failed: " + 
>>>> clazz
>>>>  873                     + "\nPlease make sure the artifact is available "
>>>>  874                     + "and JIB jar is in the classpath", e);
>>>>  875         }
>>>>  876     }
>>>> 
>>>> If an external developer is running this test and cannot download the 
>>>> artifact (either because there's no JIB jar or cannot access the server), 
>>>> will this test fail?
>>>> 
>>>> If yes, this is not a good idea. I'm OK with the test succeed with a 
>>>> warning (even if no one notice it) but failure is bad.
>>>> 
>>>> Second,
>>>> 
>>>>  666         osMap.put("SunOS-sparc-32",
>>>>  667                 getNssLibPaths(new String[] { "/usr/lib/mps/" }));
>>>>  ...
>>>> 
>>>> We needn't call getNssLibPaths() for every platform, especially, the 
>>>> fetchNssLib() action should only run on the current platform. We can 
>>>> simply add something after these existing lines
>>>> 
>>>>  309         String osid = osName + "-"
>>>>  310                 + props.getProperty("os.arch") + "-" + 
>>>> props.getProperty("sun.arch.data.model");
>>>>  311         String[] nssLibDirs = osMap.get(osid);
>>>> 
>>>> For example,
>>>> 
>>>>     String[] nssLibDirs = expandDirs(osMap.get(osid));
>>>> 
>>>> and let expandDirs() to do the test.nss.lib.paths search and artifact 
>>>> downloading.
>>>> 
>>>> REAME is good, although I would like to see more blank lines.
>>>> 
>>>> Thanks
>>>> Max
>>>> 
>>>>> On Aug 15, 2018, at 10:13 AM, sha.ji...@oracle.com wrote:
>>>>> 
>>>>> Thanks for the comments!
>>>>> Please take a look the updated webrev: 
>>>>> http://cr.openjdk.java.net/~jjiang/8164639/webrev.02/
>>>>> Only README was adjusted.
>>>>> 
>>>>> Best regards,
>>>>> John Jiang
>>>>> On 2018/8/14 23:48, Rajan Halade wrote:
>>>>>> Few minor comments on README:
>>>>>> 
>>>>>> - Please leave an empty line after each numbered section
>>>>>> - I would suggest to update #2 to have general instruction on use of 
>>>>>> artifactory. Something like
>>>>>> 
>>>>>> 2. Pre-built NSS libraries from artifactory server
>>>>>>    If the value of system property test.nss.lib.paths is null then tests 
>>>>>> will try
>>>>>>    to download pre-built NSS libraries from artifactory server.
>>>>>>    Currently, test only looks for libraries for Windows and MacOSX on 
>>>>>> artifactory.
>>>>>>    Please note that, JIB jar MUST be present in classpath when 
>>>>>> downloading the libraries.
>>>>>> 
>>>>>> Other changes look good to me.
>>>>>> 
>>>>>> Thanks,
>>>>>> Rajan
>>>>>> 
>>>>>> On 8/14/18 4:40 AM, sha.ji...@oracle.com wrote:
>>>>>>> Hi Max,
>>>>>>> Please review the new webrev: 
>>>>>>> http://cr.openjdk.java.net/~jjiang/8164639/webrev.01/
>>>>>>> 
>>>>>>> The new system property has been renamed to test.nss.lib.paths, and it 
>>>>>>> supports multiple paths.
>>>>>>> Currently, it cannot download the artifacts outside Oracle network. 
>>>>>>> This affects the test executions on Windows and MacOSX.
>>>>>>> I added a block to README for clarifying something on getting NSS 
>>>>>>> libraries.
>>>>>>> 
>>>>>>> Best regards,
>>>>>>> John Jiang
>>>>>>> On 2018/8/13 16:48, Weijun Wang wrote:
>>>>>>>> Sorry, more questions:
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Aug 13, 2018, at 3:36 PM, sha.ji...@oracle.com
>>>>>>>>>  wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> Is there an artifact server available on the open internet?
>>>>>>>>>> 
>>>>>>>>> It's transparent to me. @Artifact tool delegates the downloading.
>>>>>>>>> 
>>>>>>>> Have you tried running the test outside Oracle?
>>>>>>>> 
>>>>>>>> Have you tried submitting the change to Mach5 as a non-Oracle 
>>>>>>>> developer? (i.e. using submit-repo)
>>>>>>>> 
>>>>>>>> While I am glad to see these files removed from the repo, I hope 
>>>>>>>> people still have a chance to run the tests.
>>>>>>>> 
>>>>>>>> Thanks
>>>>>>>> Max
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>> 
> 

Reply via email to