I thought to take a HashMap, because in the save method you could read the keys - but if the load method also returns String[] and the order of credentials is well known varags might be ok.
kind regards Tobias > Am 25.02.2015 um 05:14 schrieb Maxim Solodovnik <solomax...@gmail.com>: > > Actually load() method return String[] (actually with arbitrary number of > elements and arbitrary order) so I see no issue here, You read parameters > in the same order as you wright them. > Map<String,String> will make things worst IMHO since the order will not be > the same > > On Wed, Feb 25, 2015 at 4:16 AM, Tobias Soloschenko < > tobiassolosche...@googlemail.com> wrote: > >> Hi Maxim, >> >> I think this isn't a good idea because the order in which the arguments >> are added to the save method is important - and what if you want to let one >> argument away? Then the rest would not used for their purpose. >> >> Instead I would add another method save method that takes a Map with key >> value pairs (key are used to identify the values) >> map.put("username","tom"); >> map.put("password","secret); >> map.put("host","127.0.0.1"); >> >> the save method could be invoked internally with >> #save(map.get("username"),map.get("password")); >> >> Another way: >> >> Oracle uses system properties - (http://docs.oracle.com/ >> javase/7/docs/api/java/net/doc-files/net-properties.html) >> System.setProperty("org.apache.auth.username","tom"); >> System.setProperty("org.apache.auth.password","secret"); >> the save method could be invoked internally with >> #save(System.getProperty("org.apache.auth.username"),System. >> getProperty("org.apache.auth.username")); >> >> kind regards >> >> Tobias >> >> Am 24.02.15 um 17:09 schrieb Maxim Solodovnik: >> >> Hello All, >>> >>> recently I have proposed the patch to reduce copy/paste while implementing >>> custom IAuthenticationStrategy. >>> >>> Actually this interface have 2 methods which are not correlate to each >>> other >>> String[] load(); >>> void save(final String username, final String password); >>> >>> in fact this is getter and setter but with different signatures >>> The change I would like to propose is to replace (in Wicket7) >>> void save(final String username, final String password); >>> with >>> void save(final String... credentials); >>> >>> this will allow to easily store additional credentials (like domain) and >>> will not introduce the code break since previous calls will work as >>> expected >>> >>> What do you think? > > > -- > WBR > Maxim aka solomax