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;
}
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");
} else {
- for(Organization o : orgs.values()) {
- if(orgClass.equals(o.getClass().getName())) {
- org = o;
+ try {
+ Class<?> orgCls = Class.forName(orgClass);
+ for(Organization o : orgs.values()) {
+ if(o.getClass().isAssignableFrom(orgCls)) {
+ org = o;
+ }
}
+ } catch (ClassNotFoundException e1) {
+ env.error().log(e1, orgClass + " is not on the Classpath.");
+ throw new OrganizationException(e1);
}
if(org==null) {
try {
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) {