diff options
Diffstat (limited to 'qpid/java/broker-plugins')
| -rw-r--r-- | qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java index 1449b53beb..00b42094b1 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java @@ -55,7 +55,7 @@ public class ACLFileAccessControlProviderImpl protected DefaultAccessControl _accessControl; protected final Broker _broker; - @ManagedAttributeField + @ManagedAttributeField( afterSet = "reloadAclFile") private String _path; @ManagedObjectFactoryConstructor @@ -100,7 +100,6 @@ public class ACLFileAccessControlProviderImpl } catch(RuntimeException e) { - e.printStackTrace(); throw new IllegalConfigurationException(e.getMessage(), e); } finally @@ -119,6 +118,26 @@ public class ACLFileAccessControlProviderImpl _accessControl = new DefaultAccessControl(getPath(), _broker); } + @SuppressWarnings("unused") + private void reloadAclFile() + { + try + { + DefaultAccessControl accessControl = new DefaultAccessControl(getPath(), _broker); + accessControl.open(); + DefaultAccessControl oldAccessControl = _accessControl; + _accessControl = accessControl; + if(oldAccessControl != null) + { + oldAccessControl.close(); + } + } + catch(RuntimeException e) + { + throw new IllegalConfigurationException(e.getMessage(), e); + } + } + @Override public String getPath() { |
