Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2017-03-20 15:36:25 +0000
committerdonald.g.dunne2017-03-29 22:00:33 +0000
commitf9492493f1ea9a9c0c76c32870c0f1badc7c71a5 (patch)
treed0129e889a7f31c1041593d79ec5c8466d99b222
parent7c62e41a2c8cd06414073936fc07c93a4ce242e1 (diff)
downloadorg.eclipse.osee-f9492493f1ea9a9c0c76c32870c0f1badc7c71a5.tar.gz
org.eclipse.osee-f9492493f1ea9a9c0c76c32870c0f1badc7c71a5.tar.xz
org.eclipse.osee-f9492493f1ea9a9c0c76c32870c0f1badc7c71a5.zip
refactor: Consolidate AtsReviewService
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/review/IAtsReviewService.java12
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsChangeSet.java2
-rw-r--r--plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/PopulateSawBuild2Actions.java1
-rw-r--r--plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/config/DemoDbReviews.java20
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/PopulateDemoActionsTest.java1
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java9
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/review/DecisionReviewManagerTest.java80
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java8
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java8
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/util/AtsDeleteManagerTest.java14
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsCacheManagerUpdateListener.java29
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java92
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsChangeSet.java6
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/AtsReviewCache.java71
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java15
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java94
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerToPeerReviewManager.java1
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ReviewManager.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ValidateReviewManager.java131
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/review/AtsReviewServiceImpl.java268
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java11
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsCoreServiceImpl.java2
-rw-r--r--plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsServerImpl.java2
-rw-r--r--plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java7
-rw-r--r--plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsReviewServiceImpl.java101
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java8
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java2
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewDecisionReviewJob.java7
29 files changed, 386 insertions, 620 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/review/IAtsReviewService.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/review/IAtsReviewService.java
index 7f1fcd42cea..4677af9867e 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/review/IAtsReviewService.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/review/IAtsReviewService.java
@@ -12,9 +12,11 @@ package org.eclipse.osee.ats.api.review;
import java.util.Collection;
import java.util.Date;
+import java.util.List;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.api.workdef.IAtsDecisionReviewOption;
import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
@@ -43,4 +45,14 @@ public interface IAtsReviewService {
IAtsPeerReviewRoleManager createPeerReviewRoleManager(IAtsPeerToPeerReview peerRev);
+ IAtsDecisionReview createNewDecisionReviewAndTransitionToDecision(IAtsTeamWorkflow teamWf, String reviewTitle, String description, String againstState, ReviewBlockType reviewBlockType, Collection<IAtsDecisionReviewOption> options, List<? extends IAtsUser> assignees, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException;
+
+ IAtsDecisionReview createNewDecisionReview(IAtsTeamWorkflow teamWf, ReviewBlockType reviewBlockType, boolean againstCurrentState, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException;
+
+ IAtsDecisionReview createNewDecisionReview(IAtsTeamWorkflow teamWf, ReviewBlockType reviewBlockType, String title, String relatedToState, String description, Collection<IAtsDecisionReviewOption> options, List<? extends IAtsUser> assignees, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException;
+
+ List<IAtsDecisionReviewOption> getDefaultDecisionReviewOptions();
+
+ String getDecisionReviewOptionsString(Collection<IAtsDecisionReviewOption> options);
+
}
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsChangeSet.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsChangeSet.java
index 7514a3107de..423a5242508 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsChangeSet.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsChangeSet.java
@@ -140,4 +140,6 @@ public interface IAtsChangeSet {
void setName(ArtifactToken artifact, String name);
+ void setName(IAtsObject atsObject, String name);
+
}
diff --git a/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/PopulateSawBuild2Actions.java b/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/PopulateSawBuild2Actions.java
index 6bb6be32a7c..ce1acc81197 100644
--- a/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/PopulateSawBuild2Actions.java
+++ b/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/PopulateSawBuild2Actions.java
@@ -484,7 +484,6 @@ public class PopulateSawBuild2Actions {
}
AtsBranchUtil.createWorkingBranch_Create(reqTeam, true);
-
for (Artifact art : DemoDbUtil.getSoftwareRequirements(DEBUG, SoftwareRequirementStrs.Functional,
reqTeam.getWorkingBranch())) {
if (DEBUG) {
diff --git a/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/config/DemoDbReviews.java b/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/config/DemoDbReviews.java
index 151a07bd4c7..13b770589c9 100644
--- a/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/config/DemoDbReviews.java
+++ b/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/config/DemoDbReviews.java
@@ -16,6 +16,7 @@ import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
+import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
import org.eclipse.osee.ats.api.review.Role;
import org.eclipse.osee.ats.api.review.UserRole;
import org.eclipse.osee.ats.api.user.IAtsUser;
@@ -28,7 +29,6 @@ import org.eclipse.osee.ats.core.client.review.DecisionReviewState;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewArtifact;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewManager;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewState;
-import org.eclipse.osee.ats.core.client.review.ValidateReviewManager;
import org.eclipse.osee.ats.core.client.review.defect.ReviewDefectItem;
import org.eclipse.osee.ats.core.client.review.defect.ReviewDefectItem.Disposition;
import org.eclipse.osee.ats.core.client.review.defect.ReviewDefectItem.InjectionActivity;
@@ -75,22 +75,24 @@ public class DemoDbReviews {
TeamWorkFlowArtifact secondTestArt = getSampleReviewTestWorkflows().get(1);
// Create a Decision review and transition to ReWork
- DecisionReviewArtifact reviewArt =
- ValidateReviewManager.createValidateReview(firstTestArt, true, createdDate, createdBy, changes);
- Result result =
- DecisionReviewManager.transitionTo(reviewArt, DecisionReviewState.Followup, createdBy, false, changes);
+ IAtsDecisionReview review = AtsClientService.get().getReviewService().createValidateReview(firstTestArt, true,
+ createdDate, createdBy, changes);
+ Result result = DecisionReviewManager.transitionTo((DecisionReviewArtifact) review.getStoreObject(),
+ DecisionReviewState.Followup, createdBy, false, changes);
if (result.isFalse()) {
throw new IllegalStateException("Failed transitioning review to Followup: " + result.getText());
}
- changes.add(reviewArt);
+ changes.add(review);
// Create a Decision review and transition to Completed
- reviewArt = ValidateReviewManager.createValidateReview(secondTestArt, true, createdDate, createdBy, changes);
- DecisionReviewManager.transitionTo(reviewArt, DecisionReviewState.Completed, createdBy, false, changes);
+ review = AtsClientService.get().getReviewService().createValidateReview(secondTestArt, true, createdDate,
+ createdBy, changes);
+ DecisionReviewManager.transitionTo((DecisionReviewArtifact) review.getStoreObject(),
+ DecisionReviewState.Completed, createdBy, false, changes);
if (result.isFalse()) {
throw new IllegalStateException("Failed transitioning review to Completed: " + result.getText());
}
- changes.add(reviewArt);
+ changes.add(review);
}
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/PopulateDemoActionsTest.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/PopulateDemoActionsTest.java
index 47b251a12e9..d40afd4bc22 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/PopulateDemoActionsTest.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/PopulateDemoActionsTest.java
@@ -36,7 +36,6 @@ import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.task.TaskStates;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.util.AtsObjects;
-import org.eclipse.osee.ats.core.util.AtsUtilCore;
import org.eclipse.osee.ats.core.workflow.state.TeamState;
import org.eclipse.osee.ats.demo.api.DemoArtifactTypes;
import org.eclipse.osee.ats.demo.api.DemoTeam;
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java
index b5930f956f7..bc443becb3f 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java
@@ -51,7 +51,6 @@ import org.eclipse.osee.ats.core.client.branch.AtsBranchUtil;
import org.eclipse.osee.ats.core.client.config.AtsBulkLoad;
import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
import org.eclipse.osee.ats.core.client.review.DecisionReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.review.DecisionReviewState;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewArtifact;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewManager;
@@ -408,10 +407,10 @@ public class AtsTestUtil {
options.add(new SimpleDecisionReviewOption(DecisionReviewState.Completed.getName(), false, null));
options.add(new SimpleDecisionReviewOption(DecisionReviewState.Followup.getName(), true,
Arrays.asList(AtsClientService.get().getUserService().getCurrentUser().getUserId())));
- decRevArt = DecisionReviewManager.createNewDecisionReview(teamWf, reviewBlockType,
- AtsTestUtil.class.getSimpleName() + " Test Decision Review", relatedToState.getName(), "Decision Review",
- options, Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()), new Date(),
- AtsClientService.get().getUserService().getCurrentUser(), changes);
+ decRevArt = (DecisionReviewArtifact) AtsClientService.get().getReviewService().createNewDecisionReview(teamWf,
+ reviewBlockType, AtsTestUtil.class.getSimpleName() + " Test Decision Review", relatedToState.getName(),
+ "Decision Review", options, Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()),
+ new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes).getStoreObject();
}
return decRevArt;
}
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/review/DecisionReviewManagerTest.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/review/DecisionReviewManagerTest.java
index f0a7cf126bf..2b1df81bbe9 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/review/DecisionReviewManagerTest.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/review/DecisionReviewManagerTest.java
@@ -15,12 +15,12 @@ import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
+import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsDecisionReviewOption;
import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.client.integration.tests.AtsClientService;
import org.eclipse.osee.ats.client.integration.tests.ats.core.client.AtsTestUtil;
-import org.eclipse.osee.ats.core.client.review.DecisionReviewArtifact;
import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.review.DecisionReviewState;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
@@ -29,6 +29,7 @@ import org.eclipse.osee.ats.core.workflow.state.TeamState;
import org.eclipse.osee.ats.demo.api.DemoUsers;
import org.eclipse.osee.framework.core.enums.SystemUser;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
import org.junit.AfterClass;
import org.junit.Assert;
@@ -50,7 +51,8 @@ public class DecisionReviewManagerTest extends DecisionReviewManager {
@org.junit.Test
public void testGetDecisionReviewOptionsStr() throws OseeCoreException {
Assert.assertEquals("Yes;Followup;<3333>\nNo;Completed;\n",
- DecisionReviewManager.getDecisionReviewOptionsString(DecisionReviewManager.getDefaultDecisionReviewOptions()));
+ AtsClientService.get().getReviewService().getDecisionReviewOptionsString(
+ AtsClientService.get().getReviewService().getDefaultDecisionReviewOptions()));
}
@org.junit.Test
@@ -66,17 +68,19 @@ public class DecisionReviewManagerTest extends DecisionReviewManager {
// create and transition decision review
IAtsChangeSet changes = AtsClientService.get().createChangeSet(getClass().getSimpleName());
String reviewTitle = "Test Review - " + teamWf.getName();
- DecisionReviewArtifact decRev = DecisionReviewManager.createNewDecisionReviewAndTransitionToDecision(teamWf,
- reviewTitle, "my description", AtsTestUtil.getAnalyzeStateDef().getName(), ReviewBlockType.Transition, options,
- Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()), new Date(),
- AtsClientService.get().getUserService().getCurrentUser(), changes);
+ IAtsDecisionReview decRev =
+ AtsClientService.get().getReviewService().createNewDecisionReviewAndTransitionToDecision(teamWf, reviewTitle,
+ "my description", AtsTestUtil.getAnalyzeStateDef().getName(), ReviewBlockType.Transition, options,
+ Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), changes);
changes.execute();
Assert.assertNotNull(decRev);
Assert.assertFalse(
- String.format("Decision Review artifact should not be dirty [%s]", Artifacts.getDirtyReport(decRev)),
- decRev.isDirty());
- Assert.assertEquals(DecisionReviewState.Decision.getName(), decRev.getCurrentStateName());
+ String.format("Decision Review artifact should not be dirty [%s]",
+ Artifacts.getDirtyReport(((Artifact) decRev.getStoreObject()))),
+ ((Artifact) decRev.getStoreObject()).isDirty());
+ Assert.assertEquals(DecisionReviewState.Decision.getName(), decRev.getStateMgr().getCurrentStateName());
Assert.assertEquals("Joe Smith", decRev.getStateMgr().getAssigneesStr());
}
@@ -94,18 +98,20 @@ public class DecisionReviewManagerTest extends DecisionReviewManager {
// create and transition decision review
IAtsChangeSet changes = AtsClientService.get().createChangeSet(getClass().getSimpleName());
String reviewTitle = "Test Review - " + teamWf.getName();
- DecisionReviewArtifact decRev = DecisionReviewManager.createNewDecisionReviewAndTransitionToDecision(teamWf,
- reviewTitle, "my description", AtsTestUtil.getAnalyzeStateDef().getName(), ReviewBlockType.Transition, options,
- Arrays.asList(AtsClientService.get().getUserServiceClient().getUserFromToken(SystemUser.UnAssigned)),
- new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
+ IAtsDecisionReview decRev =
+ AtsClientService.get().getReviewService().createNewDecisionReviewAndTransitionToDecision(teamWf, reviewTitle,
+ "my description", AtsTestUtil.getAnalyzeStateDef().getName(), ReviewBlockType.Transition, options,
+ Arrays.asList(AtsClientService.get().getUserServiceClient().getUserFromToken(SystemUser.UnAssigned)),
+ new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
changes.execute();
Assert.assertNotNull(decRev);
Assert.assertEquals(reviewTitle, decRev.getName());
Assert.assertFalse(
- String.format("Decision Review artifact should not be dirty [%s]", Artifacts.getDirtyReport(decRev)),
- decRev.isDirty());
- Assert.assertEquals(DecisionReviewState.Decision.getName(), decRev.getCurrentStateName());
+ String.format("Decision Review artifact should not be dirty [%s]",
+ Artifacts.getDirtyReport(((Artifact) decRev.getStoreObject()))),
+ ((Artifact) decRev.getStoreObject()).isDirty());
+ Assert.assertEquals(DecisionReviewState.Decision.getName(), decRev.getStateMgr().getCurrentStateName());
Assert.assertEquals("UnAssigned", decRev.getStateMgr().getAssigneesStr());
}
@@ -117,20 +123,23 @@ public class DecisionReviewManagerTest extends DecisionReviewManager {
String reviewTitle = "Test Review - " + teamWf.getName();
IAtsChangeSet changes = AtsClientService.get().createChangeSet(getClass().getSimpleName());
- DecisionReviewArtifact decRev =
- DecisionReviewManager.createNewDecisionReview(teamWf, ReviewBlockType.Commit, reviewTitle,
- TeamState.Implement.getName(), "description", DecisionReviewManager.getDefaultDecisionReviewOptions(),
- Arrays.asList(AtsClientService.get().getUserServiceClient().getUserFromToken(DemoUsers.Alex_Kay)),
- new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
+ IAtsDecisionReview decRev = AtsClientService.get().getReviewService().createNewDecisionReview(teamWf,
+ ReviewBlockType.Commit, reviewTitle, TeamState.Implement.getName(), "description",
+ AtsClientService.get().getReviewService().getDefaultDecisionReviewOptions(),
+ Arrays.asList(AtsClientService.get().getUserServiceClient().getUserFromToken(DemoUsers.Alex_Kay)), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), changes);
changes.execute();
Assert.assertNotNull(decRev);
Assert.assertEquals(reviewTitle, decRev.getName());
- Assert.assertEquals(DecisionReviewState.Prepare.getName(), decRev.getCurrentStateName());
+ Assert.assertEquals(DecisionReviewState.Prepare.getName(), decRev.getStateMgr().getCurrentStateName());
Assert.assertEquals("Alex Kay", decRev.getStateMgr().getAssigneesStr());
Assert.assertEquals(TeamState.Implement.getName(),
- decRev.getSoleAttributeValue(AtsAttributeTypes.RelatedToState));
- Assert.assertEquals(ReviewBlockType.Commit.name(), decRev.getSoleAttributeValue(AtsAttributeTypes.ReviewBlocks));
+ AtsClientService.get().getAttributeResolver().getSoleAttributeValue(decRev, AtsAttributeTypes.RelatedToState,
+ ""));
+ Assert.assertEquals(ReviewBlockType.Commit.name(),
+ AtsClientService.get().getAttributeResolver().getSoleAttributeValue(decRev, AtsAttributeTypes.ReviewBlocks,
+ ""));
}
@org.junit.Test
@@ -140,11 +149,11 @@ public class DecisionReviewManagerTest extends DecisionReviewManager {
String reviewTitle = "Test Review - " + teamWf.getName();
IAtsChangeSet changes = AtsClientService.get().createChangeSet(getClass().getSimpleName());
- DecisionReviewArtifact decRev =
- DecisionReviewManager.createNewDecisionReview(teamWf, ReviewBlockType.Commit, reviewTitle,
- TeamState.Implement.getName(), "description", DecisionReviewManager.getDefaultDecisionReviewOptions(),
- Arrays.asList(AtsClientService.get().getUserServiceClient().getUserFromToken(SystemUser.UnAssigned)),
- new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
+ IAtsDecisionReview decRev = AtsClientService.get().getReviewService().createNewDecisionReview(teamWf,
+ ReviewBlockType.Commit, reviewTitle, TeamState.Implement.getName(), "description",
+ AtsClientService.get().getReviewService().getDefaultDecisionReviewOptions(),
+ Arrays.asList(AtsClientService.get().getUserServiceClient().getUserFromToken(SystemUser.UnAssigned)),
+ new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
changes.execute();
Assert.assertNotNull(decRev);
@@ -158,17 +167,20 @@ public class DecisionReviewManagerTest extends DecisionReviewManager {
TeamWorkFlowArtifact teamWf = AtsTestUtil.getTeamWf();
IAtsChangeSet changes = AtsClientService.get().createChangeSet(getClass().getSimpleName());
- DecisionReviewArtifact decRev = DecisionReviewManager.createNewDecisionReview(teamWf, ReviewBlockType.Commit,
- true, new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
+ IAtsDecisionReview decRev = AtsClientService.get().getReviewService().createNewDecisionReview(teamWf,
+ ReviewBlockType.Commit, true, new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
changes.execute();
Assert.assertNotNull(decRev);
Assert.assertEquals("Should we do this? Yes will require followup, No will not", decRev.getName());
- Assert.assertEquals(DecisionReviewState.Prepare.getName(), decRev.getCurrentStateName());
+ Assert.assertEquals(DecisionReviewState.Prepare.getName(), decRev.getStateMgr().getCurrentStateName());
Assert.assertEquals("Joe Smith", decRev.getStateMgr().getAssigneesStr());
- Assert.assertEquals(TeamState.Analyze.getName(), decRev.getSoleAttributeValue(AtsAttributeTypes.RelatedToState));
+ Assert.assertEquals(TeamState.Analyze.getName(),
+ AtsClientService.get().getAttributeResolver().getSoleAttributeValue(decRev, AtsAttributeTypes.RelatedToState,
+ ""));
Assert.assertEquals(ReviewBlockType.Commit.name(),
- decRev.getSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, ""));
+ AtsClientService.get().getAttributeResolver().getSoleAttributeValue(decRev, AtsAttributeTypes.ReviewBlocks,
+ ""));
}
}
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java
index bd1e088d0dc..4b4527faeec 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java
@@ -19,9 +19,7 @@ import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.client.integration.tests.AtsClientService;
import org.eclipse.osee.ats.client.integration.tests.ats.core.client.AtsTestUtil;
import org.eclipse.osee.ats.core.client.review.DecisionReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.review.DecisionReviewState;
-import org.eclipse.osee.ats.core.util.AtsUtilCore;
import org.eclipse.osee.ats.editor.stateItem.AtsDecisionReviewDecisionStateItem;
import org.eclipse.osee.ats.mocks.MockStateDefinition;
import org.eclipse.osee.ats.util.AtsUtil;
@@ -37,7 +35,7 @@ import org.junit.Test;
/**
* Test Case for {@link AtsDecisionReviewDecisionStateItem}
- *
+ *
* @author Donald G. Dunne
*/
public class AtsDecisionReviewDecisionStateItemTest {
@@ -55,8 +53,8 @@ public class AtsDecisionReviewDecisionStateItemTest {
AtsClientService.get().getAtsBranch());
decRevArt.setName(getClass().getSimpleName());
decRevArt.setSoleAttributeValue(AtsAttributeTypes.DecisionReviewOptions,
- DecisionReviewManager.getDecisionReviewOptionsString(
- DecisionReviewManager.getDefaultDecisionReviewOptions()));
+ AtsClientService.get().getReviewService().getDecisionReviewOptionsString(
+ AtsClientService.get().getReviewService().getDefaultDecisionReviewOptions()));
decRevArt.persist(getClass().getSimpleName());
}
}
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java
index 074bf1ea086..1bec6a68926 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java
@@ -19,9 +19,7 @@ import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.client.integration.tests.AtsClientService;
import org.eclipse.osee.ats.client.integration.tests.ats.core.client.AtsTestUtil;
import org.eclipse.osee.ats.core.client.review.DecisionReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.review.DecisionReviewState;
-import org.eclipse.osee.ats.core.util.AtsUtilCore;
import org.eclipse.osee.ats.editor.stateItem.AtsDecisionReviewPrepareStateItem;
import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
@@ -34,7 +32,7 @@ import org.junit.Test;
/**
* Test Case for {@link AtsDecisionReviewPrepareStateItem}
- *
+ *
* @author Donald G. Dunne
*/
public class AtsDecisionReviewPrepareStateItemTest {
@@ -66,8 +64,8 @@ public class AtsDecisionReviewPrepareStateItemTest {
Assert.assertNotNull(decRevArt);
// set valid options
- String decisionOptionStr =
- DecisionReviewManager.getDecisionReviewOptionsString(DecisionReviewManager.getDefaultDecisionReviewOptions());
+ String decisionOptionStr = AtsClientService.get().getReviewService().getDecisionReviewOptionsString(
+ AtsClientService.get().getReviewService().getDefaultDecisionReviewOptions());
decRevArt.setSoleAttributeValue(AtsAttributeTypes.DecisionReviewOptions, decisionOptionStr);
decRevArt.persist(getClass().getSimpleName());
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/util/AtsDeleteManagerTest.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/util/AtsDeleteManagerTest.java
index 5bf1e2a9e9e..52f64eab3a9 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/util/AtsDeleteManagerTest.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/util/AtsDeleteManagerTest.java
@@ -27,10 +27,8 @@ import org.eclipse.osee.ats.client.integration.tests.ats.core.client.AtsTestUtil
import org.eclipse.osee.ats.client.integration.tests.util.DemoTestUtil;
import org.eclipse.osee.ats.core.client.action.ActionManager;
import org.eclipse.osee.ats.core.client.review.DecisionReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.config.ActionableItems;
-import org.eclipse.osee.ats.core.util.AtsUtilCore;
import org.eclipse.osee.ats.core.workflow.state.TeamState;
import org.eclipse.osee.ats.demo.api.DemoActionableItems;
import org.eclipse.osee.ats.demo.api.DemoArtifactTypes;
@@ -162,8 +160,8 @@ public class AtsDeleteManagerTest {
}
private void verifyExists(TestNames testName, int expectedNumActions, int expectedNumCodeWorkflows, int expectedNumReqWorkflows, int expectedNumTasks, int expectedNumReviews) throws OseeCoreException {
- List<Artifact> artifacts = ArtifactQuery.getArtifactListFromName(testName.toString(), AtsClientService.get().getAtsBranch(),
- EXCLUDE_DELETED, QueryOption.CONTAINS_MATCH_OPTIONS);
+ List<Artifact> artifacts = ArtifactQuery.getArtifactListFromName(testName.toString(),
+ AtsClientService.get().getAtsBranch(), EXCLUDE_DELETED, QueryOption.CONTAINS_MATCH_OPTIONS);
CountingMap<IArtifactType> countMap = new CountingMap<>();
for (Artifact artifact : artifacts) {
countMap.put(artifact.getArtifactType());
@@ -197,9 +195,11 @@ public class AtsDeleteManagerTest {
}
DecisionReviewArtifact decRev =
- DecisionReviewManager.createNewDecisionReview(teamArt, ReviewBlockType.None, testName.name(),
- TeamState.Endorse.getName(), "Description", DecisionReviewManager.getDefaultDecisionReviewOptions(),
- Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()), createdDate, createdBy, changes);
+ (DecisionReviewArtifact) AtsClientService.get().getReviewService().createNewDecisionReview(teamArt,
+ ReviewBlockType.None, testName.name(), TeamState.Endorse.getName(), "Description",
+ AtsClientService.get().getReviewService().getDefaultDecisionReviewOptions(),
+ Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()), createdDate, createdBy,
+ changes).getStoreObject();
changes.add(decRev);
changes.execute();
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsCacheManagerUpdateListener.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsCacheManagerUpdateListener.java
index 54a770f96da..b5ca71b3b17 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsCacheManagerUpdateListener.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsCacheManagerUpdateListener.java
@@ -18,8 +18,6 @@ import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.core.client.IAtsClient;
import org.eclipse.osee.ats.core.client.config.AtsBulkLoad;
-import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.AtsReviewCache;
import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.util.AtsTaskCache;
@@ -105,18 +103,6 @@ public class AtsCacheManagerUpdateListener implements IArtifactEventListener {
}
}
}
- if (guidRel.is(AtsRelationTypes.TeamWorkflowToReview_Review)) {
- for (AbstractReviewArtifact review : ArtifactCache.getActive(guidRel, AbstractReviewArtifact.class)) {
- if (!review.isDeleted()) {
- AtsReviewCache.decache(review.getParentAWA());
- }
- }
- for (Artifact artifact : ArtifactCache.getActive(guidRel)) {
- if (artifact instanceof AbstractReviewArtifact) {
- AtsReviewCache.decache(artifact);
- }
- }
- }
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
@@ -166,12 +152,6 @@ public class AtsCacheManagerUpdateListener implements IArtifactEventListener {
if (artifact instanceof TeamWorkFlowArtifact) {
AtsTaskCache.decache(artifact);
}
- if (artifact.isOfType(AtsArtifactTypes.ReviewArtifact) && !artifact.isDeleted()) {
- AtsReviewCache.decache(((AbstractReviewArtifact) artifact).getParentAWA());
- }
- if (artifact instanceof AbstractReviewArtifact) {
- AtsReviewCache.decache(artifact);
- }
}
if (artifact instanceof AbstractWorkflowArtifact) {
AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) artifact;
@@ -189,19 +169,10 @@ public class AtsCacheManagerUpdateListener implements IArtifactEventListener {
AtsTaskCache.decache(((TaskArtifact) artifact).getParentAWA());
}
}
- if (guidArt.is(AtsArtifactTypes.ReviewArtifact) && guidArt.is(EventModType.Deleted, EventModType.Purged)) {
- Artifact artifact = ArtifactCache.getActive(guidArt);
- if (artifact != null && !artifact.isDeleted()) {
- AtsReviewCache.decache(((AbstractReviewArtifact) artifact).getParentAWA());
- }
- }
Artifact artifact = ArtifactCache.getActive(guidArt);
if (artifact instanceof TeamWorkFlowArtifact) {
AtsTaskCache.decache(artifact);
}
- if (artifact instanceof AbstractReviewArtifact) {
- AtsReviewCache.decache(artifact);
- }
}
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
index dd2496940fe..7fc7819ef81 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
@@ -52,7 +52,6 @@ import org.eclipse.osee.ats.core.client.internal.config.TeamDefinitionFactory;
import org.eclipse.osee.ats.core.client.internal.config.VersionFactory;
import org.eclipse.osee.ats.core.client.internal.ev.AtsEarnedValueImpl;
import org.eclipse.osee.ats.core.client.internal.query.AtsQueryServiceImpl;
-import org.eclipse.osee.ats.core.client.internal.review.AtsReviewServiceImpl;
import org.eclipse.osee.ats.core.client.internal.workdef.ArtifactResolverImpl;
import org.eclipse.osee.ats.core.client.internal.workflow.AtsAttributeResolverServiceImpl;
import org.eclipse.osee.ats.core.client.internal.workflow.AtsRelationResolverServiceImpl;
@@ -126,7 +125,6 @@ public class AtsClientImpl extends AtsCoreServiceImpl implements IAtsClient {
relationResolver = new AtsRelationResolverServiceImpl(this);
branchService = new AtsBranchServiceImpl(this, teamWorkflowProvidersLazy);
- reviewService = new AtsReviewServiceImpl(this);
logFactory = AtsCoreFactory.newLogFactory();
stateFactory = AtsCoreFactory.newStateFactory(getServices(), logFactory);
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java
deleted file mode 100644
index 1c505e62648..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.ats.core.client.internal.review;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import org.eclipse.osee.ats.api.IAtsWorkItem;
-import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
-import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
-import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
-import org.eclipse.osee.ats.api.review.IAtsPeerReviewRoleManager;
-import org.eclipse.osee.ats.api.review.IAtsPeerToPeerReview;
-import org.eclipse.osee.ats.api.review.IAtsReviewService;
-import org.eclipse.osee.ats.api.user.IAtsUser;
-import org.eclipse.osee.ats.api.util.IAtsChangeSet;
-import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
-import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
-import org.eclipse.osee.ats.core.client.IAtsClient;
-import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.ReviewManager;
-import org.eclipse.osee.ats.core.client.review.ValidateReviewManager;
-import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.core.review.UserRoleManager;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-
-/**
- * @author Donald G Dunne
- */
-public class AtsReviewServiceImpl implements IAtsReviewService {
-
- private final IAtsClient atsClient;
-
- public AtsReviewServiceImpl(IAtsClient atsClient) {
- this.atsClient = atsClient;
- }
-
- @Override
- public boolean isValidationReviewRequired(IAtsWorkItem workItem) throws OseeCoreException {
- boolean required = false;
- if (workItem.isTeamWorkflow()) {
- required = atsClient.getArtifact(workItem).getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false);
- }
- return required;
- }
-
- @Override
- public IAtsDecisionReview createValidateReview(IAtsTeamWorkflow teamWf, boolean force, Date transitionDate, IAtsUser transitionUser, IAtsChangeSet changes) throws OseeCoreException {
- return ValidateReviewManager.createValidateReview((TeamWorkFlowArtifact) teamWf, false, transitionDate,
- transitionUser, changes);
- }
-
- @Override
- public Collection<IAtsAbstractReview> getReviewsFromCurrentState(IAtsTeamWorkflow teamWf) throws OseeCoreException {
- return ReviewManager.getReviewsFromCurrentState((TeamWorkFlowArtifact) teamWf);
- }
-
- @Override
- public ReviewBlockType getReviewBlockType(IAtsAbstractReview review) throws OseeCoreException {
- return ((AbstractReviewArtifact) review).getReviewBlockType();
- }
-
- @Override
- public boolean isStandAloneReview(IAtsAbstractReview review) {
- return ((AbstractReviewArtifact) review).isStandAloneReview();
- }
-
- @Override
- public Collection<IAtsAbstractReview> getReviews(IAtsTeamWorkflow teamWf) {
- List<IAtsAbstractReview> reviews = new ArrayList<>();
- for (AbstractReviewArtifact reviewArt : ReviewManager.getReviews(
- (TeamWorkFlowArtifact) teamWf.getStoreObject())) {
- reviews.add(atsClient.getWorkItemFactory().getReview(reviewArt));
- }
- return reviews;
- }
-
- @Override
- public IAtsPeerReviewRoleManager createPeerReviewRoleManager(IAtsPeerToPeerReview peerRev) {
- return new UserRoleManager(peerRev, atsClient);
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsChangeSet.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsChangeSet.java
index d7eac30c099..69d345d91d4 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsChangeSet.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsChangeSet.java
@@ -416,10 +416,4 @@ public class AtsChangeSet extends AbstractAtsChangeSet {
art.deleteRelations(relationSide);
}
- @Override
- public void setName(ArtifactToken artifact, String name) {
- Artifact art = getArtifact(artifact);
- art.setName(name);
- }
-
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/AtsReviewCache.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/AtsReviewCache.java
deleted file mode 100644
index 5618467ee78..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/AtsReviewCache.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.ats.core.client.review;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import org.eclipse.osee.ats.api.data.AtsRelationTypes;
-import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-
-/**
- * Review cache for reviewable workflows
- *
- * @author Donald G. Dunne
- */
-public class AtsReviewCache {
-
- // GUID to Reivew Artifacts
- private static Map<String, Collection<AbstractReviewArtifact>> teamReviewCache =
- new ConcurrentHashMap<String, Collection<AbstractReviewArtifact>>();
-
- private AtsReviewCache() {
- // Utility class
- }
-
- public static void decache(Artifact sma) {
- if (sma != null) {
- teamReviewCache.remove(sma.getGuid());
- }
- }
-
- public static void decache(TeamWorkFlowArtifact sma) {
- if (sma != null) {
- teamReviewCache.remove(sma.getGuid());
- }
- }
-
- public static Collection<AbstractReviewArtifact> getReviewArtifacts(TeamWorkFlowArtifact teamArt) throws OseeCoreException {
- Collection<AbstractReviewArtifact> reviews = teamReviewCache.get(teamArt.getGuid());
- if (reviews == null || containsDeleted(reviews)) {
- // System.out.println("caching reviews for " + teamArt.toStringWithId());
- // Get and cache tasks
- reviews =
- teamArt.getRelatedArtifacts(AtsRelationTypes.TeamWorkflowToReview_Review, AbstractReviewArtifact.class);
- teamReviewCache.put(teamArt.getGuid(), reviews);
- }
- return reviews;
- }
-
- private static boolean containsDeleted(Collection<AbstractReviewArtifact> reviews) {
- boolean result = false;
- for (AbstractReviewArtifact review : reviews) {
- if (review.isDeleted()) {
- result = true;
- break;
- }
- }
- return result;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java
index 127dc460d35..a249f66ca92 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java
@@ -33,7 +33,7 @@ import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
/**
* Create DecisionReview from transition if defined by StateDefinition.
- *
+ *
* @author Donald G. Dunne
*/
public class DecisionReviewDefinitionManager extends TransitionAdapter {
@@ -58,13 +58,14 @@ public class DecisionReviewDefinitionManager extends TransitionAdapter {
}
DecisionReviewArtifact decArt = null;
if (revDef.isAutoTransitionToDecision()) {
- decArt = DecisionReviewManager.createNewDecisionReviewAndTransitionToDecision(teamArt, revDef.getReviewTitle(),
- revDef.getDescription(), revDef.getRelatedToState(), revDef.getBlockingType(), revDef.getOptions(), users,
- createdDate, createdBy, changes);
+ decArt =
+ (DecisionReviewArtifact) AtsClientService.get().getReviewService().createNewDecisionReviewAndTransitionToDecision(
+ teamArt, revDef.getReviewTitle(), revDef.getDescription(), revDef.getRelatedToState(),
+ revDef.getBlockingType(), revDef.getOptions(), users, createdDate, createdBy, changes).getStoreObject();
} else {
- decArt = DecisionReviewManager.createNewDecisionReview(teamArt, revDef.getBlockingType(),
- revDef.getReviewTitle(), revDef.getRelatedToState(), revDef.getDescription(), revDef.getOptions(), users,
- createdDate, createdBy, changes);
+ decArt = (DecisionReviewArtifact) AtsClientService.get().getReviewService().createNewDecisionReview(teamArt,
+ revDef.getBlockingType(), revDef.getReviewTitle(), revDef.getRelatedToState(), revDef.getDescription(),
+ revDef.getOptions(), users, createdDate, createdBy, changes);
}
decArt.getLog().addLog(LogType.Note, null, String.format("Review [%s] auto-generated", revDef.getName()),
AtsClientService.get().getUserService().getCurrentUser().getUserId());
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java
index 10604ab8595..e1bb3b0c32b 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java
@@ -11,34 +11,20 @@
package org.eclipse.osee.ats.core.client.review;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
-import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
-import org.eclipse.osee.ats.api.workdef.IAtsDecisionReviewOption;
import org.eclipse.osee.ats.api.workdef.IStateToken;
-import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workdef.StateType;
import org.eclipse.osee.ats.api.workflow.transition.IAtsTransitionManager;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
-import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.core.util.AtsUtilCore;
-import org.eclipse.osee.ats.core.workdef.SimpleDecisionReviewOption;
import org.eclipse.osee.ats.core.workflow.transition.TransitionFactory;
import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
/**
* Methods in support of Decision Reviews
@@ -130,84 +116,4 @@ public class DecisionReviewManager {
return Result.TrueResult;
}
- public static DecisionReviewArtifact createNewDecisionReviewAndTransitionToDecision(TeamWorkFlowArtifact teamArt, String reviewTitle, String description, String againstState, ReviewBlockType reviewBlockType, Collection<IAtsDecisionReviewOption> options, List<? extends IAtsUser> assignees, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
- DecisionReviewArtifact decRev = createNewDecisionReview(teamArt, reviewBlockType, reviewTitle, againstState,
- description, options, assignees, createdDate, createdBy, changes);
- changes.add(decRev);
-
- // transition to decision
- TransitionHelper helper =
- new TransitionHelper("Transition to Decision", Arrays.asList(decRev), DecisionReviewState.Decision.getName(),
- assignees, null, changes, AtsClientService.get().getServices(), TransitionOption.OverrideAssigneeCheck);
- IAtsTransitionManager transitionMgr = TransitionFactory.getTransitionManager(helper);
- TransitionResults results = transitionMgr.handleAll();
-
- if (!results.isEmpty()) {
- throw new OseeStateException("Error auto-transitioning review %s to Decision state. Results [%s]",
- decRev.toStringWithId(), results.toString());
- }
- // ensure assignees are as requested
- decRev.getStateMgr().setAssignees(assignees);
- changes.add(decRev);
- return decRev;
- }
-
- public static DecisionReviewArtifact createNewDecisionReview(TeamWorkFlowArtifact teamArt, ReviewBlockType reviewBlockType, boolean againstCurrentState, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
- return createNewDecisionReview(teamArt, reviewBlockType,
- "Should we do this? Yes will require followup, No will not",
- againstCurrentState ? teamArt.getStateMgr().getCurrentStateName() : null,
- "Enter description of the decision, if any", getDefaultDecisionReviewOptions(), null, createdDate, createdBy,
- changes);
- }
-
- public static List<IAtsDecisionReviewOption> getDefaultDecisionReviewOptions() throws OseeCoreException {
- List<IAtsDecisionReviewOption> options = new ArrayList<>();
- options.add(new SimpleDecisionReviewOption("Yes", true,
- Arrays.asList(AtsClientService.get().getUserService().getCurrentUser().getUserId())));
- options.add(new SimpleDecisionReviewOption("No", false, null));
- return options;
- }
-
- public static String getDecisionReviewOptionsString(Collection<IAtsDecisionReviewOption> options) {
- StringBuffer sb = new StringBuffer();
- for (IAtsDecisionReviewOption opt : options) {
- sb.append(opt.getName());
- sb.append(";");
- sb.append(opt.isFollowupRequired() ? "Followup" : "Completed");
- sb.append(";");
- for (String userId : opt.getUserIds()) {
- sb.append("<" + userId + ">");
- }
- sb.append("\n");
- }
- return sb.toString();
- }
-
- public static DecisionReviewArtifact createNewDecisionReview(TeamWorkFlowArtifact teamArt, ReviewBlockType reviewBlockType, String title, String relatedToState, String description, Collection<IAtsDecisionReviewOption> options, List<? extends IAtsUser> assignees, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
- DecisionReviewArtifact decRev =
- (DecisionReviewArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.DecisionReview,
- AtsClientService.get().getAtsBranch(), title);
-
- teamArt.addRelation(AtsRelationTypes.TeamWorkflowToReview_Review, decRev);
- AtsClientService.get().getUtilService().setAtsId(AtsClientService.get().getSequenceProvider(), decRev,
- decRev.getParentTeamWorkflow().getTeamDefinition(), changes);
-
- // Initialize state machine
- decRev.initializeNewStateMachine(assignees, createdDate, createdBy, changes);
-
- if (Strings.isValid(relatedToState)) {
- decRev.setSoleAttributeValue(AtsAttributeTypes.RelatedToState, relatedToState);
- }
- if (Strings.isValid(description)) {
- decRev.setSoleAttributeValue(AtsAttributeTypes.Description, description);
- }
- decRev.setSoleAttributeValue(AtsAttributeTypes.DecisionReviewOptions, getDecisionReviewOptionsString(options));
- if (reviewBlockType != null) {
- decRev.setSoleAttributeFromString(AtsAttributeTypes.ReviewBlocks, reviewBlockType.name());
- }
- AtsReviewCache.decache(teamArt);
- changes.add(decRev);
- return decRev;
- }
-
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerToPeerReviewManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerToPeerReviewManager.java
index 71f9179e331..0ab990075ac 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerToPeerReviewManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerToPeerReviewManager.java
@@ -195,7 +195,6 @@ public class PeerToPeerReviewManager {
peerToPeerRev.setSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, ReviewBlockType.None.name());
changes.add(peerToPeerRev);
- AtsReviewCache.decache(teamArt);
return peerToPeerRev;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ReviewManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ReviewManager.java
index 3f141dc5024..45f577611c9 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ReviewManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ReviewManager.java
@@ -76,7 +76,7 @@ public class ReviewManager {
}
public static Collection<AbstractReviewArtifact> getReviews(TeamWorkFlowArtifact teamArt) throws OseeCoreException {
- return AtsReviewCache.getReviewArtifacts(teamArt);
+ return teamArt.getRelatedArtifacts(AtsRelationTypes.TeamWorkflowToReview_Review, AbstractReviewArtifact.class);
}
public static Collection<IAtsAbstractReview> getReviewsFromCurrentState(TeamWorkFlowArtifact teamArt) throws OseeCoreException {
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ValidateReviewManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ValidateReviewManager.java
deleted file mode 100644
index 13dc5705bc2..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/ValidateReviewManager.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.ats.core.client.review;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.logging.Level;
-import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
-import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
-import org.eclipse.osee.ats.api.user.IAtsUser;
-import org.eclipse.osee.ats.api.util.IAtsChangeSet;
-import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
-import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
-import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption;
-import org.eclipse.osee.ats.api.workflow.transition.IAtsTransitionManager;
-import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
-import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
-import org.eclipse.osee.ats.core.client.internal.Activator;
-import org.eclipse.osee.ats.core.client.internal.AtsClientService;
-import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.core.workflow.state.TeamState;
-import org.eclipse.osee.ats.core.workflow.transition.TransitionFactory;
-import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.logging.OseeLevel;
-import org.eclipse.osee.framework.logging.OseeLog;
-
-/**
- * Convenience methods used to create a validation decision review if so selected on the new action wizard
- *
- * @author Donald G. Dunne
- */
-public class ValidateReviewManager {
-
- private final static String VALIDATE_REVIEW_TITLE = "Is the resolution of this Action valid?";
-
- public static boolean isValidatePage(IAtsStateDefinition stateDefinition) {
- if (stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateBlockingReview.name())) {
- return true;
- }
- if (stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateNonBlockingReview.name())) {
- return true;
- }
- return false;
- }
-
- /**
- * Create a new decision review configured and transitioned to handle action validation
- *
- * @param force will force the creation of the review without checking that a review should be created
- */
- public static DecisionReviewArtifact createValidateReview(TeamWorkFlowArtifact teamArt, boolean force, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
- // If not validate page, don't do anything
- if (!force && !isValidatePage(teamArt.getStateDefinition())) {
- return null;
- }
- // If validate review already created for this state, return
- if (!force && ReviewManager.getReviewsFromCurrentState(teamArt).size() > 0) {
- for (IAtsAbstractReview review : ReviewManager.getReviewsFromCurrentState(teamArt)) {
- if (review.getName().equals(VALIDATE_REVIEW_TITLE)) {
- return null;
- }
- }
- }
- // Create validate review
- try {
-
- DecisionReviewArtifact decRev =
- DecisionReviewManager.createNewDecisionReview(teamArt,
- isValidateReviewBlocking(
- teamArt.getStateDefinition()) ? ReviewBlockType.Transition : ReviewBlockType.None,
- true, createdDate, createdBy, changes);
- decRev.setName(VALIDATE_REVIEW_TITLE);
- decRev.setSoleAttributeValue(AtsAttributeTypes.DecisionReviewOptions,
- "No;Followup;" + getValidateReviewFollowupUsersStr(teamArt) + "\n" + "Yes;Completed;");
-
- TransitionHelper helper = new TransitionHelper("Transition to Decision", Arrays.asList(decRev),
- DecisionReviewState.Decision.getName(), Arrays.asList(teamArt.getCreatedBy()), null, changes,
- AtsClientService.get().getServices(), TransitionOption.None);
- IAtsTransitionManager transitionMgr = TransitionFactory.getTransitionManager(helper);
- TransitionResults results = transitionMgr.handleAll();
- if (!results.isEmpty()) {
- OseeLog.logf(Activator.class, OseeLevel.SEVERE_POPUP,
- "Error transitioning Decision review [%s] to Decision %s", decRev.toStringWithId(), results);
- }
-
- return decRev;
-
- } catch (Exception ex) {
- OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
- }
- return null;
- }
-
- public static boolean isValidateReviewBlocking(IAtsStateDefinition stateDefinition) {
- return stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateBlockingReview.name());
- }
-
- public static String getValidateReviewFollowupUsersStr(TeamWorkFlowArtifact teamArt) {
- try {
- Collection<IAtsUser> users = getValidateReviewFollowupUsers(teamArt);
- return AtsClientService.get().getWorkStateFactory().getStorageString(users);
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- return ex.getLocalizedMessage();
- }
- }
-
- public static Collection<IAtsUser> getValidateReviewFollowupUsers(TeamWorkFlowArtifact teamArt) throws OseeCoreException {
- Collection<IAtsUser> users = new HashSet<>();
- users.addAll(teamArt.getStateMgr().getAssignees(TeamState.Implement));
- if (users.size() > 0) {
- return users;
- }
-
- // Else if Team Workflow , return it to the leads of this team
- users.addAll(teamArt.getTeamDefinition().getLeads());
- return users;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/review/AtsReviewServiceImpl.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/review/AtsReviewServiceImpl.java
new file mode 100644
index 00000000000..8edba2ca607
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/review/AtsReviewServiceImpl.java
@@ -0,0 +1,268 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.core.review;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.logging.Level;
+import org.eclipse.osee.ats.api.IAtsServices;
+import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
+import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
+import org.eclipse.osee.ats.api.data.AtsRelationTypes;
+import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
+import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
+import org.eclipse.osee.ats.api.review.IAtsPeerReviewRoleManager;
+import org.eclipse.osee.ats.api.review.IAtsPeerToPeerReview;
+import org.eclipse.osee.ats.api.review.IAtsReviewService;
+import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.api.workdef.IAtsDecisionReviewOption;
+import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
+import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
+import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption;
+import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
+import org.eclipse.osee.ats.api.workflow.transition.IAtsTransitionManager;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
+import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.workdef.SimpleDecisionReviewOption;
+import org.eclipse.osee.ats.core.workflow.state.TeamState;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionFactory;
+import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
+import org.eclipse.osee.framework.core.data.ArtifactId;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
+import org.eclipse.osee.framework.logging.OseeLevel;
+import org.eclipse.osee.framework.logging.OseeLog;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class AtsReviewServiceImpl implements IAtsReviewService {
+
+ private final IAtsServices services;
+ private final static String VALIDATE_REVIEW_TITLE = "Is the resolution of this Action valid?";
+
+ public AtsReviewServiceImpl(IAtsServices services) {
+ this.services = services;
+ }
+
+ @Override
+ public boolean isValidationReviewRequired(IAtsWorkItem workItem) throws OseeCoreException {
+ boolean required = false;
+ if (workItem.isTeamWorkflow()) {
+ required = services.getAttributeResolver().getSoleAttributeValue(workItem,
+ AtsAttributeTypes.ValidationRequired, false);
+ }
+ return required;
+ }
+
+ @Override
+ public IAtsDecisionReview createValidateReview(IAtsTeamWorkflow teamWf, boolean force, Date transitionDate, IAtsUser transitionUser, IAtsChangeSet changes) throws OseeCoreException {
+ // If not validate page, don't do anything
+ if (!force && !isValidatePage(teamWf.getStateDefinition())) {
+ return null;
+ }
+ // If validate review already created for this state, return
+ if (!force && getReviewsFromCurrentState(teamWf).size() > 0) {
+ for (IAtsAbstractReview review : getReviewsFromCurrentState(teamWf)) {
+ if (review.getName().equals(VALIDATE_REVIEW_TITLE)) {
+ return null;
+ }
+ }
+ }
+ // Create validate review
+ try {
+
+ IAtsDecisionReview decRev = createNewDecisionReview(teamWf,
+ isValidateReviewBlocking(teamWf.getStateDefinition()) ? ReviewBlockType.Transition : ReviewBlockType.None,
+ true, new Date(), services.getUserService().getCurrentUser(), changes);
+ changes.setName(decRev, VALIDATE_REVIEW_TITLE);
+ changes.setSoleAttributeValue(decRev, AtsAttributeTypes.DecisionReviewOptions,
+ "No;Followup;" + getValidateReviewFollowupUsersStr(teamWf) + "\n" + "Yes;Completed;");
+
+ TransitionHelper helper = new TransitionHelper("Transition to Decision", Arrays.asList(decRev),
+ DecisionReviewState.Decision.getName(), Arrays.asList(teamWf.getCreatedBy()), null, changes, services,
+ TransitionOption.None);
+ IAtsTransitionManager transitionMgr = TransitionFactory.getTransitionManager(helper);
+ TransitionResults results = transitionMgr.handleAll();
+ if (!results.isEmpty()) {
+ OseeLog.logf(AtsReviewServiceImpl.class, OseeLevel.SEVERE_POPUP,
+ "Error transitioning Decision review [%s] to Decision %s", decRev.toStringWithId(), results);
+ }
+
+ return decRev;
+
+ } catch (Exception ex) {
+ OseeLog.log(AtsReviewServiceImpl.class, OseeLevel.SEVERE_POPUP, ex);
+ }
+ return null;
+ }
+
+ public String getValidateReviewFollowupUsersStr(IAtsTeamWorkflow teamWf) {
+ try {
+ Collection<IAtsUser> users = getValidateReviewFollowupUsers(teamWf);
+ return services.getWorkStateFactory().getStorageString(users);
+ } catch (Exception ex) {
+ OseeLog.log(AtsReviewServiceImpl.class, Level.SEVERE, ex);
+ return ex.getLocalizedMessage();
+ }
+ }
+
+ public boolean isValidateReviewBlocking(IAtsStateDefinition stateDefinition) {
+ return stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateBlockingReview.name());
+ }
+
+ public Collection<IAtsUser> getValidateReviewFollowupUsers(IAtsTeamWorkflow teamWf) throws OseeCoreException {
+ Collection<IAtsUser> users = new HashSet<>();
+ users.addAll(teamWf.getStateMgr().getAssignees(TeamState.Implement));
+ if (users.size() > 0) {
+ return users;
+ }
+
+ // Else if Team Workflow , return it to the leads of this team
+ users.addAll(teamWf.getTeamDefinition().getLeads());
+ return users;
+ }
+
+ @Override
+ public IAtsDecisionReview createNewDecisionReviewAndTransitionToDecision(IAtsTeamWorkflow teamWf, String reviewTitle, String description, String againstState, ReviewBlockType reviewBlockType, Collection<IAtsDecisionReviewOption> options, List<? extends IAtsUser> assignees, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
+ IAtsDecisionReview decRev = createNewDecisionReview(teamWf, reviewBlockType, reviewTitle, againstState,
+ description, options, assignees, createdDate, createdBy, changes);
+ changes.add(decRev);
+
+ // transition to decision
+ TransitionHelper helper =
+ new TransitionHelper("Transition to Decision", Arrays.asList(decRev), DecisionReviewState.Decision.getName(),
+ assignees, null, changes, services, TransitionOption.OverrideAssigneeCheck);
+ IAtsTransitionManager transitionMgr = TransitionFactory.getTransitionManager(helper);
+ TransitionResults results = transitionMgr.handleAll();
+
+ if (!results.isEmpty()) {
+ throw new OseeStateException("Error auto-transitioning review %s to Decision state. Results [%s]",
+ decRev.toStringWithId(), results.toString());
+ }
+ // ensure assignees are as requested
+ decRev.getStateMgr().setAssignees(assignees);
+ changes.add(decRev);
+ return decRev;
+ }
+
+ @Override
+ public IAtsDecisionReview createNewDecisionReview(IAtsTeamWorkflow teamWf, ReviewBlockType reviewBlockType, boolean againstCurrentState, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
+ return createNewDecisionReview(teamWf, reviewBlockType,
+ "Should we do this? Yes will require followup, No will not",
+ againstCurrentState ? teamWf.getStateMgr().getCurrentStateName() : null,
+ "Enter description of the decision, if any", getDefaultDecisionReviewOptions(), null, createdDate, createdBy,
+ changes);
+ }
+
+ @Override
+ public IAtsDecisionReview createNewDecisionReview(IAtsTeamWorkflow teamWf, ReviewBlockType reviewBlockType, String title, String relatedToState, String description, Collection<IAtsDecisionReviewOption> options, List<? extends IAtsUser> assignees, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
+ ArtifactId decRevArt = changes.createArtifact(AtsArtifactTypes.DecisionReview, title);
+ IAtsDecisionReview decRev = (IAtsDecisionReview) services.getWorkItemFactory().getReview(decRevArt);
+
+ changes.relate(teamWf, AtsRelationTypes.TeamWorkflowToReview_Review, decRev);
+ services.getUtilService().setAtsId(services.getSequenceProvider(), decRev,
+ decRev.getParentTeamWorkflow().getTeamDefinition(), changes);
+
+ // Initialize state machine
+ services.getActionFactory().initializeNewStateMachine(decRev, assignees, createdDate, createdBy, changes);
+
+ if (Strings.isValid(relatedToState)) {
+ changes.setSoleAttributeValue(decRev, AtsAttributeTypes.RelatedToState, relatedToState);
+ }
+ if (Strings.isValid(description)) {
+ changes.setSoleAttributeValue(decRev, AtsAttributeTypes.Description, description);
+ }
+ changes.setSoleAttributeValue(decRev, AtsAttributeTypes.DecisionReviewOptions,
+ getDecisionReviewOptionsString(options));
+ if (reviewBlockType != null) {
+ changes.setSoleAttributeFromString(decRev, AtsAttributeTypes.ReviewBlocks, reviewBlockType.name());
+ }
+ changes.add(decRev);
+ return decRev;
+ }
+
+ @Override
+ public String getDecisionReviewOptionsString(Collection<IAtsDecisionReviewOption> options) {
+ StringBuffer sb = new StringBuffer();
+ for (IAtsDecisionReviewOption opt : options) {
+ sb.append(opt.getName());
+ sb.append(";");
+ sb.append(opt.isFollowupRequired() ? "Followup" : "Completed");
+ sb.append(";");
+ for (String userId : opt.getUserIds()) {
+ sb.append("<" + userId + ">");
+ }
+ sb.append("\n");
+ }
+ return sb.toString();
+ }
+
+ public static boolean isValidatePage(IAtsStateDefinition stateDefinition) {
+ if (stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateBlockingReview.name())) {
+ return true;
+ }
+ if (stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateNonBlockingReview.name())) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<IAtsDecisionReviewOption> getDefaultDecisionReviewOptions() {
+ List<IAtsDecisionReviewOption> options = new ArrayList<>();
+ options.add(new SimpleDecisionReviewOption("Yes", true,
+ Arrays.asList(services.getUserService().getCurrentUser().getUserId())));
+ options.add(new SimpleDecisionReviewOption("No", false, null));
+ return options;
+ }
+
+ @Override
+ public Collection<IAtsAbstractReview> getReviewsFromCurrentState(IAtsTeamWorkflow teamWf) throws OseeCoreException {
+ return services.getWorkItemService().getReviews(teamWf, teamWf.getStateMgr().getCurrentState());
+ }
+
+ @Override
+ public ReviewBlockType getReviewBlockType(IAtsAbstractReview review) throws OseeCoreException {
+ String blockStr = services.getAttributeResolver().getSoleAttributeValueAsString(review,
+ AtsAttributeTypes.ReviewBlocks, ReviewBlockType.None.name());
+ return ReviewBlockType.valueOf(blockStr);
+ }
+
+ @Override
+ public boolean isStandAloneReview(IAtsAbstractReview review) {
+ return services.getAttributeResolver().getAttributeCount(review, AtsAttributeTypes.ActionableItem) > 0;
+ }
+
+ @Override
+ public Collection<IAtsAbstractReview> getReviews(IAtsTeamWorkflow teamWf) {
+ List<IAtsAbstractReview> reviews = new ArrayList<>();
+
+ for (ArtifactId reviewArt : services.getRelationResolver().getRelated(teamWf,
+ AtsRelationTypes.TeamWorkflowToReview_Review)) {
+ reviews.add(services.getWorkItemFactory().getReview(reviewArt));
+ }
+ return reviews;
+ }
+
+ @Override
+ public IAtsPeerReviewRoleManager createPeerReviewRoleManager(IAtsPeerToPeerReview peerRev) {
+ return new UserRoleManager(peerRev, services);
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java
index 91790d3731d..f2d74f65cd7 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java
@@ -27,6 +27,7 @@ import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.AttributeTypeId;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
+import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Conditions;
@@ -174,4 +175,14 @@ public abstract class AbstractAtsChangeSet implements IAtsChangeSet {
relate(parent, CoreRelationTypes.Default_Hierarchical__Child, child);
}
+ @Override
+ public void setName(ArtifactToken artifact, String name) {
+ setSoleAttributeValue(artifact, CoreAttributeTypes.Name, name);
+ }
+
+ @Override
+ public void setName(IAtsObject atsObject, String name) {
+ setSoleAttributeValue(atsObject, CoreAttributeTypes.Name, name);
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsCoreServiceImpl.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsCoreServiceImpl.java
index 8a98ef0e719..2d7e4ce03e2 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsCoreServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsCoreServiceImpl.java
@@ -60,6 +60,7 @@ import org.eclipse.osee.ats.api.workflow.state.IAtsWorkStateFactory;
import org.eclipse.osee.ats.core.config.AtsCache;
import org.eclipse.osee.ats.core.config.TeamDefinitionService;
import org.eclipse.osee.ats.core.program.AtsProgramService;
+import org.eclipse.osee.ats.core.review.AtsReviewServiceImpl;
import org.eclipse.osee.ats.core.version.AtsVersionServiceImpl;
import org.eclipse.osee.ats.core.workdef.AtsWorkDefinitionAdminImpl;
import org.eclipse.osee.ats.core.workdef.AtsWorkDefinitionCache;
@@ -180,6 +181,7 @@ public abstract class AtsCoreServiceImpl implements IAtsServices {
programService = new AtsProgramService(this);
teamDefinitionService = new TeamDefinitionService(this);
versionService = new AtsVersionServiceImpl(this, eventAdmin);
+ reviewService = new AtsReviewServiceImpl(this);
}
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsServerImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsServerImpl.java
index 292bf0ea6f8..e7698b3b294 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsServerImpl.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsServerImpl.java
@@ -53,7 +53,6 @@ import org.eclipse.osee.ats.rest.internal.util.AtsAttributeResolverServiceImpl;
import org.eclipse.osee.ats.rest.internal.util.AtsBranchServiceImpl;
import org.eclipse.osee.ats.rest.internal.util.AtsEarnedValueImpl;
import org.eclipse.osee.ats.rest.internal.util.AtsRelationResolverServiceImpl;
-import org.eclipse.osee.ats.rest.internal.util.AtsReviewServiceImpl;
import org.eclipse.osee.ats.rest.internal.util.AtsStoreServiceImpl;
import org.eclipse.osee.ats.rest.internal.workitem.AtsTaskService;
import org.eclipse.osee.ats.rest.internal.workitem.ConfigItemFactory;
@@ -131,7 +130,6 @@ public class AtsServerImpl extends AtsCoreServiceImpl implements IAtsServer {
artifactResolver = new ArtifactResolverImpl(this, orcsApi);
branchService = new AtsBranchServiceImpl(getServices(), orcsApi, teamWorkflowProvidersLazy);
- reviewService = new AtsReviewServiceImpl(this, this, workItemService);
relationResolver = new AtsRelationResolverServiceImpl(this);
((AtsAttributeResolverServiceImpl) attributeResolverService).setOrcsApi(orcsApi);
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java
index 1f62a1847ea..2c082f3727a 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java
@@ -373,11 +373,4 @@ public class AtsChangeSet extends AbstractAtsChangeSet {
add(art);
}
- @Override
- public void setName(ArtifactToken artifact, String name) {
- ArtifactReadable art = getArtifact(artifact);
- getTransaction().setName(artifact, name);
- add(art);
- }
-
}
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsReviewServiceImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsReviewServiceImpl.java
deleted file mode 100644
index 098dd00aa19..00000000000
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsReviewServiceImpl.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.ats.rest.internal.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import org.eclipse.osee.ats.api.IAtsWorkItem;
-import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
-import org.eclipse.osee.ats.api.data.AtsRelationTypes;
-import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
-import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
-import org.eclipse.osee.ats.api.review.IAtsPeerReviewRoleManager;
-import org.eclipse.osee.ats.api.review.IAtsPeerToPeerReview;
-import org.eclipse.osee.ats.api.review.IAtsReviewService;
-import org.eclipse.osee.ats.api.user.IAtsUser;
-import org.eclipse.osee.ats.api.util.IAtsChangeSet;
-import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
-import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
-import org.eclipse.osee.ats.api.workflow.IAtsWorkItemService;
-import org.eclipse.osee.ats.core.review.UserRoleManager;
-import org.eclipse.osee.ats.rest.IAtsServer;
-import org.eclipse.osee.ats.rest.util.IArtifactProvider;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
-import org.eclipse.osee.orcs.data.ArtifactReadable;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsReviewServiceImpl implements IAtsReviewService {
-
- private final IArtifactProvider artifactProvider;
- private final IAtsWorkItemService workItemService;
- private final IAtsServer atsServer;
-
- public AtsReviewServiceImpl(IAtsServer atsServer, IArtifactProvider artifactProvider, IAtsWorkItemService workItemService) {
- this.atsServer = atsServer;
- this.artifactProvider = artifactProvider;
- this.workItemService = workItemService;
- }
-
- @Override
- public boolean isValidationReviewRequired(IAtsWorkItem workItem) throws OseeCoreException {
- boolean required = false;
- if (workItem.isTeamWorkflow()) {
- required =
- artifactProvider.getArtifact(workItem).getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false);
- }
- return required;
- }
-
- @Override
- public IAtsDecisionReview createValidateReview(IAtsTeamWorkflow teamWf, boolean force, Date transitionDate, IAtsUser transitionUser, IAtsChangeSet changes) throws OseeCoreException {
- // TODO Implement this
- throw new OseeStateException("Not Implemented Yet");
- }
-
- @Override
- public Collection<IAtsAbstractReview> getReviewsFromCurrentState(IAtsTeamWorkflow teamWf) throws OseeCoreException {
- return workItemService.getReviews(teamWf, teamWf.getStateMgr().getCurrentState());
- }
-
- @Override
- public ReviewBlockType getReviewBlockType(IAtsAbstractReview review) throws OseeCoreException {
- String blockStr = artifactProvider.getArtifact(review).getSoleAttributeAsString(AtsAttributeTypes.ReviewBlocks,
- ReviewBlockType.None.name());
- return ReviewBlockType.valueOf(blockStr);
- }
-
- @Override
- public boolean isStandAloneReview(IAtsAbstractReview review) {
- return artifactProvider.getArtifact(review).getAttributeCount(AtsAttributeTypes.ActionableItem) > 0;
- }
-
- @Override
- public Collection<IAtsAbstractReview> getReviews(IAtsTeamWorkflow teamWf) {
- List<IAtsAbstractReview> reviews = new ArrayList<>();
-
- for (ArtifactReadable reviewArt : ((ArtifactReadable) teamWf.getStoreObject()).getRelated(
- AtsRelationTypes.TeamWorkflowToReview_Review)) {
- reviews.add(atsServer.getWorkItemFactory().getReview(reviewArt));
- }
- return reviews;
- }
-
- @Override
- public IAtsPeerReviewRoleManager createPeerReviewRoleManager(IAtsPeerToPeerReview peerRev) {
- return new UserRoleManager(peerRev, atsServer);
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java
index f17f3396b76..d3317d12f90 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/ReviewInfoXWidget.java
@@ -27,7 +27,6 @@ import org.eclipse.osee.ats.api.workflow.transition.IAtsTransitionManager;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.review.PeerToPeerReviewManager;
import org.eclipse.osee.ats.core.client.review.ReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
@@ -143,9 +142,10 @@ public class ReviewInfoXWidget extends XLabelValueBase {
AWorkbench.popup("ERROR", "Must enter review title");
return;
}
- NewDecisionReviewJob job = new NewDecisionReviewJob(teamArt, null, dialog.getReviewTitle(),
- dialog.getSelectedState(), null, DecisionReviewManager.getDefaultDecisionReviewOptions(), null,
- new Date(), AtsClientService.get().getUserService().getCurrentUser());
+ NewDecisionReviewJob job =
+ new NewDecisionReviewJob(teamArt, null, dialog.getReviewTitle(), dialog.getSelectedState(),
+ null, AtsClientService.get().getReviewService().getDefaultDecisionReviewOptions(), null,
+ new Date(), AtsClientService.get().getUserService().getCurrentUser());
job.setUser(true);
job.setPriority(Job.LONG);
job.schedule();
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java
index 79b7a5c4658..a1bb59cf6a4 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java
@@ -40,7 +40,6 @@ import org.eclipse.osee.ats.api.workdef.StateType;
import org.eclipse.osee.ats.api.workflow.log.IAtsLogItem;
import org.eclipse.osee.ats.api.workflow.log.LogType;
import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.AtsReviewCache;
import org.eclipse.osee.ats.core.client.task.TaskArtifact;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.util.AtsTaskCache;
@@ -227,7 +226,6 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
for (Artifact artifact : artifacts) {
if (artifact instanceof TeamWorkFlowArtifact) {
AtsTaskCache.decache((TeamWorkFlowArtifact) artifact);
- AtsReviewCache.decache((TeamWorkFlowArtifact) artifact);
}
if (!(artifact instanceof User)) {
ArtifactCache.deCache(artifact);
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewDecisionReviewJob.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewDecisionReviewJob.java
index c09ef37256a..54b026402ff 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewDecisionReviewJob.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewDecisionReviewJob.java
@@ -23,7 +23,6 @@ import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsDecisionReviewOption;
import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.core.client.review.DecisionReviewArtifact;
-import org.eclipse.osee.ats.core.client.review.DecisionReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
@@ -60,8 +59,10 @@ public class NewDecisionReviewJob extends Job {
public IStatus run(final IProgressMonitor monitor) {
try {
IAtsChangeSet changes = AtsClientService.get().createChangeSet(getClass().getSimpleName());
- DecisionReviewArtifact decArt = DecisionReviewManager.createNewDecisionReview(teamParent, reviewBlockType,
- reviewTitle, againstState, description, options, assignees, createdDate, createdBy, changes);
+ DecisionReviewArtifact decArt =
+ (DecisionReviewArtifact) AtsClientService.get().getReviewService().createNewDecisionReview(teamParent,
+ reviewBlockType, reviewTitle, againstState, description, options, assignees, createdDate, createdBy,
+ changes).getStoreObject();
changes.execute();
AtsUtil.openATSAction(decArt, AtsOpenOption.OpenOneOrPopupSelect);
} catch (Exception ex) {

Back to the top