/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.cluster.impl.handlers.configuration; import com.thoughtworks.xstream.XStream; import org.geoserver.cluster.JMSEventHandler; import org.geoserver.cluster.JMSEventHandlerSPI; import org.geoserver.cluster.events.ToggleSwitch; import org.geoserver.cluster.impl.events.configuration.JMSSettingsModifyEvent; import org.geoserver.config.GeoServer; /** * SPI class used by the JMS manager to instantiate the proper handler for a certain event type. */ public final class JMSSettingsHandlerSPI extends JMSEventHandlerSPI<String, JMSSettingsModifyEvent> { private final GeoServer geoserver; private final XStream xstream; private final ToggleSwitch producer; public JMSSettingsHandlerSPI(int priority, GeoServer geo, XStream xstream, ToggleSwitch producer) { super(priority); this.geoserver = geo; this.xstream = xstream; this.producer = producer; } @Override public boolean canHandle(Object event) { // we can handle only settings modified events return event instanceof JMSSettingsModifyEvent; } @Override public JMSEventHandler<String, JMSSettingsModifyEvent> createHandler() { return new JMSSettingsHandler(geoserver, xstream, this.getClass(), producer); } }