[New] Added ReloadPoliciesJob

This commit is contained in:
Robert von Burg 2019-01-17 09:13:12 +01:00
parent 8e3b22b3e3
commit d0751345ff
3 changed files with 39 additions and 9 deletions

View File

@ -67,15 +67,7 @@ public class DefaultPolicyHandler extends StrolchComponent implements PolicyHand
@Override
public void initialize(ComponentConfiguration configuration) throws Exception {
if (configuration.getBoolean(PROP_READ_POLICY_FILE, Boolean.FALSE)) {
File policyFile = configuration.getConfigFile(PROP_POLICY_CONFIG, DEF_STROLCH_POLICIES_XML,
configuration.getRuntimeConfiguration());
parsePolicyFile(policyFile);
} else {
logger.warn("Not loading Policy configuration file, as disabled by config");
}
reloadPolicies(configuration);
super.initialize(configuration);
}
@ -125,6 +117,21 @@ public class DefaultPolicyHandler extends StrolchComponent implements PolicyHand
return (Class<T>) clazz;
}
@Override
public void reloadPolicies() {
reloadPolicies(getConfiguration());
}
private void reloadPolicies(ComponentConfiguration configuration) {
if (configuration.getBoolean(PROP_READ_POLICY_FILE, Boolean.FALSE)) {
File policyFile = configuration.getConfigFile(PROP_POLICY_CONFIG, DEF_STROLCH_POLICIES_XML,
configuration.getRuntimeConfiguration());
parsePolicyFile(policyFile);
} else {
logger.warn("Not loading Policy configuration file, as disabled by config");
}
}
@SuppressWarnings("unchecked")
private void parsePolicyFile(File policyFile) {

View File

@ -64,4 +64,9 @@ public interface PolicyHandler {
* @return true if the policy definition is known, false otherwise
*/
boolean isPolicyDefAvailable(PolicyDef policyDef);
/**
* Reload the policies configuration
*/
void reloadPolicies();
}

View File

@ -0,0 +1,18 @@
package li.strolch.policy;
import li.strolch.agent.api.StrolchAgent;
import li.strolch.job.StrolchJob;
import li.strolch.privilege.model.PrivilegeContext;
public class ReloadPoliciesJob extends StrolchJob {
public ReloadPoliciesJob(StrolchAgent agent) {
super(agent);
}
@Override
protected void execute(PrivilegeContext ctx) throws Exception {
PolicyHandler policyHandler = getContainer().getComponent(PolicyHandler.class);
policyHandler.reloadPolicies();
}
}