/* * JBoss, Home of Professional Open Source. * Copyright 2009 Red Hat Inc. and/or its affiliates and other contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.arquillian.container.test.api; import java.util.Map; /** * A interface that describes how you can start/stop server instances during test execution. * <p> * Usage Example:<br/> * <pre><code> * @Deployment * public static WebArchive create() { * return ShrinkWrap.create(WebArchive.class) * * } * * @ArquillianResource * private ContainerController controller; * * @Test * public void shouldStartServerX() { * controller.start("X") * } * </code></pre> * <p> * <pre><code> * <?xml version="1.0" encoding="UTF-8"?> * <arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" * xmlns="http://jboss.org/schema/arquillian" * xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> * * <group qualifier="G"> * <container qualifier="X" mode="manual" /> * <container qualifier="Y" default="true" /> * </group> * </arquillian> * </code></pre> * <p> * Only containers configured to be in mode manual or custom can be controlled via the ContainerController. * * @author <a href="mailto:mgencur@redhat.com">Martin Gencur</a> * @version $Revision: $ */ public interface ContainerController { void start(String containerQualifier); void start(String containerQualifier, Map<String, String> config); void stop(String containerQualifier); void kill(String containerQualifier); boolean isStarted(String containerQualifier); }