/** * Provides information of all business transaction definitions of an application. * * <p> * <i> Example URL: /bc/definition/app/{id}/btx</i> * </p> * * @param id * Application ID. * * @return a list of {@link BusinessTransactionData}. * @throws BusinessException * If given ID of the application is not valid. */ @RequestMapping(method = GET, value = "{id}/btx") @ResponseBody public List<BusinessTransactionDefinition> getBusinessTransactionDefinitions(@PathVariable int id) throws BusinessException { return configurationInterfaceService.getApplicationDefinition(id).getBusinessTransactionDefinitions(); }
@Test public void getBusinessTransactionDefitions() { assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasItem(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasItem(secondBusinessTxDefinition)); }
@Test public void moveToSameIndex() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); applicationDefinition.moveBusinessTransactionDefinition(secondBusinessTxDefinition, 1); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); }
@Test public void moveBusinessTransactionDefition() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); applicationDefinition.moveBusinessTransactionDefinition(secondBusinessTxDefinition, 0); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(secondBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(firstBusinessTxDefinition)); applicationDefinition.moveBusinessTransactionDefinition(secondBusinessTxDefinition, 1); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); }
@Test public void addAtPosition() throws BusinessException { // contains default application assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(1)); applicationDefinition.addBusinessTransactionDefinition(firstBusinessTxDefinition); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(2)); applicationDefinition.addBusinessTransactionDefinition(secondBusinessTxDefinition, 0); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(secondBusinessTxDefinition)); }
@Test public void deleteDefaultBusinessTransaction() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); applicationDefinition.deleteBusinessTransactionDefinition(BusinessTransactionDefinition.DEFAULT_BUSINESS_TRANSACTION_DEFINITION); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); }
@Test public void deleteNull() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); applicationDefinition.deleteBusinessTransactionDefinition(null); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); }
@Test public void addAtTheEnd() throws BusinessException { // contains default application assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(1)); applicationDefinition.addBusinessTransactionDefinition(firstBusinessTxDefinition); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(2)); applicationDefinition.addBusinessTransactionDefinition(secondBusinessTxDefinition); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); }
@Test public void deleteBusinessTransactionDefinition() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(2), is(BusinessTransactionDefinition.DEFAULT_BUSINESS_TRANSACTION_DEFINITION)); applicationDefinition.deleteBusinessTransactionDefinition(secondBusinessTxDefinition); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(2)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(BusinessTransactionDefinition.DEFAULT_BUSINESS_TRANSACTION_DEFINITION)); applicationDefinition.deleteBusinessTransactionDefinition(firstBusinessTxDefinition); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(1)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(BusinessTransactionDefinition.DEFAULT_BUSINESS_TRANSACTION_DEFINITION)); }
@Test(expectedExceptions = { BusinessException.class }) public void moveToFar() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); applicationDefinition.moveBusinessTransactionDefinition(secondBusinessTxDefinition, 2); }
@Test(expectedExceptions = { BusinessException.class }) public void moveToNegativeIndex() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(0), is(firstBusinessTxDefinition)); assertThat(applicationDefinition.getBusinessTransactionDefinitions().get(1), is(secondBusinessTxDefinition)); applicationDefinition.moveBusinessTransactionDefinition(secondBusinessTxDefinition, -1); }
/** * {@inheritDoc} */ @Override public void addPages() { List<BusinessTransactionDefinition> businessTransactions = application.getBusinessTransactionDefinitions(); String[] items = new String[businessTransactions.size()]; int i = 0; for (BusinessTransactionDefinition businessTx : businessTransactions) { items[i] = businessTx.getBusinessTransactionDefinitionName(); i++; } newItemWizardPage = new NameDescriptionInsertBeforeWizardPage(TITLE, MESSAGE, items, BusinessContextManagerViewPart.B_TX_ORDER_INFO_TOOLTIP); addPage(newItemWizardPage); }
/** * {@inheritDoc} */ @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { if (receiver instanceof IApplicationProvider) { IApplicationProvider applicationProvider = (IApplicationProvider) receiver; if (IS_DEFAULT_APP_PROPERTY.equals(property)) { return applicationProvider.getApplication().getId() == ApplicationDefinition.DEFAULT_ID; } else if (CAN_MOVE_UP_PROPERTY.equals(property)) { return applicationProvider.getIndexInParentList() > 0; } else if (CAN_MOVE_DOWN_PROPERTY.equals(property)) { int listSize = applicationProvider.getParentList().size(); return applicationProvider.getIndexInParentList() < listSize - 2; } } if (receiver instanceof BusinessTransactionDefinition) { BusinessTransactionDefinition businessTransactionDef = (BusinessTransactionDefinition) receiver; if (IS_DEFAULT_BTX_PROPERTY.equals(property)) { return businessTransactionDef.getId() == BusinessTransactionDefinition.DEFAULT_ID; } else if (CAN_MOVE_UP_PROPERTY.equals(property) && ArrayUtils.isNotEmpty(args) && args[0] instanceof ApplicationDefinition) { return ((ApplicationDefinition) args[0]).getBusinessTransactionDefinitions().indexOf(businessTransactionDef) > 0; } else if (CAN_MOVE_DOWN_PROPERTY.equals(property) && ArrayUtils.isNotEmpty(args) && args[0] instanceof ApplicationDefinition) { int index = ((ApplicationDefinition) args[0]).getBusinessTransactionDefinitions().indexOf(businessTransactionDef); return index >= 0 && index < ((ApplicationDefinition) args[0]).getBusinessTransactionDefinitions().size() - 2; } } return false; }
@Test public void deleteUnknown() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); applicationDefinition.deleteBusinessTransactionDefinition(new BusinessTransactionDefinition(123456789, "unknown", null)); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); }
@Test public void deleteTwice() throws BusinessException { assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(3)); applicationDefinition.deleteBusinessTransactionDefinition(firstBusinessTxDefinition); applicationDefinition.deleteBusinessTransactionDefinition(firstBusinessTxDefinition); assertThat(applicationDefinition.getBusinessTransactionDefinitions(), hasSize(2)); } }
@Test(expectedExceptions = { BusinessException.class }) public void addAtInvalidGreatIndex() throws BusinessException { applicationDefinition.addBusinessTransactionDefinition(firstBusinessTxDefinition, applicationDefinition.getBusinessTransactionDefinitions().size()); }
/** * {@inheritDoc} */ @Override protected StyledString getStyledText(Object element, int index) { if (element instanceof IApplicationProvider) { ApplicationDefinition appDef = ((IApplicationProvider) element).getApplication(); switch (index) { case 0: return new StyledString(appDef.getApplicationName()); case 1: return new StyledString(String.valueOf(appDef.getBusinessTransactionDefinitions().size())); case 2: return new StyledString(TextFormatter.clearLineBreaks(StringUtils.defaultString(appDef.getDescription()))); default: return EMPTY; } } return EMPTY; }
int currentIndex = application.getBusinessTransactionDefinitions().indexOf(businessTransaction); int newIndex = currentIndex; if (up) { newIndex++; if ((newIndex >= 0) && (newIndex < (application.getBusinessTransactionDefinitions().size() - 1))) { try { application.moveBusinessTransactionDefinition(businessTransaction, newIndex);
/** * Start modification of the (first) selected business transaction definition. */ private void editSelectedBusinessTransaction() { ISelection selection = tableViewer.getSelection(); if (selection instanceof StructuredSelection) { BusinessTransactionDefinition businessTransactionDef = (BusinessTransactionDefinition) ((StructuredSelection) selection).getFirstElement(); if (businessTransactionDef.getId() == BusinessTransactionDefinition.DEFAULT_ID) { return; } ApplicationDefinition appDefinition = getApplication(); String[] existingBusinessTxNames = new String[appDefinition.getBusinessTransactionDefinitions().size()]; int i = 0; for (BusinessTransactionDefinition businessTx : appDefinition.getBusinessTransactionDefinitions()) { existingBusinessTxNames[i] = businessTx.getBusinessTransactionDefinitionName(); i++; } EditNameDescriptionDialog dialog = new EditNameDescriptionDialog(Display.getCurrent().getActiveShell(), businessTransactionDef.getBusinessTransactionDefinitionName(), businessTransactionDef.getDescription(), "Edit Business Transaction", "Enter new business transaction name and/or description", existingBusinessTxNames); if (Dialog.OK == dialog.open()) { businessTransactionDef.setBusinessTransactionDefinitionName(dialog.getName()); if (StringUtils.isNotBlank(dialog.getDescription())) { businessTransactionDef.setDescription(dialog.getDescription()); } updateContent(new StructuredSelection(businessTransactionDef)); markDirty(); } } }
/** * Assigns the business context to the passed {@link InvocationSequenceData} instance. * * @param invocSequence * {@link InvocationSequenceData} instance to assign the business context for. */ private void assignBusinessContext(InvocationSequenceData invocSequence) { List<ApplicationDefinition> applicationDefinitions = configurationInterfaceService.getApplicationDefinitions(); ApplicationDefinition appDefinition = identify(invocSequence, applicationDefinitions); if (null == appDefinition) { appDefinition = ApplicationDefinition.DEFAULT_APPLICATION_DEFINITION; } ApplicationData application = businessContextRegistryService.registerApplication(appDefinition); invocSequence.setApplicationId(application.getId()); BusinessTransactionDefinition businessTxDefinition = identify(invocSequence, appDefinition.getBusinessTransactionDefinitions()); String businessTxName = businessTxDefinition.determineBusinessTransactionName(invocSequence, cachedDataService); BusinessTransactionData businessTransaction = businessContextRegistryService.registerBusinessTransaction(application, businessTxDefinition, businessTxName); invocSequence.setBusinessTransactionId(businessTransaction.getId()); }