/* Copyright 1995-2015 Esri Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at 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. For additional information, contact: Environmental Systems Research Institute, Inc. Attn: Contracts Dept 380 New York Street Redlands, California, USA 92373 email: contracts@esri.com */ package com.esri.geoevent.test.performance.provision; import com.esri.geoevent.test.performance.jaxb.Config; /** * The Provisioner role is used to setup the fixture to be run. If anything needs to be "provision" * (prepared or setup) before the test fixture is run, then configuring and creating one of these * objects is necessary. This is a simple interface with two main methods. * */ public interface Provisioner { /** * The init method is used to configure the Provisioner. It will look for properties within * the configuration as necessary. * * @param config a {@link Config} object with properties. * @throws ProvisionException if the initialization has failed by either properties are missing or * property validation has failed. * * @see Config */ void init(Config config) throws ProvisionException; /** * The provision method is called to setup a fixture. This is where the main work is performed. * * @throws ProvisionException if the provisioning has failed. */ void provision() throws ProvisionException; }