package rocks.inspectit.shared.cs.cmr.service;
import rocks.inspectit.shared.all.communication.data.cmr.ApplicationData;
import rocks.inspectit.shared.all.communication.data.cmr.BusinessTransactionData;
import rocks.inspectit.shared.cs.ci.business.impl.ApplicationDefinition;
import rocks.inspectit.shared.cs.ci.business.impl.BusinessTransactionDefinition;
/**
* Service interface which defines the methods to register the business context (i.e. applications,
* business transactions, SLAs, etc.) of invocation sequences.
*
* @author Alexander Wert
*
*/
public interface IBusinessContextRegistryService {
/**
* Registers an application.
*
* @param applicationDefinition
* {@link ApplicationDefinition} describing the {@link ApplicationData} instance to
* register.
* @return returns the registered {@link ApplicationData} instance.
*/
ApplicationData registerApplication(ApplicationDefinition applicationDefinition);
/**
* Registers a business transaction.
*
* @param application
* The {@link ApplicationData} instance to register the business transaction to
* @param businessTransactionDefinition
* {@link BusinessTransactionDefinition} describing the
* {@link BusinessTransactionData} instance to register.
* @param businessTransactionName
* the name of the business transaction to register
*
* @return returns the registered {@link BusinessTransactionData} instance.
*/
BusinessTransactionData registerBusinessTransaction(ApplicationData application, BusinessTransactionDefinition businessTransactionDefinition, String businessTransactionName);
}