Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2013-10-31 19:05:12 +0000
committerRoberto E. Escobar2013-11-25 23:45:31 +0000
commit54fb614f31c9a6be770c97ed0886514fa03f1dc7 (patch)
tree8ee1540b7f1961fb428c3be5f01c935b236b86d8 /plugins/org.eclipse.osee.ats.core.client
parent559cb56adb53f7f813c0602cc809c87b1c21c450 (diff)
downloadorg.eclipse.osee-54fb614f31c9a6be770c97ed0886514fa03f1dc7.tar.gz
org.eclipse.osee-54fb614f31c9a6be770c97ed0886514fa03f1dc7.tar.xz
org.eclipse.osee-54fb614f31c9a6be770c97ed0886514fa03f1dc7.zip
feature[ats_S5JDQ]: Create AtsLog reader and writer
Diffstat (limited to 'plugins/org.eclipse.osee.ats.core.client')
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java7
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java9
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java7
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java5
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerToPeerReviewManager.java10
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java3
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java39
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java12
13 files changed, 82 insertions, 21 deletions
diff --git a/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF
index 91a7cd9d951..c907ea660ee 100644
--- a/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF
@@ -44,6 +44,7 @@ Import-Package: com.google.inject,
org.eclipse.osee.ats.core.workdef,
org.eclipse.osee.ats.core.workdef.provider,
org.eclipse.osee.ats.core.workflow,
+ org.eclipse.osee.ats.core.workflow.log,
org.eclipse.osee.ats.core.workflow.state,
org.eclipse.osee.ats.core.workflow.transition,
org.eclipse.osee.ats.dsl,
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java
index acb79af59a5..9578a3c3f17 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java
@@ -23,6 +23,7 @@ import org.eclipse.osee.ats.api.team.CreateTeamOption;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.notify.AtsNotificationManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
@@ -79,6 +80,7 @@ public class ActionManager {
createTeamWorkflow(actionArt, teamDef, actionableItems, leads, changes, createdDate, createdBy,
newActionListener);
teamWf.getStateMgr().writeToStore();
+ AtsCore.getLogFactory().writeToStore(teamWf);
}
// Notify listener of action creation
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java
index ddb61b37a21..b3b6a366964 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java
@@ -26,6 +26,7 @@ import org.eclipse.osee.ats.api.workflow.IAtsTask;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.IAtsWorkData;
import org.eclipse.osee.ats.api.workflow.IAtsWorkItemService;
+import org.eclipse.osee.ats.api.workflow.log.ILogStorageProvider;
import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
import org.eclipse.osee.ats.core.client.internal.Activator;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
@@ -35,6 +36,7 @@ import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.validator.AtsXWidgetValidateManagerClient;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.core.client.workflow.AtsWorkData;
+import org.eclipse.osee.ats.core.client.workflow.log.ArtifactLog;
import org.eclipse.osee.ats.core.client.workflow.transition.TransitionListeners;
import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.IArtifactType;
@@ -234,4 +236,9 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
return TransitionListeners.getListeners();
}
+ @Override
+ public ILogStorageProvider getLogStorageProvider(IAtsWorkItem workItem) {
+ return new ArtifactLog(((AbstractWorkflowArtifact) workItem));
+ }
+
}
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 66ce2f7e5bd..34bc23e6236 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
@@ -23,6 +23,7 @@ import org.eclipse.osee.ats.api.workdef.StateEventType;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.log.LogType;
import org.eclipse.osee.ats.api.workflow.transition.TransitionAdapter;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.users.AtsCoreUsers;
@@ -67,10 +68,12 @@ public class DecisionReviewDefinitionManager extends TransitionAdapter {
DecisionReviewManager.createNewDecisionReview(teamArt, revDef.getBlockingType(), revDef.getReviewTitle(),
revDef.getRelatedToState(), revDef.getDescription(), revDef.getOptions(), users, createdDate, createdBy);
}
- decArt.getLog().addLog(LogType.Note, null, String.format("Review [%s] auto-generated", revDef.getName()));
+ decArt.getLog().addLog(LogType.Note, null, String.format("Review [%s] auto-generated", revDef.getName()),
+ AtsCore.getUserService().getCurrentUser().getUserId());
for (IReviewProvider provider : ReviewProviders.getAtsReviewProviders()) {
provider.reviewCreated(decArt);
}
+ AtsCore.getLogFactory().writeToStore(decArt);
changes.add(decArt);
return decArt;
}
@@ -88,8 +91,8 @@ public class DecisionReviewDefinitionManager extends TransitionAdapter {
for (IAtsDecisionReviewDefinition decRevDef : teamArt.getStateDefinition().getDecisionReviews()) {
if (decRevDef.getStateEventType() != null && decRevDef.getStateEventType().equals(StateEventType.TransitionTo)) {
DecisionReviewArtifact decArt =
- DecisionReviewDefinitionManager.createNewDecisionReview(decRevDef, changes, teamArt,
- createdDate, createdBy);
+ DecisionReviewDefinitionManager.createNewDecisionReview(decRevDef, changes, teamArt, createdDate,
+ createdBy);
if (decArt != null) {
changes.add(decArt);
}
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 bc0e8bb48e8..89ab2f929ab 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
@@ -27,6 +27,7 @@ import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workdef.StateType;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
@@ -65,8 +66,7 @@ public class DecisionReviewManager {
return result;
}
result =
- transitionToState(toState.getStateType(), popup, DecisionReviewState.Decision, reviewArt, user,
- changes);
+ transitionToState(toState.getStateType(), popup, DecisionReviewState.Decision, reviewArt, user, changes);
if (result.isFalse()) {
return result;
}
@@ -99,6 +99,7 @@ public class DecisionReviewManager {
}
reviewArt.setSoleAttributeValue(AtsAttributeTypes.EstimatedHours, estimateHours);
reviewArt.getStateMgr().updateMetrics(reviewArt.getStateDefinition(), stateHoursSpent, statePercentComplete, true);
+ AtsCore.getLogFactory().writeToStore(reviewArt);
return Result.TrueResult;
}
@@ -125,6 +126,7 @@ public class DecisionReviewManager {
reviewArt.setSoleAttributeValue(AtsAttributeTypes.Decision, decision ? "Yes" : "No");
reviewArt.getStateMgr().updateMetrics(reviewArt.getStateDefinition(), stateHoursSpent, statePercentComplete, true);
+ AtsCore.getLogFactory().writeToStore(reviewArt);
return Result.TrueResult;
}
@@ -147,6 +149,7 @@ public class DecisionReviewManager {
}
// ensure assignees are as requested
decRev.getStateMgr().setAssignees(assignees);
+ AtsCore.getLogFactory().writeToStore(decRev);
changes.add(decRev);
return decRev;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java
index 8e7e6018311..94bb41d702e 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java
@@ -22,6 +22,7 @@ import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workdef.StateEventType;
import org.eclipse.osee.ats.api.workflow.log.LogType;
import org.eclipse.osee.ats.api.workflow.transition.TransitionAdapter;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
@@ -67,10 +68,12 @@ public class PeerReviewDefinitionManager extends TransitionAdapter {
if (assignees.size() > 0) {
peerArt.getStateMgr().setAssignees(assignees);
}
- peerArt.getLog().addLog(LogType.Note, null, String.format("Review [%s] auto-generated", peerRevDef.getName()));
+ peerArt.getLog().addLog(LogType.Note, null, String.format("Review [%s] auto-generated", peerRevDef.getName()),
+ AtsCore.getUserService().getCurrentUser().getUserId());
for (IReviewProvider provider : ReviewProviders.getAtsReviewProviders()) {
provider.reviewCreated(peerArt);
}
+ AtsCore.getLogFactory().writeToStore(peerArt);
return peerArt;
}
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 5d8c62df710..906c7cf2f63 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
@@ -26,6 +26,7 @@ import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workdef.StateType;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.review.defect.ReviewDefectItem;
import org.eclipse.osee.ats.core.client.review.defect.ReviewDefectManager;
@@ -93,8 +94,8 @@ public class PeerToPeerReviewManager {
private static Result transitionToState(StateType StateType, boolean popup, PeerToPeerReviewArtifact reviewArt, IStateToken toState, IAtsChangeSet changes) throws OseeCoreException {
TransitionHelper helper =
new TransitionHelper("Transition to " + toState.getName(), Arrays.asList(reviewArt), toState.getName(),
- Arrays.asList(reviewArt.getStateMgr().getAssignees().iterator().next()), null,
- changes, TransitionOption.OverrideAssigneeCheck);
+ Arrays.asList(reviewArt.getStateMgr().getAssignees().iterator().next()), null, changes,
+ TransitionOption.OverrideAssigneeCheck);
TransitionManager transitionMgr = new TransitionManager(helper);
TransitionResults results = transitionMgr.handleAll();
if (results.isEmpty()) {
@@ -121,6 +122,7 @@ public class PeerToPeerReviewManager {
reviewArt.setSoleAttributeValue(AtsAttributeTypes.Location, reviewMaterials);
reviewArt.setSoleAttributeValue(AtsAttributeTypes.ReviewFormalType, ReviewFormalType.InFormal.name());
reviewArt.getStateMgr().updateMetrics(reviewArt.getStateDefinition(), stateHoursSpent, statePercentComplete, true);
+ AtsCore.getLogFactory().writeToStore(reviewArt);
return Result.TrueResult;
}
@@ -140,6 +142,7 @@ public class PeerToPeerReviewManager {
defectManager.saveToArtifact(reviewArt);
}
reviewArt.getStateMgr().updateMetrics(reviewArt.getStateDefinition(), stateHoursSpent, statePercentComplete, true);
+ AtsCore.getLogFactory().writeToStore(reviewArt);
return Result.TrueResult;
}
@@ -163,8 +166,7 @@ public class PeerToPeerReviewManager {
PeerToPeerReviewArtifact peerArt =
createNewPeerToPeerReview(
AtsClientService.get().getWorkDefinitionAdmin().getWorkDefinitionForPeerToPeerReviewNotYetCreatedAndStandalone(
- actionableItem).getWorkDefinition(), null, reviewTitle, againstState, createdDate, createdBy,
- changes);
+ actionableItem).getWorkDefinition(), null, reviewTitle, againstState, createdDate, createdBy, changes);
peerArt.getActionableItemsDam().addActionableItem(actionableItem);
changes.add(peerArt);
return peerArt;
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java
index 629b5b7252a..a59a28a3638 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java
@@ -20,6 +20,7 @@ import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.notify.AtsNotifyType;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.core.AtsCore;
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.notify.AtsNotificationManager;
@@ -256,5 +257,6 @@ public class UserRoleManager {
awa.getStateMgr().setMetrics(awa.getStateDefinition(), hoursSpent,
awa.getStateMgr().getPercentComplete(awa.getCurrentStateName()), true,
AtsClientService.get().getUserAdmin().getCurrentUser(), new Date());
+ AtsCore.getLogFactory().writeToStore(awa);
}
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java
index b9bc82c15ca..f7c27d6b0c3 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java
@@ -26,6 +26,7 @@ import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IStateToken;
+import org.eclipse.osee.ats.core.AtsCore;
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.util.AtsTaskCache;
@@ -125,6 +126,7 @@ public abstract class AbstractTaskableArtifact extends AbstractWorkflowArtifact
if (Strings.isValid(relatedToState)) {
taskArt.setSoleAttributeValue(AtsAttributeTypes.RelatedToState, relatedToState);
}
+ AtsCore.getLogFactory().writeToStore(taskArt);
AtsTaskCache.decache(this);
return taskArt;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java
index 250e48a88f0..df26b29e330 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java
@@ -20,6 +20,7 @@ import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.AtsCore;
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;
@@ -57,6 +58,7 @@ public class TaskManager {
taskArt.getStateMgr().setAssignee(AtsClientService.get().getUserAdmin().getCurrentUser());
}
taskArt.getStateMgr().updateMetrics(taskArt.getStateDefinition(), additionalHours, 100, true);
+ AtsCore.getLogFactory().writeToStore(taskArt);
if (estimatedHours > 0.0) {
taskArt.setSoleAttributeValue(AtsAttributeTypes.EstimatedHours, estimatedHours);
}
@@ -91,6 +93,7 @@ public class TaskManager {
}
if (taskArt.getStateMgr().getPercentComplete(taskArt.getCurrentStateName()) != percentComplete || additionalHours > 0) {
taskArt.getStateMgr().updateMetrics(taskArt.getStateDefinition(), additionalHours, percentComplete, true);
+ AtsCore.getLogFactory().writeToStore(taskArt);
}
if (changes != null) {
taskArt.saveSMA(changes);
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java
index c6e4c5f6ab3..88ca0d74851 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java
@@ -30,6 +30,7 @@ import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.Activator;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
@@ -202,6 +203,7 @@ public class TeamWorkFlowManager {
}
teamArt.setSoleAttributeValue(AtsAttributeTypes.EstimatedHours, hourEstimate);
teamArt.getStateMgr().setMetrics(TeamState.Analyze, stateHoursSpent, statePercentComplete, true, user, date);
+ AtsCore.getLogFactory().writeToStore(teamArt);
return Result.TrueResult;
}
@@ -213,6 +215,7 @@ public class TeamWorkFlowManager {
}
}
teamArt.getStateMgr().setMetrics(TeamState.Authorize, stateHoursSpent, statePercentComplete, true, user, date);
+ AtsCore.getLogFactory().writeToStore(teamArt);
return Result.TrueResult;
}
@@ -224,6 +227,7 @@ public class TeamWorkFlowManager {
}
}
teamArt.getStateMgr().setMetrics(TeamState.Implement, stateHoursSpent, statePercentComplete, true, user, date);
+ AtsCore.getLogFactory().writeToStore(teamArt);
return Result.TrueResult;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java
index 7f321edcd9a..f034d831848 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java
@@ -91,7 +91,8 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
protected TeamWorkFlowArtifact parentTeamArt;
protected ActionArtifact parentAction;
private final IAtsStateManager stateMgr;
- private final IAtsLog atsLog;
+ private IAtsLog atsLog;
+ private int atsLogTransactionNumber;
private final AtsNote atsNote;
private boolean inTransition = false;
private IAtsWorkData atsWorkData;
@@ -99,7 +100,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
public AbstractWorkflowArtifact(String guid, Branch branch, IArtifactType artifactType) throws OseeCoreException {
super(guid, branch, artifactType);
stateMgr = AtsCore.getStateFactory().getStateManager(this);
- atsLog = AtsCore.getLogFactory().getLog(new ArtifactLog(this), AtsCore.getUserService());
atsNote = new AtsNote(new ArtifactNote(this));
}
@@ -314,10 +314,14 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
getSmaArtifactsOneLevel(this, artifacts);
for (Artifact artifact : artifacts) {
if (artifact instanceof AbstractWorkflowArtifact) {
- Result result = ((AbstractWorkflowArtifact) artifact).getStateMgr().isDirtyResult();
+ AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) artifact;
+ Result result = awa.getStateMgr().isDirtyResult();
if (result.isTrue()) {
return result;
}
+ if (awa.getLog().isDirty()) {
+ return new Result(true, "Log is dirty");
+ }
}
if (artifact.isDirty()) {
String rString = null;
@@ -362,7 +366,11 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
getSmaArtifactsOneLevel(this, artifacts);
for (Artifact artifact : artifacts) {
if (artifact instanceof AbstractWorkflowArtifact) {
- ((AbstractWorkflowArtifact) artifact).getStateMgr().writeToStore();
+ AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) artifact;
+ awa.getStateMgr().writeToStore();
+ if (awa.getLog().isDirty()) {
+ AtsCore.getLogFactory().writeToStore(awa);
+ }
}
artifact.persist(transaction);
}
@@ -378,7 +386,9 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
for (Artifact artifact : artifacts) {
artifact.reloadAttributesAndRelations();
if (artifact instanceof AbstractWorkflowArtifact) {
- ((AbstractWorkflowArtifact) artifact).getStateMgr().reload();
+ AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) artifact;
+ awa.getStateMgr().reload();
+ awa.atsLog = null;
}
}
} catch (Exception ex) {
@@ -428,6 +438,10 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
@Override
public IAtsLog getLog() {
+ if (atsLog == null || atsLogTransactionNumber != getTransactionNumber()) {
+ atsLog = AtsCore.getLogFactory().getLogLoaded(new ArtifactLog(this));
+ atsLogTransactionNumber = getTransactionNumber();
+ }
return atsLog;
}
@@ -522,12 +536,13 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
private void logCreatedByChange(IAtsUser user, Date date) throws OseeCoreException {
if (getSoleAttributeValue(AtsAttributeTypes.CreatedBy, null) == null) {
- atsLog.addLog(LogType.Originated, "", "", date, user);
+ getLog().addLog(LogType.Originated, "", "", date, user.getUserId());
} else {
- atsLog.addLog(LogType.Originated, "",
- "Changed by " + AtsClientService.get().getUserAdmin().getCurrentUser().getName(), date, user);
- atsLog.internalResetOriginator(user);
+ getLog().addLog(LogType.Originated, "",
+ "Changed by " + AtsClientService.get().getUserAdmin().getCurrentUser().getName(), date, user.getUserId());
+ getLog().internalResetOriginator(user);
}
+ AtsCore.getLogFactory().writeToStore(this);
}
public void setCreatedBy(IAtsUser user, boolean logChange) throws OseeCoreException {
@@ -542,14 +557,16 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
}
public void internalSetCreatedBy(IAtsUser user) throws OseeCoreException {
- atsLog.internalResetOriginator(user);
+ getLog().internalResetOriginator(user);
+ AtsCore.getLogFactory().writeToStore(this);
if (isAttributeTypeValid(AtsAttributeTypes.CreatedBy)) {
setSoleAttributeValue(AtsAttributeTypes.CreatedBy, user.getUserId());
}
}
public void internalSetCreatedDate(Date date) throws OseeCoreException {
- atsLog.internalResetCreatedDate(date);
+ getLog().internalResetCreatedDate(date);
+ AtsCore.getLogFactory().writeToStore(this);
if (isAttributeTypeValid(AtsAttributeTypes.CreatedDate)) {
setSoleAttributeValue(AtsAttributeTypes.CreatedDate, date);
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java
index dc03f133e91..9431ad1c443 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java
@@ -15,7 +15,9 @@ import java.util.logging.Level;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
+import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.workflow.log.ILogStorageProvider;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.Activator;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
@@ -81,4 +83,14 @@ public class ArtifactLog implements ILogStorageProvider {
return "unknown";
}
+ @Override
+ public String getNameFromUserId(String userId) {
+ String name = "unknown (" + userId + ")";
+ IAtsUser user = AtsCore.getUserService().getUserById(userId);
+ if (user != null) {
+ name = user.getName();
+ }
+ return name;
+ }
+
}

Back to the top