Tests are good. Several comments: 1. Try run something like "hg mv -A" to let Mercurial knows that you are renaming files (SecurityUtils.java and those in login/modules/src) instead of removing some old and creating some new. The current webrev does not show this.
2. It's not a good practice extending a class just to use its static fields/methods. Instead, make the util class final. public class JaasModularClientTest extends SecurityUtils public class SecurityProviderModularTest extends SecurityUtils In fact, if you do find similarities between SecurityProviderModularTest and JaasModularClientTest, try abstract them into a ModularTest class. 3. Please add enough comments to SecurityUtils since it will be reused. For example, move the descriptions of EXPLICIT, AUTO and UNNAMED from test @summary to definition of enum MODULE_TYPE. Thanks Max > On Dec 20, 2015, at 2:10 PM, Sibabrata Sahoo <sibabrata.sa...@oracle.com> > wrote: > > Hi Mandy/Max, > > Here is the updated webrev with very minor change over previous: > http://cr.openjdk.java.net/~asmotrak/siba/8130360/webrev.04/ > > Thanks > Siba > > -----Original Message----- > From: Sibabrata Sahoo > Sent: Sunday, December 20, 2015 1:34 AM > To: Mandy Chung; Weijun Wang > Cc: Valerie Peng; jigsaw-dev@openjdk.java.net; security-...@openjdk.java.net > Subject: RE: [9] RFR:8130360: Add tests to verify 3rd party security > providers if they are in signed/unsigned modular JARs > > Hi Mandy/Max, > > Please review the updated webrev: > http://cr.openjdk.java.net/~asmotrak/siba/8130360/webrev.03/ > > "3rd party security providers" Test change includes: > - Test are converted to use TestNG framework. > - java/security/modules/JigsawSecurityUtils.java, renamed to > "SecurityUtils.java". Proper care required while pushing the change because > "JigsawSecurityUtils.java" is an existing file in JAKE repository. > - Common reusable operations moved to "SecurityUtils.java" > - All the following comments associated. > > > Based on the recent comments, I also did some changes to the "JAAS Modular > test" because both test are very similar to each other. The change includes: > - Flat folder structure. It places the Test as well as all its dependency in > a single folder. i.e. "javax/security/auth/login/modules". That also means > "javax/security/auth/login/modules/src/" and all its subfolders need to be > removed. > - Test converted to use TestNG framework. > > Thanks, > Siba > > -----Original Message----- > From: Mandy Chung > Sent: Wednesday, December 09, 2015 11:55 PM > To: Sibabrata Sahoo > Cc: Valerie Peng; jigsaw-dev@openjdk.java.net; security-...@openjdk.java.net > Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party security > providers if they are in signed/unsigned modular JARs > > Some high-level comment: > 1. I suggest to rename JigsawSecurityUtils.java to SecurityUtils.java. The > Jigsaw prefix is not needed. > 2. SecurityProviderModularTest does the setup and launch the test with a set > of different settings. I suggest to convert it to TestNG and you can > reference the existing test/jdk/jigsaw tests which are a driver test that > does the compilation and setup with @BeforeTest and @Test for each run test > together with @DataProvider. [1] is a simple test for you to get started. > > Some comments on JigsawSecurityUtils.java: > 71 Arrays.asList(options).stream().forEach(o -> command.append(SPACE > + o)); > > this can be replaced with > Arrays.stream(options).collect(Collectors.joining(SPACE)); > > 111 System.out.println(String.format( > > You can do: System.out.format(….) instead; > > Mandy > [1] > http://hg.openjdk.java.net/jigsaw/jake/jdk/file/c1d583efa466/test/jdk/jigsaw/reflect/Proxy/ProxyTest.java > >> On Dec 9, 2015, at 10:02 AM, Sibabrata Sahoo <sibabrata.sa...@oracle.com> >> wrote: >> >> Hi Valerie, >> >> Here is the updated webrev: >> http://cr.openjdk.java.net/~ntv/siba/webrev.00/ >> >> Changes applied as per previous comments. >> - File names are modified and do not include the term JCE. >> - Source folder structure is flat now and all belongs to >> "java/security/Provider" folder. >> - Sign jar functionality removed. >> >> Thanks, >> Siba >> >> -----Original Message----- >> From: Valerie Peng >> Sent: Wednesday, December 09, 2015 5:37 AM >> To: Sibabrata Sahoo >> Cc: jigsaw-dev@openjdk.java.net; security-...@openjdk.java.net; Alan >> Bateman >> Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party security >> providers if they are in signed/unsigned modular JARs >> >> Hi Siba, >> >> Here are some nits: >> >> I think it's somewhat misleading to use the term JCE here as what you are >> testing here is just security provider loading. JCE is more about security >> providers supporting export-controlled services/algorithms. >> Since your provider is just an empty one, I don't think u need to sign it >> (again, it's only for JCE providers). >> You can remove a lot of code as a result. >> Also, your directory seems a bit deep, e.g. >> modules/src/jceprovidermodule/provider/TestJCEProvider.java vs >> modules/src/jceclientmodule/provider/TestJCEProvider.java. Can all of these >> files be under the same directory instead of spreading over several level of >> subdirectories? The file names are different enough to tell which is which. >> Other regression tests for provider loading functionality are under >> test/java/security/Provider. Easier to find this way. >> >> Can you please make the appropriate changes, e.g. don't use the term JCE, >> get rid of the signing, and simplify the directory structure if possible? >> >> Thanks, >> Valerie >> >> On 12/8/2015 2:04 PM, Valerie Peng wrote: >>> Right, that'd be my expectation as well. Sounds like everything works. >>> I will change to look at your latest webrev. >>> Valerie >>> >>> On 12/8/2015 6:09 AM, Sibabrata Sahoo wrote: >>>> Hi Valerie, >>>> >>>> Here is the updated webrev: >>>> http://cr.openjdk.java.net/~ralexander/8130360/webrev.00/ >>>> >>>> Now the modular behavior for the test works as per expectation >>>> through JAKE build with the following condition. >>>> If the provider jar is available under ModulePath then the >>>> "java.security" file should have the provider configuration entry as >>>> ProviderName while in case of ClassPath the entry should hold the >>>> full class name. >>>> >>>> Thanks, >>>> Siba >>>> >>>> -----Original Message----- >>>> From: Valerie Peng >>>> Sent: Tuesday, December 08, 2015 4:46 AM >>>> To: Sibabrata Sahoo >>>> Cc: Alan Bateman; security-...@openjdk.java.net; >>>> jigsaw-dev@openjdk.java.net >>>> Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party security >>>> providers if they are in signed/unsigned modular JARs >>>> >>>> Siba, >>>> >>>> I have just started to review this webrev and not done yet. >>>> As for your question, the java.security file in OpenJDK9 still uses >>>> the provider class names instead of provider names. Are you talking >>>> about the java.security file in Jigsaw? Which build (OpenJDK or >>>> Jigsaw) have you tested against. I am pretty sure that I tested the >>>> 3rd party provider on classpath setting when I worked on the 7191662 >>>> changes. >>>> >>>> Supposedly, if the jar files are available on class path, then you >>>> should specify its full *class name* in the java.security file for >>>> it to be instantiated. Otherwise, how would it find the class? Only >>>> the classes discovered by ServiceLoader can be identified using the >>>> provider name (which is different from the class name referred >>>> above). So, in your scenario, that would be >>>> "provider.TestJCEProvider" instead of "TEST". >>>> >>>> If you still run into problems, try enable the java security debug >>>> flag and u should get a good idea why it isn't loaded. Let me know >>>> if you still have questions. >>>> >>>> Thanks, >>>> Valerie >>>> >>>> On 11/30/2015 6:47 AM, Sibabrata Sahoo wrote: >>>>> I would like to know more about this. As far, I can see the >>>>> "java.security" provider configuration available with JDK9, it >>>>> holds provider names instead of provider class names. In that case >>>>> how it resolve the fall back? >>>>> >>>>> Thanks, >>>>> Siba >>>>> >>>>> -----Original Message----- >>>>> From: Alan Bateman >>>>> Sent: Monday, November 30, 2015 4:54 PM >>>>> To: Sibabrata Sahoo; security-...@openjdk.java.net; >>>>> jigsaw-dev@openjdk.java.net >>>>> Subject: Re: [9] RFR:8130360: Add tests to verify 3rd party >>>>> security providers if they are in signed/unsigned modular JARs >>>>> >>>>> On 30/11/2015 11:13, Sibabrata Sahoo wrote: >>>>>> Here is the updated webrev: >>>>>> http://cr.openjdk.java.net/~asmotrak/siba/8130360/webrev.02/ >>>>>> >>>>>> I have one question: >>>>>> What should be the behavior when the older version of 3rd party >>>>>> JCE provider jar file(without service descriptor >>>>>> "META-INF/services/*"& working with<= JDK8) configured by >>>>>> "java.security" file, will be place in CLASS_PATH, running through >>>>>> JDK9 and the client is using Security.getProvider() to look for >>>>>> the provider? >>>>>> >>>>>> Currently the scenario fails to find the JCE provider. Is this >>>>>> right behavior? If it is, then jdk9 is not backward compatible to >>>>>> find the security provider provided through older jar files from >>>>>> CLASS_PATH. >>>>>> >>>>> The JCE work in JDK 9 (via JDK-7191662) was meant to address this >>>>> point by falling back and attempting to load the class name >>>>> specified via the security.provider.<N> properties in the >>>>> java.security file. I'm sure Valerie can say more about this. >>>>> >>>>> -Alan >