import org.onap.aaf.auth.env.AuthzTrans;
import org.onap.aaf.cadi.util.FQI;
+import org.onap.aaf.cadi.util.Split;
import org.onap.aaf.misc.env.Env;
import org.onap.aaf.misc.env.impl.BasicEnv;
public class OrganizationFactory {
private static final String ORGANIZATION_DOT = "Organization.";
private static Organization defaultOrg = null;
- private static Map<String,Organization> orgs = new ConcurrentHashMap<String,Organization>();
+ private static Map<String,Organization> orgs = new ConcurrentHashMap<>();
public static Organization init(BasicEnv env) throws OrganizationException {
int idx = ORGANIZATION_DOT.length();
Organization org,firstOrg = null;
}
Organization org = orgs.get(orgNS);
if(org == null) {
+ env.debug().printf("Attempting to instantiate Organization %s\n",orgNS);
+
String orgClass = env.getProperty(ORGANIZATION_DOT+orgNS);
if(orgClass == null) {
env.warn().log("There is no Organization." + orgNS + " property");
Class<Organization> cls = (Class<Organization>) Class.forName(orgClass);
Constructor<Organization> cnst = cls.getConstructor(Env.class,String.class);
org = cnst.newInstance(env,orgNS);
+ String other_realms = env.getProperty(orgNS+".also_supports");
+ if(other_realms!=null) {
+ for(String r : Split.splitTrim(',', other_realms)) {
+ org.addSupportedRealm(r);
+ }
+ }
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException |
InstantiationException | IllegalAccessException | IllegalArgumentException |
InvocationTargetException e) {
}
}
orgs.put(orgNS, org);
- if("true".equalsIgnoreCase(env.getProperty(orgNS+".default"))) {
+ boolean isDefault;
+ if((isDefault="true".equalsIgnoreCase(env.getProperty(orgNS+".default")))) {
defaultOrg = org;
}
-
+ env.init().printf("Instantiated %s with %s%s\n",orgNS,orgClass,(isDefault?" as default":""));
}
if(org==null) {
if(defaultOrg!=null) {