diff options
author | donald.g.dunne | 2013-10-31 19:05:12 +0000 |
---|---|---|
committer | Roberto E. Escobar | 2013-11-25 23:45:31 +0000 |
commit | 54fb614f31c9a6be770c97ed0886514fa03f1dc7 (patch) | |
tree | 8ee1540b7f1961fb428c3be5f01c935b236b86d8 /plugins/org.eclipse.osee.ats.core.client | |
parent | 559cb56adb53f7f813c0602cc809c87b1c21c450 (diff) | |
download | org.eclipse.osee-54fb614f31c9a6be770c97ed0886514fa03f1dc7.tar.gz org.eclipse.osee-54fb614f31c9a6be770c97ed0886514fa03f1dc7.tar.xz org.eclipse.osee-54fb614f31c9a6be770c97ed0886514fa03f1dc7.zip |
feature[ats_S5JDQ]: Create AtsLog reader and writer
Change-Id: I6463c29f6fe7949033b90f23569a2663d290f5d5
Diffstat (limited to 'plugins/org.eclipse.osee.ats.core.client')
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; + } + } |