// see ScanDirConfigMXBean public void load() throws IOException { if (filename == null) throw new UnsupportedOperationException("load"); synchronized (this) { config = new XmlConfigUtils(filename).readFromFile(); if (configname != null) config = config.copy(configname); else configname = config.getName(); status = LOADED; } sendNotification(NOTIFICATION_LOADED); }
// see ScanDirConfigMXBean public void setConfiguration(ScanManagerConfig config) { synchronized (this) { if (config == null) { this.config = null; return; } if (configname == null) configname = config.getName(); this.config = config.copy(configname); status = MODIFIED; } sendNotification(NOTIFICATION_MODIFIED); }
/** * Allows the MBean to perform any operations it needs before being registered in the MBean * server. If the name of the MBean is not specified, the MBean can provide a name for its * registration. If any exception is raised, the MBean will not be registered in the MBean server. * * @param server The MBean server in which the MBean will be registered. * @param name The object name of the MBean. This name is null if the name parameter to one of the * createMBean or registerMBean methods in the MBeanServer interface is null. In that case, * this method will try to guess its MBean name by examining its configuration data. If its * configuration data is null (nothing was provided in the constructor) or doesn't contain a * name, this method returns {@code null}, and registration will fail. * <p>Otherwise, if {@code name} wasn't {@code null} or if a default name could be * constructed, the name of the configuration will be set to the value of the ObjectName's * {@code name=} key, and the configuration data will always be renamed to reflect this * change. * @return The name under which the MBean is to be registered. * @throws Exception This exception will be caught by the MBean server and re-thrown as an * MBeanRegistrationException. */ public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception { if (name == null) { if (config == null) return null; if (config.getName() == null) return null; name = ScanManager.makeMBeanName(ScanDirConfigMXBean.class, config.getName()); } objectName = name; mbeanServer = server; synchronized (this) { configname = name.getKeyProperty("name"); if (config == null) config = new ScanManagerConfig(configname); else config = config.copy(configname); } return name; }