package forklift.deployment;
import java.util.Set;
/**
* Defines the methods required for a Forklift Deployment.
*
* Created by afrieze on 10/28/16.
*/
public interface Deployment {
/**
* @return clases in this Deployment annotated with the {@link forklift.decorators.CoreService} annotation
*/
Set<Class<?>> getCoreServices();
/**
* @return clases in this Deployment annotated with the {@link forklift.decorators.Service} annotation
*/
Set<Class<?>> getServices();
/**
* @return clases in this Deployment annotated with the {@link forklift.decorators.Queue} annotation
*/
Set<Class<?>> getQueues();
/**
* @return clases in this Deployment annotated with the {@link forklift.decorators.Topics} annotation
*/
Set<Class<?>> getTopics();
/**
* Returns a {@link ClassLoader} capable of loading the classes encapsulated by this deployment
*
* @return {@link ClassLoader}
*/
ClassLoader getClassLoader();
}