/****************************************************************************** * Copyright (c) 2006, 2010 VMware Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Apache License v2.0 which accompanies this distribution. * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html and the Apache License v2.0 * is available at http://www.opensource.org/licenses/apache2.0.php. * You may elect to redistribute this code under either of these licenses. * * Contributors: * VMware Inc. *****************************************************************************/ package org.eclipse.gemini.blueprint.test.provisioning; import org.springframework.core.io.Resource; /** * Interface describing the contract for finding dependencies artifacts. * Implementations can rely on various lookup strategies for finding the actual * artifacts (i.e. Maven, Ant, Ivy, etc...) * * @author Costin Leau */ public interface ArtifactLocator { /** default artifact type */ String DEFAULT_ARTIFACT_TYPE = "jar"; /** * Locates the artifact under the given group, with the given id, version * and type. Implementations are free to provide defaults, in case * <code>null</code> values are passed in. The only required field is #id. * * @param group artifact group (can be <code>null</code>) * @param id artifact id or name (required) * @param version artifact version (can be <code>null</code>) * @param type artifact type (can be <code>null</code>) * * @return Spring resource to the located artifact */ Resource locateArtifact(String group, String id, String version, String type); /** * Locates the artifact under the given group, with the given id, version * and type. This is a shortcut version which uses the implementation * default artifact type {@link #DEFAULT_ARTIFACT_TYPE}. * * @param group artifact group (can be <code>null</code>) * @param id artifact id or name (required) * @param version artifact version (can be <code>null</code>) * @return Spring resource to the located artifact */ Resource locateArtifact(String group, String id, String version); }