Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorddunne2011-05-20 16:08:58 +0000
committerRyan D. Brooks2011-05-20 16:08:58 +0000
commit7840f46b12b20a1bb3ef8b3bb934421e9fc75709 (patch)
treed8da4c3259349a190bee93f3fa9da457b853f399 /plugins/org.eclipse.osee.ats.config.demo
parentf28113b5cd91d824b975255c6ca0cd51bb1b84ee (diff)
downloadorg.eclipse.osee-7840f46b12b20a1bb3ef8b3bb934421e9fc75709.tar.gz
org.eclipse.osee-7840f46b12b20a1bb3ef8b3bb934421e9fc75709.tar.xz
org.eclipse.osee-7840f46b12b20a1bb3ef8b3bb934421e9fc75709.zip
feature: ATS Programatic Transition Validation
Diffstat (limited to 'plugins/org.eclipse.osee.ats.config.demo')
-rw-r--r--plugins/org.eclipse.osee.ats.config.demo/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java284
-rw-r--r--plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateSawBuild2Actions.java506
-rw-r--r--plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbActionData.java46
-rw-r--r--plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbReviews.java39
-rw-r--r--plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbUtil.java22
6 files changed, 599 insertions, 299 deletions
diff --git a/plugins/org.eclipse.osee.ats.config.demo/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.config.demo/META-INF/MANIFEST.MF
index bd312233ad7..cbe8c70f889 100644
--- a/plugins/org.eclipse.osee.ats.config.demo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.config.demo/META-INF/MANIFEST.MF
@@ -30,6 +30,7 @@ Import-Package: org.eclipse.core.filesystem,
org.eclipse.osee.ats.core.version,
org.eclipse.osee.ats.core.workdef,
org.eclipse.osee.ats.core.workflow,
+ org.eclipse.osee.ats.core.workflow.transition,
org.eclipse.osee.define.traceability,
org.eclipse.osee.define.traceability.data,
org.eclipse.osee.framework.core.client,
diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java
index 5943dbbfd2f..c44b16d9ca9 100644
--- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java
+++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java
@@ -17,7 +17,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osee.ats.artifact.ActionManager;
import org.eclipse.osee.ats.config.demo.config.DemoDbActionData;
@@ -26,21 +25,24 @@ import org.eclipse.osee.ats.config.demo.config.DemoDbGroups;
import org.eclipse.osee.ats.config.demo.config.DemoDbReviews;
import org.eclipse.osee.ats.config.demo.config.DemoDbTasks;
import org.eclipse.osee.ats.config.demo.config.DemoDbUtil;
-import org.eclipse.osee.ats.config.demo.config.DemoDbUtil.SoftwareRequirementStrs;
import org.eclipse.osee.ats.config.demo.internal.OseeAtsConfigDemoActivator;
import org.eclipse.osee.ats.core.config.AtsBulkLoad;
+import org.eclipse.osee.ats.core.review.AbstractReviewArtifact;
+import org.eclipse.osee.ats.core.review.ReviewManager;
import org.eclipse.osee.ats.core.team.TeamState;
import org.eclipse.osee.ats.core.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.team.TeamWorkFlowManager;
import org.eclipse.osee.ats.core.type.AtsArtifactTypes;
import org.eclipse.osee.ats.core.type.AtsAttributeTypes;
import org.eclipse.osee.ats.core.type.AtsRelationTypes;
+import org.eclipse.osee.ats.core.workdef.ReviewBlockType;
import org.eclipse.osee.ats.core.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.core.workflow.ActionArtifact;
import org.eclipse.osee.ats.core.workflow.ActionArtifactRollup;
import org.eclipse.osee.ats.core.workflow.ChangeType;
-import org.eclipse.osee.ats.util.AtsBranchManager;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.util.AtsUtil;
+import org.eclipse.osee.ats.util.DemoTestUtil;
import org.eclipse.osee.ats.util.FavoritesManager;
import org.eclipse.osee.ats.util.SubscribeManager;
import org.eclipse.osee.framework.core.data.IArtifactType;
@@ -48,10 +50,8 @@ import org.eclipse.osee.framework.core.data.IOseeBranch;
import org.eclipse.osee.framework.core.data.IRelationTypeSide;
import org.eclipse.osee.framework.core.enums.BranchType;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
import org.eclipse.osee.framework.core.enums.SystemUser;
-import org.eclipse.osee.framework.core.exception.OseeArgumentException;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.operation.IOperation;
@@ -131,6 +131,8 @@ public class PopulateDemoActions extends XNavigateItemAction {
if (DbUtil.isDbInit() || !prompt || prompt && MessageDialog.openConfirm(Displays.getActiveShell(), getName(),
getName())) {
+ DemoTestUtil.validateArtifactCache();
+
OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Populate Demo Database");
AtsBulkLoad.reloadConfig(true);
@@ -154,31 +156,12 @@ public class PopulateDemoActions extends XNavigateItemAction {
// Create SAW_Bld_2 Child Main Working Branch off SAW_Bld_1
createMainWorkingBranchTx();
- // Create SAW_Bld_2 Actions
- SkynetTransaction sawActionsTransaction =
- new SkynetTransaction(AtsUtil.getAtsBranch(), "Populate Demo DB - Create Actions");
- Set<Artifact> actionArts =
- createActions(DemoDbActionData.getReqSawActionsData(), DemoSawBuilds.SAW_Bld_2.toString(), null,
- sawActionsTransaction);
- sawActionsTransaction.execute();
- // Sleep to wait for the persist of the actions
- DemoDbUtil.sleep(3000);
-
- for (Artifact actionArt : actionArts) {
- if (actionArt.getName().contains("(committed)")) {
- // Working Branch off SAW_Bld_2, Make Changes, Commit
- makeAction1ReqChanges(actionArt);
- } else if (actionArt.getName().contains("(uncommitted)")) {
- // Working Branch off SAW_Bld_2, Make Changes, DON'T Commit
- makeAction2ReqChanges(actionArt);
- } else if (actionArt.getName().contains("(uncommitted-conflicted)")) {
- // Working Branch off SAW_Bld_2, Make Conflicted Changes, DON'T Commit
- makeAction3ReqChanges(actionArt);
- }
- }
+ // Create SWB_Bld_2 Actions and Reviews
+ PopulateSawBuild2Actions.run();
// Create actions against non-requirement AIs and Teams
createNonReqChangeDemoActions();
+ createGenericDemoActions();
// Mark all CIS Code "Team Workflows" as Favorites for "Joe Smith"
if (DEBUG) {
@@ -207,6 +190,7 @@ public class PopulateDemoActions extends XNavigateItemAction {
// Create and transition reviews off sample workflows
DemoDbReviews.createReviews(DEBUG);
+ DemoTestUtil.validateArtifactCache();
TestUtil.severeLoggingEnd(monitorLog);
OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Populate Complete");
}
@@ -233,219 +217,6 @@ public class PopulateDemoActions extends XNavigateItemAction {
}
}
- private void makeAction1ReqChanges(Artifact actionArt) throws OseeCoreException {
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Making Action 1 Requirement Changes");
- }
- TeamWorkFlowArtifact reqTeam = null;
- for (TeamWorkFlowArtifact team : ActionManager.getTeams(actionArt)) {
- if (team.getTeamDefinition().getName().contains("Req")) {
- reqTeam = team;
- }
- }
-
- if (reqTeam == null) {
- throw new OseeArgumentException("Can't locate Req team.");
- }
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Creating working branch");
- }
- Result result = AtsBranchManager.createWorkingBranch(reqTeam, null, false);
- if (result.isFalse()) {
- throw new OseeArgumentException(
- new StringBuilder("Error creating working branch: ").append(result.getText()).toString());
- }
-
- DemoDbUtil.sleep(5000);
-
- for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.Robot,
- reqTeam.getWorkingBranch())) {
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
- new StringBuilder("Modifying artifact => ").append(art).toString());
- }
- art.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Navigation.name());
- art.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Navigation.name());
- Artifact navArt =
- ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Navigation.name(),
- reqTeam.getWorkingBranch());
- art.addRelation(CoreRelationTypes.Allocation__Component, navArt);
- art.persist();
- }
-
- for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.Event,
- reqTeam.getWorkingBranch())) {
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
- new StringBuilder("Modifying artifact => ").append(art).toString());
- }
- art.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Interface.name());
- art.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
- Artifact robotArt =
- ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Robot_API.name(),
- reqTeam.getWorkingBranch());
- art.addRelation(CoreRelationTypes.Allocation__Component, robotArt);
- art.persist();
- }
-
- // Delete two artifacts
- for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.daVinci,
- reqTeam.getWorkingBranch())) {
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
- new StringBuilder("Deleting artifact => ").append(art).toString());
- }
- art.deleteAndPersist();
- }
-
- // Add three new artifacts
- Artifact parentArt = DemoDbUtil.getInterfaceInitializationSoftwareRequirement(DEBUG, reqTeam.getWorkingBranch());
- for (int x = 1; x < 4; x++) {
- String name = "Robot Interface Init " + x;
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Adding artifact => " + name);
- }
- Artifact newArt =
- ArtifactTypeManager.addArtifact(CoreArtifactTypes.SoftwareRequirement, parentArt.getBranch(), name);
- newArt.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
- newArt.persist();
- parentArt.addChild(newArt);
- parentArt.persist();
- }
-
- DemoDbUtil.sleep(2000L);
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Committing branch");
- }
- Job job =
- AtsBranchManager.commitWorkingBranch(reqTeam, false, true, reqTeam.getTargetedVersion().getParentBranch(),
- true);
- try {
- job.join();
- } catch (InterruptedException ex) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Completing Action");
- }
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Completing Action");
- }
- }
-
- private void makeAction3ReqChanges(Artifact actionArt) throws Exception {
- TeamWorkFlowArtifact reqTeam = null;
- for (TeamWorkFlowArtifact team : ActionManager.getTeams(actionArt)) {
- if (team.getTeamDefinition().getName().contains("Req")) {
- reqTeam = team;
- }
- }
-
- if (reqTeam == null) {
- throw new OseeArgumentException("Can't locate Req team.");
- }
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Creating working branch");
- }
- Result result = AtsBranchManager.createWorkingBranch(reqTeam, null, false);
- if (result.isFalse()) {
- throw new OseeArgumentException(
- new StringBuilder("Error creating working branch: ").append(result.getText()).toString());
- }
-
- DemoDbUtil.sleep(5000);
-
- Artifact branchArtifact =
- DemoDbUtil.getArtTypeRequirements(DEBUG, CoreArtifactTypes.SoftwareRequirement,
- DemoDbUtil.HAPTIC_CONSTRAINTS_REQ, reqTeam.getWorkingBranch()).iterator().next();
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
- new StringBuilder("Modifying branch artifact => ").append(branchArtifact).toString());
- }
- branchArtifact.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Interface.name());
- branchArtifact.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
- Artifact comArt =
- ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Robot_API.name(),
- reqTeam.getWorkingBranch());
- branchArtifact.addRelation(CoreRelationTypes.Allocation__Component, comArt);
- branchArtifact.persist();
-
- Artifact parentArtifact =
- DemoDbUtil.getArtTypeRequirements(DEBUG, CoreArtifactTypes.SoftwareRequirement,
- DemoDbUtil.HAPTIC_CONSTRAINTS_REQ, reqTeam.getWorkingBranch()).iterator().next();
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
- new StringBuilder("Modifying parent artifact => ").append(parentArtifact).toString());
- }
- parentArtifact.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Navigation.name());
- parentArtifact.setSoleAttributeValue(CoreAttributeTypes.Subsystem,
- DemoSubsystems.Cognitive_Decision_Aiding.name());
- parentArtifact.persist();
-
- }
-
- private void makeAction2ReqChanges(Artifact actionArt) throws Exception {
- TeamWorkFlowArtifact reqTeam = null;
- for (TeamWorkFlowArtifact team : ActionManager.getTeams(actionArt)) {
- if (team.getTeamDefinition().getName().contains("Req")) {
- reqTeam = team;
- }
- }
-
- if (reqTeam == null) {
- throw new OseeArgumentException("Can't locate Req team.");
- }
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Creating working branch");
- }
- Result result = AtsBranchManager.createWorkingBranch(reqTeam, null, false);
- if (result.isFalse()) {
- throw new OseeArgumentException(
- new StringBuilder("Error creating working branch: ").append(result.getText()).toString());
- }
-
- DemoDbUtil.sleep(5000);
-
- for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.Functional,
- reqTeam.getWorkingBranch())) {
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
- new StringBuilder("Modifying artifact => ").append(art).toString());
- }
- art.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Interface.name());
- art.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
- Artifact comArt =
- ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Robot_API.name(),
- reqTeam.getWorkingBranch());
-
- art.addRelation(CoreRelationTypes.Allocation__Component, comArt);
- art.persist();
- }
-
- // Delete one artifacts
- for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.CISST,
- reqTeam.getWorkingBranch())) {
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
- new StringBuilder("Deleting artifact => ").append(art).toString());
- }
- art.deleteAndPersist();
- }
-
- // Add two new artifacts
- Artifact parentArt = DemoDbUtil.getInterfaceInitializationSoftwareRequirement(DEBUG, reqTeam.getWorkingBranch());
- for (int x = 15; x < 17; x++) {
- String name = "Claw Interface Init " + x;
- if (DEBUG) {
- OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Adding artifact => " + name);
- }
- Artifact newArt =
- ArtifactTypeManager.addArtifact(CoreArtifactTypes.SoftwareRequirement, parentArt.getBranch(), name);
- newArt.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
- parentArt.addChild(newArt);
-
- newArt.persist();
- }
-
- }
-
private void createNonReqChangeDemoActions() throws Exception {
SkynetTransaction transaction =
new SkynetTransaction(AtsUtil.getAtsBranch(), "Populate Demo DB - Create Actions");
@@ -474,10 +245,16 @@ public class PopulateDemoActions extends XNavigateItemAction {
DemoSawBuilds.SAW_Bld_1.toString(), TeamState.Completed, transaction));
appendBuildNameToTitles(actions, DemoSawBuilds.SAW_Bld_1.getName(), transaction);
+ transaction.execute();
+ }
+
+ private void createGenericDemoActions() throws Exception {
if (DEBUG) {
OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
"createNonReqChangeDemoActions - getGenericActionData");
}
+ SkynetTransaction transaction =
+ new SkynetTransaction(AtsUtil.getAtsBranch(), "Populate Demo DB - Create Generic Actions");
createActions(DemoDbActionData.getGenericActionData(), null, null, transaction);
transaction.execute();
}
@@ -493,7 +270,7 @@ public class PopulateDemoActions extends XNavigateItemAction {
}
}
- private Set<Artifact> createActions(Set<DemoDbActionData> actionDatas, String versionStr, TeamState toStateOverride, SkynetTransaction transaction) throws Exception {
+ private Set<Artifact> createActions(List<DemoDbActionData> actionDatas, String versionStr, TeamState toStateOverride, SkynetTransaction transaction) throws Exception {
Set<Artifact> actionArts = new HashSet<Artifact>();
int currNum = 1;
for (DemoDbActionData aData : actionDatas) {
@@ -512,7 +289,9 @@ public class PopulateDemoActions extends XNavigateItemAction {
aData.getActionableItems(), createdDate, createdBy, null, transaction);
actionArts.add(actionArt);
for (TeamWorkFlowArtifact teamWf : ActionManager.getTeams(actionArt)) {
- TeamWorkFlowManager dtwm = new TeamWorkFlowManager(teamWf);
+ TeamWorkFlowManager dtwm =
+ new TeamWorkFlowManager(teamWf, TransitionOption.OverrideAssigneeCheck,
+ TransitionOption.OverrideTransitionValidityCheck);
// Add validation required flag if Decision review is required
if (aData.getCreateReviews().length > 0) {
for (CreateReview createReview : aData.getCreateReviews()) {
@@ -521,8 +300,27 @@ public class PopulateDemoActions extends XNavigateItemAction {
}
}
}
+ boolean isSwDesign = teamWf.getTeamDefinition().getName().contains("SW Design");
+ if (isSwDesign) {
+ // set reviews to non-blocking so can transition to Completed
+ for (AbstractReviewArtifact reviewArt : ReviewManager.getReviews(teamWf)) {
+ reviewArt.setSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, ReviewBlockType.None.name());
+ }
+ }
+
// Transition to desired state
- dtwm.transitionTo((toStateOverride != null ? toStateOverride : aData.toState), null, false, transaction);
+ Result result =
+ dtwm.transitionTo((toStateOverride != null ? toStateOverride : aData.toState), null, false,
+ transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to state [%s]: [%s]", teamWf.toStringWithId(),
+ aData.toState.getPageName(), result.getText());
+ }
+ if (!teamWf.isCompletedOrCancelled()) {
+ // Reset assignees that may have been overwritten during transition
+ teamWf.getStateMgr().setAssignees(teamWf.getTeamDefinition().getLeads());
+ }
+
teamWf.persist(transaction);
if (Strings.isValid(versionStr)) {
Artifact verArt =
diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateSawBuild2Actions.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateSawBuild2Actions.java
new file mode 100644
index 00000000000..ca36b4f3895
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateSawBuild2Actions.java
@@ -0,0 +1,506 @@
+/*
+ * Created on Jun 2, 2011
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.ats.config.demo;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.logging.Level;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.osee.ats.artifact.ActionManager;
+import org.eclipse.osee.ats.config.demo.config.DemoDbAIs;
+import org.eclipse.osee.ats.config.demo.config.DemoDbUtil;
+import org.eclipse.osee.ats.config.demo.config.DemoDbUtil.SoftwareRequirementStrs;
+import org.eclipse.osee.ats.config.demo.internal.OseeAtsConfigDemoActivator;
+import org.eclipse.osee.ats.core.config.ActionableItemArtifact;
+import org.eclipse.osee.ats.core.review.AbstractReviewArtifact;
+import org.eclipse.osee.ats.core.review.ReviewManager;
+import org.eclipse.osee.ats.core.team.TeamState;
+import org.eclipse.osee.ats.core.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.team.TeamWorkFlowManager;
+import org.eclipse.osee.ats.core.type.AtsArtifactTypes;
+import org.eclipse.osee.ats.core.type.AtsAttributeTypes;
+import org.eclipse.osee.ats.core.type.AtsRelationTypes;
+import org.eclipse.osee.ats.core.workdef.ReviewBlockType;
+import org.eclipse.osee.ats.core.workflow.ActionArtifact;
+import org.eclipse.osee.ats.core.workflow.ChangeType;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionOption;
+import org.eclipse.osee.ats.util.AtsBranchManager;
+import org.eclipse.osee.ats.util.AtsUtil;
+import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
+import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
+import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.exception.OseeArgumentException;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.util.Result;
+import org.eclipse.osee.framework.logging.OseeLog;
+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.artifact.search.ArtifactQuery;
+import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
+import org.eclipse.osee.support.test.util.DemoSawBuilds;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class PopulateSawBuild2Actions {
+
+ private static String versionStr = DemoSawBuilds.SAW_Bld_2.toString();
+ private static TeamState toState = TeamState.Implement;
+ private static boolean DEBUG = false;
+
+ public static void run() throws OseeCoreException {
+ // Create SAW_Bld_2 Actions
+ SkynetTransaction transaction =
+ new SkynetTransaction(AtsUtil.getAtsBranch(), "Populate Demo DB - PopulateSawBuild2Actions");
+
+ ActionArtifact committedAction = createCommittedAction(transaction);
+ ActionArtifact unCommittedAction = createUnCommittedAction(transaction);
+ createNoBranchAction(transaction);
+ ActionArtifact conflictedAction = createUnCommittedConflictedAction(transaction);
+ transaction.execute();
+
+ // Sleep to wait for the persist of the actions
+ DemoDbUtil.sleep(3000);
+
+ // Working Branch off SAW_Bld_2, Make Changes, Commit
+ makeCommittedActionChanges(committedAction);
+
+ // Working Branch off SAW_Bld_2, Make Changes, DON'T Commit
+ makeUnCommittedActionChanges(unCommittedAction);
+
+ // Working Branch off SAW_Bld_2, Make Conflicted Changes, DON'T Commit
+ makeConflictedActionChanges(conflictedAction);
+
+ }
+
+ private static ActionArtifact createUnCommittedConflictedAction(SkynetTransaction transaction) throws OseeCoreException {
+ String title = "SAW (uncommitted-conflicted) More Requirement Changes for Diagram View";
+ Collection<ActionableItemArtifact> aias =
+ DemoDbUtil.getActionableItems(new String[] {DemoDbAIs.SAW_Requirements.getAIName()});
+ Date createdDate = new Date();
+ User createdBy = UserManager.getUser();
+ String priority = "3";
+
+ ActionArtifact actionArt =
+ ActionManager.createAction(null, title, "Problem with the Diagram View", ChangeType.Problem, priority, false,
+ null, aias, createdDate, createdBy, null, transaction);
+ for (TeamWorkFlowArtifact teamWf : ActionManager.getTeams(actionArt)) {
+
+ TeamWorkFlowManager dtwm =
+ new TeamWorkFlowManager(teamWf, TransitionOption.OverrideAssigneeCheck,
+ TransitionOption.OverrideTransitionValidityCheck);
+
+ // Transition to desired state
+ Result result = dtwm.transitionTo(toState, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to state [%s]: [%s]", teamWf.toStringWithId(),
+ toState.getPageName(), result.getText());
+ }
+
+ if (!teamWf.isCompletedOrCancelled()) {
+ // Reset assignees that may have been overwritten during transition
+ teamWf.getStateMgr().setAssignees(teamWf.getTeamDefinition().getLeads());
+ }
+
+ teamWf.persist(transaction);
+ Artifact verArt =
+ ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, versionStr, AtsUtil.getAtsBranch());
+ teamWf.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, verArt);
+ teamWf.persist(transaction);
+ }
+ return actionArt;
+ }
+
+ private static ActionArtifact createNoBranchAction(SkynetTransaction transaction) throws OseeCoreException {
+ String title = "SAW (no-branch) Even More Requirement Changes for Diagram View";
+ Collection<ActionableItemArtifact> aias =
+ DemoDbUtil.getActionableItems(new String[] {
+ DemoDbAIs.SAW_Code.getAIName(),
+ DemoDbAIs.SAW_SW_Design.getAIName(),
+ DemoDbAIs.SAW_Requirements.getAIName(),
+ DemoDbAIs.SAW_Test.getAIName()});
+ Date createdDate = new Date();
+ User createdBy = UserManager.getUser();
+ String priority = "3";
+
+ ActionArtifact actionArt =
+ ActionManager.createAction(null, title, "Problem with the Diagram View", ChangeType.Problem, priority, false,
+ null, aias, createdDate, createdBy, null, transaction);
+ for (TeamWorkFlowArtifact teamWf : ActionManager.getTeams(actionArt)) {
+
+ boolean isSwDesign = teamWf.getTeamDefinition().getName().contains("SW Design");
+
+ TeamWorkFlowManager dtwm = new TeamWorkFlowManager(teamWf, TransitionOption.OverrideAssigneeCheck);
+
+ if (isSwDesign) {
+ // transition to analyze
+ Result result = dtwm.transitionTo(TeamState.Analyze, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to Analyze state: [%s]", teamWf.toStringWithId(),
+ toState.getPageName(), result.getText());
+ }
+ // set reviews to non-blocking
+ for (AbstractReviewArtifact reviewArt : ReviewManager.getReviews(teamWf)) {
+ reviewArt.setSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, ReviewBlockType.None.name());
+ }
+
+ // transition to authorize
+ result = dtwm.transitionTo(TeamState.Authorize, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to Authorize state: [%s]",
+ teamWf.toStringWithId(), toState.getPageName(), result.getText());
+ }
+ // set reviews to non-blocking
+ for (AbstractReviewArtifact reviewArt : ReviewManager.getReviews(teamWf)) {
+ reviewArt.setSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, ReviewBlockType.None.name());
+ }
+ }
+ // Transition to final state
+ Result result = dtwm.transitionTo(toState, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to state [%s]: [%s]", teamWf.toStringWithId(),
+ toState.getPageName(), result.getText());
+ }
+
+ if (!teamWf.isCompletedOrCancelled()) {
+ // Reset assignees that may have been overwritten during transition
+ teamWf.getStateMgr().setAssignees(teamWf.getTeamDefinition().getLeads());
+ }
+
+ teamWf.persist(transaction);
+ Artifact verArt =
+ ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, versionStr, AtsUtil.getAtsBranch());
+ teamWf.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, verArt);
+ teamWf.persist(transaction);
+ }
+ return actionArt;
+ }
+
+ private static ActionArtifact createUnCommittedAction(SkynetTransaction transaction) throws OseeCoreException {
+ String title = "SAW (uncommitted) More Reqt Changes for Diagram View";
+ Collection<ActionableItemArtifact> aias =
+ DemoDbUtil.getActionableItems(new String[] {
+ DemoDbAIs.SAW_Code.getAIName(),
+ DemoDbAIs.SAW_SW_Design.getAIName(),
+ DemoDbAIs.SAW_Requirements.getAIName(),
+ DemoDbAIs.SAW_Test.getAIName()});
+ Date createdDate = new Date();
+ User createdBy = UserManager.getUser();
+ String priority = "3";
+
+ ActionArtifact actionArt =
+ ActionManager.createAction(null, title, "Problem with the Diagram View", ChangeType.Problem, priority, false,
+ null, aias, createdDate, createdBy, null, transaction);
+ for (TeamWorkFlowArtifact teamWf : ActionManager.getTeams(actionArt)) {
+
+ boolean isSwDesign = teamWf.getTeamDefinition().getName().contains("SW Design");
+
+ TeamWorkFlowManager dtwm =
+ new TeamWorkFlowManager(teamWf, TransitionOption.OverrideAssigneeCheck, TransitionOption.None);
+
+ if (isSwDesign) {
+ // transition to analyze
+ Result result = dtwm.transitionTo(TeamState.Analyze, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to Analyze state: [%s]", teamWf.toStringWithId(),
+ toState.getPageName(), result.getText());
+ }
+ // set reviews to non-blocking
+ for (AbstractReviewArtifact reviewArt : ReviewManager.getReviews(teamWf)) {
+ reviewArt.setSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, ReviewBlockType.None.name());
+ }
+
+ // transition to authorize
+ result = dtwm.transitionTo(TeamState.Authorize, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to Authorize state: [%s]",
+ teamWf.toStringWithId(), toState.getPageName(), result.getText());
+ }
+ // set reviews to non-blocking
+ for (AbstractReviewArtifact reviewArt : ReviewManager.getReviews(teamWf)) {
+ reviewArt.setSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, ReviewBlockType.None.name());
+ }
+ }
+
+ // Transition to final state
+ Result result = dtwm.transitionTo(toState, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to state [%s]: [%s]", teamWf.toStringWithId(),
+ toState.getPageName(), result.getText());
+ }
+
+ if (!teamWf.isCompletedOrCancelled()) {
+ // Reset assignees that may have been overwritten during transition
+ teamWf.getStateMgr().setAssignees(teamWf.getTeamDefinition().getLeads());
+ }
+
+ teamWf.persist(transaction);
+ Artifact verArt =
+ ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, versionStr, AtsUtil.getAtsBranch());
+ teamWf.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, verArt);
+
+ teamWf.persist(transaction);
+ }
+ return actionArt;
+ }
+
+ private static ActionArtifact createCommittedAction(SkynetTransaction transaction) throws OseeCoreException {
+ String title = "SAW (committed) Reqt Changes for Diagram View";
+ Collection<ActionableItemArtifact> aias =
+ DemoDbUtil.getActionableItems(new String[] {
+ DemoDbAIs.SAW_Requirements.getAIName(),
+ DemoDbAIs.SAW_Code.getAIName(),
+ DemoDbAIs.SAW_Test.getAIName()});
+ Date createdDate = new Date();
+ User createdBy = UserManager.getUser();
+ String priority = "1";
+
+ ActionArtifact actionArt =
+ ActionManager.createAction(null, title, "Problem with the Diagram View", ChangeType.Problem, priority, false,
+ null, aias, createdDate, createdBy, null, transaction);
+ for (TeamWorkFlowArtifact teamWf : ActionManager.getTeams(actionArt)) {
+
+ TeamWorkFlowManager dtwm =
+ new TeamWorkFlowManager(teamWf, TransitionOption.OverrideAssigneeCheck,
+ TransitionOption.OverrideTransitionValidityCheck);
+
+ // Transition to desired state
+ Result result = dtwm.transitionTo(toState, null, false, transaction);
+ if (result.isFalse()) {
+ throw new OseeCoreException("Error transitioning [%s] to state [%s]: [%s]", teamWf.toStringWithId(),
+ toState.getPageName(), result.getText());
+ }
+
+ if (!teamWf.isCompletedOrCancelled()) {
+ // Reset assignees that may have been overwritten during transition
+ teamWf.getStateMgr().setAssignees(teamWf.getTeamDefinition().getLeads());
+ }
+
+ teamWf.persist(transaction);
+ Artifact verArt =
+ ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, versionStr, AtsUtil.getAtsBranch());
+ teamWf.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, verArt);
+ teamWf.persist(transaction);
+ }
+ return actionArt;
+ }
+
+ private static void makeCommittedActionChanges(Artifact actionArt) throws OseeCoreException {
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Making Action 1 Requirement Changes");
+ }
+ TeamWorkFlowArtifact reqTeam = null;
+ for (TeamWorkFlowArtifact team : ActionManager.getTeams(actionArt)) {
+ if (team.getTeamDefinition().getName().contains("Req")) {
+ reqTeam = team;
+ }
+ }
+
+ if (reqTeam == null) {
+ throw new OseeArgumentException("Can't locate Req team.");
+ }
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Creating working branch");
+ }
+ Result result = AtsBranchManager.createWorkingBranch(reqTeam, null, false);
+ if (result.isFalse()) {
+ throw new OseeArgumentException(
+ new StringBuilder("Error creating working branch: ").append(result.getText()).toString());
+ }
+
+ DemoDbUtil.sleep(5000);
+
+ for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.Robot,
+ reqTeam.getWorkingBranch())) {
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
+ new StringBuilder("Modifying artifact => ").append(art).toString());
+ }
+ art.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Navigation.name());
+ art.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Navigation.name());
+ Artifact navArt =
+ ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Navigation.name(),
+ reqTeam.getWorkingBranch());
+ art.addRelation(CoreRelationTypes.Allocation__Component, navArt);
+ art.persist();
+ }
+
+ for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.Event,
+ reqTeam.getWorkingBranch())) {
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
+ new StringBuilder("Modifying artifact => ").append(art).toString());
+ }
+ art.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Interface.name());
+ art.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
+ Artifact robotArt =
+ ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Robot_API.name(),
+ reqTeam.getWorkingBranch());
+ art.addRelation(CoreRelationTypes.Allocation__Component, robotArt);
+ art.persist();
+ }
+
+ // Delete two artifacts
+ for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.daVinci,
+ reqTeam.getWorkingBranch())) {
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
+ new StringBuilder("Deleting artifact => ").append(art).toString());
+ }
+ art.deleteAndPersist();
+ }
+
+ // Add three new artifacts
+ Artifact parentArt = DemoDbUtil.getInterfaceInitializationSoftwareRequirement(DEBUG, reqTeam.getWorkingBranch());
+ for (int x = 1; x < 4; x++) {
+ String name = "Robot Interface Init " + x;
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Adding artifact => " + name);
+ }
+ Artifact newArt =
+ ArtifactTypeManager.addArtifact(CoreArtifactTypes.SoftwareRequirement, parentArt.getBranch(), name);
+ newArt.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
+ newArt.persist();
+ parentArt.addChild(newArt);
+ parentArt.persist();
+ }
+
+ DemoDbUtil.sleep(2000L);
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Committing branch");
+ }
+ Job job =
+ AtsBranchManager.commitWorkingBranch(reqTeam, false, true, reqTeam.getTargetedVersion().getParentBranch(),
+ true);
+ try {
+ job.join();
+ } catch (InterruptedException ex) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Completing Action");
+ }
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Completing Action");
+ }
+ }
+
+ private static void makeConflictedActionChanges(Artifact actionArt) throws OseeCoreException {
+ TeamWorkFlowArtifact reqTeam = null;
+ for (TeamWorkFlowArtifact team : ActionManager.getTeams(actionArt)) {
+ if (team.getTeamDefinition().getName().contains("Req")) {
+ reqTeam = team;
+ }
+ }
+
+ if (reqTeam == null) {
+ throw new OseeArgumentException("Can't locate Req team.");
+ }
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Creating working branch");
+ }
+ Result result = AtsBranchManager.createWorkingBranch(reqTeam, null, false);
+ if (result.isFalse()) {
+ throw new OseeArgumentException(
+ new StringBuilder("Error creating working branch: ").append(result.getText()).toString());
+ }
+
+ DemoDbUtil.sleep(5000);
+
+ Artifact branchArtifact =
+ DemoDbUtil.getArtTypeRequirements(DEBUG, CoreArtifactTypes.SoftwareRequirement,
+ DemoDbUtil.HAPTIC_CONSTRAINTS_REQ, reqTeam.getWorkingBranch()).iterator().next();
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
+ new StringBuilder("Modifying branch artifact => ").append(branchArtifact).toString());
+ }
+ branchArtifact.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Interface.name());
+ branchArtifact.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
+ Artifact comArt =
+ ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Robot_API.name(),
+ reqTeam.getWorkingBranch());
+ branchArtifact.addRelation(CoreRelationTypes.Allocation__Component, comArt);
+ branchArtifact.persist();
+
+ Artifact parentArtifact =
+ DemoDbUtil.getArtTypeRequirements(DEBUG, CoreArtifactTypes.SoftwareRequirement,
+ DemoDbUtil.HAPTIC_CONSTRAINTS_REQ, reqTeam.getWorkingBranch()).iterator().next();
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
+ new StringBuilder("Modifying parent artifact => ").append(parentArtifact).toString());
+ }
+ parentArtifact.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Navigation.name());
+ parentArtifact.setSoleAttributeValue(CoreAttributeTypes.Subsystem,
+ DemoSubsystems.Cognitive_Decision_Aiding.name());
+ parentArtifact.persist();
+
+ }
+
+ private static void makeUnCommittedActionChanges(Artifact actionArt) throws OseeCoreException {
+ TeamWorkFlowArtifact reqTeam = null;
+ for (TeamWorkFlowArtifact team : ActionManager.getTeams(actionArt)) {
+ if (team.getTeamDefinition().getName().contains("Req")) {
+ reqTeam = team;
+ }
+ }
+
+ if (reqTeam == null) {
+ throw new OseeArgumentException("Can't locate Req team.");
+ }
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Creating working branch");
+ }
+ Result result = AtsBranchManager.createWorkingBranch(reqTeam, null, false);
+ if (result.isFalse()) {
+ throw new OseeArgumentException(
+ new StringBuilder("Error creating working branch: ").append(result.getText()).toString());
+ }
+
+ DemoDbUtil.sleep(5000);
+
+ for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.Functional,
+ reqTeam.getWorkingBranch())) {
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
+ new StringBuilder("Modifying artifact => ").append(art).toString());
+ }
+ art.setSoleAttributeValue(CoreAttributeTypes.Csci, DemoCscis.Interface.name());
+ art.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
+ Artifact comArt =
+ ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.Component, DemoSubsystems.Robot_API.name(),
+ reqTeam.getWorkingBranch());
+
+ art.addRelation(CoreRelationTypes.Allocation__Component, comArt);
+ art.persist();
+ }
+
+ // Delete one artifacts
+ for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.CISST,
+ reqTeam.getWorkingBranch())) {
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO,
+ new StringBuilder("Deleting artifact => ").append(art).toString());
+ }
+ art.deleteAndPersist();
+ }
+
+ // Add two new artifacts
+ Artifact parentArt = DemoDbUtil.getInterfaceInitializationSoftwareRequirement(DEBUG, reqTeam.getWorkingBranch());
+ for (int x = 15; x < 17; x++) {
+ String name = "Claw Interface Init " + x;
+ if (DEBUG) {
+ OseeLog.log(OseeAtsConfigDemoActivator.class, Level.INFO, "Adding artifact => " + name);
+ }
+ Artifact newArt =
+ ArtifactTypeManager.addArtifact(CoreArtifactTypes.SoftwareRequirement, parentArt.getBranch(), name);
+ newArt.setSoleAttributeValue(CoreAttributeTypes.Subsystem, DemoSubsystems.Communications.name());
+ parentArt.addChild(newArt);
+
+ newArt.persist();
+ }
+
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbActionData.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbActionData.java
index f27b7ae9d2b..1963da8c8d7 100644
--- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbActionData.java
+++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbActionData.java
@@ -10,12 +10,13 @@
*******************************************************************************/
package org.eclipse.osee.ats.config.demo.config;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.eclipse.osee.ats.core.config.ActionableItemArtifact;
import org.eclipse.osee.ats.core.team.TeamState;
-import org.eclipse.osee.ats.core.workflow.ActionableItemManagerCore;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.ui.skynet.widgets.workflow.UserCommunity;
@@ -57,44 +58,11 @@ public class DemoDbActionData {
}
public Collection<ActionableItemArtifact> getActionableItems() throws OseeCoreException {
- Set<ActionableItemArtifact> aias = new HashSet<ActionableItemArtifact>();
- for (String str : actionableItems) {
- for (ActionableItemArtifact aia : ActionableItemManagerCore.getActionableItemsAll()) {
- if (str.equals(aia.getName())) {
- aias.add(aia);
- }
- }
- }
- return aias;
- }
-
- public static Set<DemoDbActionData> getReqSawActionsData() {
- Set<DemoDbActionData> actionDatas = new HashSet<DemoDbActionData>();
- actionDatas.add(new DemoDbActionData(new String[] {"SAW (committed) Reqt Changes for"}, "Diagram View", "1",
- new String[] {
- DemoDbAIs.SAW_Requirements.getAIName(),
- DemoDbAIs.SAW_Code.getAIName(),
- DemoDbAIs.SAW_Test.getAIName()}, new Integer[] {1}, TeamState.Implement));
- actionDatas.add(new DemoDbActionData(new String[] {"SAW (uncommitted) More Reqt Changes for"}, "Diagram View",
- "3", new String[] {
- DemoDbAIs.SAW_Code.getAIName(),
- DemoDbAIs.SAW_SW_Design.getAIName(),
- DemoDbAIs.SAW_Requirements.getAIName(),
- DemoDbAIs.SAW_Test.getAIName()}, new Integer[] {1}, TeamState.Implement));
- actionDatas.add(new DemoDbActionData(new String[] {"SAW (no-branch) Even More Requirement Changes for"},
- "Diagram View", "3", new String[] {
- DemoDbAIs.SAW_Code.getAIName(),
- DemoDbAIs.SAW_SW_Design.getAIName(),
- DemoDbAIs.SAW_Requirements.getAIName(),
- DemoDbAIs.SAW_Test.getAIName()}, new Integer[] {1}, TeamState.Implement));
- actionDatas.add(new DemoDbActionData(new String[] {"SAW (uncommitted-conflicted) More Requirement Changes for"},
- "Diagram View", "3", new String[] {DemoDbAIs.SAW_Requirements.getAIName()}, new Integer[] {1},
- TeamState.Implement));
- return actionDatas;
+ return DemoDbUtil.getActionableItems(actionableItems);
}
- public static Set<DemoDbActionData> getNonReqSawActionData() {
- Set<DemoDbActionData> actionDatas = new HashSet<DemoDbActionData>();
+ public static List<DemoDbActionData> getNonReqSawActionData() {
+ List<DemoDbActionData> actionDatas = new ArrayList<DemoDbActionData>();
actionDatas.add(new DemoDbActionData(new String[] {"Workaround for"}, "Graph View", "1",
new String[] {DemoDbAIs.Adapter.getAIName()}, new Integer[] {1}, TeamState.Implement));
actionDatas.add(new DemoDbActionData(new String[] {"Working with"}, "Diagram Tree", "3",
@@ -102,8 +70,8 @@ public class DemoDbActionData {
return actionDatas;
}
- public static Set<DemoDbActionData> getGenericActionData() {
- Set<DemoDbActionData> actionDatas = new HashSet<DemoDbActionData>();
+ public static List<DemoDbActionData> getGenericActionData() {
+ List<DemoDbActionData> actionDatas = new ArrayList<DemoDbActionData>();
actionDatas.add(new DemoDbActionData(new String[] {"Problem with the", "Can't see the"}, "Graph View", "1",
new String[] {DemoDbAIs.Adapter.getAIName()}, new Integer[] {1}, TeamState.Implement));
actionDatas.add(new DemoDbActionData(new String[] {"Problem in", "Can't load"}, "Diagram Tree", "3",
diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbReviews.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbReviews.java
index 1b86568b6d6..bc3a998b9d7 100644
--- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbReviews.java
+++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbReviews.java
@@ -22,11 +22,11 @@ import org.eclipse.osee.ats.core.review.DecisionReviewState;
import org.eclipse.osee.ats.core.review.PeerToPeerReviewArtifact;
import org.eclipse.osee.ats.core.review.PeerToPeerReviewManager;
import org.eclipse.osee.ats.core.review.PeerToPeerReviewState;
-import org.eclipse.osee.ats.core.review.ReviewManager;
-import org.eclipse.osee.ats.core.review.defect.DefectItem;
-import org.eclipse.osee.ats.core.review.defect.DefectItem.Disposition;
-import org.eclipse.osee.ats.core.review.defect.DefectItem.InjectionActivity;
-import org.eclipse.osee.ats.core.review.defect.DefectItem.Severity;
+import org.eclipse.osee.ats.core.review.ValidateReviewManager;
+import org.eclipse.osee.ats.core.review.defect.ReviewDefectItem;
+import org.eclipse.osee.ats.core.review.defect.ReviewDefectItem.Disposition;
+import org.eclipse.osee.ats.core.review.defect.ReviewDefectItem.InjectionActivity;
+import org.eclipse.osee.ats.core.review.defect.ReviewDefectItem.Severity;
import org.eclipse.osee.ats.core.review.role.Role;
import org.eclipse.osee.ats.core.review.role.UserRole;
import org.eclipse.osee.ats.core.team.TeamWorkFlowArtifact;
@@ -74,7 +74,7 @@ public class DemoDbReviews {
// Create a Decision review and transition to ReWork
DecisionReviewArtifact reviewArt =
- ReviewManager.createValidateReview(firstTestArt, true, createdDate, createdBy, transaction);
+ ValidateReviewManager.createValidateReview(firstTestArt, true, createdDate, createdBy, transaction);
Result result =
DecisionReviewManager.transitionTo(reviewArt, DecisionReviewState.Followup, UserManager.getUser(), false,
transaction);
@@ -84,7 +84,7 @@ public class DemoDbReviews {
reviewArt.persist(transaction);
// Create a Decision review and transition to Completed
- reviewArt = ReviewManager.createValidateReview(secondTestArt, true, createdDate, createdBy, transaction);
+ reviewArt = ValidateReviewManager.createValidateReview(secondTestArt, true, createdDate, createdBy, transaction);
DecisionReviewManager.transitionTo(reviewArt, DecisionReviewState.Completed, UserManager.getUser(), false,
transaction);
if (result.isFalse()) {
@@ -128,13 +128,13 @@ public class DemoDbReviews {
// Create a PeerToPeer review and leave in Prepare state
PeerToPeerReviewArtifact reviewArt =
- ReviewManager.createNewPeerToPeerReview(firstCodeArt, "Peer Review first set of code changes",
+ PeerToPeerReviewManager.createNewPeerToPeerReview(firstCodeArt, "Peer Review first set of code changes",
firstCodeArt.getStateMgr().getCurrentStateName(), transaction);
reviewArt.persist(transaction);
// Create a PeerToPeer review and transition to Review state
reviewArt =
- ReviewManager.createNewPeerToPeerReview(firstCodeArt, "Peer Review algorithm used in code",
+ PeerToPeerReviewManager.createNewPeerToPeerReview(firstCodeArt, "Peer Review algorithm used in code",
firstCodeArt.getStateMgr().getCurrentStateName(), transaction);
List<UserRole> roles = new ArrayList<UserRole>();
roles.add(new UserRole(Role.Author, DemoDbUtil.getDemoUser(DemoUsers.Joe_Smith)));
@@ -150,7 +150,7 @@ public class DemoDbReviews {
// Create a PeerToPeer review and transition to Completed
reviewArt =
- ReviewManager.createNewPeerToPeerReview(secondCodeArt, "Review new logic",
+ PeerToPeerReviewManager.createNewPeerToPeerReview(secondCodeArt, "Review new logic",
secondCodeArt.getStateMgr().getCurrentStateName(), new Date(), DemoDbUtil.getDemoUser(DemoUsers.Kay_Jones),
transaction);
roles = new ArrayList<UserRole>();
@@ -158,21 +158,26 @@ public class DemoDbReviews {
roles.add(new UserRole(Role.Reviewer, DemoDbUtil.getDemoUser(DemoUsers.Joe_Smith), 4.5, true));
roles.add(new UserRole(Role.Reviewer, DemoDbUtil.getDemoUser(DemoUsers.Alex_Kay), 2.0, true));
- List<DefectItem> defects = new ArrayList<DefectItem>();
- defects.add(new DefectItem(DemoDbUtil.getDemoUser(DemoUsers.Alex_Kay), Severity.Issue, Disposition.Accept,
+ List<ReviewDefectItem> defects = new ArrayList<ReviewDefectItem>();
+ defects.add(new ReviewDefectItem(DemoDbUtil.getDemoUser(DemoUsers.Alex_Kay), Severity.Issue, Disposition.Accept,
InjectionActivity.Code, "Problem with logic", "Fixed", "Line 234", new Date()));
- defects.add(new DefectItem(DemoDbUtil.getDemoUser(DemoUsers.Alex_Kay), Severity.Issue, Disposition.Accept,
+ defects.add(new ReviewDefectItem(DemoDbUtil.getDemoUser(DemoUsers.Alex_Kay), Severity.Issue, Disposition.Accept,
InjectionActivity.Code, "Using getInteger instead", "Fixed", "MyWorld.java:Line 33", new Date()));
- defects.add(new DefectItem(DemoDbUtil.getDemoUser(DemoUsers.Alex_Kay), Severity.Major, Disposition.Reject,
+ defects.add(new ReviewDefectItem(DemoDbUtil.getDemoUser(DemoUsers.Alex_Kay), Severity.Major, Disposition.Reject,
InjectionActivity.Code, "Spelling incorrect", "Is correct", "MyWorld.java:Line 234", new Date()));
- defects.add(new DefectItem(DemoDbUtil.getDemoUser(DemoUsers.Joe_Smith), Severity.Minor, Disposition.Reject,
+ defects.add(new ReviewDefectItem(DemoDbUtil.getDemoUser(DemoUsers.Joe_Smith), Severity.Minor, Disposition.Reject,
InjectionActivity.Code, "Remove unused code", "", "Here.java:Line 234", new Date()));
- defects.add(new DefectItem(DemoDbUtil.getDemoUser(DemoUsers.Joe_Smith), Severity.Major, Disposition.Accept,
+ defects.add(new ReviewDefectItem(DemoDbUtil.getDemoUser(DemoUsers.Joe_Smith), Severity.Major, Disposition.Accept,
InjectionActivity.Code, "Negate logic", "Fixed", "There.java:Line 234", new Date()));
+ for (ReviewDefectItem defect : defects) {
+ defect.setClosed(true);
+ }
result =
PeerToPeerReviewManager.transitionTo(reviewArt, PeerToPeerReviewState.Completed, roles, defects,
UserManager.getUser(), false, transaction);
- reviewArt.persist(transaction);
+ if (result.isTrue()) {
+ reviewArt.persist(transaction);
+ }
if (result.isFalse()) {
throw new IllegalStateException("Failed transitioning review to Completed: " + result.getText());
}
diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbUtil.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbUtil.java
index 13eb6d5fdf4..d8442ef5c0d 100644
--- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbUtil.java
+++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDbUtil.java
@@ -13,10 +13,14 @@ package org.eclipse.osee.ats.config.demo.config;
import static org.eclipse.osee.framework.core.enums.DeletionFlag.EXCLUDE_DELETED;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.logging.Level;
import org.eclipse.osee.ats.config.demo.internal.OseeAtsConfigDemoActivator;
+import org.eclipse.osee.ats.core.config.ActionableItemArtifact;
import org.eclipse.osee.ats.core.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.workflow.ActionableItemManagerCore;
import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.framework.core.data.IArtifactType;
import org.eclipse.osee.framework.core.data.IOseeBranch;
@@ -43,6 +47,12 @@ public class DemoDbUtil {
public static String INTERFACE_INITIALIZATION = "Interface Initialization";
private static List<TeamWorkFlowArtifact> codeArts;
+ public static void checkDbInitSuccess() throws OseeCoreException {
+ if (!isDbInitSuccessful()) {
+ throw new OseeStateException("DbInit must be successful to continue");
+ }
+ }
+
public static void checkDbInitAndPopulateSuccess() throws OseeCoreException {
if (!isDbInitSuccessful()) {
throw new OseeStateException("DbInit must be successful to continue");
@@ -141,4 +151,16 @@ public class DemoDbUtil {
return UserManager.getUserByName(demoUser.getName());
}
+ public static Collection<ActionableItemArtifact> getActionableItems(String[] aiasNames) throws OseeCoreException {
+ Set<ActionableItemArtifact> aias = new HashSet<ActionableItemArtifact>();
+ for (String str : aiasNames) {
+ for (ActionableItemArtifact aia : ActionableItemManagerCore.getActionableItemsAll()) {
+ if (str.equals(aia.getName())) {
+ aias.add(aia);
+ }
+ }
+ }
+ return aias;
+ }
+
}

Back to the top