In an effort of making things more flexible to specific runtime and deployment environments, I'd like to make some initializer/factory method calls more flexible.
The only two methods that are really important that come to mind are: SessionManager#start(InetAddress inetAddress) SecurityManager#getSubject() These are limited in how to direct the underlying Session or Subject to be created, if that would be necessary. For example, before last week, I proposed adding these two methods to SecurityManager: getSubjectBySessionId( Serializable sessionId ); getSubject(PrincipalCollection principals); These two methods take in very specific arguments based on what is being accomplished and are not flexible should other information be required by the underlying implementation and/or factory to construct an instance. Instead of adding overloaded methods for start and getSubject, I think it might be better to take in a Map instance that the underlying implementation(s) could inspect for whatever data that might be needed to create the instance returned. So we could have this instead: SecurityManager#getSubject(); //existing method, keep it SecurityManager#getSubject(Map initData); //new method SessionManager#getSubject(Map initData); //new method Of course we could have the above overloaded methods and the Map argument method, which might make more sense for ease-of-use. Thoughts?
