/** * {@inheritDoc} */ @Override public ApplicationData registerApplication(ApplicationDefinition applicationDefinition) { int applicationId = deriveInstanceId(applicationDefinition.getApplicationName(), applicationDefinition.getId()); ApplicationData application = getApplicationForId(applicationId); if (null == application) { application = new ApplicationData(applicationId, applicationDefinition.getId(), applicationDefinition.getApplicationName()); ApplicationData existingApplication = applications.putIfAbsent(applicationId, application); if (null != existingApplication) { application = existingApplication; } } return application; }
/** * {@inheritDoc} */ @Override public BusinessTransactionData registerBusinessTransaction(ApplicationData application, BusinessTransactionDefinition businessTransactionDefinition, String businessTransactionName) { int businessTxId = deriveInstanceId(businessTransactionName, businessTransactionDefinition.getId()); BusinessTransactionData businessTransaction = getBusinessTransactionForId(application.getId(), businessTxId); if (null == businessTransaction) { businessTransaction = new BusinessTransactionData(businessTxId, businessTransactionDefinition.getId(), application, businessTransactionName); Pair<Integer, Integer> key = new Pair<Integer, Integer>(application.getId(), businessTransaction.getId()); BusinessTransactionData existingBusinessTx = businessTransactions.putIfAbsent(key, businessTransaction); if (null != existingBusinessTx) { businessTransaction = existingBusinessTx; } } return businessTransaction; }