/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.server.services.impl.storage; import java.util.HashSet; import java.util.Set; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamImplicit; import org.kie.server.api.KieServerConstants; import org.kie.server.api.model.KieContainerResource; import org.kie.server.api.model.KieServerConfig; import org.kie.server.api.model.KieServerConfigItem; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @XStreamAlias( "kie-server" ) public class KieServerState { private static final Logger logger = LoggerFactory.getLogger(KieServerState.class); @XStreamImplicit(itemFieldName = "controller") private Set<String> controllers = new HashSet<String>(); private KieServerConfig configuration; @XStreamAlias( "containers" ) @XStreamImplicit private Set<KieContainerResource> containers = new HashSet<KieContainerResource>(); public KieServerState() { String defaultController = System.getProperty(KieServerConstants.KIE_SERVER_CONTROLLER); if (defaultController != null) { String[] controllerList = defaultController.split(","); for (String controller : controllerList) { controllers.add(controller.trim()); logger.info("Added default controller located at {}", controller); } } } public Set<String> getControllers() { return controllers; } public void setControllers(Set<String> controllers) { this.controllers = controllers; } public Set<KieContainerResource> getContainers() { return containers; } public void setContainers(Set<KieContainerResource> containers) { this.containers = containers; } public KieServerConfig getConfiguration() { return configuration; } public void setConfiguration(KieServerConfig configuration) { if (this.configuration != null) { // if config already exists merge it with precedence given by the argument for (KieServerConfigItem item : configuration.getConfigItems()) { KieServerConfigItem existing = this.configuration.getConfigItem(item.getName()); if (existing != null) { this.configuration.removeConfigItem(existing); } configuration.addConfigItem(item); } } else { this.configuration = configuration; } } }