diff options
author | ddunne | 2011-05-20 16:08:58 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-05-20 16:08:58 +0000 |
commit | 7840f46b12b20a1bb3ef8b3bb934421e9fc75709 (patch) | |
tree | d8da4c3259349a190bee93f3fa9da457b853f399 /plugins/org.eclipse.osee.ats.config.demo | |
parent | f28113b5cd91d824b975255c6ca0cd51bb1b84ee (diff) | |
download | org.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')
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; + } + } |