/** * Copyright 2013-2015 Seagate Technology LLC. * * This Source Code Form is subject to the terms of the Mozilla * Public License, v. 2.0. If a copy of the MPL was not * distributed with this file, You can obtain one at * https://mozilla.org/MP:/2.0/. * * This program is distributed in the hope that it will be useful, * but is provided AS-IS, WITHOUT ANY WARRANTY; including without * the implied warranty of MERCHANTABILITY, NON-INFRINGEMENT or * FITNESS FOR A PARTICULAR PURPOSE. See the Mozilla Public * License for more details. * * See www.openkinetic.org for more project information */ package com.seagate.kinetic; import java.io.File; import kinetic.client.KineticException; import kinetic.simulator.KineticSimulator; import kinetic.simulator.SimulatorConfiguration; import org.apache.commons.io.FileUtils; public class SimulatorTestTarget extends AbstractIntegrationTestTarget { private final KineticSimulator kineticSimulator; public SimulatorTestTarget(boolean clearExistingDatabase, SimulatorConfiguration simulatorConfiguration) { super("localhost", simulatorConfiguration.getPort(), simulatorConfiguration.getSslPort()); if (clearExistingDatabase) { deleteJavaServerAuxilaryData(simulatorConfiguration); } kineticSimulator = new KineticSimulator(simulatorConfiguration); } public SimulatorTestTarget(boolean clearExistingDatabase, int port, int sslPort) throws KineticException { super("localhost", port, sslPort); SimulatorConfiguration simulatorConfiguration = new SimulatorConfiguration(); simulatorConfiguration.setPort(port); simulatorConfiguration.setSslPort(tlsPort); //simulatorConfiguration.setUseV2Protocol(true); simulatorConfiguration.setNioServiceBossThreads(1); simulatorConfiguration.setNioServiceWorkerThreads(1); if (clearExistingDatabase) { deleteJavaServerAuxilaryData(simulatorConfiguration); } kineticSimulator = new KineticSimulator(simulatorConfiguration); if (clearExistingDatabase) { // This makes sure the target has been fully reset. If a developer // is running kineticd locally // it also has the nice side effect of clearing kineticd since just // the "rm -rf" approach taken by // deleteJavaServerAuxiliaryData() above wouldn't affect kineticd. performISE(); } } @Override public void shutdown() throws Exception { kineticSimulator.close(); } private void deleteJavaServerAuxilaryData( SimulatorConfiguration simulatorConfiguration) { String kineticHome = System.getProperty("user.home") + File.separator + "kinetic"; if (simulatorConfiguration .getProperty(SimulatorConfiguration.KINETIC_HOME) != null) { kineticHome = simulatorConfiguration .getProperty(SimulatorConfiguration.KINETIC_HOME); } FileUtils.deleteQuietly(new File(kineticHome)); String defaultHome = System.getProperty("user.home") + File.separator + "leafcutter"; String leafcutterHome = simulatorConfiguration.getProperty( SimulatorConfiguration.KINETIC_HOME, defaultHome); FileUtils.deleteQuietly(new File(leafcutterHome)); } }