Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2013-10-17 23:02:31 +0000
committerRoberto E. Escobar2013-11-25 23:45:29 +0000
commitd07bba90619cee2f19d25bbfeb83935144832555 (patch)
tree7da5782f4df423bb67cf27d74dc1b230dcbb805d /plugins/org.eclipse.osee.ats
parentc4f67af4a1438b08fff0e55c0e63597300e265ca (diff)
downloadorg.eclipse.osee-d07bba90619cee2f19d25bbfeb83935144832555.tar.gz
org.eclipse.osee-d07bba90619cee2f19d25bbfeb83935144832555.tar.xz
org.eclipse.osee-d07bba90619cee2f19d25bbfeb83935144832555.zip
feature[ats_S5JDQ]: Move TransitionManager to ats.core
- Replace client-only SkynetTransaction with AtsChangeSet - Convert necessary Artifact references objects with ATS interfaces - Move TransitionManager to ats.core Change-Id: I629cd44a06e1435679c542ebdee3664017692092
Diffstat (limited to 'plugins/org.eclipse.osee.ats')
-rw-r--r--plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF4
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/WorkflowPortingBlam.java22
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ConvertActionableItemsAction.java3
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/NewGoal.java6
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java4
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java12
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java6
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java6
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/GoalManager.java7
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigOperation.java47
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java14
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperation.java66
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeHoursSpent.java2
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java19
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java69
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java19
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java23
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsLogWorkPage.java5
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java25
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java7
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java19
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/TaskInfoXWidget.java21
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java2
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java19
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/notify/AtsNotificationTransitionListener.java15
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/CreateActionFromTaskBlam.java12
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java12
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSimpleList.java13
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSpreadsheet.java11
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ModifyActionableItemsBlam.java12
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewItem.java13
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewJob.java10
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitOperation.java20
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/CreateActionUsingAllActionableItems.java10
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java18
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsTaskArtifactExtractor.java22
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ImportActionsViaSpreadsheetBlam.java11
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/TransitionStatusDialog.java11
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleXViewer.java11
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java23
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/CreateNewVersionItem.java18
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/ReleaseVersionItem.java18
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java44
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportAIsAndTeamDefinitionsToDb.java23
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportWorkDefinitionsItem.java11
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/provider/AtsWorkDefinitionImporter.java17
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionToMenu.java148
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java3
48 files changed, 503 insertions, 430 deletions
diff --git a/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF
index 961b32731dc..62414e8c1a0 100644
--- a/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF
@@ -75,6 +75,7 @@ Import-Package: com.google.inject,
org.eclipse.osee.ats.api.ev,
org.eclipse.osee.ats.api.notify,
org.eclipse.osee.ats.api.query,
+ org.eclipse.osee.ats.api.review,
org.eclipse.osee.ats.api.rule,
org.eclipse.osee.ats.api.team,
org.eclipse.osee.ats.api.user,
@@ -83,8 +84,9 @@ Import-Package: com.google.inject,
org.eclipse.osee.ats.api.workdef,
org.eclipse.osee.ats.api.workflow,
org.eclipse.osee.ats.api.workflow.log,
- org.eclipse.osee.ats.core.ai,
org.eclipse.osee.ats.api.workflow.state,
+ org.eclipse.osee.ats.api.workflow.transition,
+ org.eclipse.osee.ats.core.ai,
org.eclipse.osee.ats.core.client,
org.eclipse.osee.ats.core.client.access,
org.eclipse.osee.ats.core.client.action,
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/WorkflowPortingBlam.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/WorkflowPortingBlam.java
index a1288379886..85feb9e3250 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/WorkflowPortingBlam.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/WorkflowPortingBlam.java
@@ -21,17 +21,16 @@ import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.api.team.CreateTeamOption;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.core.client.action.ActionManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.internal.AtsClientService;
-import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.world.AtsWorldEditorRenderer;
import org.eclipse.osee.framework.core.util.Conditions;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
import org.eclipse.osee.framework.ui.skynet.render.PresentationType;
@@ -52,18 +51,15 @@ public class WorkflowPortingBlam extends AbstractBlam {
getActionableItems((IAtsActionableItem) variableMap.getValue(ACTIONABLE_ITEM));
Conditions.checkNotNullOrEmpty(actionableItems, ACTIONABLE_ITEM);
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Create Porting Workflow(s)");
-
- List<Artifact> destinationWorkflows = createDestinationWorkflows(transaction, actionableItems);
-
- transaction.execute();
+ AtsChangeSet changes = new AtsChangeSet("Create Porting Workflow(s)");
+ List<Artifact> destinationWorkflows = createDestinationWorkflows(changes, actionableItems);
+ changes.execute();
AtsWorldEditorRenderer renderer = new AtsWorldEditorRenderer();
renderer.open(destinationWorkflows, PresentationType.SPECIALIZED_EDIT);
}
- private List<Artifact> createDestinationWorkflows(SkynetTransaction transaction, List<IAtsActionableItem> actionableItems) throws OseeCoreException {
+ private List<Artifact> createDestinationWorkflows(IAtsChangeSet changes, List<IAtsActionableItem> actionableItems) throws OseeCoreException {
IAtsTeamDefinition teamDefinition = actionableItems.get(0).getTeamDefinition();
List<Artifact> destinationWorkflows = new ArrayList<Artifact>();
IAtsUser createdBy = AtsClientService.get().getUserAdmin().getCurrentUser();
@@ -76,14 +72,14 @@ public class WorkflowPortingBlam extends AbstractBlam {
destinationWorkflow =
ActionManager.createTeamWorkflow(sourceWorkflow.getParentActionArtifact(), teamDefinition,
- actionableItems, assignees, transaction, createdDate, createdBy, null,
+ actionableItems, assignees, changes, createdDate, createdBy, null,
CreateTeamOption.Duplicate_If_Exists);
destinationWorkflow.setName(sourceWorkflow.getName());
- destinationWorkflow.persist(transaction);
+ changes.add(destinationWorkflow);
sourceWorkflow.addRelation(AtsRelationTypes.Port_To, destinationWorkflow);
- sourceWorkflow.persist(transaction);
+ changes.add(sourceWorkflow);
} else {
destinationWorkflow = sourceWorkflow.getRelatedArtifact(AtsRelationTypes.Port_To);
log("Reusing destination workflow " + destinationWorkflow);
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ConvertActionableItemsAction.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ConvertActionableItemsAction.java
index 7ea9ae7e751..c79e27281c3 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ConvertActionableItemsAction.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ConvertActionableItemsAction.java
@@ -182,8 +182,9 @@ public class ConvertActionableItemsAction extends Action {
teamArt.setTeamDefinition(teamDef);
}
SkynetTransaction transaction = TransactionManager.createTransaction(branch, "Convert Actionable Item");
- ActionArtifactRollup rollup = new ActionArtifactRollup(teamArt.getParentActionArtifact(), transaction);
+ ActionArtifactRollup rollup = new ActionArtifactRollup(teamArt.getParentActionArtifact());
rollup.resetAttributesOffChildren();
+ teamArt.getParentActionArtifact().persist(transaction);
teamArt.persist(transaction);
transaction.execute();
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/NewGoal.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/NewGoal.java
index 63096c19049..af078f35330 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/NewGoal.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/NewGoal.java
@@ -13,6 +13,7 @@ package org.eclipse.osee.ats.actions;
import org.eclipse.osee.ats.AtsImage;
import org.eclipse.osee.ats.artifact.GoalManager;
import org.eclipse.osee.ats.core.client.artifact.GoalArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.editor.SMAEditor;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
@@ -42,8 +43,9 @@ public class NewGoal extends AbstractAtsAction {
}
}
if (Strings.isValid(title)) {
- GoalArtifact goalArt = GoalManager.createGoal(title);
- goalArt.persist(getClass().getSimpleName());
+ AtsChangeSet changes = new AtsChangeSet(getClass().getSimpleName());
+ GoalArtifact goalArt = GoalManager.createGoal(title, changes);
+ changes.execute();
SMAEditor.editArtifact(goalArt);
}
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java
index 4b2a17d527c..50182e179cf 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java
@@ -12,9 +12,9 @@ package org.eclipse.osee.ats.actions.wizard;
import java.util.Collection;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
/**
* Allows the New Action wizard to be extended with custom widgets when the appropriate Actionable Items are selected
@@ -48,7 +48,7 @@ public interface IAtsWizardItem {
* Callback with created action upon completion and creation of the action and it's workflows.
* hasWizardXWidgetExtenstions will be called to determine if this method should be called.
*/
- void wizardCompleted(Artifact actionArt, NewActionWizard wizard, SkynetTransaction transaction) throws Exception;
+ void wizardCompleted(Artifact actionArt, NewActionWizard wizard, IAtsChangeSet changes) throws Exception;
/**
* Validation that the data entered is valid and the wizard can be finished. This will be called after every
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java
index 3ef06deaee8..5fe25cc2ddf 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java
@@ -22,6 +22,7 @@ import org.eclipse.osee.ats.AtsOpenOption;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.core.client.action.ActionManager;
import org.eclipse.osee.ats.core.client.action.INewActionListener;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.workflow.ChangeType;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
@@ -29,8 +30,6 @@ import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager;
/**
@@ -69,22 +68,23 @@ public class NewActionJob extends Job {
if (actionableItems.isEmpty()) {
throw new OseeArgumentException("Actionable Items can not be empty for New Action");
}
- SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Create New Action");
if ("tt".equals(title)) {
title += " " + AtsUtil.getAtsDeveloperIncrementingNum();
}
+ AtsChangeSet changes = new AtsChangeSet("Create New Action");
actionArt =
ActionManager.createAction(monitor, title, desc, changeType, priority, validationRequired, needByDate,
- actionableItems, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), newActionListener, transaction);
+ actionableItems, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), newActionListener,
+ changes);
if (wizard != null) {
- wizard.notifyAtsWizardItemExtensions(actionArt, transaction);
+ wizard.notifyAtsWizardItemExtensions(actionArt, changes);
}
if (monitor != null) {
monitor.subTask("Persisting");
}
- transaction.execute();
+ changes.execute();
// Because this is a job, it will automatically kill any popups that are created during.
// Thus, if multiple teams were selected to create, don't popup on openAction or dialog
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java
index 444d10c4505..5b05df1a4b5 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java
@@ -21,6 +21,7 @@ import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.workflow.ATSXWidgetOptionResolver;
import org.eclipse.osee.framework.core.util.Conditions;
@@ -29,7 +30,6 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener;
import org.eclipse.osee.framework.ui.skynet.widgets.XWidget;
import org.eclipse.osee.framework.ui.skynet.widgets.util.XWidgetPage;
@@ -59,11 +59,11 @@ public class NewActionPage3 extends WizardPage {
getWizardXWidgetExtensions();
}
- public void notifyAtsWizardItemExtensions(Artifact action, SkynetTransaction transaction) {
+ public void notifyAtsWizardItemExtensions(Artifact action, IAtsChangeSet changes) {
for (IAtsWizardItem item : wizardExtensionItems) {
try {
if (item.hasWizardXWidgetExtensions(wizard.getSelectedIAtsActionableItems())) {
- item.wizardCompleted(action, wizard, transaction);
+ item.wizardCompleted(action, wizard, changes);
}
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java
index d9ba297fbf7..0608424f435 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.core.client.action.INewActionListener;
import org.eclipse.osee.ats.core.client.workflow.ChangeType;
import org.eclipse.osee.ats.internal.Activator;
@@ -25,7 +26,6 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox;
import org.eclipse.osee.framework.ui.skynet.widgets.XCombo;
@@ -127,9 +127,9 @@ public class NewActionWizard extends Wizard implements INewWizard {
return ((XDate) page2.getXWidget("Deadline")).getDate();
}
- public void notifyAtsWizardItemExtensions(Artifact action, SkynetTransaction transaction) {
+ public void notifyAtsWizardItemExtensions(Artifact action, IAtsChangeSet changes) {
if (page3 != null) {
- page3.notifyAtsWizardItemExtensions(action, transaction);
+ page3.notifyAtsWizardItemExtensions(action, changes);
}
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/GoalManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/GoalManager.java
index c0bb634a4e9..accc23151fc 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/GoalManager.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/GoalManager.java
@@ -23,6 +23,7 @@ import java.util.Set;
import org.eclipse.jface.window.Window;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.core.client.artifact.GoalArtifact;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.goal.GoalLabelProvider;
@@ -172,12 +173,14 @@ public final class GoalManager {
}
}
- public static GoalArtifact createGoal(String title) throws OseeCoreException {
+ public static GoalArtifact createGoal(String title, IAtsChangeSet changes) throws OseeCoreException {
GoalArtifact goalArt =
(GoalArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.Goal, AtsUtil.getAtsBranch(), title);
// Initialize state machine
- goalArt.initializeNewStateMachine(Arrays.asList(AtsClientService.get().getUserAdmin().getCurrentUser()), new Date(), AtsClientService.get().getUserAdmin().getCurrentUser());
+ goalArt.initializeNewStateMachine(Arrays.asList(AtsClientService.get().getUserAdmin().getCurrentUser()),
+ new Date(), AtsClientService.get().getUserAdmin().getCurrentUser());
+ changes.add(goalArt);
return goalArt;
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigOperation.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigOperation.java
index d6526fea0d5..9638ed1fe33 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigOperation.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigOperation.java
@@ -21,9 +21,11 @@ import org.eclipse.osee.ats.AtsOpenOption;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.core.client.config.AtsArtifactToken;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.config.AtsVersionService;
import org.eclipse.osee.ats.core.config.TeamDefinitions;
@@ -44,8 +46,6 @@ import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.skynet.render.PresentationType;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.ui.progress.UIJob;
@@ -102,44 +102,43 @@ public class AtsConfigOperation extends AbstractOperation {
checkWorkItemNamespaceUnique();
monitor.worked(calculateWork(0.10));
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Configure ATS for Default Team");
+ AtsChangeSet changes = new AtsChangeSet("Configure ATS for Default Team");
- teamDefinition = createTeamDefinition(transaction);
+ teamDefinition = createTeamDefinition(changes);
- actionableItems = createActionableItems(transaction, teamDefinition);
+ actionableItems = createActionableItems(changes, teamDefinition);
- createVersions(transaction, teamDefinition);
+ createVersions(changes, teamDefinition);
XResultData resultData = new XResultData();
- IAtsWorkDefinition workDefinition = createWorkflow(transaction, resultData, teamDefinition);
+ IAtsWorkDefinition workDefinition = createWorkflow(changes, resultData, teamDefinition);
- transaction.execute();
+ changes.execute();
monitor.worked(calculateWork(0.30));
display.openAtsConfigurationEditors(teamDefinition, actionableItems, workDefinition);
monitor.worked(calculateWork(0.10));
}
- private IAtsTeamDefinition createTeamDefinition(SkynetTransaction transaction) throws OseeCoreException {
+ private IAtsTeamDefinition createTeamDefinition(IAtsChangeSet changes) throws OseeCoreException {
IAtsTeamDefinition teamDef = AtsClientService.get().createTeamDefinition(GUID.create(), teamDefName);
teamDef.getLeads().add(AtsClientService.get().getUserAdmin().getCurrentUser());
teamDef.getMembers().add(AtsClientService.get().getUserAdmin().getCurrentUser());
TeamDefinitions.getTopTeamDefinition().getChildrenTeamDefinitions().add(teamDef);
- AtsClientService.get().storeConfigObject(teamDef, transaction);
+ AtsClientService.get().storeConfigObject(teamDef, changes);
return teamDef;
}
- private Collection<IAtsActionableItem> createActionableItems(SkynetTransaction transaction, IAtsTeamDefinition teamDef) throws OseeCoreException {
+ private Collection<IAtsActionableItem> createActionableItems(IAtsChangeSet changes, IAtsTeamDefinition teamDef) throws OseeCoreException {
Collection<IAtsActionableItem> aias = new ArrayList<IAtsActionableItem>();
// Create top actionable item
IAtsActionableItem topAia = AtsClientService.get().createActionableItem(GUID.create(), teamDefName);
topAia.setActionable(false);
topAia.setTeamDefinition(teamDef);
- AtsClientService.get().storeConfigObject(topAia, transaction);
+ AtsClientService.get().storeConfigObject(topAia, changes);
teamDef.getActionableItems().add(topAia);
- AtsClientService.get().storeConfigObject(teamDef, transaction);
+ AtsClientService.get().storeConfigObject(teamDef, changes);
aias.add(topAia);
@@ -149,38 +148,38 @@ public class AtsConfigOperation extends AbstractOperation {
childAi.setActionable(true);
topAia.getChildrenActionableItems().add(childAi);
childAi.setParentActionableItem(topAia);
- AtsClientService.get().storeConfigObject(childAi, transaction);
+ AtsClientService.get().storeConfigObject(childAi, changes);
aias.add(childAi);
}
- AtsClientService.get().storeConfigObject(topAia, transaction);
+ AtsClientService.get().storeConfigObject(topAia, changes);
return aias;
}
- private void createVersions(SkynetTransaction transaction, IAtsTeamDefinition teamDef) throws OseeCoreException {
+ private void createVersions(IAtsChangeSet changes, IAtsTeamDefinition teamDef) throws OseeCoreException {
if (versionNames != null) {
for (String name : versionNames) {
IAtsVersion version = AtsClientService.get().createVersion(name);
teamDef.getVersions().add(version);
- AtsClientService.get().storeConfigObject(version, transaction);
+ AtsClientService.get().storeConfigObject(version, changes);
AtsVersionService.get().setTeamDefinition(version, teamDef);
}
}
}
- private IAtsWorkDefinition createWorkflow(SkynetTransaction transaction, XResultData resultData, IAtsTeamDefinition teamDef) throws OseeCoreException {
+ private IAtsWorkDefinition createWorkflow(IAtsChangeSet changes, XResultData resultData, IAtsTeamDefinition teamDef) throws OseeCoreException {
WorkDefinitionMatch workDefMatch = AtsClientService.get().getWorkDefinitionAdmin().getWorkDefinition(name);
IAtsWorkDefinition workDef = null;
// If can't be found, create a new one
if (!workDefMatch.isMatched()) {
- workDef = generateDefaultWorkflow(name, resultData, transaction, teamDef);
+ workDef = generateDefaultWorkflow(name, resultData, changes, teamDef);
try {
String workDefXml = AtsClientService.get().getWorkDefinitionAdmin().getStorageString(workDef, resultData);
Artifact workDefArt =
AtsWorkDefinitionImporter.get().importWorkDefinitionToDb(workDefXml, workDef.getName(), name,
- resultData, transaction);
+ resultData, changes);
Artifact folder = AtsUtilCore.getFromToken(AtsArtifactToken.WorkDefinitionsFolder);
folder.addChild(workDefArt);
- folder.persist(transaction);
+ changes.add(folder);
} catch (Exception ex) {
throw new OseeWrappedException(ex);
}
@@ -189,11 +188,11 @@ public class AtsConfigOperation extends AbstractOperation {
}
// Relate new team def to workflow artifact
teamDef.setWorkflowDefinition(workDef.getId());
- AtsClientService.get().storeConfigObject(teamDef, transaction);
+ AtsClientService.get().storeConfigObject(teamDef, changes);
return workDef;
}
- private IAtsWorkDefinition generateDefaultWorkflow(String name, XResultData resultData, SkynetTransaction transaction, IAtsTeamDefinition teamDef) throws OseeCoreException {
+ private IAtsWorkDefinition generateDefaultWorkflow(String name, XResultData resultData, IAtsChangeSet changes, IAtsTeamDefinition teamDef) throws OseeCoreException {
IAtsWorkDefinition defaultWorkDef =
AtsClientService.get().getWorkDefinitionAdmin().getWorkDefinition(
AtsWorkDefinitionSheetProviders.WORK_DEF_TEAM_DEFAULT).getWorkDefinition();
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java
index a7064e6a51c..85d8528d7bb 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java
@@ -15,6 +15,7 @@ import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.core.client.IAtsWorkDefinitionAdmin;
import org.eclipse.osee.ats.core.client.config.AtsArtifactToken;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsGroup;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
@@ -44,19 +45,18 @@ public class AtsDatabaseConfig implements IDbInitializationTask {
ArtifactQuery.getArtifactFromToken(AtsArtifactToken.TopTeamDefinition, AtsUtil.getAtsBranchToken());
IAtsTeamDefinition teamDef = AtsClientService.get().getConfigObject(topTeamDefArt);
teamDef.setWorkflowDefinition(IAtsWorkDefinitionAdmin.TeamWorkflowDefaultDefinitionId);
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranchToken(), "Set Top Team Work Definition");
- AtsClientService.get().storeConfigObject(teamDef, transaction);
- transaction.execute();
+ AtsChangeSet changes = new AtsChangeSet("Set Top Team Work Definition");
+ AtsClientService.get().storeConfigObject(teamDef, changes);
+ changes.execute();
// load top ai into cache
Artifact topAiArt =
ArtifactQuery.getArtifactFromToken(AtsArtifactToken.TopActionableItem, AtsUtil.getAtsBranchToken());
IAtsActionableItem aia = AtsClientService.get().getConfigObject(topAiArt);
aia.setActionable(false);
- transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranchToken(), "Set Top AI to Non Actionable");
- AtsClientService.get().storeConfigObject(aia, transaction);
- transaction.execute();
+ changes.reset("Set Top AI to Non Actionable");
+ AtsClientService.get().storeConfigObject(aia, changes);
+ changes.execute();
AtsWorkDefinitionSheetProviders.initializeDatabase(new XResultData(false));
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperation.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperation.java
index fc44105f9d6..9e48bf38fa2 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperation.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperation.java
@@ -16,6 +16,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Level;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.osee.ats.api.IAtsConfigObject;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
@@ -23,7 +24,9 @@ import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.core.client.config.AtsBulkLoad;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
@@ -31,9 +34,8 @@ import org.eclipse.osee.framework.core.operation.AbstractOperation;
import org.eclipse.osee.framework.core.util.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
/**
@@ -49,7 +51,6 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
private final Map<IAtsTeamDefinition, IAtsTeamDefinition> fromTeamDefToNewTeamDefMap =
new HashMap<IAtsTeamDefinition, IAtsTeamDefinition>();
- private SkynetTransaction transaction;
public CopyAtsConfigurationOperation(ConfigData data, XResultData resultData) {
super("Copy ATS Configuration", Activator.PLUGIN_ID);
@@ -68,16 +69,16 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
if (resultData.isErrors()) {
return;
}
- transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranchToken(), getClass().getSimpleName());
+ AtsChangeSet changes = new AtsChangeSet(getName());
getCopyAtsValidation().validate();
if (resultData.isErrors()) {
- persistOrUndoChanges(transaction);
+ persistOrUndoChanges(changes);
return;
}
if (data.isPersistChanges()) {
- resultData.log("Persisting Changes");
+ resultData.log("Persisting Changes ");
} else {
resultData.log("Report-Only, Changes are not persisted");
}
@@ -86,22 +87,24 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
existingArtifacts = new HashSet<Artifact>(50);
processedFromAis = new HashSet<Artifact>(10);
- createTeamDefinitions(transaction, data.getTeamDef(), data.getParentTeamDef());
+ createTeamDefinitions(changes, data.getTeamDef(), data.getParentTeamDef());
if (resultData.isErrors()) {
- persistOrUndoChanges(transaction);
+ persistOrUndoChanges(changes);
return;
}
- createActionableItems(transaction, data.getActionableItem(), data.getParentActionableItem());
+ createActionableItems(changes, data.getActionableItem(), data.getParentActionableItem());
if (resultData.isErrors()) {
- persistOrUndoChanges(transaction);
+ persistOrUndoChanges(changes);
return;
}
AtsBulkLoad.reloadConfig(true);
- persistOrUndoChanges(transaction);
+ persistOrUndoChanges(changes);
XResultDataUI.report(resultData, getName());
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
} finally {
monitor.subTask("Done");
}
@@ -109,10 +112,8 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
/**
* Has potential of returning null if this fromAi has already been processed.
- *
- * @param transaction
*/
- protected IAtsActionableItem createActionableItems(SkynetTransaction transaction, IAtsActionableItem fromAi, IAtsActionableItem parentAi) throws OseeCoreException {
+ protected IAtsActionableItem createActionableItems(IAtsChangeSet changes, IAtsActionableItem fromAi, IAtsActionableItem parentAi) throws OseeCoreException {
Artifact fromAiArt = AtsClientService.get().getConfigArtifact(fromAi);
if (processedFromAis.contains(fromAiArt)) {
@@ -121,15 +122,17 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
} else {
processedFromAis.add(fromAiArt);
}
- Artifact parentAiArt = AtsClientService.get().storeConfigObject(parentAi, transaction);
+ Artifact parentAiArt = AtsClientService.get().storeConfigObject(parentAi, changes);
// Get or create new team definition
- Artifact newAiArt = duplicateTeamDefinitionOrActionableItem(fromAiArt);
+ Artifact newAiArt = duplicateTeamDefinitionOrActionableItem(changes, fromAiArt);
+ changes.add(newAiArt);
IAtsActionableItem newAi = AtsClientService.get().getConfigObject(newAiArt);
newAi.setParentActionableItem(parentAi);
parentAi.getChildrenActionableItems().add(newAi);
parentAiArt.addChild(newAiArt);
+ changes.add(parentAiArt);
existingArtifacts.add(parentAiArt);
newArtifacts.add(newAiArt);
// Relate new Ais to their TeamDefs just like other config
@@ -145,9 +148,7 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
} else {
Artifact newTeamDefArt = AtsClientService.get().getConfigArtifact(newTeamDef);
newAiArt.addRelation(AtsRelationTypes.TeamActionableItem_Team, newTeamDefArt);
- if (data.isPersistChanges()) {
- newTeamDefArt.persist(transaction);
- }
+ changes.add(newTeamDefArt);
}
}
@@ -156,39 +157,41 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
if (childFromAiArt.isOfType(AtsArtifactTypes.ActionableItem)) {
IAtsActionableItem childAi = AtsClientService.get().getConfigObject(childFromAiArt);
IAtsActionableItem newChildAi = AtsClientService.get().getConfigObject(newAiArt);
- createActionableItems(transaction, childAi, newChildAi);
+ createActionableItems(changes, childAi, newChildAi);
}
}
return newAi;
}
- protected IAtsTeamDefinition createTeamDefinitions(SkynetTransaction transaction, IAtsTeamDefinition fromTeamDef, IAtsTeamDefinition parentTeamDef) throws OseeCoreException {
+ protected IAtsTeamDefinition createTeamDefinitions(IAtsChangeSet changes, IAtsTeamDefinition fromTeamDef, IAtsTeamDefinition parentTeamDef) throws OseeCoreException {
// Get or create new team definition
Artifact parentTeamDefArt = AtsClientService.get().getConfigArtifact(parentTeamDef);
Artifact fromTeamDefArt = AtsClientService.get().getConfigArtifact(fromTeamDef);
- Artifact newTeamDefArt = duplicateTeamDefinitionOrActionableItem(fromTeamDefArt);
+ Artifact newTeamDefArt = duplicateTeamDefinitionOrActionableItem(changes, fromTeamDefArt);
+ changes.add(newTeamDefArt);
IAtsTeamDefinition newTeamDef = AtsClientService.get().getConfigObject(newTeamDefArt);
parentTeamDefArt.addChild(newTeamDefArt);
+ changes.add(parentTeamDefArt);
existingArtifacts.add(parentTeamDefArt);
newArtifacts.add(newTeamDefArt);
fromTeamDefToNewTeamDefMap.put(fromTeamDef, newTeamDef);
if (data.isRetainTeamLeads()) {
- duplicateTeamLeadsAndMembers(fromTeamDef, newTeamDef);
+ duplicateTeamLeadsAndMembers(changes, fromTeamDef, newTeamDef);
}
// handle all children
for (Artifact childFromTeamDefArt : fromTeamDefArt.getChildren()) {
if (childFromTeamDefArt.isOfType(AtsArtifactTypes.TeamDefinition)) {
IAtsTeamDefinition childFromTeamDef = AtsClientService.get().getConfigObject(childFromTeamDefArt);
AtsClientService.get().getAtsConfig().getSoleByGuid(childFromTeamDefArt.getGuid(), IAtsTeamDefinition.class);
- createTeamDefinitions(transaction, childFromTeamDef, newTeamDef);
+ createTeamDefinitions(changes, childFromTeamDef, newTeamDef);
}
}
return newTeamDef;
}
- private void duplicateTeamLeadsAndMembers(IAtsTeamDefinition fromTeamDef, IAtsTeamDefinition newTeamDef) throws OseeCoreException {
+ private void duplicateTeamLeadsAndMembers(IAtsChangeSet changes, IAtsTeamDefinition fromTeamDef, IAtsTeamDefinition newTeamDef) throws OseeCoreException {
Artifact fromTeamDefArt = AtsClientService.get().getConfigArtifact(fromTeamDef);
Artifact newTeamDefArt = AtsClientService.get().getConfigArtifact(newTeamDef);
@@ -196,6 +199,7 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
for (Artifact user : fromTeamDefArt.getRelatedArtifacts(AtsRelationTypes.TeamLead_Lead)) {
if (!leads.contains(user)) {
existingArtifacts.add(user);
+ changes.add(user);
newTeamDefArt.addRelation(AtsRelationTypes.TeamLead_Lead, user);
resultData.log(" - Relating team lead " + user);
}
@@ -204,6 +208,7 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
for (Artifact user : fromTeamDefArt.getRelatedArtifacts(AtsRelationTypes.TeamMember_Member)) {
if (!members.contains(user)) {
existingArtifacts.add(user);
+ changes.add(user);
newTeamDefArt.addRelation(AtsRelationTypes.TeamMember_Member, user);
resultData.log(" - Relating team member " + user);
}
@@ -211,18 +216,16 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
for (Artifact user : fromTeamDefArt.getRelatedArtifacts(AtsRelationTypes.PrivilegedMember_Member)) {
if (!members.contains(user)) {
existingArtifacts.add(user);
+ changes.add(user);
newTeamDefArt.addRelation(AtsRelationTypes.PrivilegedMember_Member, user);
resultData.log(" - Relating privileged member " + user);
}
}
}
- private void persistOrUndoChanges(SkynetTransaction transaction) throws OseeCoreException {
+ private void persistOrUndoChanges(AtsChangeSet changes) throws OseeCoreException {
if (data.isPersistChanges()) {
- for (Artifact art : newArtifacts) {
- art.persist(transaction);
- }
- transaction.execute();
+ changes.execute();
AtsClientService.get().invalidateConfigCache();
} else {
resultData.log("\n\nCleanup of created / modified artifacts\n\n");
@@ -245,7 +248,7 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
}
}
- private Artifact duplicateTeamDefinitionOrActionableItem(Artifact fromArtifact) throws OseeCoreException {
+ private Artifact duplicateTeamDefinitionOrActionableItem(IAtsChangeSet changes, Artifact fromArtifact) throws OseeCoreException {
String newName = CopyAtsUtil.getConvertedName(data, fromArtifact.getName());
if (newName.equals(fromArtifact.getName())) {
throw new OseeArgumentException("Could not get new name from name conversion.");
@@ -254,6 +257,7 @@ public class CopyAtsConfigurationOperation extends AbstractOperation {
Artifact newTeamDef =
fromArtifact.duplicate(AtsUtil.getAtsBranch(), Arrays.asList(AtsAttributeTypes.BaselineBranchGuid));
newTeamDef.setName(newName);
+ changes.add(newTeamDef);
resultData.log("Creating new " + newTeamDef.getArtifactTypeName() + ": " + newTeamDef);
String fullName = newTeamDef.getSoleAttributeValue(AtsAttributeTypes.FullName, null);
if (fullName != null) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeHoursSpent.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeHoursSpent.java
index 28d5bc749bd..2a32b7db681 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeHoursSpent.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeHoursSpent.java
@@ -13,7 +13,7 @@ package org.eclipse.osee.ats.editor;
import java.util.Arrays;
import java.util.Collection;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionStatusData;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.util.widgets.dialog.TransitionStatusDialog;
import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java
index 03b7c5a7ab9..009bfaf1b8d 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java
@@ -12,12 +12,13 @@ package org.eclipse.osee.ats.editor;
import java.util.Arrays;
import java.util.Collection;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.core.users.AtsCoreUsers;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.util.widgets.dialog.TransitionStatusDialog;
@@ -96,22 +97,22 @@ public class SMAPromptChangeStatus {
return Result.FalseResult;
}
- public static void performChangeStatus(Collection<? extends AbstractWorkflowArtifact> awas, String selectedOption, double hours, int percent, boolean splitHours, boolean persist) throws OseeCoreException {
+ public static void performChangeStatus(Collection<? extends IAtsWorkItem> workItems, String selectedOption, double hours, int percent, boolean splitHours, boolean persist) throws OseeCoreException {
if (splitHours) {
- hours = hours / awas.size();
+ hours = hours / workItems.size();
}
SkynetTransaction transaction = null;
if (persist) {
transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "ATS Prompt Change Status");
}
- for (AbstractWorkflowArtifact awa : awas) {
- if (awa.getStateMgr().isUnAssigned()) {
- awa.getStateMgr().removeAssignee(AtsCoreUsers.UNASSIGNED_USER);
- awa.getStateMgr().addAssignee(AtsClientService.get().getUserAdmin().getCurrentUser());
+ for (IAtsWorkItem workItem : workItems) {
+ if (workItem.getStateMgr().isUnAssigned()) {
+ workItem.getStateMgr().removeAssignee(AtsCoreUsers.UNASSIGNED_USER);
+ workItem.getStateMgr().addAssignee(AtsClientService.get().getUserAdmin().getCurrentUser());
}
- awa.getStateMgr().updateMetrics(awa.getStateDefinition(), hours, percent, true);
+ workItem.getStateMgr().updateMetrics(workItem.getStateDefinition(), hours, percent, true);
if (persist) {
- awa.persist(transaction);
+ AtsClientService.get().getArtifact(workItem).persist(transaction);
}
}
if (persist) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java
index 2e42590f118..0a14492540e 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java
@@ -21,18 +21,23 @@ import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionHelper;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.AtsCore;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.ITransitionHelper;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionHelperAdapter;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.core.client.workflow.transition.TransitionToOperation;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionHelperAdapter;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.editor.stateItem.AtsStateItemManager;
import org.eclipse.osee.ats.editor.stateItem.IAtsStateItem;
import org.eclipse.osee.ats.internal.Activator;
@@ -183,7 +188,7 @@ public class WETransitionComposite extends Composite {
private void handleTransitionButtonSelection(final SMAEditor editor, final boolean isEditable) {
editor.doSave(null);
- final List<AbstractWorkflowArtifact> awas = Arrays.asList(awa);
+ final List<IAtsWorkItem> workItems = Arrays.asList((IAtsWorkItem) awa);
final IAtsStateDefinition toStateDef = (IAtsStateDefinition) transitionToStateCombo.getSelected();
final IAtsStateDefinition fromStateDef = awa.getStateDefinition();
ITransitionHelper helper = new TransitionHelperAdapter() {
@@ -199,7 +204,8 @@ public class WETransitionComposite extends Composite {
}
@Override
- public Collection<? extends IAtsUser> getToAssignees(AbstractWorkflowArtifact awa) throws OseeCoreException {
+ public Collection<? extends IAtsUser> getToAssignees(IAtsWorkItem workItem) throws OseeCoreException {
+ AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) AtsClientService.get().getArtifact(workItem);
return awa.getTransitionAssignees();
}
@@ -222,7 +228,7 @@ public class WETransitionComposite extends Composite {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
result.set(false);
result.setText(String.format("Error processing extra hours spent for [%s]",
- awas.iterator().next().toStringWithId()));
+ workItems.iterator().next().toStringWithId()));
}
if (!resultBool) {
result.setCancelled(true);
@@ -240,25 +246,49 @@ public class WETransitionComposite extends Composite {
@Override
public void run() {
- IAtsStateDefinition toStateDef =
- getAwas().iterator().next().getStateDefinitionByName(getToStateName());
- if (toStateDef.getStateType().isCancelledState()) {
- EntryDialog cancelDialog = new EntryDialog("Cancellation Reason", "Enter cancellation reason.");
- if (cancelDialog.open() != 0) {
- result.setCancelled(true);
+ IAtsStateDefinition toStateDef;
+ try {
+ toStateDef =
+ AtsClientService.get().getWorkDefinitionAdmin().getStateDefinitionByName(awa, getToStateName());
+ if (toStateDef.getStateType().isCancelledState()) {
+ EntryDialog cancelDialog = new EntryDialog("Cancellation Reason", "Enter cancellation reason.");
+ if (cancelDialog.open() != 0) {
+ result.setCancelled(true);
+ }
+ result.set(true);
+ result.setText(cancelDialog.getEntry());
}
- result.set(true);
- result.setText(cancelDialog.getEntry());
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
}
-
}
}, true);
return result;
}
@Override
- public Collection<AbstractWorkflowArtifact> getAwas() {
- return awas;
+ public Collection<IAtsWorkItem> getWorkItems() {
+ return workItems;
+ }
+
+ @Override
+ public void setInTransition(IAtsWorkItem workItem, boolean inTransition) throws OseeCoreException {
+ AtsClientService.get().getWorkflowArtifact(workItem).setInTransition(inTransition);
+ }
+
+ @Override
+ public IAtsChangeSet getChangeSet() {
+ return new AtsChangeSet(getName());
+ }
+
+ @Override
+ public Collection<ITransitionListener> getTransitionListeners() {
+ try {
+ return AtsCore.getWorkItemService().getTransitionListeners();
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ return java.util.Collections.emptyList();
}
};
@@ -396,7 +426,8 @@ public class WETransitionComposite extends Composite {
uld.setMessage("Select users to transition to.");
uld.setInitialSelections(AtsClientService.get().getUserAdmin().getOseeUsers(aba.getTransitionAssignees()));
if (awa.getParentTeamWorkflow() != null) {
- uld.setTeamMembers(AtsClientService.get().getUserAdmin().getOseeUsers(awa.getParentTeamWorkflow().getTeamDefinition().getMembersAndLeads()));
+ uld.setTeamMembers(AtsClientService.get().getUserAdmin().getOseeUsers(
+ awa.getParentTeamWorkflow().getTeamDefinition().getMembersAndLeads()));
}
if (uld.open() != 0) {
return;
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java
index 51d895db98d..cf476530709 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java
@@ -11,16 +11,16 @@
package org.eclipse.osee.ats.editor.stateItem;
import java.util.Collection;
-import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IStateToken;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.review.DecisionReviewState;
import org.eclipse.osee.ats.core.client.review.XDecisionOptions;
-import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.ITransitionListener;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
/**
* @author Donald G. Dunne
@@ -37,17 +37,16 @@ public class AtsDecisionReviewPrepareStateItem extends AtsStateItem implements I
}
@Override
- public void transitioning(TransitionResults results, AbstractWorkflowArtifact sma, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) throws OseeCoreException {
- if (sma.isOfType(AtsArtifactTypes.DecisionReview) && fromState.getName().equals(
- DecisionReviewState.Prepare.getName()) && toState.getName().equals(
+ public void transitioning(TransitionResults results, IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) throws OseeCoreException {
+ if ((workItem instanceof IAtsDecisionReview) && fromState.getName().equals(DecisionReviewState.Prepare.getName()) && toState.getName().equals(
DecisionReviewState.Decision.getName())) {
- XDecisionOptions decOptions = new XDecisionOptions(sma);
+ XDecisionOptions decOptions = new XDecisionOptions(workItem);
decOptions.validateDecisionOptions(results);
}
}
@Override
- public void transitioned(AbstractWorkflowArtifact sma, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, SkynetTransaction transaction) {
+ public void transitioned(IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, IAtsChangeSet changes) {
// do nothing
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java
index 2c90e3a4c03..26d4ea08804 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java
@@ -11,16 +11,18 @@
package org.eclipse.osee.ats.editor.stateItem;
import java.util.Collection;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption;
+import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.ITransitionListener;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
/**
* @author Donald G. Dunne
@@ -37,12 +39,13 @@ public class AtsForceAssigneesToTeamLeadsStateItem extends AtsStateItem implemen
}
@Override
- public void transitioned(AbstractWorkflowArtifact sma, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, SkynetTransaction transaction) throws OseeCoreException {
- if (sma.isTeamWorkflow() && isForceAssigneesToTeamLeads(sma.getStateDefinitionByName(toState.getName()))) {
- Collection<IAtsUser> teamLeads = ((TeamWorkFlowArtifact) sma).getTeamDefinition().getLeads();
+ public void transitioned(IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, IAtsChangeSet changes) throws OseeCoreException {
+ if ((workItem instanceof IAtsTeamWorkflow) && isForceAssigneesToTeamLeads(AtsClientService.get().getWorkDefinitionAdmin().getStateDefinitionByName(
+ workItem, toState.getName()))) {
+ Collection<IAtsUser> teamLeads = ((TeamWorkFlowArtifact) workItem).getTeamDefinition().getLeads();
if (!teamLeads.isEmpty()) {
- sma.getStateMgr().setAssignees(teamLeads);
- sma.persist(transaction);
+ workItem.getStateMgr().setAssignees(teamLeads);
+ changes.add(workItem);
}
}
}
@@ -52,7 +55,7 @@ public class AtsForceAssigneesToTeamLeadsStateItem extends AtsStateItem implemen
}
@Override
- public void transitioning(TransitionResults results, AbstractWorkflowArtifact sma, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) {
+ public void transitioning(TransitionResults results, IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) {
// do nothing
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsLogWorkPage.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsLogWorkPage.java
index bf35d4f0347..e7c01a21724 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsLogWorkPage.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsLogWorkPage.java
@@ -75,6 +75,11 @@ public class AtsLogWorkPage extends StateXWidgetPage {
public boolean matches(Identity<?>... identities) {
return false;
}
+
+ @Override
+ public IAtsStateDefinition getStateDefinitionByName(String name) {
+ return null;
+ }
}
public AtsLogWorkPage(String title) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java
index 7f9407e7fd1..c72c0b651c8 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java
@@ -13,18 +13,18 @@ package org.eclipse.osee.ats.editor.stateItem;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
-import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.review.IAtsPeerToPeerReview;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IStateToken;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewArtifact;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewState;
import org.eclipse.osee.ats.core.client.review.role.UserRole;
import org.eclipse.osee.ats.core.client.review.role.UserRoleManager;
-import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.ITransitionListener;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
/**
* @author Donald G. Dunne
@@ -41,26 +41,25 @@ public class AtsPeerToPeerReviewReviewStateItem extends AtsStateItem implements
}
@Override
- public void transitioned(AbstractWorkflowArtifact sma, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, SkynetTransaction transaction) throws OseeCoreException {
- if (sma.isOfType(AtsArtifactTypes.PeerToPeerReview) && toState.getName().equals(
- PeerToPeerReviewState.Review.getName())) {
+ public void transitioned(IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, IAtsChangeSet changes) throws OseeCoreException {
+ if ((workItem instanceof IAtsPeerToPeerReview) && toState.getName().equals(PeerToPeerReviewState.Review.getName())) {
// Set Assignees to all user roles users
Set<IAtsUser> assignees = new HashSet<IAtsUser>();
- PeerToPeerReviewArtifact peerArt = (PeerToPeerReviewArtifact) sma;
+ PeerToPeerReviewArtifact peerArt = (PeerToPeerReviewArtifact) workItem;
for (UserRole uRole : UserRoleManager.getUserRoles(peerArt)) {
if (!uRole.isCompleted()) {
assignees.add(uRole.getUser());
}
}
- assignees.addAll(sma.getStateMgr().getAssignees());
+ assignees.addAll(workItem.getStateMgr().getAssignees());
- sma.getStateMgr().setAssignees(assignees);
- sma.persist(transaction);
+ workItem.getStateMgr().setAssignees(assignees);
+ changes.add(workItem);
}
}
@Override
- public void transitioning(TransitionResults results, AbstractWorkflowArtifact sma, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) {
+ public void transitioning(TransitionResults results, IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) {
// do nothing
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java
index 8281eab1cb9..6eadb2aacba 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java
@@ -13,8 +13,11 @@ package org.eclipse.osee.ats.editor.stateItem;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
+import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.editor.SMAWorkFlowSection;
import org.eclipse.osee.framework.core.util.Result;
@@ -109,4 +112,8 @@ public abstract class AtsStateItem implements IAtsStateItem {
public String toString() {
return getName();
}
+
+ @SuppressWarnings("unused")
+ public void transitioned(IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, IAtsChangeSet changes) throws OseeCoreException {
+ }
} \ No newline at end of file
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java
index 37b3f4d6162..f31eca99aa5 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java
@@ -18,19 +18,21 @@ import java.util.logging.Level;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
import org.eclipse.osee.ats.api.workdef.IStateToken;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewManager;
import org.eclipse.osee.ats.core.client.review.ReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionHelper;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionManager;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionOption;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.workflow.state.TeamState;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionManager;
import org.eclipse.osee.ats.editor.SMAEditor;
import org.eclipse.osee.ats.editor.SMAWorkFlowSection;
import org.eclipse.osee.ats.internal.Activator;
@@ -302,7 +304,9 @@ public class ReviewInfoXWidget extends XLabelValueBase {
}
try {
List<AbstractWorkflowArtifact> awas = new ArrayList<AbstractWorkflowArtifact>();
- for (AbstractReviewArtifact revArt : ReviewManager.getReviewsFromCurrentState(teamArt)) {
+ for (IAtsAbstractReview review : ReviewManager.getReviewsFromCurrentState(teamArt)) {
+ AbstractReviewArtifact revArt =
+ (AbstractReviewArtifact) AtsClientService.get().getArtifact(review);
if (!revArt.isCompletedOrCancelled()) {
if (revArt.getStateMgr().isUnAssigned()) {
revArt.getStateMgr().setAssignee(AtsClientService.get().getUserAdmin().getCurrentUser());
@@ -310,15 +314,16 @@ public class ReviewInfoXWidget extends XLabelValueBase {
awas.add(revArt);
}
}
+ AtsChangeSet changes = new AtsChangeSet("Admin Auto-Complete Reviews");
TransitionHelper helper =
new TransitionHelper("ATS Auto Complete Reviews", awas, TeamState.Completed.getName(), null,
- null, TransitionOption.OverrideTransitionValidityCheck, TransitionOption.None);
+ null, changes, TransitionOption.OverrideTransitionValidityCheck, TransitionOption.None);
TransitionManager transitionMgr = new TransitionManager(helper);
TransitionResults results = transitionMgr.handleAll();
if (!results.isEmpty()) {
AWorkbench.popup(String.format("Transition Error %s", results.toString()));
}
- transitionMgr.getTransaction().execute();
+ changes.execute();
smaWorkflowSection.getEditor().refreshPages();
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/TaskInfoXWidget.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/TaskInfoXWidget.java
index 1185eb29eb0..26d4bcd0e5e 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/TaskInfoXWidget.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/TaskInfoXWidget.java
@@ -15,22 +15,21 @@ import java.util.logging.Level;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osee.ats.api.workdef.IStateToken;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.task.AbstractTaskableArtifact;
import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.task.TaskStates;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionHelper;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionManager;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionOption;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionManager;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.widgets.XLabelValueBase;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -127,17 +126,17 @@ public class TaskInfoXWidget extends XLabelValueBase {
return;
}
try {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "ATS Auto Complete Tasks");
+ AtsChangeSet changes = new AtsChangeSet("ATS Auto Complete Tasks");
for (TaskArtifact taskArt : taskableArt.getTaskArtifacts(forState)) {
if (!taskArt.isCompletedOrCancelled()) {
if (taskArt.getStateMgr().isUnAssigned()) {
- taskArt.getStateMgr().setAssignee(AtsClientService.get().getUserAdmin().getCurrentUser());
+ taskArt.getStateMgr().setAssignee(
+ AtsClientService.get().getUserAdmin().getCurrentUser());
}
TransitionHelper helper =
new TransitionHelper("Transition to Completed", Arrays.asList(taskArt),
TaskStates.Completed.getName(), null, null,
- TransitionOption.OverrideTransitionValidityCheck, TransitionOption.None);
+ changes, TransitionOption.OverrideTransitionValidityCheck, TransitionOption.None);
TransitionManager transitionMgr = new TransitionManager(helper);
TransitionResults results = transitionMgr.handleAll();
if (!results.isEmpty()) {
@@ -146,7 +145,7 @@ public class TaskInfoXWidget extends XLabelValueBase {
}
}
}
- transaction.execute();
+ changes.execute();
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java
index ac108f9c8eb..44d749fd02d 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java
@@ -51,12 +51,12 @@ import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.util.AtsTaskCache;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionManager;
import org.eclipse.osee.ats.core.config.AtsVersionService;
import org.eclipse.osee.ats.core.config.TeamDefinitions;
import org.eclipse.osee.ats.core.users.AtsCoreUsers;
import org.eclipse.osee.ats.core.util.AtsObjects;
import org.eclipse.osee.ats.core.workflow.state.TeamState;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionManager;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java
index a327f249b6c..41c14b212d0 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java
@@ -24,17 +24,18 @@ import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.version.IAtsVersion;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.action.ActionManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.ChangeType;
import org.eclipse.osee.ats.core.client.workflow.ChangeTypeUtil;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionHelper;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionManager;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionOption;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.config.AtsVersionService;
import org.eclipse.osee.ats.core.workflow.state.TeamState;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionManager;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
@@ -48,8 +49,6 @@ import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
@@ -193,16 +192,16 @@ public class AtsRemoteEventTestItem extends WorldXNavigateItemAction {
}
private void makeChanges7(TeamWorkFlowArtifact teamArt) throws OseeCoreException {
- SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Remote Event Test");
+ AtsChangeSet changes = new AtsChangeSet("Remote Event Test");
TransitionHelper helper =
new TransitionHelper("Remote Event Test", Arrays.asList(teamArt), TeamState.Analyze.getName(),
- Collections.singleton(AtsClientService.get().getUserAdmin().getCurrentUser()), null, TransitionOption.None);
- TransitionManager transitionMgr = new TransitionManager(helper, transaction);
+ Collections.singleton(AtsClientService.get().getUserAdmin().getCurrentUser()), null, changes, TransitionOption.None);
+ TransitionManager transitionMgr = new TransitionManager(helper);
TransitionResults results = transitionMgr.handleAll();
if (!results.isEmpty()) {
throw new OseeStateException(results.toString());
}
- transaction.execute();
+ changes.execute();
}
private void makeChanges6(TeamWorkFlowArtifact teamArt) throws OseeCoreException {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/notify/AtsNotificationTransitionListener.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/notify/AtsNotificationTransitionListener.java
index 2a4e1542908..9b7f34772d4 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/notify/AtsNotificationTransitionListener.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/notify/AtsNotificationTransitionListener.java
@@ -11,15 +11,17 @@
package org.eclipse.osee.ats.notify;
import java.util.Collection;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.notify.AtsNotifyType;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IStateToken;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.notify.AtsNotificationManager;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.ITransitionListener;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager;
/**
@@ -28,14 +30,15 @@ import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager;
public class AtsNotificationTransitionListener implements ITransitionListener {
@Override
- public void transitioning(TransitionResults results, AbstractWorkflowArtifact sma, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) {
+ public void transitioning(TransitionResults results, IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees) {
// do nothing
}
@Override
- public void transitioned(AbstractWorkflowArtifact awa, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, SkynetTransaction transaction) throws OseeCoreException {
+ public void transitioned(IAtsWorkItem workItem, IStateToken fromState, IStateToken toState, Collection<? extends IAtsUser> toAssignees, IAtsChangeSet changes) throws OseeCoreException {
- AtsNotificationManager.notify(awa, AtsNotifyType.Subscribed, AtsNotifyType.Completed, AtsNotifyType.Cancelled);
+ AtsNotificationManager.notify((AbstractWorkflowArtifact) AtsClientService.get().getArtifact(workItem),
+ AtsNotifyType.Subscribed, AtsNotifyType.Completed, AtsNotifyType.Cancelled);
OseeNotificationManager.getInstance().sendNotifications();
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/CreateActionFromTaskBlam.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/CreateActionFromTaskBlam.java
index f7e72289ca0..05bbc3e2b2d 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/CreateActionFromTaskBlam.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/CreateActionFromTaskBlam.java
@@ -25,6 +25,7 @@ import org.eclipse.osee.ats.core.client.action.ActionArtifact;
import org.eclipse.osee.ats.core.client.action.ActionManager;
import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.ChangeType;
import org.eclipse.osee.ats.editor.SMAEditor;
@@ -40,8 +41,6 @@ import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
@@ -123,8 +122,7 @@ public class CreateActionFromTaskBlam extends AbstractBlam {
private void handleCreateActions(Collection<TaskArtifact> tasks, String title, Collection<IAtsActionableItem> aias, ChangeType changeType, String priority, IProgressMonitor monitor) throws OseeCoreException {
Set<TeamWorkFlowArtifact> newTeamArts = new HashSet<TeamWorkFlowArtifact>();
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Create Actions from Tasks");
+ AtsChangeSet changes = new AtsChangeSet("Create Actions from Tasks");
for (TaskArtifact task : tasks) {
String useTitle = title;
if (!Strings.isValid(useTitle)) {
@@ -132,15 +130,15 @@ public class CreateActionFromTaskBlam extends AbstractBlam {
}
ActionArtifact action =
ActionManager.createAction(monitor, useTitle, getDescription(task), changeType, priority, false, null,
- aias, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), null, transaction);
+ aias, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), null, changes);
for (TeamWorkFlowArtifact teamArt : action.getTeams()) {
newTeamArts.add(teamArt);
teamArt.addRelation(CoreRelationTypes.SupportingInfo_SupportingInfo, task);
- teamArt.persist(transaction);
+ changes.add(teamArt);
}
}
- transaction.execute();
+ changes.execute();
if (newTeamArts.size() == 1) {
SMAEditor.editArtifact(newTeamArts.iterator().next());
} else {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java
index 23240161bc6..343a813c53b 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java
@@ -29,6 +29,7 @@ import org.eclipse.osee.ats.core.client.task.AbstractTaskableArtifact;
import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowManager;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.ITeamWorkflowProvider;
import org.eclipse.osee.ats.editor.SMAEditor;
@@ -126,8 +127,7 @@ public class DuplicateWorkflowBlam extends AbstractBlam {
private void handleCreateNewWorkflow(Collection<TeamWorkFlowArtifact> teamArts, String title) throws OseeCoreException {
Set<TeamWorkFlowArtifact> newTeamArts = new HashSet<TeamWorkFlowArtifact>();
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Duplicate Workflow");
+ AtsChangeSet changes = new AtsChangeSet("Duplicate Workflow");
Date createdDate = new Date();
IAtsUser createdBy = AtsClientService.get().getUserAdmin().getCurrentUser();
for (TeamWorkFlowArtifact teamArt : teamArts) {
@@ -138,15 +138,15 @@ public class DuplicateWorkflowBlam extends AbstractBlam {
}
TeamWorkFlowArtifact newTeamArt =
ActionManager.createTeamWorkflow(teamArt.getParentActionArtifact(), teamArt.getTeamDefinition(),
- teamArt.getActionableItemsDam().getActionableItems(), assignees, transaction, createdDate, createdBy,
- null, CreateTeamOption.Duplicate_If_Exists);
+ teamArt.getActionableItemsDam().getActionableItems(), assignees, changes, createdDate, createdBy, null,
+ CreateTeamOption.Duplicate_If_Exists);
if (Strings.isValid(title)) {
newTeamArt.setName(title);
}
- newTeamArt.persist(transaction);
+ changes.add(newTeamArt);
newTeamArts.add(newTeamArt);
}
- transaction.execute();
+ changes.execute();
for (TeamWorkFlowArtifact newTeamArt : newTeamArts) {
SMAEditor.editArtifact(newTeamArt);
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSimpleList.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSimpleList.java
index 4a9111e6295..948ace05d56 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSimpleList.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSimpleList.java
@@ -22,18 +22,16 @@ import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.column.RelatedToStateColumn;
import org.eclipse.osee.ats.core.client.task.AbstractTaskableArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.editor.SMAEditor;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
-import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
@@ -102,13 +100,12 @@ public class ImportTasksFromSimpleList extends AbstractBlam {
}
try {
final TeamWorkFlowArtifact teamArt = (TeamWorkFlowArtifact) artifact;
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Import Tasks from Simple List");
+ AtsChangeSet changes = new AtsChangeSet("Import Tasks from Simple List");
Date createdDate = new Date();
IAtsUser createdBy = AtsClientService.get().getUserAdmin().getCurrentUser();
- teamArt.createTasks(titles, assignees, createdDate, createdBy, stateCombo.get(), transaction);
- teamArt.persist(transaction);
- transaction.execute();
+ teamArt.createTasks(titles, assignees, createdDate, createdBy, stateCombo.get(), changes);
+ changes.add(teamArt);
+ changes.execute();
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
return;
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSpreadsheet.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSpreadsheet.java
index e460f97b46e..bdbb5ba731f 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSpreadsheet.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ImportTasksFromSpreadsheet.java
@@ -19,16 +19,14 @@ import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.core.client.task.AbstractTaskableArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.editor.SMAEditor;
-import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.util.Import.ExcelAtsTaskArtifactExtractor;
import org.eclipse.osee.ats.util.Import.TaskImportJob;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
@@ -121,13 +119,12 @@ public class ImportTasksFromSpreadsheet extends AbstractBlam {
}
File file = new File(filename);
try {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Import Tasks from Spreadsheet");
+ AtsChangeSet changes = new AtsChangeSet("Import Tasks from Spreadsheet");
Job job =
Jobs.startJob(new TaskImportJob(file, new ExcelAtsTaskArtifactExtractor(
- (TeamWorkFlowArtifact) artifact, emailPocs, transaction)));
+ (TeamWorkFlowArtifact) artifact, emailPocs, changes)));
job.join();
- transaction.execute();
+ changes.execute();
} catch (Exception ex) {
log(ex);
return;
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ModifyActionableItemsBlam.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ModifyActionableItemsBlam.java
index 48fc32e8858..bc447f562ae 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ModifyActionableItemsBlam.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/ModifyActionableItemsBlam.java
@@ -37,6 +37,7 @@ import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.core.ai.ModifyActionableItems;
import org.eclipse.osee.ats.core.client.action.ActionManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.config.ActionableItems;
import org.eclipse.osee.ats.core.config.TeamDefinitionUtility;
import org.eclipse.osee.ats.internal.Activator;
@@ -54,8 +55,6 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.ArrayTreeContentProvider;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
@@ -342,28 +341,25 @@ public class ModifyActionableItemsBlam extends AbstractBlam {
@Override
protected void doWork(IProgressMonitor monitor) throws Exception {
- SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranchToken(), getName());
+ AtsChangeSet changes = new AtsChangeSet(getName());
Date createdDate = new Date();
for (CreateTeamData data : job.getTeamDatas()) {
TeamWorkFlowArtifact teamArt =
ActionManager.createTeamWorkflow(teamWf.getParentActionArtifact(), data.getTeamDef(),
- data.getActionableItems(), new LinkedList<IAtsUser>(data.getAssignees()), transaction, createdDate,
+ data.getActionableItems(), new LinkedList<IAtsUser>(data.getAssignees()), changes, createdDate,
data.getCreatedBy(), null, data.getCreateTeamOption());
- teamArt.persist(transaction);
newTeamWfs.add(teamArt);
}
for (IAtsActionableItem checkedAi : job.getAddAis()) {
results.logWithFormat("Actionable Item [%s] will be added to this workflow\n", checkedAi);
teamWf.getActionableItemsDam().addActionableItem(checkedAi);
- teamWf.persist(transaction);
}
for (IAtsActionableItem currAi : job.getRemoveAis()) {
results.logWithFormat("Actionable Item [%s] will be removed from this workflow\n", currAi);
teamWf.getActionableItemsDam().removeActionableItem(currAi);
- teamWf.persist(transaction);
}
- transaction.execute();
+ changes.execute();
}
public List<TeamWorkFlowArtifact> getNewTeamWfs() {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewItem.java
index deb3a520e09..47b670b4f30 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewItem.java
@@ -17,6 +17,7 @@ import org.eclipse.osee.ats.AtsImage;
import org.eclipse.osee.ats.AtsOpenOption;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewArtifact;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewManager;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
@@ -24,8 +25,6 @@ import org.eclipse.osee.ats.util.widgets.dialog.ActionableItemListDialog;
import org.eclipse.osee.framework.core.enums.Active;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
@@ -56,13 +55,13 @@ public class NewPeerToPeerReviewItem extends XNavigateItemAction {
AWorkbench.popup("Must select at least one Actionable Item");
return;
}
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "New Stand-alone Peer To Peer Review");
+
+ AtsChangeSet changes = new AtsChangeSet("New Stand-alone Peer To Peer Review");
PeerToPeerReviewArtifact peerArt =
PeerToPeerReviewManager.createNewPeerToPeerReview(ld.getSelected().iterator().next(), ed.getEntry(),
- null, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), transaction);
- peerArt.persist(transaction);
- transaction.execute();
+ null, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), changes);
+ changes.execute();
+
AtsUtil.openATSAction(peerArt, AtsOpenOption.OpenAll);
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewJob.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewJob.java
index e5943ede7e1..9d1fd832f26 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewJob.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerToPeerReviewJob.java
@@ -19,10 +19,9 @@ import org.eclipse.osee.ats.AtsOpenOption;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewArtifact;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
/**
* @author Donald G. Dunne
@@ -43,11 +42,10 @@ public class NewPeerToPeerReviewJob extends Job {
@Override
public IStatus run(final IProgressMonitor monitor) {
try {
- SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "New Peer To Peer Review");
+ AtsChangeSet changes = new AtsChangeSet("New Peer To Peer Review");
PeerToPeerReviewArtifact peerArt =
- PeerToPeerReviewManager.createNewPeerToPeerReview(teamParent, reviewTitle, againstState, transaction);
- peerArt.persist(transaction);
- transaction.execute();
+ PeerToPeerReviewManager.createNewPeerToPeerReview(teamParent, reviewTitle, againstState, changes);
+ changes.execute();
AtsUtil.openATSAction(peerArt, AtsOpenOption.OpenOneOrPopupSelect);
} catch (Exception ex) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitOperation.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitOperation.java
index 426bab4cbde..dee085574b8 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitOperation.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitOperation.java
@@ -13,17 +13,20 @@ package org.eclipse.osee.ats.util;
import java.util.Date;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workdef.StateEventType;
import org.eclipse.osee.ats.core.client.branch.AtsBranchManagerCore;
import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
import org.eclipse.osee.ats.core.client.review.ReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.users.AtsCoreUsers;
import org.eclipse.osee.ats.editor.stateItem.AtsStateItemManager;
import org.eclipse.osee.ats.editor.stateItem.IAtsStateItem;
import org.eclipse.osee.ats.internal.Activator;
+import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.operation.AbstractOperation;
import org.eclipse.osee.framework.core.util.Result;
@@ -31,8 +34,6 @@ import org.eclipse.osee.framework.jdk.core.type.MutableBoolean;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.conflict.ConflictManagerExternal;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.branch.commit.CommitHandler;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -68,7 +69,8 @@ public class AtsBranchCommitOperation extends AbstractOperation {
// Confirm that all blocking reviews are completed
// Loop through this state's blocking reviews to confirm complete
if (teamArt.isTeamWorkflow()) {
- for (AbstractReviewArtifact reviewArt : ReviewManager.getReviewsFromCurrentState(teamArt)) {
+ for (IAtsAbstractReview review : ReviewManager.getReviewsFromCurrentState(teamArt)) {
+ AbstractReviewArtifact reviewArt = (AbstractReviewArtifact) AtsClientService.get().getArtifact(review);
if (reviewArt.getReviewBlockType() == ReviewBlockType.Commit && !reviewArt.isCompletedOrCancelled()) {
throw new OseeStateException("Blocking Review must be completed before commit.");
}
@@ -114,11 +116,13 @@ public class AtsBranchCommitOperation extends AbstractOperation {
}
if (branchCommitted) {
// Create reviews as necessary
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Create Reviews upon Commit");
- AtsBranchManagerCore.createNecessaryBranchEventReviews(StateEventType.CommitBranch, teamArt, new Date(),
- AtsCoreUsers.SYSTEM_USER, transaction);
- transaction.execute();
+ AtsChangeSet changes = new AtsChangeSet("Create Reviews upon Commit");
+ boolean added =
+ AtsBranchManagerCore.createNecessaryBranchEventReviews(StateEventType.CommitBranch, teamArt, new Date(),
+ AtsCoreUsers.SYSTEM_USER, changes);
+ if (added) {
+ changes.execute();
+ }
}
} finally {
if (workflowWorkingBranch != null) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/CreateActionUsingAllActionableItems.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/CreateActionUsingAllActionableItems.java
index e60ce99c227..b38e72d2328 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/CreateActionUsingAllActionableItems.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/CreateActionUsingAllActionableItems.java
@@ -18,6 +18,7 @@ import org.eclipse.osee.ats.AtsOpenOption;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.core.client.action.ActionArtifact;
import org.eclipse.osee.ats.core.client.action.ActionManager;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.workflow.ChangeType;
import org.eclipse.osee.ats.core.config.ActionableItems;
import org.eclipse.osee.ats.internal.Activator;
@@ -26,8 +27,6 @@ import org.eclipse.osee.framework.core.enums.Active;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.PluginUiImage;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
@@ -72,12 +71,11 @@ public class CreateActionUsingAllActionableItems extends XNavigateItemAction {
}
}
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Create Action using all AIs");
+ AtsChangeSet changes = new AtsChangeSet("Create Action using all AIs");
ActionArtifact action =
ActionManager.createAction(null, "Big Action Test - Delete Me", "Description", ChangeType.Improvement, "1",
- false, null, aias, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), null, transaction);
- transaction.execute();
+ false, null, aias, new Date(), AtsClientService.get().getUserAdmin().getCurrentUser(), null, changes);
+ changes.execute();
return action;
}
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java
index 2ba8095288d..b9b24aca1b1 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java
@@ -34,6 +34,7 @@ import org.eclipse.osee.ats.api.notify.AtsNotifyType;
import org.eclipse.osee.ats.api.team.CreateTeamOption;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.api.workflow.IAtsGoal;
import org.eclipse.osee.ats.core.client.action.ActionManager;
@@ -59,7 +60,6 @@ import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
import org.xml.sax.InputSource;
@@ -169,7 +169,7 @@ public class ExcelAtsActionArtifactExtractor {
return rd;
}
- public void createArtifactsAndNotify(SkynetTransaction transaction) {
+ public void createArtifactsAndNotify(IAtsChangeSet changes) {
AtsUtilCore.setEmailEnabled(false);
Set<TeamWorkFlowArtifact> teamWfs = new HashSet<TeamWorkFlowArtifact>();
Date createdDate = new Date();
@@ -182,9 +182,9 @@ public class ExcelAtsActionArtifactExtractor {
actionArt =
ActionManager.createAction(null, aData.title, aData.desc, ChangeType.getChangeType(aData.changeType),
aData.priorityStr, false, null, ActionableItems.getActionableItems(aData.actionableItems),
- createdDate, createdBy, null, transaction);
+ createdDate, createdBy, null, changes);
newTeamArts = ActionManager.getTeams(actionArt);
- addToGoal(newTeamArts, transaction);
+ addToGoal(newTeamArts, changes);
actionNameToAction.put(aData.title, actionArt);
actionArts.add(actionArt);
} else {
@@ -194,14 +194,14 @@ public class ExcelAtsActionArtifactExtractor {
TeamWorkFlowArtifact teamWorkflow =
ActionManager.createTeamWorkflow(actionArt, entry.getKey(), entry.getValue(), aData.assignees,
- transaction, createdDate, createdBy, null, CreateTeamOption.Duplicate_If_Exists);
+ changes, createdDate, createdBy, null, CreateTeamOption.Duplicate_If_Exists);
teamWorkflow.setSoleAttributeValue(AtsAttributeTypes.Description, aData.desc);
if (Strings.isValid(aData.priorityStr) && !aData.priorityStr.equals("<Select>")) {
teamWorkflow.setSoleAttributeValue(AtsAttributeTypes.PriorityType, aData.priorityStr);
}
teamWorkflow.setSoleAttributeValue(AtsAttributeTypes.ChangeType, aData.changeType);
newTeamArts.add(teamWorkflow);
- addToGoal(Collections.singleton(teamWorkflow), transaction);
+ addToGoal(Collections.singleton(teamWorkflow), changes);
}
}
if (!aData.version.equals("")) {
@@ -226,7 +226,7 @@ public class ExcelAtsActionArtifactExtractor {
}
}
for (TeamWorkFlowArtifact team : newTeamArts) {
- team.persist(transaction);
+ changes.add(team);
}
teamWfs.addAll(newTeamArts);
}
@@ -243,7 +243,7 @@ public class ExcelAtsActionArtifactExtractor {
}
}
- private void addToGoal(Collection<TeamWorkFlowArtifact> newTeamArts, SkynetTransaction transaction) throws OseeCoreException {
+ private void addToGoal(Collection<TeamWorkFlowArtifact> newTeamArts, IAtsChangeSet changes) throws OseeCoreException {
if (toGoal != null) {
GoalArtifact goal = (GoalArtifact) AtsClientService.get().getArtifact(toGoal);
if (goal == null) {
@@ -252,7 +252,7 @@ public class ExcelAtsActionArtifactExtractor {
for (Artifact art : newTeamArts) {
goal.addMember(art);
}
- goal.persist(transaction);
+ changes.add(goal);
}
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsTaskArtifactExtractor.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsTaskArtifactExtractor.java
index b4feb067c39..e83802ca532 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsTaskArtifactExtractor.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsTaskArtifactExtractor.java
@@ -23,6 +23,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.notify.AtsNotifyType;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.core.client.notify.AtsNotificationManager;
import org.eclipse.osee.ats.core.client.task.AbstractTaskableArtifact;
import org.eclipse.osee.ats.core.client.task.TaskArtifact;
@@ -40,7 +41,6 @@ import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.jdk.core.util.io.xml.ExcelSaxHandler;
import org.eclipse.osee.framework.jdk.core.util.io.xml.RowProcessor;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
@@ -53,13 +53,13 @@ public class ExcelAtsTaskArtifactExtractor {
private final AbstractWorkflowArtifact sma;
private final boolean emailPOCs;
- private final SkynetTransaction transaction;
+ private final IAtsChangeSet changes;
private IProgressMonitor monitor;
- public ExcelAtsTaskArtifactExtractor(TeamWorkFlowArtifact artifact, boolean emailPOCs, SkynetTransaction transaction) {
+ public ExcelAtsTaskArtifactExtractor(TeamWorkFlowArtifact artifact, boolean emailPOCs, IAtsChangeSet changes) {
this.emailPOCs = emailPOCs;
- this.transaction = transaction;
+ this.changes = changes;
this.sma = artifact;
}
@@ -70,8 +70,8 @@ public class ExcelAtsTaskArtifactExtractor {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
- xmlReader.setContentHandler(new ExcelSaxHandler(
- new InternalRowProcessor(monitor, transaction, sma, emailPOCs), true));
+ xmlReader.setContentHandler(new ExcelSaxHandler(new InternalRowProcessor(monitor, changes, sma, emailPOCs),
+ true));
xmlReader.parse(new InputSource(new InputStreamReader(source.toURL().openStream(), "UTF-8")));
} catch (Exception ex) {
OseeExceptions.wrapAndThrow(ex);
@@ -103,14 +103,14 @@ public class ExcelAtsTaskArtifactExtractor {
private int rowNum;
private final IProgressMonitor monitor;
private final AbstractWorkflowArtifact sma;
- private final SkynetTransaction transaction;
+ private final IAtsChangeSet changes;
private final boolean emailPOCs;
private final Date createdDate;
private final IAtsUser createdBy;
- protected InternalRowProcessor(IProgressMonitor monitor, SkynetTransaction transaction, AbstractWorkflowArtifact sma, boolean emailPOCs) throws OseeCoreException {
+ protected InternalRowProcessor(IProgressMonitor monitor, IAtsChangeSet changes, AbstractWorkflowArtifact sma, boolean emailPOCs) throws OseeCoreException {
this.monitor = monitor;
- this.transaction = transaction;
+ this.changes = changes;
this.emailPOCs = emailPOCs;
this.sma = sma;
createdDate = new Date();
@@ -188,13 +188,13 @@ public class ExcelAtsTaskArtifactExtractor {
}
AtsUtilCore.setEmailEnabled(true);
if (taskArt.isCompleted()) {
- Result result = TaskManager.transitionToCompleted(taskArt, 0.0, 0, transaction);
+ Result result = TaskManager.transitionToCompleted(taskArt, 0.0, 0, changes);
if (result.isFalse()) {
AWorkbench.popup(result);
}
}
// always persist
- taskArt.persist(transaction);
+ changes.add(taskArt);
if (emailPOCs && !taskArt.isCompleted() && !taskArt.isCancelled()) {
AtsNotificationManager.notify(sma, AtsNotifyType.Assigned);
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ImportActionsViaSpreadsheetBlam.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ImportActionsViaSpreadsheetBlam.java
index 42f4ff64641..b746d313c3f 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ImportActionsViaSpreadsheetBlam.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ImportActionsViaSpreadsheetBlam.java
@@ -15,8 +15,8 @@ import java.util.Arrays;
import java.util.Collection;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.osee.ats.api.workflow.IAtsGoal;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.internal.Activator;
-import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.world.WorldEditor;
import org.eclipse.osee.ats.world.WorldEditorSimpleProvider;
import org.eclipse.osee.framework.core.util.XResultData;
@@ -25,8 +25,6 @@ import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.plugin.core.PluginUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
@@ -102,11 +100,10 @@ public class ImportActionsViaSpreadsheetBlam extends AbstractBlam {
XResultDataUI.report(rd, "Ats Action Import Errors");
}
} else {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Import Actions from Spreadsheet");
- extractor.createArtifactsAndNotify(transaction);
+ AtsChangeSet changes = new AtsChangeSet("Import Actions from Spreadsheet");
+ extractor.createArtifactsAndNotify(changes);
WorldEditor.open(new WorldEditorSimpleProvider("Imported Action Artifacts", extractor.getActionArts()));
- transaction.execute();
+ changes.execute();
}
return rd;
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/TransitionStatusDialog.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/TransitionStatusDialog.java
index 8b37bfd389a..e0357b8d0bc 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/TransitionStatusDialog.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/TransitionStatusDialog.java
@@ -15,7 +15,7 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionStatusData;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.framework.core.util.Result;
@@ -69,7 +69,7 @@ public class TransitionStatusDialog extends MessageDialog {
statusLabel.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
updateStatusLabel();
- if (data.getAwas().size() > 1) {
+ if (data.getWorkItems().size() > 1) {
Label label = new Label(parent, SWT.NONE);
label.setText("Mulitple objects being statused. All objects will be set to percent\ncomplete and hours spent will be split or added into each item.");
}
@@ -87,9 +87,10 @@ public class TransitionStatusDialog extends MessageDialog {
data.setPercent(defaultPercent);
percent.set(defaultPercent);
percentSet = true;
- } else if (data.getAwas().size() == 1) {
+ } else if (data.getWorkItems().size() == 1) {
int currentPercent = 0;
- AbstractWorkflowArtifact awa = data.getAwas().iterator().next();
+ AbstractWorkflowArtifact awa =
+ (AbstractWorkflowArtifact) AtsClientService.get().getArtifact(data.getWorkItems().iterator().next());
if (!AtsClientService.get().getWorkDefinitionAdmin().isStateWeightingEnabled(awa.getWorkDefinition())) {
currentPercent = awa.getSoleAttributeValue(AtsAttributeTypes.PercentComplete, 0);
} else {
@@ -146,7 +147,7 @@ public class TransitionStatusDialog extends MessageDialog {
};
});
- if (data.getAwas().size() > 1) {
+ if (data.getWorkItems().size() > 1) {
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new GridLayout(2, false));
comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleXViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleXViewer.java
index 77524fcbbda..510f7a9d3fc 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleXViewer.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleXViewer.java
@@ -23,6 +23,7 @@ import org.eclipse.nebula.widgets.xviewer.XViewerColumn;
import org.eclipse.nebula.widgets.xviewer.util.EnumStringSingleSelectionDialog;
import org.eclipse.osee.ats.core.client.review.role.Role;
import org.eclipse.osee.ats.core.client.review.role.UserRole;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.framework.core.enums.Active;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
@@ -30,8 +31,6 @@ import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.UserListDialog;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -261,15 +260,13 @@ public class UserRoleXViewer extends XViewer {
}
public boolean executeTransaction(Collection<UserRole> userRoles) throws OseeCoreException {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(xUserRoleViewer.getReviewArt().getArtifact().getBranch(),
- "Modify Review Roles");
+ AtsChangeSet changes = new AtsChangeSet("Modify Review Roles");
for (UserRole userRole : userRoles) {
xUserRoleViewer.getUserRoleMgr().addOrUpdateUserRole(userRole, xUserRoleViewer.getReviewArt());
update(userRole, null);
}
- xUserRoleViewer.getUserRoleMgr().saveToArtifact(transaction);
- transaction.execute();
+ xUserRoleViewer.getUserRoleMgr().saveToArtifact(changes);
+ changes.execute();
xUserRoleViewer.refresh();
xUserRoleViewer.notifyXModifiedListeners();
return true;
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java
index 4ddfff2e29f..896a2342750 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java
@@ -27,12 +27,14 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.window.Window;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewArtifact;
import org.eclipse.osee.ats.core.client.review.defect.ReviewDefectManager;
import org.eclipse.osee.ats.core.client.review.role.UserRole;
import org.eclipse.osee.ats.core.client.review.role.UserRoleError;
import org.eclipse.osee.ats.core.client.review.role.UserRoleManager;
import org.eclipse.osee.ats.core.client.review.role.UserRoleValidator;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.framework.core.util.Result;
@@ -47,8 +49,6 @@ import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
import org.eclipse.osee.framework.skynet.core.event.listener.IArtifactEventListener;
import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
import org.eclipse.osee.framework.skynet.core.event.model.Sender;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.PluginUiImage;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
@@ -298,20 +298,19 @@ public class XUserRoleViewer extends GenericXWidget implements IArtifactWidget,
"Are You Sure You Wish to Delete the Roles(s):\n\n" + builder.toString());
if (delete) {
try {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(reviewArt.getBranch(), "Delete Review Roles");
- removeUserRoleHelper(items, transaction);
- transaction.execute();
+ AtsChangeSet changes = new AtsChangeSet("Delete Review Roles");
+ removeUserRoleHelper(items, changes);
+ changes.execute();
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
}
}
- private void removeUserRoleHelper(List<UserRole> items, SkynetTransaction transaction) throws OseeCoreException {
+ private void removeUserRoleHelper(List<UserRole> items, IAtsChangeSet changes) throws OseeCoreException {
for (UserRole userRole : items) {
roleMgr.removeUserRole(userRole);
- roleMgr.saveToArtifact(transaction);
+ roleMgr.saveToArtifact(changes);
xViewer.remove(userRole);
}
loadTable();
@@ -336,15 +335,13 @@ public class XUserRoleViewer extends GenericXWidget implements IArtifactWidget,
return;
}
try {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(reviewArt.getArtifact().getBranch(), "Add Review Roles");
+ AtsChangeSet changes = new AtsChangeSet("Add Review Roles");
for (IAtsUser user : dialog.getUsers()) {
UserRole userRole = new UserRole(dialog.getRole(), user);
roleMgr.addOrUpdateUserRole(userRole, reviewArt);
- reviewArt.persist(transaction);
+ changes.add(reviewArt);
}
- roleMgr.saveToArtifact(transaction);
- transaction.execute();
+ changes.execute();
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/CreateNewVersionItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/CreateNewVersionItem.java
index 5a729737103..9d330def938 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/CreateNewVersionItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/CreateNewVersionItem.java
@@ -18,12 +18,13 @@ import java.util.List;
import java.util.Set;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.version.IAtsVersion;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.config.AtsVersionService;
import org.eclipse.osee.ats.core.config.TeamDefinitions;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
-import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog;
import org.eclipse.osee.framework.core.enums.Active;
import org.eclipse.osee.framework.core.util.XResultData;
@@ -31,9 +32,6 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
@@ -83,10 +81,9 @@ public class CreateNewVersionItem extends XNavigateItemAction {
newVersionNames.add(str);
}
XResultData resultData = new XResultData(false);
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Create New Version(s)");
+ AtsChangeSet changes = new AtsChangeSet("Create New Version(s)");
Collection<IAtsVersion> newVersions =
- createVersions(resultData, transaction, teamDefHoldingVersions, newVersionNames);
+ createVersions(resultData, changes, teamDefHoldingVersions, newVersionNames);
if (resultData.isErrors()) {
resultData.log(String.format(
"\nErrors found while creating version(s) for [%s].\nPlease resolve and try again.",
@@ -94,7 +91,7 @@ public class CreateNewVersionItem extends XNavigateItemAction {
XResultDataUI.report(resultData, "Create New Version Error");
return;
}
- transaction.execute();
+ changes.execute();
if (newVersions.size() == 1) {
RendererManager.open(AtsClientService.get().getConfigArtifact(newVersions.iterator().next()),
PresentationType.DEFAULT_OPEN);
@@ -106,7 +103,7 @@ public class CreateNewVersionItem extends XNavigateItemAction {
}
}
- public static Collection<IAtsVersion> createVersions(XResultData resultData, SkynetTransaction transaction, IAtsTeamDefinition teamDefHoldingVersions, Collection<String> newVersionNames) {
+ public static Collection<IAtsVersion> createVersions(XResultData resultData, IAtsChangeSet changes, IAtsTeamDefinition teamDefHoldingVersions, Collection<String> newVersionNames) {
List<IAtsVersion> versions = new ArrayList<IAtsVersion>();
for (String newVer : newVersionNames) {
if (!Strings.isValid(newVer)) {
@@ -123,9 +120,8 @@ public class CreateNewVersionItem extends XNavigateItemAction {
for (String newVer : newVersionNames) {
IAtsVersion version = AtsClientService.get().createVersion(newVer);
versions.add(version);
- Artifact verArt = AtsClientService.get().storeConfigObject(version, transaction);
AtsVersionService.get().setTeamDefinition(version, teamDefHoldingVersions);
- verArt.persist(transaction);
+ changes.add(version);
}
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/ReleaseVersionItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/ReleaseVersionItem.java
index 94288057e93..cf6649b9d5e 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/ReleaseVersionItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/version/ReleaseVersionItem.java
@@ -18,20 +18,18 @@ import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.api.version.VersionLockedType;
import org.eclipse.osee.ats.api.version.VersionReleaseType;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.config.AtsVersionService;
import org.eclipse.osee.ats.core.config.TeamDefinitions;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
-import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog;
import org.eclipse.osee.ats.util.widgets.dialog.VersionListDialog;
import org.eclipse.osee.framework.core.enums.Active;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
@@ -98,10 +96,9 @@ public class ReleaseVersionItem extends XNavigateItemAction {
verArt.setReleased(true);
verArt.setReleaseDate(new Date());
verArt.setNextVersion(false);
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranchToken(), getClass().getSimpleName());
- AtsClientService.get().storeConfigObject(verArt, transaction);
- transaction.execute();
+ AtsChangeSet changes = new AtsChangeSet(getClass().getSimpleName());
+ AtsClientService.get().storeConfigObject(verArt, changes);
+ changes.execute();
if (MessageDialog.openQuestion(Displays.getActiveShell(), "Select NEW Next Release Version",
"Release Complete.\n\nSelect NEW Next Release Version?")) {
@@ -112,10 +109,9 @@ public class ReleaseVersionItem extends XNavigateItemAction {
if (result == 0) {
verArt = (IAtsVersion) ld.getResult()[0];
verArt.setNextVersion(true);
- transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranchToken(), getClass().getSimpleName());
- AtsClientService.get().storeConfigObject(verArt, transaction);
- transaction.execute();
+ changes.clear();
+ AtsClientService.get().storeConfigObject(verArt, changes);
+ changes.execute();
}
}
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java
index 417de113b71..6c495dd46b7 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java
@@ -23,9 +23,11 @@ import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.config.AtsArtifactToken;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.workdef.WorkDefinitionSheet;
import org.eclipse.osee.ats.dsl.atsDsl.AtsDsl;
import org.eclipse.osee.ats.internal.Activator;
@@ -45,7 +47,6 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.osgi.framework.Bundle;
/**
@@ -62,19 +63,18 @@ public final class AtsWorkDefinitionSheetProviders {
}
public static void initializeDatabase(XResultData resultData) throws OseeCoreException {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Import ATS Work Definitions, Teams and AIs");
+ AtsChangeSet changes = new AtsChangeSet("Import ATS Work Definitions, Teams and AIs");
Artifact folder =
OseeSystemArtifacts.getOrCreateArtifact(AtsArtifactToken.WorkDefinitionsFolder, AtsUtil.getAtsBranch());
if (folder.isDirty()) {
- folder.persist(transaction);
+ changes.add(folder);
}
List<WorkDefinitionSheet> sheets = getWorkDefinitionSheets();
Set<String> stateNames = new HashSet<String>();
- importWorkDefinitionSheets(resultData, transaction, folder, sheets, stateNames);
- createStateNameArtifact(stateNames, folder, transaction);
- importTeamsAndAis(resultData, transaction, folder, sheets);
- transaction.execute();
+ importWorkDefinitionSheets(resultData, changes, folder, sheets, stateNames);
+ createStateNameArtifact(stateNames, folder, changes);
+ importTeamsAndAis(resultData, changes, folder, sheets);
+ changes.execute();
}
/**
@@ -137,51 +137,51 @@ public final class AtsWorkDefinitionSheetProviders {
trans.addArtifact(stateNameArt);
}
- private static Artifact createStateNameArtifact(Set<String> stateNames, Artifact folder, SkynetTransaction transaction) throws OseeCoreException {
+ private static Artifact createStateNameArtifact(Set<String> stateNames, Artifact folder, IAtsChangeSet changes) throws OseeCoreException {
Artifact stateNameArt =
ArtifactTypeManager.addArtifact(org.eclipse.osee.ats.api.data.AtsArtifactToken.WorkDef_State_Names,
AtsUtil.getAtsBranchToken());
stateNameArt.addAttribute(CoreAttributeTypes.GeneralStringData,
org.eclipse.osee.framework.jdk.core.util.Collections.toString(",", stateNames));
- stateNameArt.persist(transaction);
+ changes.add(stateNameArt);
folder.addChild(stateNameArt);
- folder.persist(transaction);
+ changes.add(folder);
return stateNameArt;
}
- public static void importWorkDefinitionSheets(XResultData resultData, SkynetTransaction transaction, Artifact folder, Collection<WorkDefinitionSheet> sheets, Set<String> stateNames) throws OseeCoreException {
+ public static void importWorkDefinitionSheets(XResultData resultData, IAtsChangeSet changes, Artifact folder, Collection<WorkDefinitionSheet> sheets, Set<String> stateNames) throws OseeCoreException {
for (WorkDefinitionSheet sheet : sheets) {
OseeLog.logf(Activator.class, Level.INFO, "Importing ATS Work Definitions [%s]", sheet.getName());
Artifact artifact =
- AtsWorkDefinitionImporter.get().importWorkDefinitionSheetToDb(sheet, resultData, stateNames, transaction);
+ AtsWorkDefinitionImporter.get().importWorkDefinitionSheetToDb(sheet, resultData, stateNames, changes);
if (artifact != null) {
folder.addChild(artifact);
- artifact.persist(transaction);
+ changes.add(artifact);
}
}
}
- public static void importTeamsAndAis(XResultData resultData, SkynetTransaction transaction, Artifact folder, Collection<WorkDefinitionSheet> sheets) throws OseeCoreException {
+ public static void importTeamsAndAis(XResultData resultData, IAtsChangeSet changes, Artifact folder, Collection<WorkDefinitionSheet> sheets) throws OseeCoreException {
for (WorkDefinitionSheet sheet : sheets) {
OseeLog.logf(Activator.class, Level.INFO, "Importing ATS Teams and AIs [%s]", sheet.getName());
- importAIsAndTeamsToDb(sheet, transaction);
+ importAIsAndTeamsToDb(sheet, changes);
}
}
public static void importAIsAndTeamsToDatabase() throws OseeCoreException {
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Import ATS AIs and Team Definitions");
+
+ AtsChangeSet changes = new AtsChangeSet("Import ATS AIs and Team Definitions");
for (WorkDefinitionSheet sheet : getWorkDefinitionSheets()) {
OseeLog.logf(Activator.class, Level.INFO, "Importing ATS AIs and Teams sheet [%s]", sheet.getName());
- importAIsAndTeamsToDb(sheet, transaction);
+ importAIsAndTeamsToDb(sheet, changes);
}
- transaction.execute();
+ changes.execute();
}
- public static void importAIsAndTeamsToDb(WorkDefinitionSheet sheet, SkynetTransaction transaction) throws OseeCoreException {
+ public static void importAIsAndTeamsToDb(WorkDefinitionSheet sheet, IAtsChangeSet changes) throws OseeCoreException {
String modelName = sheet.getFile().getName();
AtsDsl atsDsl = AtsDslUtil.getFromSheet(modelName, sheet);
- ImportAIsAndTeamDefinitionsToDb importer = new ImportAIsAndTeamDefinitionsToDb(modelName, atsDsl, transaction);
+ ImportAIsAndTeamDefinitionsToDb importer = new ImportAIsAndTeamDefinitionsToDb(modelName, atsDsl, changes);
importer.execute();
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportAIsAndTeamDefinitionsToDb.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportAIsAndTeamDefinitionsToDb.java
index b3a71c79bb2..beeb3c981d7 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportAIsAndTeamDefinitionsToDb.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportAIsAndTeamDefinitionsToDb.java
@@ -18,7 +18,9 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.core.client.IAtsUserAdmin;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.config.ActionableItems;
import org.eclipse.osee.ats.core.config.TeamDefinitions;
import org.eclipse.osee.ats.dsl.BooleanDefUtil;
@@ -44,7 +46,6 @@ import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
/**
* @author Donald G. Dunne
@@ -52,16 +53,16 @@ import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
public class ImportAIsAndTeamDefinitionsToDb {
private final AtsDsl atsDsl;
- private final SkynetTransaction transaction;
+ private final IAtsChangeSet changes;
private final Map<String, Artifact> newTeams = new HashMap<String, Artifact>();
private final Map<String, Artifact> newAIs = new HashMap<String, Artifact>();
private final Map<String, Artifact> newVersions = new HashMap<String, Artifact>();
private final String modelName;
- public ImportAIsAndTeamDefinitionsToDb(String modelName, AtsDsl atsDsl, SkynetTransaction transaction) {
+ public ImportAIsAndTeamDefinitionsToDb(String modelName, AtsDsl atsDsl, IAtsChangeSet changes) {
this.modelName = modelName;
this.atsDsl = atsDsl;
- this.transaction = transaction;
+ this.changes = changes;
}
public void execute() throws OseeCoreException {
@@ -77,7 +78,8 @@ public class ImportAIsAndTeamDefinitionsToDb {
String dslUserName = Strings.unquote(dslUserDef.getName());
Artifact userArt = null;
if (dslUserDef.getUserDefOption().contains("GetOrCreate")) {
- userArt = UserManager.createUser(getOseeUser(dslUserDef), transaction);
+ userArt = UserManager.createUser(getOseeUser(dslUserDef), null);
+ changes.add(userArt);
}
if (userArt == null) {
userArt = ArtifactTypeManager.addArtifact(CoreArtifactTypes.User, AtsUtil.getAtsBranch(), dslUserName);
@@ -145,7 +147,7 @@ public class ImportAIsAndTeamDefinitionsToDb {
importVersionDefinitions(dslTeamDef.getVersion(), newTeam);
// process children
importTeamDefinitions(dslTeamDef.getChildren(), newTeam);
- newTeam.persist(transaction);
+ changes.add(newTeam);
}
}
@@ -259,19 +261,22 @@ public class ImportAIsAndTeamDefinitionsToDb {
}
importAccessContextIds(newAi, dslAIDef.getAccessContextId());
importActionableItems(dslAIDef.getChildren(), newAi);
- newAi.persist(transaction);
+ changes.add(newAi);
}
}
private Artifact getOrCreate(String artifactName, boolean isTeamDef, Artifact parentArtifact) throws OseeCoreException {
Artifact parent = parentArtifact;
+ AtsChangeSet changes = new AtsChangeSet(getClass().getSimpleName());
if (parent == null) {
if (isTeamDef) {
- parent = AtsClientService.get().storeConfigObject(TeamDefinitions.getTopTeamDefinition(), transaction);
+ parent = AtsClientService.get().storeConfigObject(TeamDefinitions.getTopTeamDefinition(), changes);
} else {
- parent = AtsClientService.get().storeConfigObject(ActionableItems.getTopActionableItem(), transaction);
+ parent = AtsClientService.get().storeConfigObject(ActionableItems.getTopActionableItem(), changes);
}
+ changes.execute();
}
+
if (parent.getName().equals(artifactName)) {
return parent;
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportWorkDefinitionsItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportWorkDefinitionsItem.java
index f305a57adc6..9167d9cf54a 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportWorkDefinitionsItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/config/ImportWorkDefinitionsItem.java
@@ -16,14 +16,13 @@ import java.util.List;
import java.util.Set;
import org.eclipse.osee.ats.AtsImage;
import org.eclipse.osee.ats.core.client.config.AtsArtifactToken;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.workdef.WorkDefinitionSheet;
import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.workdef.AtsWorkDefinitionSheetProviders;
import org.eclipse.osee.framework.core.util.XResultData;
import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
@@ -51,14 +50,14 @@ public class ImportWorkDefinitionsItem extends XNavigateItemAction {
dialog.setMessage("Select Work Definition Sheet(s) to import");
if (dialog.open() == 0) {
XResultData resultData = new XResultData(false);
- SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranch(), getName());
+ AtsChangeSet changes = new AtsChangeSet(getName());
Artifact folder =
OseeSystemArtifacts.getOrCreateArtifact(AtsArtifactToken.WorkDefinitionsFolder, AtsUtil.getAtsBranch());
Set<String> stateNames = new HashSet<String>();
- AtsWorkDefinitionSheetProviders.importWorkDefinitionSheets(resultData, transaction, folder,
- dialog.getSelection(), stateNames);
+ AtsWorkDefinitionSheetProviders.importWorkDefinitionSheets(resultData, changes, folder, dialog.getSelection(),
+ stateNames);
if (!resultData.isErrors()) {
- transaction.execute();
+ changes.execute();
}
XResultDataUI.report(resultData, getName());
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/provider/AtsWorkDefinitionImporter.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/provider/AtsWorkDefinitionImporter.java
index 07c3d5421ee..b424ba8432e 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/provider/AtsWorkDefinitionImporter.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/provider/AtsWorkDefinitionImporter.java
@@ -18,6 +18,7 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.workdef.WorkDefinitionSheet;
@@ -40,7 +41,6 @@ import org.eclipse.osee.framework.plugin.core.util.OseeData;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.ws.AWorkspace;
@@ -58,19 +58,17 @@ public class AtsWorkDefinitionImporter {
return provider;
}
- public void importAIsAndTeamsToDb(WorkDefinitionSheet sheet, SkynetTransaction transaction) throws OseeCoreException {
+ public void importAIsAndTeamsToDb(WorkDefinitionSheet sheet, IAtsChangeSet changes) throws OseeCoreException {
String modelName = sheet.getFile().getName();
AtsDsl atsDsl = AtsDslUtil.getFromSheet(modelName, sheet);
- ImportAIsAndTeamDefinitionsToDb importer = new ImportAIsAndTeamDefinitionsToDb(modelName, atsDsl, transaction);
+ ImportAIsAndTeamDefinitionsToDb importer = new ImportAIsAndTeamDefinitionsToDb(modelName, atsDsl, changes);
importer.execute();
}
/**
* If sheet has WorkDef defined, create artifact and import string. Return artifact, else return null.
- *
- * @param stateNames
*/
- public Artifact importWorkDefinitionSheetToDb(WorkDefinitionSheet sheet, XResultData resultData, Set<String> stateNames, SkynetTransaction transaction) throws OseeCoreException {
+ public Artifact importWorkDefinitionSheetToDb(WorkDefinitionSheet sheet, XResultData resultData, Set<String> stateNames, IAtsChangeSet changes) throws OseeCoreException {
String modelName = sheet.getFile().getName();
// Prove that can convert to atsDsl
AtsDsl atsDsl = AtsDslUtil.getFromSheet(modelName, sheet);
@@ -78,7 +76,7 @@ public class AtsWorkDefinitionImporter {
// Use original xml to store in artifact so no conversion happens
String workDefXml = AtsDslUtil.getString(sheet);
Artifact artifact =
- importWorkDefinitionToDb(workDefXml, sheet.getName(), sheet.getName(), resultData, transaction);
+ importWorkDefinitionToDb(workDefXml, sheet.getName(), sheet.getName(), resultData, changes);
if (resultData.getNumErrors() > 0) {
throw new OseeStateException("Error importing WorkDefinitionSheet [%s] into database [%s]",
sheet.getName(), resultData.toString());
@@ -91,7 +89,7 @@ public class AtsWorkDefinitionImporter {
return null;
}
- public Artifact importWorkDefinitionToDb(String workDefXml, String workDefName, String sheetName, XResultData resultData, SkynetTransaction transaction) throws OseeCoreException {
+ public Artifact importWorkDefinitionToDb(String workDefXml, String workDefName, String sheetName, XResultData resultData, IAtsChangeSet changes) throws OseeCoreException {
Artifact artifact = null;
try {
artifact =
@@ -116,8 +114,7 @@ public class AtsWorkDefinitionImporter {
ArtifactTypeManager.addArtifact(AtsArtifactTypes.WorkDefinition, AtsUtilCore.getAtsBranch(), sheetName);
}
artifact.setSoleAttributeValue(AtsAttributeTypes.DslSheet, workDefXml);
- artifact.persist(transaction);
-
+ changes.add(artifact);
return artifact;
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionToMenu.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionToMenu.java
index 193e7ef56c7..501f20e2bcb 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionToMenu.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionToMenu.java
@@ -22,23 +22,30 @@ import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.nebula.widgets.xviewer.XViewer;
import org.eclipse.osee.ats.AtsImage;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionHelper;
+import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.AtsCore;
+import org.eclipse.osee.ats.core.client.util.AtsChangeSet;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.transition.ITransitionHelper;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionHelperAdapter;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionResults;
-import org.eclipse.osee.ats.core.client.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.core.client.workflow.transition.TransitionToOperation;
import org.eclipse.osee.ats.core.workflow.state.TeamState;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionHelperAdapter;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionStatusData;
import org.eclipse.osee.ats.editor.SMAPromptChangeStatus;
import org.eclipse.osee.ats.internal.Activator;
+import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.widgets.dialog.TransitionStatusDialog;
import org.eclipse.osee.framework.core.operation.Operations;
import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.core.util.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench.MessageType;
@@ -55,12 +62,12 @@ public class TransitionToMenu {
public static MenuManager createTransitionToMenuManager(final XViewer xViewer, String name, final Collection<TreeItem> selectedTreeItems) {
MenuManager editMenuManager =
new MenuManager(name, ImageManager.getImageDescriptor(AtsImage.TRANSITION), "transition-to");
- final Set<AbstractWorkflowArtifact> awas = new HashSet<AbstractWorkflowArtifact>();
+ final Set<IAtsWorkItem> workItems = new HashSet<IAtsWorkItem>();
Set<IAtsStateDefinition> toStateDefs = new HashSet<IAtsStateDefinition>();
for (TreeItem treeItem : selectedTreeItems) {
if (treeItem.getData() instanceof AbstractWorkflowArtifact) {
AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) treeItem.getData();
- awas.add(awa);
+ workItems.add(awa);
try {
toStateDefs.addAll(awa.getToStatesWithCompleteCancelReturnStates());
} catch (OseeCoreException ex) {
@@ -93,7 +100,7 @@ public class TransitionToMenu {
@Override
public void run() {
- handleTransitionToSelected(stateDef.getName(), awas);
+ handleTransitionToSelected(stateDef.getName(), workItems);
}
});
@@ -120,7 +127,7 @@ public class TransitionToMenu {
TeamState.Cancelled.getName()) ? "" : " (" + stateDef.getStateType().name() + ")";
}
- private static void handleTransitionToSelected(final String toStateName, final Set<AbstractWorkflowArtifact> awas) {
+ private static void handleTransitionToSelected(final String toStateName, final Set<IAtsWorkItem> workItems) {
final ITransitionHelper helper = new TransitionHelperAdapter() {
@Override
@@ -130,45 +137,52 @@ public class TransitionToMenu {
@Override
public void run() {
- IAtsStateDefinition toStateDef =
- awas.iterator().next().getWorkDefinition().getStateByName(toStateName);
- IAtsStateDefinition fromStateDefinition = awas.iterator().next().getStateDefinition();
- if (isRequireStateHoursSpentPrompt(fromStateDefinition) && !toStateDef.getStateType().isCancelledState()) {
-
- boolean showPercentCompleted = !toStateDef.getStateType().isCompletedOrCancelledState();
- TransitionStatusData data = new TransitionStatusData(getAwas(), showPercentCompleted);
- if (toStateDef.getRecommendedPercentComplete() != null) {
- data.setDefaultPercent(toStateDef.getRecommendedPercentComplete());
- data.setPercent(100);
- } else if (toStateDef.getStateType().isCompletedOrCancelledState()) {
- data.setDefaultPercent(100);
- data.setPercent(100);
- }
- String title = null;
- String message = null;
- if (data.isPercentRequired()) {
- title = "Enter Percent and Hours Spent";
- message = "Enter percent complete and additional hours spent in current state(s)";
- } else {
- title = "Enter Hours Spent";
- message = "Enter additional hours spent in current state(s)";
- }
- TransitionStatusDialog dialog = new TransitionStatusDialog(title, message, data);
-
- int dialogResult = dialog.open();
- if (dialogResult == 0) {
- try {
- SMAPromptChangeStatus.performChangeStatus(awas, null, data.getAdditionalHours(),
- data.getPercent(), data.isSplitHoursBetweenItems(), true);
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- result.set(false);
- result.setTextWithFormat(
- "Exception handling extra hours spent for transition to [%s] (see log)", getToStateName());
+ try {
+ IAtsStateDefinition toStateDef =
+ AtsClientService.get().getWorkDefinitionAdmin().getStateDefinitionByName(
+ workItems.iterator().next(), toStateName);
+
+ IAtsStateDefinition fromStateDefinition = workItems.iterator().next().getStateDefinition();
+ if (isRequireStateHoursSpentPrompt(fromStateDefinition) && !toStateDef.getStateType().isCancelledState()) {
+
+ boolean showPercentCompleted = !toStateDef.getStateType().isCompletedOrCancelledState();
+ TransitionStatusData data = new TransitionStatusData(getWorkItems(), showPercentCompleted);
+ if (toStateDef.getRecommendedPercentComplete() != null) {
+ data.setDefaultPercent(toStateDef.getRecommendedPercentComplete());
+ data.setPercent(100);
+ } else if (toStateDef.getStateType().isCompletedOrCancelledState()) {
+ data.setDefaultPercent(100);
+ data.setPercent(100);
+ }
+ String title = null;
+ String message = null;
+ if (data.isPercentRequired()) {
+ title = "Enter Percent and Hours Spent";
+ message = "Enter percent complete and additional hours spent in current state(s)";
+ } else {
+ title = "Enter Hours Spent";
+ message = "Enter additional hours spent in current state(s)";
+ }
+ TransitionStatusDialog dialog = new TransitionStatusDialog(title, message, data);
+
+ int dialogResult = dialog.open();
+ if (dialogResult == 0) {
+ try {
+ SMAPromptChangeStatus.performChangeStatus(workItems, null, data.getAdditionalHours(),
+ data.getPercent(), data.isSplitHoursBetweenItems(), true);
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ result.set(false);
+ result.setTextWithFormat(
+ "Exception handling extra hours spent for transition to [%s] (see log)",
+ getToStateName());
+ }
+ } else {
+ result.setCancelled(true);
}
- } else {
- result.setCancelled(true);
}
+ } catch (OseeCoreException ex1) {
+ OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex1);
}
}
}, true);
@@ -181,8 +195,8 @@ public class TransitionToMenu {
}
@Override
- public Collection<? extends IAtsUser> getToAssignees(AbstractWorkflowArtifact awa) throws OseeCoreException {
- return awa.getAssignees();
+ public Collection<? extends IAtsUser> getToAssignees(IAtsWorkItem workItem) throws OseeCoreException {
+ return workItem.getAssignees();
}
@Override
@@ -197,9 +211,16 @@ public class TransitionToMenu {
@Override
public void run() {
- AbstractWorkflowArtifact awa = getAwas().iterator().next();
- IAtsStateDefinition stateDef = awa.getStateDefinitionByName(getToStateName());
- if (stateDef.getStateType().isCancelledState()) {
+ IAtsWorkItem workItem = getWorkItems().iterator().next();
+ IAtsStateDefinition stateDef = null;
+ try {
+ stateDef =
+ AtsClientService.get().getWorkDefinitionAdmin().getStateDefinitionByName(workItem,
+ getToStateName());
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
+ }
+ if (stateDef != null && stateDef.getStateType().isCancelledState()) {
EntryDialog dialog = new EntryDialog("Enter Cancellation Reason", "Enter Cancellation Reason");
if (dialog.open() != 0) {
result.setCancelled(true);
@@ -215,9 +236,30 @@ public class TransitionToMenu {
}
@Override
- public Collection<AbstractWorkflowArtifact> getAwas() {
- return awas;
+ public Collection<IAtsWorkItem> getWorkItems() {
+ return workItems;
}
+
+ @Override
+ public void setInTransition(IAtsWorkItem workItem, boolean inTransition) throws OseeCoreException {
+ AtsClientService.get().getWorkflowArtifact(workItem).setInTransition(inTransition);
+ }
+
+ @Override
+ public IAtsChangeSet getChangeSet() {
+ return new AtsChangeSet(getName());
+ }
+
+ @Override
+ public Collection<ITransitionListener> getTransitionListeners() {
+ try {
+ return AtsCore.getWorkItemService().getTransitionListeners();
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ return java.util.Collections.emptyList();
+ }
+
};
final TransitionToOperation operation = new TransitionToOperation(helper);
Operations.executeAsJob(operation, true, Job.SHORT, new JobChangeAdapter() {
@@ -227,7 +269,7 @@ public class TransitionToMenu {
TransitionResults results = operation.getResults();
if (!results.isEmpty()) {
results.logExceptions();
- if (helper.getAwas().size() == 1) {
+ if (helper.getWorkItems().size() == 1) {
String resultStr = results.getResultString();
AWorkbench.popup(MessageType.Error, "Transition Failed", resultStr);
} else {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java
index ceb995387d2..58ef96ff1c3 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java
@@ -210,8 +210,9 @@ public class WorldXViewer extends XViewer implements ISelectedAtsArtifacts, IPer
try {
transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranch(), "Reset Action off Children");
for (ActionArtifact actionArt : getSelectedActionArtifacts()) {
- ActionArtifactRollup rollup = new ActionArtifactRollup(actionArt, transaction);
+ ActionArtifactRollup rollup = new ActionArtifactRollup(actionArt);
rollup.resetAttributesOffChildren();
+ actionArt.persist(transaction);
}
transaction.execute();
} catch (OseeCoreException ex) {

Back to the top