...
In the future we can add this feature to other config files as well.
...
Java code to read configs from config
...
files (e.g. for GSH templates or scripts)
Expand |
---|
Code Block |
---|
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
import edu.internet2.middleware.grouper.GrouperSession;
import edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig;
import edu.internet2.middleware.grouper.cfg.GrouperConfig;
import edu.internet2.middleware.grouper.cfg.GrouperHibernateConfig;
import edu.internet2.middleware.grouper.cfg.text.GrouperTextContainer;
import edu.internet2.middleware.grouper.ui.util.GrouperUiConfigInApi;
import edu.internet2.middleware.grouper.ws.GrouperWsConfigInApi;
import edu.internet2.middleware.grouperClient.config.GrouperUiApiTextConfig;
public class Test63main {
public static void main(String[] args) {
GrouperSession.startRootSession();
boolean defaultBoolean = false;
GrouperConfig.retrieveConfig().propertyValueBoolean("key", defaultBoolean);
GrouperConfig.retrieveConfig().propertyValueBooleanRequired("key");
GrouperConfig.retrieveConfig().propertyValueString("stringKey");
GrouperConfig.retrieveConfig().propertyValueStringRequired("stringKey");
GrouperConfig.retrieveConfig().propertyValueString("stringKey2", "defaultValue");
int defaultInt = 999;
GrouperConfig.retrieveConfig().propertyValueInt("intKey", defaultInt);
GrouperConfig.retrieveConfig().propertyValueInt("intKey");
GrouperConfig.retrieveConfig().propertyValueIntRequired("intKey");
Map<String, String> propertiesMap = GrouperHibernateConfig.retrieveConfig().propertiesMap(Pattern.compile("^something\\.([^.]+)\\..*$"));
Set<String> propertyConfigIds = GrouperLoaderConfig.retrieveConfig().propertyConfigIds(Pattern.compile("^something\\.([^.]+)\\..*$"));
GrouperUiConfigInApi.retrieveConfig().propertyValueString("key");
GrouperWsConfigInApi.retrieveConfig().propertyValueString("key");
// this will eval all jexl scripts. if you want the jexl script to show on screen use HTML for dollar: $
GrouperTextContainer.textOrNull("someUiKey");
// dont eval jexl scripts, just get the raw value
GrouperUiApiTextConfig.retrieveTextConfig().propertyValueString("someKey");
}
}
|
|
...
If you want a grouper properties config file to have an env var, you can have any property be an env var... just configure it in a config file as (for property a.b.c):
a.b.c.elConfig = ${elUtils.processEnvVarOrFile( 'SOME_ENV_VAR' )}
|
That will cause the property "somethingWhatever" to have the value "c:\dev_inst\java" or whatever it is set to. Do the following two things:
...