diff options
author | ddunne | 2010-08-30 18:38:16 +0000 |
---|---|---|
committer | ddunne | 2010-08-30 18:38:16 +0000 |
commit | d2339e1df63fb4cd23a808f775f905c06db8e649 (patch) | |
tree | fe7af2b9ec84ca7bdca797d836ce3231ff9d5e20 | |
parent | ab35e8e8c5c5bc0dd4fffdd7b337fd24acbca647 (diff) | |
download | org.eclipse.osee-d2339e1df63fb4cd23a808f775f905c06db8e649.tar.gz org.eclipse.osee-d2339e1df63fb4cd23a808f775f905c06db8e649.tar.xz org.eclipse.osee-d2339e1df63fb4cd23a808f775f905c06db8e649.zip |
moved date utils to skynet core
43 files changed, 652 insertions, 634 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java index 60062183c7f..b8e38f43669 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java @@ -27,6 +27,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.jdk.core.util.AXml; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp; import org.eclipse.osee.framework.logging.OseeLevel; @@ -34,7 +35,6 @@ import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -344,7 +344,7 @@ public class ATSLog { } else { builder.append("<TD>" + user.getName() + "</TD>"); } - builder.append("<TD>" + item.getDate(XDate.MMDDYYHHMM) + "</TD>"); + builder.append("<TD>" + item.getDate(DateUtil.MMDDYYHHMM) + "</TD>"); builder.append("</TR>"); } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java index 9631c3d8e5a..eb2165bc976 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java @@ -40,6 +40,7 @@ import org.eclipse.osee.framework.core.exception.OseeDataStoreException; import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.core.model.type.ArtifactType; import org.eclipse.osee.framework.jdk.core.util.Collections; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; @@ -52,7 +53,6 @@ import org.eclipse.osee.framework.skynet.core.utility.Artifacts; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.util.ChangeType; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.swt.graphics.Image; /** @@ -313,7 +313,7 @@ public class ActionArtifact extends ATSArtifact implements IWorldViewArtifact { if (date == null) { strs.add(""); } else { - strs.add(XDate.getDateStr(team.getWorldViewCreatedDate(), XDate.MMDDYYHHMM)); + strs.add(DateUtil.getMMDDYYHHMM(team.getWorldViewCreatedDate())); } } return Collections.toString(";", strs); @@ -1167,7 +1167,7 @@ public class ActionArtifact extends ATSArtifact implements IWorldViewArtifact { } public String getWorldViewLastUpdated() throws OseeCoreException { - return XDate.getDateStr(getLastModified(), XDate.MMDDYYHHMM); + return DateUtil.getMMDDYYHHMM(getLastModified()); } @Override diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/LogItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/LogItem.java index 2d4545c2043..210f853adf7 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/LogItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/LogItem.java @@ -19,10 +19,10 @@ import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.UserNotInDatabase; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.UserManager; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * @author Donald G. Dunne @@ -94,7 +94,7 @@ public class LogItem { @Override public String toString() { try { - return (msg.equals("") ? "" : msg) + " (" + type + ") " + (state.equals("") ? "" : "from " + state + " ") + "by " + user.getUserId() + " on " + getDate(XDate.MMDDYYHHMM) + "\n"; + return (msg.equals("") ? "" : msg) + " (" + type + ") " + (state.equals("") ? "" : "from " + state + " ") + "by " + user.getUserId() + " on " + DateUtil.getMMDDYYHHMM(date) + "\n"; } catch (Exception ex) { return (msg.equals("") ? "" : msg) + " (" + type + ") " + (state.equals("") ? "" : "from " + state + " "); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/NoteItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/NoteItem.java index 7c4beabc659..2fb3f178adf 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/NoteItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/NoteItem.java @@ -11,13 +11,12 @@ package org.eclipse.osee.ats.artifact; -import java.text.SimpleDateFormat; import java.util.Date; import org.eclipse.osee.ats.NoteType; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.skynet.core.User; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; public class NoteItem { @@ -44,13 +43,6 @@ public class NoteItem { return date; } - public String getDate(String pattern) { - if (pattern != null) { - return new SimpleDateFormat(pattern).format(date); - } - return date.toString(); - } - public void setDate(Date date) { this.date = date; } @@ -65,7 +57,7 @@ public class NoteItem { @Override public String toString() { - return "Note: \"" + type + "\" from \"" + user.getName() + "\"" + (state.equals("") ? "" : " for \"" + state + "\" state") + " on " + getDate(XDate.MMDDYYHHMM) + " - " + msg; + return "Note: \"" + type + "\" from \"" + user.getName() + "\"" + (state.equals("") ? "" : " for \"" + state + "\" state") + " on " + DateUtil.getMMDDYYHHMM(date) + " - " + msg; } public User getUser() { @@ -81,7 +73,7 @@ public class NoteItem { } public String toHTML() { - return "<b>Note:</b> \"" + type + "\" from \"" + user.getName() + "\"" + (state.equals("") ? "" : " for \"" + state + "\" state") + " on " + getDate(XDate.MMDDYYHHMM) + " - " + msg; + return "<b>Note:</b> \"" + type + "\" from \"" + user.getName() + "\"" + (state.equals("") ? "" : " for \"" + state + "\" state") + " on " + DateUtil.getMMDDYYHHMM(date) + " - " + msg; } public String getState() { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java index 46e7bf1f220..b62e5950c39 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java @@ -57,6 +57,7 @@ import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.core.model.type.ArtifactType; import org.eclipse.osee.framework.core.services.CmAccessControl; import org.eclipse.osee.framework.core.services.HasCmAccessControl; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Lib; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; @@ -74,7 +75,6 @@ import org.eclipse.osee.framework.ui.skynet.group.IGroupExplorerProvider; import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager; import org.eclipse.osee.framework.ui.skynet.util.ChangeType; import org.eclipse.osee.framework.ui.skynet.util.email.EmailGroup; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkFlowDefinition; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkFlowDefinitionFactory; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkItemDefinition; @@ -526,7 +526,7 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA if (getWorldViewCreatedDate() == null) { return XViewerCells.getCellExceptionString("No creation date"); } - return new XDate(getWorldViewCreatedDate()).getMMDDYYHHMM(); + return DateUtil.getMMDDYYHHMM(getWorldViewCreatedDate()); } @Override @@ -536,7 +536,7 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Completed with no date => " + getHumanReadableId()); return XViewerCells.getCellExceptionString("Completed with no date."); } - return new XDate(getWorldViewCompletedDate()).getMMDDYYHHMM(); + return DateUtil.getMMDDYYHHMM(getWorldViewCompletedDate()); } return ""; } @@ -548,7 +548,7 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA OseeLog.log(AtsPlugin.class, Level.SEVERE, "Cancelled with no date => " + getHumanReadableId()); return XViewerCells.getCellExceptionString("Cancelled with no date."); } - return new XDate(getWorldViewCancelledDate()).getMMDDYYHHMM(); + return DateUtil.getMMDDYYHHMM(getWorldViewCancelledDate()); } return ""; } @@ -958,7 +958,7 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA if (getWorldViewEstimatedReleaseDate() == null) { return ""; } - return new XDate(getWorldViewEstimatedReleaseDate()).getMMDDYYHHMM(); + return DateUtil.getMMDDYYHHMM(getWorldViewEstimatedReleaseDate()); } @Override @@ -966,7 +966,7 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA if (getWorldViewEstimatedCompletionDate() == null) { return ""; } - return new XDate(getWorldViewEstimatedCompletionDate()).getMMDDYYHHMM(); + return DateUtil.getMMDDYYHHMM(getWorldViewEstimatedCompletionDate()); } @Override @@ -977,7 +977,7 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA if (getWorldViewReleaseDate() == null) { return ""; } - return new XDate(getWorldViewReleaseDate()).getMMDDYYHHMM(); + return DateUtil.getMMDDYYHHMM(getWorldViewReleaseDate()); } /** @@ -1367,12 +1367,12 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA } public String getWorldViewLastUpdated() throws OseeCoreException { - return XDate.getDateStr(getLastModified(), XDate.MMDDYYHHMM); + return DateUtil.getMMDDYYHHMM(getLastModified()); } @Override public String getWorldViewLastStatused() throws OseeCoreException { - return XDate.getDateStr(getLog().getLastStatusedDate(), XDate.MMDDYYHHMM); + return DateUtil.getMMDDYYHHMM(getLog().getLastStatusedDate()); } @SuppressWarnings("unused") @@ -1409,7 +1409,7 @@ public abstract class StateMachineArtifact extends ATSArtifact implements HasCmA if (timeInCurrState == 0) { return "0.0"; } - return AtsUtil.doubleToI18nString(timeInCurrState / XDate.MILLISECONDS_IN_A_DAY); + return AtsUtil.doubleToI18nString(timeInCurrState / DateUtil.MILLISECONDS_IN_A_DAY); } @Override diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java index da037d8aeed..fa22824c303 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java @@ -37,6 +37,7 @@ import org.eclipse.osee.framework.core.exception.OseeDataStoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.core.model.type.ArtifactType; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -50,7 +51,6 @@ import org.eclipse.osee.framework.skynet.core.utility.Artifacts; import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.util.ChangeType; import org.eclipse.osee.framework.ui.skynet.widgets.IBranchArtifact; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkPageDefinition; import org.eclipse.osee.framework.ui.swt.Displays; @@ -488,7 +488,7 @@ public class TeamWorkFlowArtifact extends TaskableStateMachineArtifact implement public String getWorldViewDeadlineDateStr() throws OseeCoreException { Date date = getWorldViewDeadlineDate(); if (date != null) { - return XDate.getDateStr(date, XDate.MMDDYY); + return DateUtil.getMMDDYY(date); } return ""; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java index 9a8e1971c72..039a4368a92 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java @@ -28,11 +28,11 @@ import org.eclipse.osee.ats.workflow.AtsWorkPage; import org.eclipse.osee.ats.world.IWorldViewArtifact; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.ui.skynet.results.XResultData; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkPage; /** @@ -76,8 +76,7 @@ public class SMAPrint extends Action { // AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Originator: ", ((IWorldViewArtifact) sma).getWorldViewOriginator()), // - AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Created: ", - XDate.getDateStr(sma.getLog().getCreationDate(), XDate.MMDDYYHHMM)) + AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Created: ", DateUtil.getMMDDYYHHMM(sma.getLog().getCreationDate())) })); resultData.addRaw(AHTML.endMultiColumnTable()); @@ -123,23 +122,13 @@ public class SMAPrint extends Action { try { rd.addRaw(AHTML.addSpace(1) + AHTML.getLabelStr(AHTML.LABEL_FONT, "Tasks")); rd.addRaw(AHTML.startBorderTable(100, Overview.normalColor, "")); - rd.addRaw(AHTML.addHeaderRowMultiColumnTable(new String[] { - "Title", - "State", - "POC", - "%", - "Hrs", - "Resolution", + rd.addRaw(AHTML.addHeaderRowMultiColumnTable(new String[] {"Title", "State", "POC", "%", "Hrs", "Resolution", "ID"})); for (TaskArtifact art : ((TaskableStateMachineArtifact) sma).getTaskArtifacts()) { - rd.addRaw(AHTML.addRowMultiColumnTable(new String[] { - art.getName(), - art.getStateMgr().getCurrentStateName().replaceAll("(Task|State)", ""), - art.getWorldViewActivePoc(), - art.getPercentCompleteSMATotal() + "", - art.getHoursSpentSMATotal() + "", - art.getSoleAttributeValue(AtsAttributeTypes.Resolution, ""), - art.getHumanReadableId()})); + rd.addRaw(AHTML.addRowMultiColumnTable(new String[] {art.getName(), + art.getStateMgr().getCurrentStateName().replaceAll("(Task|State)", ""), art.getWorldViewActivePoc(), + art.getPercentCompleteSMATotal() + "", art.getHoursSpentSMATotal() + "", + art.getSoleAttributeValue(AtsAttributeTypes.Resolution, ""), art.getHumanReadableId()})); } rd.addRaw(AHTML.endBorderTable()); } catch (Exception ex) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java index 7fe89d6f8cb..6e1bd709536 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java @@ -46,6 +46,7 @@ import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -57,7 +58,6 @@ import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.XFormToolkit; import org.eclipse.osee.framework.ui.skynet.widgets.IArtifactStoredWidget; import org.eclipse.osee.framework.ui.skynet.widgets.XComboViewer; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.skynet.widgets.XLabelValue; import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener; import org.eclipse.osee.framework.ui.skynet.widgets.XWidget; @@ -394,7 +394,7 @@ public class SMAWorkFlowSection extends SectionPart { } else { LogItem item = sma.getLog().getStateEvent(LogType.StateComplete, atsWorkPage.getName()); if (item != null) { - sb.append(" - State Completed " + item.getDate(XDate.MMDDYYHHMM)); + sb.append(" - State Completed " + item.getDate(DateUtil.MMDDYYHHMM)); sb.append(" by " + item.getUser().getName()); } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java index 4559511a5ab..e73bd82338e 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java @@ -49,6 +49,7 @@ import org.eclipse.osee.ats.workflow.AtsWorkPage; import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.operation.Operations; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.plugin.core.IActionable; @@ -62,7 +63,6 @@ import org.eclipse.osee.framework.ui.skynet.util.FormsUtil; import org.eclipse.osee.framework.ui.skynet.util.LoadingComposite; import org.eclipse.osee.framework.ui.skynet.util.OseeDictionary; import org.eclipse.osee.framework.ui.skynet.widgets.IArtifactStoredWidget; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.ALayout; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.osee.framework.ui.swt.ExceptionComposite; @@ -594,7 +594,7 @@ public class SMAWorkFlowTab extends FormPage implements IActionable { try { FormsUtil.createLabelText(toolkit, topLineComp, "Current State: ", sma.getStateMgr().getCurrentStateName()); FormsUtil.createLabelText(toolkit, topLineComp, "Created: ", - XDate.getDateStr(sma.getLog().getCreationDate(), XDate.MMDDYYHHMM)); + DateUtil.getMMDDYYHHMM(sma.getLog().getCreationDate())); } catch (OseeCoreException ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); } 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 1ed7930b6b0..a0b107c626a 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 @@ -61,6 +61,7 @@ import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.core.model.type.AttributeType; import org.eclipse.osee.framework.jdk.core.type.HashCollection; import org.eclipse.osee.framework.jdk.core.util.Collections; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.logging.SevereLoggingMonitor; @@ -75,13 +76,12 @@ import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.skynet.core.utility.Artifacts; +import org.eclipse.osee.framework.skynet.core.utility.ElapsedTime; import org.eclipse.osee.framework.ui.plugin.PluginUiImage; import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; import org.eclipse.osee.framework.ui.skynet.results.XResultData; -import org.eclipse.osee.framework.ui.skynet.util.ElapsedTime; import org.eclipse.osee.framework.ui.skynet.util.email.EmailUtil; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.Displays; /** @@ -135,7 +135,7 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction { if (Strings.isValid(emailOnComplete)) { String html = rd.getReport(getName()).getManipulatedHtml(); EmailUtil.emailHtml(java.util.Collections.singleton(emailOnComplete), - String.format("Sync - %s [%s]", XDate.getDateNow(), getName()), html); + String.format("Sync - %s [%s]", DateUtil.getDateNow(), getName()), html); } } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); @@ -392,13 +392,13 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction { if (xResultData == null) { xResultData = new XResultData(); } - xResultData.log(monitor, "testLoadAllCommonArtifactIds - Started " + XDate.getDateNow(XDate.MMDDYYHHMM)); + xResultData.log(monitor, "testLoadAllCommonArtifactIds - Started " + DateUtil.getMMDDYYHHMM()); List<Integer> artIds = ArtifactQuery.selectArtifactListFromBranch(AtsUtil.getAtsBranch(), EXCLUDE_DELETED); if (artIds.isEmpty()) { xResultData.logError("Error: Artifact load returned 0 artifacts to check"); } - xResultData.log(monitor, "testLoadAllCommonArtifactIds - Completed " + XDate.getDateNow(XDate.MMDDYYHHMM)); + xResultData.log(monitor, "testLoadAllCommonArtifactIds - Completed " + DateUtil.getMMDDYYHHMM()); return Collections.subDivide(artIds, 5000); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java index 2fc0056a8cd..b6a27e237cc 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java @@ -1,380 +1,410 @@ -/******************************************************************************* - * 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.health; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.logging.Level; -import javax.xml.parsers.ParserConfigurationException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.osee.ats.artifact.AtsAttributeTypes; -import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions; -import org.eclipse.osee.ats.health.change.DataChangeReportComparer; -import org.eclipse.osee.ats.health.change.ValidateChangeReportParser; -import org.eclipse.osee.ats.internal.AtsPlugin; -import org.eclipse.osee.ats.util.AtsUtil; -import org.eclipse.osee.framework.core.data.IArtifactType; -import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; -import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; -import org.eclipse.osee.framework.core.enums.ModificationType; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.exception.OseeStateException; -import org.eclipse.osee.framework.database.core.OseeInfo; -import org.eclipse.osee.framework.jdk.core.util.AHTML; -import org.eclipse.osee.framework.jdk.core.util.AXml; -import org.eclipse.osee.framework.jdk.core.util.Lib; -import org.eclipse.osee.framework.logging.IHealthStatus; -import org.eclipse.osee.framework.logging.OseeLevel; -import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.logging.SevereLoggingMonitor; -import org.eclipse.osee.framework.plugin.core.util.Jobs; -import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; -import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; -import org.eclipse.osee.framework.skynet.core.change.ArtifactChange; -import org.eclipse.osee.framework.skynet.core.change.AttributeChange; -import org.eclipse.osee.framework.skynet.core.change.Change; -import org.eclipse.osee.framework.skynet.core.change.RelationChange; -import org.eclipse.osee.framework.skynet.core.revision.ChangeData; -import org.eclipse.osee.framework.skynet.core.revision.ChangeData.KindType; -import org.eclipse.osee.framework.ui.plugin.PluginUiImage; -import org.eclipse.osee.framework.ui.plugin.util.Result; -import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; -import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; -import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; -import org.eclipse.osee.framework.ui.skynet.compare.CompareHandler; -import org.eclipse.osee.framework.ui.skynet.results.XResultData; -import org.eclipse.osee.framework.ui.swt.Displays; - -/** - * This test will validate the change report data that is returned for the ATS configured actions with committed - * branches. Upon first time run against a newly committed branch, it will generate a "General Data" artifact with the - * change report data stored to xml in a "General String Data" attribute. <br> - * <br> - * Every additional time this validation is run against an already stored change report, the current xml and stored xml - * change report will be compared. <br> - * <br> - * If errors are found, the developer will need to put a breakpoint below to see the was-is values of the change report - * data.<br> - * <br> - * This test also ensures that all change reports can return their historical artifacts by loading and accessing the - * descriptive name for each artifact. - * - * @author Donald G. Dunne - */ -public class ValidateChangeReports extends XNavigateItemAction { - - static final String VCR_ROOT_ELEMENT_TAG = "ValidateChangeReport"; - static final String VCR_DB_GUID = "dbGuid"; - - public ValidateChangeReports(XNavigateItem parent) { - super(parent, "Validate Change Reports", PluginUiImage.ADMIN); - } - - @Override - public void run(TableLoadOption... tableLoadOptions) { - if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) { - return; - } - Jobs.startJob(new Report(getName()), true); - } - - public class Report extends Job { - - public Report(String name) { - super(name); - } - - @Override - protected IStatus run(IProgressMonitor monitor) { - try { - final XResultData rd = new XResultData(); - runIt(monitor, rd); - rd.report(getName()); - } catch (Exception ex) { - OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); - return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.getMessage(), ex); - } - monitor.done(); - return Status.OK_STATUS; - } - } - - private void runIt(IProgressMonitor monitor, XResultData xResultData) throws OseeCoreException { - String currentDbGuid = OseeInfo.getDatabaseGuid(); - SevereLoggingMonitor monitorLog = new SevereLoggingMonitor(); - OseeLog.registerLoggerListener(monitorLog); - StringBuffer sbFull = new StringBuffer(AHTML.beginMultiColumnTable(100, 1)); - String[] columnHeaders = new String[] {"HRID", "PCR", "Results"}; - sbFull.append(AHTML.addHeaderRowMultiColumnTable(columnHeaders)); - for (IArtifactType artifactType : TeamWorkflowExtensions.getInstance().getAllTeamWorkflowArtifactTypes()) { - sbFull.append(AHTML.addRowSpanMultiColumnTable(artifactType.getName(), columnHeaders.length)); - - try { - int x = 1; - Collection<Artifact> artifacts = - ArtifactQuery.getArtifactListFromType(artifactType, AtsUtil.getAtsBranch()); - for (Artifact artifact : artifacts) { - String resultStr = "PASS"; - TeamWorkFlowArtifact teamArt = (TeamWorkFlowArtifact) artifact; - - // Uncomment to only do a single program - // if (!teamArt.getTeamName().contains("ATS")) { - // System.err.println("Skipping non ATS workflow...Remove this."); - // continue; - // } - // if (x >= 20) { - // System.err.println("Only do first 20...Remove this."); - // return; - // } - - try { - String str = String.format("Processing %s/%s - %s", x++, artifacts.size(), artifact); - OseeLog.log(AtsPlugin.class, Level.INFO, str); - if (monitor != null) { - monitor.subTask(str); - } - - // Only validate committed branches cause working branches change too much - if (!teamArt.getBranchMgr().isCommittedBranchExists()) { - continue; - } - Result valid = changeReportValidated(currentDbGuid, teamArt, xResultData, false); - if (valid.isFalse()) { - resultStr = "Error: " + valid.getText(); - } - } catch (Exception ex) { - resultStr = "Error: Exception Validating: " + ex.getLocalizedMessage(); - OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); - } - sbFull.append(AHTML.addRowMultiColumnTable(teamArt.getHumanReadableId(), - teamArt.getSoleAttributeValue(AtsAttributeTypes.LegacyPcrId, ""), resultStr)); - } - } catch (Exception ex) { - sbFull.append(AHTML.addRowSpanMultiColumnTable("Exception: " + ex.getLocalizedMessage(), - columnHeaders.length)); - } - } - sbFull.append(AHTML.endMultiColumnTable()); - xResultData.addRaw(sbFull.toString().replaceAll("\n", "")); - List<IHealthStatus> stats = new ArrayList<IHealthStatus>(monitorLog.getAllLogs()); - for (IHealthStatus stat : stats) { - Throwable tr = stat.getException(); - if (tr != null) { - xResultData.logError("Exception: " + Lib.exceptionToString(stat.getException())); - } - } - } - - /** - * Return true if current change report is same as stored change report data - * - * @return Result.TrueResult if same, else Result.FalseResult with comparison in resultData - * @throws ParserConfigurationException - */ - static Result changeReportValidated(final String currentDbGuid, final TeamWorkFlowArtifact teamArt, XResultData resultData, boolean displayWasIs) throws OseeCoreException { - String name = "VCR_" + teamArt.getHumanReadableId(); - List<Artifact> arts = - ArtifactQuery.getArtifactListFromTypeAndName(CoreArtifactTypes.GeneralData, name, AtsUtil.getAtsBranch()); - String storedChangeReport = null; - Artifact artifactForStore = null; - if (arts.size() > 1) { - throw new OseeStateException("Multiple artifacts found of name \"" + name + "\""); - } else if (arts.size() == 1) { - artifactForStore = arts.iterator().next(); - storedChangeReport = artifactForStore.getSoleAttributeValue(CoreAttributeTypes.GeneralStringData, null); - } - // Retrieve current - ChangeData currentChangeData = teamArt.getBranchMgr().getChangeDataFromEarliestTransactionId(); - if (currentChangeData.isEmpty()) { - return new Result(String.format("FAIL: Unexpected empty change report for %s", teamArt.toStringWithId())); - } - // Store - if (storedChangeReport == null) { - // Reuse same artifact if already exists - if (artifactForStore == null) { - artifactForStore = - ArtifactTypeManager.addArtifact(CoreArtifactTypes.GeneralData, AtsUtil.getAtsBranch(), name); - } - artifactForStore.setSoleAttributeValue(CoreAttributeTypes.GeneralStringData, - getReport(currentDbGuid, currentChangeData)); - artifactForStore.persist(); - resultData.log("Stored Change Report for " + teamArt.getHumanReadableId()); - return new Result(true, "Stored Change Report for " + teamArt.getHumanReadableId()); - } - // Else, compare the two and report - else { - final String currentChangeReport = getReport(currentDbGuid, currentChangeData); - final String fStoredChangeReport = storedChangeReport.replaceAll("\n", ""); - if (!isXmlChangeDataEqual(currentChangeReport, fStoredChangeReport)) { - resultData.logError("Was/Is Change Report different for " + teamArt.getHumanReadableId()); - if (displayWasIs) { - resultData.log("Was / Is reports displayed in Results View"); - } - if (displayWasIs) { - try { - Displays.ensureInDisplayThread(new Runnable() { - @Override - public void run() { - try { - String storedChangeReportString = GetComparableString(fStoredChangeReport); - String currentChangeReportString = GetComparableString(currentChangeReport); - - CompareHandler compareHandler = - new CompareHandler(storedChangeReportString, currentChangeReportString); - compareHandler.compare(); - - } catch (Exception ex) { - OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); - } - } - }); - - } catch (Exception ex) { - System.err.println(ex.getLocalizedMessage()); - } - } - return new Result("FAIL: Was/Is Change Report different"); - } - } - // As another test, ensure that all artifacts can be retrieved and display their name - try { - for (Artifact art : currentChangeData.getArtifacts(KindType.ArtifactOrRelation, ModificationType.NEW, - ModificationType.DELETED, ModificationType.MERGED)) { - art.getName(); - } - } catch (Exception ex) { - OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); - return new Result("FAIL: Exception accessing name of change report artifacts: " + ex.getLocalizedMessage()); - } - // As another test, allow ATS extensions add their own tests - for (IAtsHealthCheck atsHealthCheck : AtsHealthCheck.getAtsHealthCheckItems()) { - Result result = atsHealthCheck.validateChangeReports(currentChangeData, teamArt, resultData); - if (result.isFalse()) { - return result; - } - } - - return new Result(true, "PASS"); - } - - private static String GetComparableString(String changeReportString) { - StringBuffer comparableString = new StringBuffer(); - ValidateChangeReportParser parser = new ValidateChangeReportParser(); - ArrayList<ArrayList<DataChangeReportComparer>> changeReport = parser.parse(changeReportString); - - for (int i = 0; i < changeReport.size(); i++) { - for (int j = 0; j < changeReport.get(i).size(); j++) { - comparableString.append(changeReport.get(i).get(j).getContent()); - } - } - return comparableString.toString().replaceAll("><", ">\n<"); - } - - private static String getReport(String dbGuid, ChangeData changeData) { - StringBuffer sb = new StringBuffer(); - sb.append(String.format("<%s %s=\"%s\">", VCR_ROOT_ELEMENT_TAG, VCR_DB_GUID, dbGuid)); - for (Change change : changeData.getChanges()) { - if (change instanceof RelationChange) { - sb.append(toXml((RelationChange) change)); - } else if (change instanceof ArtifactChange) { - sb.append(toXml((ArtifactChange) change)); - } else if (change instanceof AttributeChange) { - sb.append(toXml((AttributeChange) change)); - } - } - sb.append(String.format("</%s>", VCR_ROOT_ELEMENT_TAG)); - String toReturn = sb.toString().replaceAll(">[\\s\\n\\r]+$", ">"); - return toReturn.replaceAll("\n", ""); - } - - private static void toXmlCommon(Change change, StringBuffer sb) { - sb.append(AXml.addTagData(TxImportedValidateChangeReports.BRANCH_ID_ALIASES, change.getBranch().getGuid())); - } - - private static String toXml(RelationChange change) { - StringBuffer sb = new StringBuffer(); - toXmlCommon(change, sb); - sb.append(AXml.addTagData("artTId", String.valueOf(change.getItemTypeId()))); - sb.append(AXml.addTagData("gamma", String.valueOf(change.getGamma()))); - sb.append(AXml.addTagData("artId", String.valueOf(change.getArtId()))); - sb.append(AXml.addTagData("tTranId", String.valueOf(change.getTxDelta().getEndTx().getId()))); - sb.append(AXml.addTagData("fTranId", String.valueOf(change.getTxDelta().getStartTx().getId()))); - sb.append(AXml.addTagData("mType", String.valueOf(change.getModificationType().name()))); - sb.append(AXml.addTagData("bArtId", String.valueOf(change.getBArtId()))); - sb.append(AXml.addTagData("relId", String.valueOf(change.getRelLinkId()))); - sb.append(AXml.addTagData("rat", change.getRationale())); - sb.append(AXml.addTagData("relTId", String.valueOf(change.getRelationType().getId()))); - sb.append(AXml.addTagData("hist", String.valueOf(change.isHistorical()))); - return AXml.addTagData("RelChg", sb.toString()); - } - - private static String toXml(ArtifactChange change) { - StringBuffer sb = new StringBuffer(); - toXmlCommon(change, sb); - sb.append(AXml.addTagData("artTId", String.valueOf(change.getItemTypeId()))); - sb.append(AXml.addTagData("gamma", String.valueOf(change.getGamma()))); - sb.append(AXml.addTagData("artId", String.valueOf(change.getArtId()))); - sb.append(AXml.addTagData("tTranId", String.valueOf(change.getTxDelta().getEndTx().getId()))); - sb.append(AXml.addTagData("fTranId", String.valueOf(change.getTxDelta().getStartTx().getId()))); - sb.append(AXml.addTagData("mType", String.valueOf(change.getModificationType().name()))); - sb.append(AXml.addTagData("hist", String.valueOf(change.isHistorical()))); - return AXml.addTagData("ArtChg", sb.toString()); - } - - private static String toXml(AttributeChange change) { - StringBuffer sb = new StringBuffer(); - toXmlCommon(change, sb); - sb.append(AXml.addTagData("artTId", String.valueOf(change.getItemTypeId()))); - sb.append(AXml.addTagData("gamma", String.valueOf(change.getGamma()))); - sb.append(AXml.addTagData("artId", String.valueOf(change.getArtId()))); - sb.append(AXml.addTagData("tTranId", String.valueOf(change.getTxDelta().getEndTx().getId()))); - sb.append(AXml.addTagData("fTranId", String.valueOf(change.getTxDelta().getStartTx().getId()))); - sb.append(AXml.addTagData("mType", String.valueOf(change.getModificationType().name()))); - sb.append(AXml.addTagData("aModType", String.valueOf(change.getArtModType().name()))); - sb.append(AXml.addTagData("attrId", String.valueOf(change.getAttrId()))); - sb.append(AXml.addTagData("attrTId", String.valueOf(change.getAttributeType().getId()))); - sb.append(AXml.addTagData("hist", String.valueOf(change.isHistorical()))); - return AXml.addTagData("AttrChg", sb.toString()); - } - - private static boolean isXmlChangeDataEqual(String currentData, String storedData) { - int checkSum1 = getCheckSum(currentData); - int checkSum2 = getCheckSum(storedData); - - boolean result = checkSum1 == checkSum2; - if (!result) { - ChangeReportComparer comparer = new ChangeReportComparer(); - comparer.compare(currentData, storedData); - - OseeLog.log(AtsPlugin.class, Level.SEVERE, - String.format("Checksums not equal - stored:[%s] current:[%s]", checkSum1, checkSum2)); - } - return result; - } - - private static int getCheckSum(String data) { - int checksum = -1; - for (int index = 0; index < data.length(); index++) { - char character = data.charAt(index); - if (character != '\n' && character != '\t' && character != '\r' && character != ' ') { - checksum += character; - } - } - return checksum; - } -} +/*******************************************************************************
+ * 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.health;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.logging.Level;
+import javax.xml.parsers.ParserConfigurationException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osee.ats.artifact.AtsAttributeTypes;
+import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions;
+import org.eclipse.osee.ats.health.change.DataChangeReportComparer;
+import org.eclipse.osee.ats.health.change.ValidateChangeReportParser;
+import org.eclipse.osee.ats.internal.AtsPlugin;
+import org.eclipse.osee.ats.util.AtsArtifactTypes;
+import org.eclipse.osee.ats.util.AtsUtil;
+import org.eclipse.osee.framework.core.data.IArtifactType;
+import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
+import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
+import org.eclipse.osee.framework.core.enums.ModificationType;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.exception.OseeStateException;
+import org.eclipse.osee.framework.database.core.OseeInfo;
+import org.eclipse.osee.framework.jdk.core.util.AHTML;
+import org.eclipse.osee.framework.jdk.core.util.AXml;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
+import org.eclipse.osee.framework.logging.IHealthStatus;
+import org.eclipse.osee.framework.logging.OseeLevel;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.logging.SevereLoggingMonitor;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
+import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
+import org.eclipse.osee.framework.skynet.core.change.ArtifactChange;
+import org.eclipse.osee.framework.skynet.core.change.AttributeChange;
+import org.eclipse.osee.framework.skynet.core.change.Change;
+import org.eclipse.osee.framework.skynet.core.change.RelationChange;
+import org.eclipse.osee.framework.skynet.core.revision.ChangeData;
+import org.eclipse.osee.framework.skynet.core.revision.ChangeData.KindType;
+import org.eclipse.osee.framework.ui.plugin.PluginUiImage;
+import org.eclipse.osee.framework.ui.plugin.util.Result;
+import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
+import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
+import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
+import org.eclipse.osee.framework.ui.skynet.compare.CompareHandler;
+import org.eclipse.osee.framework.ui.skynet.results.XResultData;
+import org.eclipse.osee.framework.ui.swt.Displays;
+
+/**
+ * This test will validate the change report data that is returned for the ATS configured actions with committed
+ * branches. Upon first time run against a newly committed branch, it will generate a "General Data" artifact with the
+ * change report data stored to xml in a "General String Data" attribute. <br>
+ * <br>
+ * Every additional time this validation is run against an already stored change report, the current xml and stored xml
+ * change report will be compared. <br>
+ * <br>
+ * If errors are found, the developer will need to put a breakpoint below to see the was-is values of the change report
+ * data.<br>
+ * <br>
+ * This test also ensures that all change reports can return their historical artifacts by loading and accessing the
+ * descriptive name for each artifact.
+ *
+ * @author Donald G. Dunne
+ */
+public class ValidateChangeReports extends XNavigateItemAction {
+
+ static final String VCR_ROOT_ELEMENT_TAG = "ValidateChangeReport";
+ static final String VCR_DB_GUID = "dbGuid";
+
+ public ValidateChangeReports(XNavigateItem parent) {
+ super(parent, "Validate Change Reports", PluginUiImage.ADMIN);
+ }
+
+ @Override
+ public void run(TableLoadOption... tableLoadOptions) {
+ if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) {
+ return;
+ }
+ Jobs.startJob(new Report(getName()), true);
+ }
+
+ public class Report extends Job {
+
+ public Report(String name) {
+ super(name);
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ final XResultData rd = new XResultData();
+ runIt(monitor, rd);
+ rd.report(getName());
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.getMessage(), ex);
+ }
+ monitor.done();
+ return Status.OK_STATUS;
+ }
+ }
+
+ @SuppressWarnings("unused")
+ private void runIt(IProgressMonitor monitor, XResultData xResultData) throws OseeCoreException {
+ String currentDbGuid = OseeInfo.getDatabaseGuid();
+ if (true) {
+ validateSome(xResultData, currentDbGuid);
+ } else {
+ SevereLoggingMonitor monitorLog = new SevereLoggingMonitor();
+ OseeLog.registerLoggerListener(monitorLog);
+ StringBuffer sbFull = new StringBuffer(AHTML.beginMultiColumnTable(100, 1));
+ String[] columnHeaders = new String[] {"HRID", "PCR", "Results"};
+ sbFull.append(AHTML.addHeaderRowMultiColumnTable(columnHeaders));
+ for (IArtifactType artifactType : TeamWorkflowExtensions.getInstance().getAllTeamWorkflowArtifactTypes()) {
+ sbFull.append(AHTML.addRowSpanMultiColumnTable(artifactType.getName(), columnHeaders.length));
+
+ try {
+ int x = 1;
+ Collection<Artifact> artifacts =
+ ArtifactQuery.getArtifactListFromType(artifactType, AtsUtil.getAtsBranch());
+ for (Artifact artifact : artifacts) {
+ String resultStr = "PASS";
+ TeamWorkFlowArtifact teamArt = (TeamWorkFlowArtifact) artifact;
+
+ try {
+ String str = String.format("Processing %s/%s - %s", x++, artifacts.size(), artifact);
+ OseeLog.log(AtsPlugin.class, Level.INFO, str);
+ if (monitor != null) {
+ monitor.subTask(str);
+ }
+
+ // Only validate committed branches cause working branches change too much
+ if (!teamArt.getBranchMgr().isCommittedBranchExists()) {
+ continue;
+ }
+ Result valid = changeReportValidated(currentDbGuid, teamArt, xResultData, false);
+ if (valid.isFalse()) {
+ resultStr = "Error: " + valid.getText();
+ }
+ } catch (Exception ex) {
+ resultStr = "Error: Exception Validating: " + ex.getLocalizedMessage();
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ sbFull.append(AHTML.addRowMultiColumnTable(teamArt.getHumanReadableId(),
+ teamArt.getSoleAttributeValue(AtsAttributeTypes.LegacyPcrId, ""), resultStr));
+ }
+ } catch (Exception ex) {
+ sbFull.append(AHTML.addRowSpanMultiColumnTable("Exception: " + ex.getLocalizedMessage(),
+ columnHeaders.length));
+ }
+ }
+ sbFull.append(AHTML.endMultiColumnTable());
+ xResultData.addRaw(sbFull.toString().replaceAll("\n", ""));
+ List<IHealthStatus> stats = new ArrayList<IHealthStatus>(monitorLog.getAllLogs());
+ for (IHealthStatus stat : stats) {
+ Throwable tr = stat.getException();
+ if (tr != null) {
+ xResultData.logError("Exception: " + Lib.exceptionToString(stat.getException()));
+ }
+ }
+ }
+ }
+
+ private void validateSome(XResultData rd, String currentDbGuid) throws OseeCoreException {
+ Collection<Artifact> artifacts =
+ ArtifactQuery.getArtifactListFromIds(analyzeForMergeDifferences, AtsUtil.getAtsBranch());
+ int x = 0;
+ for (Artifact artifact : artifacts) {
+ if (!artifact.isOfType(AtsArtifactTypes.TeamWorkflow)) {
+ rd.logError("Unexpected type for " + artifact.toStringWithId());
+ }
+ TeamWorkFlowArtifact teamArt = (TeamWorkFlowArtifact) artifact;
+
+ String str = String.format("Processing %s/%s - %s", x++, artifacts.size(), artifact);
+ OseeLog.log(AtsPlugin.class, Level.INFO, str);
+
+ // Only validate committed branches cause working branches change too much
+ if (!teamArt.getBranchMgr().isCommittedBranchExists()) {
+ continue;
+ }
+ Result valid = changeReportValidated(currentDbGuid, teamArt, rd, false);
+ if (valid.isFalse()) {
+ rd.logError(valid.getText());
+ }
+ }
+ }
+ private final List<String> analyzeForMergeDifferences = Arrays.asList("D11QS", "15TT6", "9BJ55", "KJSXG", "W7C6Q",
+ "QJN6U", "ABKL6", "57C55", "C7JVC", "FJ8QG", "PD2L9", "R544L", "H2ZWZ", "XZDFL", "ZQYNV", "2M3R1", "H3MPT",
+ "DQWMJ", "G985U", "SC16V", "6HN4Y", "HMQZ0", "DHBYH", "B7NVG", "DNTLC", "C8C7G", "D96KZ", "L2VQY", "547KS",
+ "GN5SD", "E02FA", "6H998", "9SRR7", "GBTY3", "C7HGV", "KVFFX", "GB0R4", "417PW", "9JK7Q", "Y84NK", "LRMZT",
+ "BXH48", "L5554", "XJNLZ", "VNTWE", "5QG8E", "FC7PB", "BLN8W", "D9496", "QQKJS", "X808E", "YN188", "VHM3X",
+ "2ZSZ7", "YFKYZ", "3Q50H", "646WD", "J6L48", "0P9YU", "89B4J", "ZVS1V", "XXFFH", "Y2NCG", "9K6WL", "8SX10",
+ "BW2Q0", "B0JXG", "QQ1R9", "FR6SE", "WQZ9V", "JSWYS", "6W54P", "BDN3C", "533VS", "ECMZL", "PQN1T", "6SG3K",
+ "WCZ3S", "J6G34", "99VFY", "GXWCE", "77BNS", "D5SBA", "AYV56", "ZTQ8U", "A1B4Q", "6K4C5", "6MDYJ", "NZBT2",
+ "MR1LL", "98ZKQ", "DS6CQ");
+
+ /**
+ * Return true if current change report is same as stored change report data
+ *
+ * @return Result.TrueResult if same, else Result.FalseResult with comparison in resultData
+ * @throws ParserConfigurationException
+ */
+ static Result changeReportValidated(final String currentDbGuid, final TeamWorkFlowArtifact teamArt, XResultData resultData, boolean displayWasIs) throws OseeCoreException {
+ String name = "VCR_" + teamArt.getHumanReadableId();
+ List<Artifact> arts =
+ ArtifactQuery.getArtifactListFromTypeAndName(CoreArtifactTypes.GeneralData, name, AtsUtil.getAtsBranch());
+ String storedChangeReport = null;
+ Artifact artifactForStore = null;
+ if (arts.size() > 1) {
+ throw new OseeStateException("Multiple artifacts found of name \"" + name + "\"");
+ } else if (arts.size() == 1) {
+ artifactForStore = arts.iterator().next();
+ storedChangeReport = artifactForStore.getSoleAttributeValue(CoreAttributeTypes.GeneralStringData, null);
+ }
+ // Retrieve current
+ ChangeData currentChangeData = teamArt.getBranchMgr().getChangeDataFromEarliestTransactionId();
+ if (currentChangeData.isEmpty()) {
+ return new Result(String.format("FAIL: Unexpected empty change report for %s", teamArt.toStringWithId()));
+ }
+ // Store
+ if (storedChangeReport == null) {
+ // Reuse same artifact if already exists
+ if (artifactForStore == null) {
+ artifactForStore =
+ ArtifactTypeManager.addArtifact(CoreArtifactTypes.GeneralData, AtsUtil.getAtsBranch(), name);
+ }
+ artifactForStore.setSoleAttributeValue(CoreAttributeTypes.GeneralStringData,
+ getReport(currentDbGuid, currentChangeData));
+ artifactForStore.persist();
+ resultData.log("Stored Change Report for " + teamArt.getHumanReadableId());
+ return new Result(true, "Stored Change Report for " + teamArt.getHumanReadableId());
+ }
+ // Else, compare the two and report
+ else {
+ final String currentChangeReport = getReport(currentDbGuid, currentChangeData);
+ final String fStoredChangeReport = storedChangeReport.replaceAll("\n", "");
+ if (!isXmlChangeDataEqual(currentChangeReport, fStoredChangeReport)) {
+ resultData.logError("Was/Is Change Report different for " + teamArt.getHumanReadableId());
+ if (displayWasIs) {
+ resultData.log("Was / Is reports displayed in Results View");
+ }
+ if (displayWasIs) {
+ try {
+ Displays.ensureInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ String storedChangeReportString = GetComparableString(fStoredChangeReport);
+ String currentChangeReportString = GetComparableString(currentChangeReport);
+
+ CompareHandler compareHandler =
+ new CompareHandler(storedChangeReportString, currentChangeReportString);
+ compareHandler.compare();
+
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
+ }
+ }
+ });
+
+ } catch (Exception ex) {
+ System.err.println(ex.getLocalizedMessage());
+ }
+ }
+ return new Result("FAIL: Was/Is Change Report different");
+ }
+ }
+ // As another test, ensure that all artifacts can be retrieved and display their name
+ try {
+ for (Artifact art : currentChangeData.getArtifacts(KindType.ArtifactOrRelation, ModificationType.NEW,
+ ModificationType.DELETED, ModificationType.MERGED)) {
+ art.getName();
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ return new Result("FAIL: Exception accessing name of change report artifacts: " + ex.getLocalizedMessage());
+ }
+ // As another test, allow ATS extensions add their own tests
+ for (IAtsHealthCheck atsHealthCheck : AtsHealthCheck.getAtsHealthCheckItems()) {
+ Result result = atsHealthCheck.validateChangeReports(currentChangeData, teamArt, resultData);
+ if (result.isFalse()) {
+ return result;
+ }
+ }
+
+ return new Result(true, "PASS");
+ }
+
+ private static String GetComparableString(String changeReportString) {
+ StringBuffer comparableString = new StringBuffer();
+ ValidateChangeReportParser parser = new ValidateChangeReportParser();
+ ArrayList<ArrayList<DataChangeReportComparer>> changeReport = parser.parse(changeReportString);
+
+ for (int i = 0; i < changeReport.size(); i++) {
+ for (int j = 0; j < changeReport.get(i).size(); j++) {
+ comparableString.append(changeReport.get(i).get(j).getContent());
+ }
+ }
+ return comparableString.toString().replaceAll("><", ">\n<");
+ }
+
+ private static String getReport(String dbGuid, ChangeData changeData) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(String.format("<%s %s=\"%s\">", VCR_ROOT_ELEMENT_TAG, VCR_DB_GUID, dbGuid));
+ for (Change change : changeData.getChanges()) {
+ if (change instanceof RelationChange) {
+ sb.append(toXml((RelationChange) change));
+ } else if (change instanceof ArtifactChange) {
+ sb.append(toXml((ArtifactChange) change));
+ } else if (change instanceof AttributeChange) {
+ sb.append(toXml((AttributeChange) change));
+ }
+ }
+ sb.append(String.format("</%s>", VCR_ROOT_ELEMENT_TAG));
+ String toReturn = sb.toString().replaceAll(">[\\s\\n\\r]+$", ">");
+ return toReturn.replaceAll("\n", "");
+ }
+
+ private static void toXmlCommon(Change change, StringBuffer sb) {
+ sb.append(AXml.addTagData(TxImportedValidateChangeReports.BRANCH_ID_ALIASES, change.getBranch().getGuid()));
+ }
+
+ private static String toXml(RelationChange change) {
+ StringBuffer sb = new StringBuffer();
+ toXmlCommon(change, sb);
+ sb.append(AXml.addTagData("artTId", String.valueOf(change.getItemTypeId())));
+ sb.append(AXml.addTagData("gamma", String.valueOf(change.getGamma())));
+ sb.append(AXml.addTagData("artId", String.valueOf(change.getArtId())));
+ sb.append(AXml.addTagData("tTranId", String.valueOf(change.getTxDelta().getEndTx().getId())));
+ sb.append(AXml.addTagData("fTranId", String.valueOf(change.getTxDelta().getStartTx().getId())));
+ sb.append(AXml.addTagData("mType", String.valueOf(change.getModificationType().name())));
+ sb.append(AXml.addTagData("bArtId", String.valueOf(change.getBArtId())));
+ sb.append(AXml.addTagData("relId", String.valueOf(change.getRelLinkId())));
+ sb.append(AXml.addTagData("rat", change.getRationale()));
+ sb.append(AXml.addTagData("relTId", String.valueOf(change.getRelationType().getId())));
+ sb.append(AXml.addTagData("hist", String.valueOf(change.isHistorical())));
+ return AXml.addTagData("RelChg", sb.toString());
+ }
+
+ private static String toXml(ArtifactChange change) {
+ StringBuffer sb = new StringBuffer();
+ toXmlCommon(change, sb);
+ sb.append(AXml.addTagData("artTId", String.valueOf(change.getItemTypeId())));
+ sb.append(AXml.addTagData("gamma", String.valueOf(change.getGamma())));
+ sb.append(AXml.addTagData("artId", String.valueOf(change.getArtId())));
+ sb.append(AXml.addTagData("tTranId", String.valueOf(change.getTxDelta().getEndTx().getId())));
+ sb.append(AXml.addTagData("fTranId", String.valueOf(change.getTxDelta().getStartTx().getId())));
+ sb.append(AXml.addTagData("mType", String.valueOf(change.getModificationType().name())));
+ sb.append(AXml.addTagData("hist", String.valueOf(change.isHistorical())));
+ return AXml.addTagData("ArtChg", sb.toString());
+ }
+
+ private static String toXml(AttributeChange change) {
+ StringBuffer sb = new StringBuffer();
+ toXmlCommon(change, sb);
+ sb.append(AXml.addTagData("artTId", String.valueOf(change.getItemTypeId())));
+ sb.append(AXml.addTagData("gamma", String.valueOf(change.getGamma())));
+ sb.append(AXml.addTagData("artId", String.valueOf(change.getArtId())));
+ sb.append(AXml.addTagData("tTranId", String.valueOf(change.getTxDelta().getEndTx().getId())));
+ sb.append(AXml.addTagData("fTranId", String.valueOf(change.getTxDelta().getStartTx().getId())));
+ sb.append(AXml.addTagData("mType", String.valueOf(change.getModificationType().name())));
+ sb.append(AXml.addTagData("aModType", String.valueOf(change.getArtModType().name())));
+ sb.append(AXml.addTagData("attrId", String.valueOf(change.getAttrId())));
+ sb.append(AXml.addTagData("attrTId", String.valueOf(change.getAttributeType().getId())));
+ sb.append(AXml.addTagData("hist", String.valueOf(change.isHistorical())));
+ return AXml.addTagData("AttrChg", sb.toString());
+ }
+
+ private static boolean isXmlChangeDataEqual(String currentData, String storedData) {
+ int checkSum1 = getCheckSum(currentData);
+ int checkSum2 = getCheckSum(storedData);
+
+ boolean result = checkSum1 == checkSum2;
+ if (!result) {
+ ChangeReportComparer comparer = new ChangeReportComparer();
+ comparer.compare(currentData, storedData);
+
+ OseeLog.log(AtsPlugin.class, Level.SEVERE,
+ String.format("Checksums not equal - stored:[%s] current:[%s]", checkSum1, checkSum2));
+ }
+ return result;
+ }
+
+ private static int getCheckSum(String data) {
+ int checksum = -1;
+ for (int index = 0; index < data.length(); index++) {
+ char character = data.charAt(index);
+ if (character != '\n' && character != '\t' && character != '\r' && character != ' ') {
+ checksum += character;
+ }
+ }
+ return checksum;
+ }
+}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java index 2d9637c3026..a6066b2cc3f 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java @@ -32,6 +32,7 @@ import org.eclipse.osee.framework.core.enums.Active; import org.eclipse.osee.framework.core.exception.MultipleAttributesExist; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; @@ -42,7 +43,6 @@ import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; import org.eclipse.osee.framework.ui.skynet.results.XResultData; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; import org.eclipse.osee.framework.ui.skynet.util.ChangeType; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.Displays; /** @@ -128,13 +128,9 @@ public class FirstTimeQualityMetricReportItem extends XNavigateItemAction { } } - private static String[] HEADER_STRINGS = new String[] { - "Version", - "StartDate", - "RelDate", - "Num 1 + 2 Orig During Next Release Cycle", - "Num Non-Support Released", - "Ratio Orig 1 and 2 Bugs/Number Released"}; + private static String[] HEADER_STRINGS = + new String[] {"Version", "StartDate", "RelDate", "Num 1 + 2 Orig During Next Release Cycle", + "Num Non-Support Released", "Ratio Orig 1 and 2 Bugs/Number Released"}; /** * Ratio of # of priority 1 and 2 OSEE problem actions (non-cancelled) that were orginated between a release and the @@ -184,8 +180,8 @@ public class FirstTimeQualityMetricReportItem extends XNavigateItemAction { } sb.append(AHTML.addRowMultiColumnTable(new String[] { verMet.getVerArt().getName(), - XDate.getDateStr(thisReleaseStartDate, XDate.MMDDYY), - XDate.getDateStr(thisReleaseEndDate, XDate.MMDDYY), + DateUtil.getMMDDYY(thisReleaseStartDate), + DateUtil.getMMDDYY(thisReleaseEndDate), numOrigDurningNextReleaseCycle == 0 ? "N/A" : String.valueOf(numOrigDurningNextReleaseCycle), numNonSupportReleased == null ? "N/A" : String.valueOf(numNonSupportReleased), numOrigDurningNextReleaseCycle == 0 || numNonSupportReleased == null || numNonSupportReleased == 0 ? "N/A" : AtsUtil.doubleToI18nString((double) numOrigDurningNextReleaseCycle / (double) numNonSupportReleased)})); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java index c3a3c314407..05dac8cf40a 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java @@ -26,6 +26,7 @@ import org.eclipse.osee.framework.core.enums.Active; import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; import org.eclipse.osee.framework.core.exception.MultipleAttributesExist; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -36,7 +37,6 @@ import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; import org.eclipse.osee.framework.ui.skynet.FrameworkImage; import org.eclipse.osee.framework.ui.skynet.results.XResultData; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.Displays; /** @@ -115,7 +115,7 @@ public class GenerateFullVersionReportItem extends XNavigateItemAction { private final TeamDefinitionArtifact teamDef; public PublishReportJob(TeamDefinitionArtifact teamDef) { - super(teamDef.getName() + " as of " + XDate.getDateNow()); + super(teamDef.getName() + " as of " + DateUtil.getDateNow()); this.teamDef = teamDef; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java index 9b209257a12..30ccc88de23 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java @@ -24,6 +24,7 @@ import org.eclipse.osee.ats.world.WorldXViewerFactory; import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem; import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem.ReviewState; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; @@ -32,7 +33,6 @@ import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; import org.eclipse.osee.framework.ui.skynet.artifact.massEditor.MassArtifactEditor; import org.eclipse.osee.framework.ui.skynet.artifact.massEditor.MassArtifactEditorInput; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.skynet.widgets.dialog.UserListDialog; import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.SkynetXViewerFactory; import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerArtifactNameColumn; @@ -85,7 +85,7 @@ public class GenerateReviewParticipationReport extends XNavigateItemAction { MyReviewWorkflowItem srch = new MyReviewWorkflowItem("", user, ReviewState.All); Collection<Artifact> reviewArts = srch.performSearchGetResults(); MassArtifactEditorInput input = - new MassArtifactEditorInput(getName() + " as of " + XDate.getDateNow(), reviewArts, + new MassArtifactEditorInput(getName() + " as of " + DateUtil.getDateNow(), reviewArts, new ReviewParticipationXViewerFactory(user)); MassArtifactEditor.editArtifacts(input); } catch (Exception ex) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ActionTeamDateListDialog.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ActionTeamDateListDialog.java index 0b060343de2..83ed3e058af 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ActionTeamDateListDialog.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ActionTeamDateListDialog.java @@ -20,6 +20,7 @@ import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.enums.Active; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.ui.skynet.ArtifactViewerSorter; import org.eclipse.osee.framework.ui.skynet.util.ArtifactDescriptiveLabelProvider; @@ -138,7 +139,7 @@ public class ActionTeamDateListDialog extends SelectionDialog { comp.setLayout(new GridLayout(2, false)); comp.setLayoutData(new GridData(GridData.FILL_BOTH)); - dateCombo.setFormat(XDate.MMDDYY); + dateCombo.setFormat(DateUtil.MMDDYY); dateCombo.setRequiredEntry(true); dateCombo.createWidgets(comp, 2); if (selectedDate != null) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ExtendedStatusReportJob.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ExtendedStatusReportJob.java index 6b5d2762cf5..9aabe11e8c5 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ExtendedStatusReportJob.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/report/ExtendedStatusReportJob.java @@ -26,6 +26,7 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -35,7 +36,6 @@ import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.skynet.results.ResultsEditor; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * @author Donald G. Dunne @@ -61,7 +61,7 @@ public class ExtendedStatusReportJob extends Job { try { final String html = AHTML.simplePage(getStatusReport(monitor, jobName, teamArts)); - ResultsEditor.open(new XResultPage(jobName + " - " + XDate.getDateNow(XDate.MMDDYYHHMM), html, + ResultsEditor.open(new XResultPage(jobName + " - " + DateUtil.getMMDDYYHHMM(), html, Manipulations.HTML_MANIPULATIONS)); AWorkbench.popup("Complete", jobName + " Complete...Results in ATS Results"); monitor.done(); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsNotifyUsers.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsNotifyUsers.java index e33d40cc619..9cce530d7a2 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsNotifyUsers.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsNotifyUsers.java @@ -24,6 +24,7 @@ import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.widgets.role.UserRole; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.Collections; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.UserManager; @@ -41,7 +42,6 @@ import org.eclipse.osee.framework.ui.skynet.notify.INotificationManager; import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationEvent; import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager; import org.eclipse.osee.framework.ui.skynet.util.email.EmailUtil; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * <REM2> @@ -146,7 +146,7 @@ public class AtsNotifyUsers implements IArtifactEventListener, IFrameworkTransac getIdString(sma), NotifyType.Cancelled.name(), String.format( "[%s] titled [%s] was cancelled from the [%s] state on [%s].<br>Reason: [%s]", sma.getArtifactTypeName(), sma.getName(), cancelledItem.getState(), - cancelledItem.getDate(XDate.MMDDYYHHMM), cancelledItem.getMsg()))); + cancelledItem.getDate(DateUtil.MMDDYYHHMM), cancelledItem.getMsg()))); } } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/DoesNotWorkItemAts.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/DoesNotWorkItemAts.java index 66f41bef96c..7a0afbe5220 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/DoesNotWorkItemAts.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/DoesNotWorkItemAts.java @@ -50,6 +50,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.PurgeArtifacts; import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; import org.eclipse.osee.framework.skynet.core.relation.RelationLink; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.framework.skynet.core.utility.ElapsedTime; import org.eclipse.osee.framework.ui.plugin.PluginUiImage; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.Result; @@ -57,7 +58,6 @@ import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLo import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; import org.eclipse.osee.framework.ui.skynet.results.XResultData; -import org.eclipse.osee.framework.ui.skynet.util.ElapsedTime; import org.eclipse.osee.framework.ui.swt.Displays; /** diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Overview.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Overview.java index 244753e4d40..67435c88ea7 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Overview.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Overview.java @@ -29,6 +29,7 @@ import org.eclipse.osee.framework.core.enums.IRelationEnumeration; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.jdk.core.util.AHTML.CellItem; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -36,7 +37,6 @@ import org.eclipse.osee.framework.skynet.core.relation.RelationLink; import org.eclipse.osee.framework.skynet.core.utility.Artifacts; import org.eclipse.osee.framework.ui.skynet.results.XResultData; import org.eclipse.osee.framework.ui.skynet.results.html.XResultBrowserHyperCmd; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; public class Overview { @@ -142,7 +142,7 @@ public class Overview { AHTML.getLabelStr(labelFont, "Type: ") + sma.getArtifactTypeName(), AHTML.getLabelStr(labelFont, "Id: ") + sma.getHumanReadableId()})); addTable(getLabelValue("Originator", sma.getOriginator().getName()), - getLabelValue("Creation Date", XDate.getDateStr(sma.getLog().getCreationDate(), XDate.MMDDYYHHMM))); + getLabelValue("Creation Date", DateUtil.getMMDDYYHHMM(sma.getLog().getCreationDate()))); if (sma.isTeamWorkflow()) { addTable(getLabelValue("Team", ((TeamWorkFlowArtifact) sma).getTeamName()), getLabelValue("Assignees", Artifacts.toString("; ", sma.getStateMgr().getAssignees()))); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java index f0f64bfd730..ff6b3f86a08 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java @@ -29,7 +29,6 @@ import org.eclipse.osee.framework.jdk.core.type.HashCollection; import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * @author Donald G. Dunne @@ -147,8 +146,7 @@ public class SMAMetrics { (manDaysNeeded > 0 ? String.format("ManDaysNeeded: %5.2f ", manDaysNeeded) : ""), (versionArtifact != null ? String.format("Version: %s EstRelDate: %s DaysLeft: %d ", versionArtifact.getName(), - (estimatedReleaseDate == null ? "Not Set" : XDate.getDateStr(estimatedReleaseDate, XDate.MMDDYY)), - daysTillRel) : "")); + (estimatedReleaseDate == null ? "Not Set" : DateUtil.getMMDDYY(estimatedReleaseDate)), daysTillRel) : "")); } /** @@ -288,8 +286,7 @@ public class SMAMetrics { hrsSpent, (versionArtifact != null ? String.format("\nVersion: %s Estimated Release Date: %s Days Left: %d ", versionArtifact.getName(), - (estimatedReleaseDate == null ? "Not Set" : XDate.getDateStr(estimatedReleaseDate, XDate.MMDDYY)), - daysTillRel) : "")); + (estimatedReleaseDate == null ? "Not Set" : DateUtil.getMMDDYY(estimatedReleaseDate)), daysTillRel) : "")); } /** diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionMetrics.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionMetrics.java index a1cac8f7cf3..3a7174165c3 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionMetrics.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionMetrics.java @@ -21,9 +21,9 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.ui.skynet.util.ChangeType; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * @author Donald G. Dunne @@ -68,7 +68,7 @@ public class VersionMetrics { if (verArt.getReleaseDate() == null) { return null; } - return XDate.calculateDifference(startDate, verArt.getReleaseDate()); + return DateUtil.getDifference(startDate, verArt.getReleaseDate()); } public Date getReleaseStartDate() throws OseeCoreException { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionReportJob.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionReportJob.java index bc4cdcc453c..20383a10c6a 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionReportJob.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/VersionReportJob.java @@ -29,11 +29,11 @@ import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.skynet.results.ResultsEditor; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * @author Donald G. Dunne @@ -52,7 +52,7 @@ public class VersionReportJob extends Job { @Override public IStatus run(IProgressMonitor monitor) { try { - final String html = getReleaseReportHtml(title + " - " + XDate.getDateNow(XDate.MMDDYYHHMM), verArt, monitor); + final String html = getReleaseReportHtml(title + " - " + DateUtil.getMMDDYYHHMM(), verArt, monitor); ResultsEditor.open(new XResultPage(title, html, Manipulations.HTML_MANIPULATIONS)); } catch (Exception ex) { return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex); @@ -89,7 +89,7 @@ public class VersionReportJob extends Job { // Create hyperlinks reverse sorted StringBuffer sb = new StringBuffer(); sb.append(AHTML.heading(2, teamDef + " Releases")); - sb.append(AHTML.bold("Report generated by OSEE ATS on " + XDate.getDateNow()) + AHTML.newline(2)); + sb.append(AHTML.bold("Report generated by OSEE ATS on " + DateUtil.getDateNow()) + AHTML.newline(2)); for (int x = dateSort.length - 1; x >= 0; x--) { VersionArtifact verArt = dateToVerArt.get(dateSort[x]); if (verArt.isNextVersion() || verArt.isReleased()) { @@ -118,7 +118,7 @@ public class VersionReportJob extends Job { private static String getDateString(Date date) { if (date != null) { - return XDate.getDateStr(date, XDate.MMDDYY); + return DateUtil.getMMDDYY(date); } return null; } @@ -156,13 +156,9 @@ public class VersionReportJob extends Job { } System.out.println(str); sb.append(AHTML.addRowMultiColumnTable( - new String[] { - "Action", - team.getTeamName(), - team.getWorldViewPriority(), - team.getWorldViewChangeTypeStr(), - team.getName(), - team.getHumanReadableId()}, null, (x % 2 == 0 ? null : "#cccccc"))); + new String[] {"Action", team.getTeamName(), team.getWorldViewPriority(), + team.getWorldViewChangeTypeStr(), team.getName(), team.getHumanReadableId()}, null, + (x % 2 == 0 ? null : "#cccccc"))); for (TaskArtifact taskArt : team.getTaskArtifacts()) { sb.append(AHTML.addRowMultiColumnTable( diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/commit/XCommitLabelProvider.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/commit/XCommitLabelProvider.java index 89aa70047ba..ca36c48fd0b 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/commit/XCommitLabelProvider.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/commit/XCommitLabelProvider.java @@ -20,10 +20,10 @@ import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.core.model.TransactionRecord; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.ui.skynet.FrameworkImage; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.swt.graphics.Image; @@ -105,7 +105,8 @@ public class XCommitLabelProvider extends XViewerLabelProvider { TransactionRecord transactionRecord = commitXManager.getXCommitViewer().getTeamArt().getBranchMgr().getCommitTransactionRecord(configArt); if (transactionRecord != null) { - return new XDate(transactionRecord.getTimeStamp()).getMMDDYYHHMM(); + new DateUtil(); + return DateUtil.getMMDDYYHHMM(transactionRecord.getTimeStamp()); } return "Not Committed"; } else if (xCol.equals(CommitXManagerFactory.Commit_Comment)) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectItem.java index 61a7848d439..f03aa29ec18 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectItem.java @@ -17,11 +17,11 @@ import java.util.HashSet; import java.util.Set; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AXml; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.GUID; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.ui.skynet.FrameworkImage; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.swt.graphics.Image; @@ -195,20 +195,13 @@ public class DefectItem { return date; } - public String getCreatedDate(String pattern) { - if (pattern != null) { - return new SimpleDateFormat(pattern).format(date); - } - return date.toString(); - } - public void setDate(Date date) { this.date = date; } @Override public String toString() { - return severity + " - " + disposition + " - " + injectionActivity + " - " + user + " on " + getCreatedDate(XDate.MMDDYYHHMM) + "\n"; + return severity + " - " + disposition + " - " + injectionActivity + " - " + user + " on " + DateUtil.getMMDDYYHHMM(date) + "\n"; } public User getUser() { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectLabelProvider.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectLabelProvider.java index 6c70f0f8931..3059a590682 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectLabelProvider.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectLabelProvider.java @@ -16,10 +16,10 @@ import org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider; import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Disposition; import org.eclipse.osee.ats.util.widgets.defect.DefectItem.InjectionActivity; import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Severity; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.ui.plugin.PluginUiImage; import org.eclipse.osee.framework.ui.skynet.ArtifactImageManager; import org.eclipse.osee.framework.ui.skynet.FrameworkImage; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.swt.graphics.Image; @@ -56,7 +56,7 @@ public class DefectLabelProvider extends XViewerLabelProvider { } else if (aCol.equals(DefectXViewerFactory.Closed_Col)) { return String.valueOf(defectItem.isClosed()); } else if (aCol.equals(DefectXViewerFactory.Created_Date_Col)) { - return defectItem.getCreatedDate(XDate.MMDDYYHHMM); + return DateUtil.getMMDDYYHHMM(defectItem.getDate()); } else if (aCol.equals(DefectXViewerFactory.Description_Col)) { return defectItem.getDescription(); } else if (aCol.equals(DefectXViewerFactory.Resolution_Col)) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectManager.java index d6d7c563853..d5ec268a47a 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/DefectManager.java @@ -23,6 +23,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.jdk.core.util.AXml; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; @@ -30,7 +31,6 @@ import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.Attribute; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * @author Donald G. Dunne @@ -185,7 +185,7 @@ public class DefectManager { } else { builder.append("<TD>NONE</TD>"); } - builder.append("<TD>" + item.getCreatedDate(XDate.MMDDYYHHMM) + "</TD>"); + builder.append("<TD>" + DateUtil.getMMDDYYHHMM(item.getDate()) + "</TD>"); builder.append("<TD>" + item.getDescription() + "</TD>"); builder.append("<TD>" + item.getLocation() + "</TD>"); builder.append("<TD>" + item.getResolution() + "</TD>"); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java index 11f12c13f7f..ff963721754 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java @@ -32,6 +32,7 @@ import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Disposition; import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Severity; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -49,7 +50,6 @@ import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.FrameworkImage; import org.eclipse.osee.framework.ui.skynet.widgets.IArtifactWidget; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.skynet.widgets.XWidget; import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog; import org.eclipse.osee.framework.ui.swt.ALayout; @@ -497,27 +497,12 @@ public class XDefectViewer extends XWidget implements IArtifactWidget, IArtifact try { html.append(AHTML.addSpace(1) + AHTML.getLabelStr(AHTML.LABEL_FONT, "Tasks")); html.append(AHTML.startBorderTable(100, normalColor, "")); - html.append(AHTML.addHeaderRowMultiColumnTable(new String[] { - "Date", - "User", - "Location", - "Description", - "Severity", - "Disposition", - "Injection Activity", - "Resolution", - "Location", - "Closted"})); + html.append(AHTML.addHeaderRowMultiColumnTable(new String[] {"Date", "User", "Location", "Description", + "Severity", "Disposition", "Injection Activity", "Resolution", "Location", "Closted"})); for (DefectItem item : reviewArt.getDefectManager().getDefectItems()) { - html.append(AHTML.addRowMultiColumnTable(new String[] { - item.getCreatedDate(XDate.MMDDYY), - item.getUser().getName(), - item.getLocation(), - item.getDescription(), - item.getSeverity().name(), - item.getDisposition().name(), - item.getInjectionActivity().name(), - item.getResolution(), + html.append(AHTML.addRowMultiColumnTable(new String[] {DateUtil.getMMDDYY(item.getDate()), + item.getUser().getName(), item.getLocation(), item.getDescription(), item.getSeverity().name(), + item.getDisposition().name(), item.getInjectionActivity().name(), item.getResolution(), item.isClosed() + ""})); } html.append(AHTML.endBorderTable()); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/VersionArtifactLabelProvider.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/VersionArtifactLabelProvider.java index 7793eb47ec9..b0042373ae9 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/VersionArtifactLabelProvider.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/dialog/VersionArtifactLabelProvider.java @@ -14,9 +14,9 @@ import java.util.logging.Level; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.ui.skynet.ArtifactImageManager; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.swt.graphics.Image; /** @@ -31,7 +31,7 @@ public class VersionArtifactLabelProvider extends LabelProvider { String str = verArt.getName(); try { if (verArt.getEstimatedReleaseDate() != null) { - str += " - Estimated Release: " + XDate.getDateStr(verArt.getEstimatedReleaseDate(), XDate.MMDDYY); + str += " - Estimated Release: " + DateUtil.getMMDDYY(verArt.getEstimatedReleaseDate()); } } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsMetricsComposite.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsMetricsComposite.java index e6aa650d2eb..7c8d0816681 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsMetricsComposite.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsMetricsComposite.java @@ -24,6 +24,7 @@ import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.SMAMetrics; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; @@ -113,7 +114,7 @@ public class AtsMetricsComposite extends ScrolledComposite { if (!refreshedOnce) { Label label = new Label(toolBarComposite, SWT.NONE); - label.setText(" Last Updated: " + XDate.getDateNow(XDate.MMDDYYHHMM)); + label.setText(" Last Updated: " + DateUtil.getMMDDYYHHMM()); adapt(label); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldComposite.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldComposite.java index 49376d0b2b0..a4ac2bc10e4 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldComposite.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldComposite.java @@ -29,6 +29,7 @@ import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.world.search.WorldSearchItem; import org.eclipse.osee.ats.world.search.WorldSearchItem.SearchType; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -37,7 +38,6 @@ import org.eclipse.osee.framework.ui.skynet.action.RefreshAction.IRefreshActionH import org.eclipse.osee.framework.ui.skynet.render.PresentationType; import org.eclipse.osee.framework.ui.skynet.render.RendererManager; import org.eclipse.osee.framework.ui.skynet.util.DbConnectionExceptionComposite; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.ALayout; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.swt.SWT; @@ -216,7 +216,7 @@ public class WorldComposite extends ScrolledComposite implements IWorldViewerEve @Override public void run() { iWorldEditor.setTableTitle(title, warning); - worldXViewer.setReportingTitle(title + " - " + XDate.getDateNow()); + worldXViewer.setReportingTitle(title + " - " + DateUtil.getDateNow()); }; }); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/GenerateDetailedCoverageReportAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/GenerateDetailedCoverageReportAction.java index 2f0df97f2eb..7cdaab109b8 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/GenerateDetailedCoverageReportAction.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/GenerateDetailedCoverageReportAction.java @@ -32,12 +32,12 @@ import org.eclipse.osee.coverage.model.CoveragePackageBase; import org.eclipse.osee.coverage.util.CoverageUtil; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.util.TableWriterAdaptor; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.plugin.core.util.OseeData; import org.eclipse.osee.framework.ui.skynet.FrameworkImage; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.swt.program.Program; @@ -70,7 +70,7 @@ public class GenerateDetailedCoverageReportAction extends Action { try { Date date = new Date(); File file = - OseeData.getFile("coverage_" + XDate.getDateStr(date, XDate.YYYY_MM_DD).replaceAll("\\\\", "_") + ".pdf"); + OseeData.getFile("coverage_" + DateUtil.getDateStr(date, DateUtil.YYYY_MM_DD).replaceAll("\\\\", "_") + ".pdf"); OutputStream outputStream = new FileOutputStream(file, true); TableWriterAdaptor masterAdaptor = new TableWriterAdaptor("pdf", outputStream); @@ -83,7 +83,7 @@ public class GenerateDetailedCoverageReportAction extends Action { masterAdaptor.writeRow(values); } - masterAdaptor.writeTitle("Detailed Coverage Report as of " + XDate.getDateStr(date, XDate.MMDDYYHHMM) + " for " + this.coveragePackageHandler.getCoveragePackageBase().getName()); + masterAdaptor.writeTitle("Detailed Coverage Report as of " + DateUtil.getMMDDYYHHMM(date) + " for " + this.coveragePackageHandler.getCoveragePackageBase().getName()); masterAdaptor.openDocument(); masterAdaptor.writeDocument(); diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java index f5667b64842..f12ea57c530 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java @@ -36,11 +36,11 @@ import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.plugin.core.IActionable; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.relation.RelationManager; +import org.eclipse.osee.framework.skynet.core.utility.ElapsedTime; import org.eclipse.osee.framework.ui.plugin.OseeUiActions; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.skynet.OseeContributionItem; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; -import org.eclipse.osee.framework.ui.skynet.util.ElapsedTime; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.ui.IEditorInput; diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorCoverageTab.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorCoverageTab.java index 26f2bf1267c..9546be8229e 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorCoverageTab.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorCoverageTab.java @@ -29,6 +29,7 @@ import org.eclipse.osee.coverage.util.ISaveable; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.jdk.core.type.Pair; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; @@ -36,7 +37,6 @@ import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.skynet.action.CollapseAllAction; import org.eclipse.osee.framework.ui.skynet.action.ExpandAllAction; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.ALayout; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.swt.SWT; @@ -73,8 +73,7 @@ public class CoverageEditorCoverageTab extends FormPage implements ISaveable { super.createFormContent(managedForm); scrolledForm = managedForm.getForm(); - scrolledForm.setText(coveragePackageBase.getName() + " - " + XDate.getDateStr(coveragePackageBase.getDate(), - XDate.MMDDYYHHMM) + " - " + coveragePackageBase.getCoverageItems().size() + " Coverage Items"); + scrolledForm.setText(coveragePackageBase.getName() + " - " + DateUtil.getMMDDYYHHMM(coveragePackageBase.getDate()) + " - " + coveragePackageBase.getCoverageItems().size() + " Coverage Items"); scrolledForm.setImage(ImageManager.getImage(CoverageUtil.getCoveragePackageBaseImage(coveragePackageBase))); scrolledForm.getBody().setLayout(new GridLayout(2, false)); Composite mainComp = scrolledForm.getBody(); diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java index d8dd1595660..d5c50121e3a 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java @@ -41,8 +41,8 @@ import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.framework.skynet.core.utility.ElapsedTime; import org.eclipse.osee.framework.ui.plugin.util.Result; -import org.eclipse.osee.framework.ui.skynet.util.ElapsedTime; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.TreeColumn; diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java index bf0a5a2d4e8..c5d4aea7319 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java @@ -16,10 +16,10 @@ import java.util.Date; import java.util.List; import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.skynet.core.artifact.KeyValueArtifact; import org.eclipse.osee.framework.ui.skynet.results.XResultData; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** * Single import of coverage information that includes @@ -49,17 +49,17 @@ public class CoverageImport extends CoveragePackageBase { @Override public String getName() { - return super.getName() + " - " + XDate.getDateStr(runDate, XDate.MMDDYYHHMM) + " - " + getCoverageItems().size() + " Coverage Items"; + return super.getName() + " - " + DateUtil.getMMDDYYHHMM(runDate) + " - " + getCoverageItems().size() + " Coverage Items"; } @Override public void getOverviewHtmlHeader(XResultData xResultData) { - xResultData.log(AHTML.bold("Coverage Import for " + XDate.getDateStr(getRunDate(), XDate.HHMMSSSS)) + AHTML.newline()); + xResultData.log(AHTML.bold("Coverage Import for " + DateUtil.getDateStr(getRunDate(), DateUtil.HHMMSSSS)) + AHTML.newline()); xResultData.log(AHTML.getLabelValueStr("Location", location)); if (Strings.isValid(getBlamName())) { xResultData.log(AHTML.getLabelValueStr("Blam Name", getBlamName())); } - xResultData.log(AHTML.getLabelValueStr("Run Date", XDate.getDateStr(getRunDate(), XDate.MMDDYYHHMM))); + xResultData.log(AHTML.getLabelValueStr("Run Date", DateUtil.getMMDDYYHHMM(getRunDate()))); } @Override diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java index 310c38dd95e..162cece24df 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java @@ -12,10 +12,10 @@ package org.eclipse.osee.coverage.model; import java.util.Date; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.skynet.core.artifact.KeyValueArtifact; import org.eclipse.osee.framework.ui.skynet.results.XResultData; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; public class CoveragePackage extends CoveragePackageBase { @@ -44,8 +44,7 @@ public class CoveragePackage extends CoveragePackageBase { @Override public void getOverviewHtmlHeader(XResultData xResultData) { - xResultData.log(AHTML.bold("Coverage Package " + getName() + " as of " + XDate.getDateStr(new Date(), - XDate.MMDDYYHHMM)) + AHTML.newline()); + xResultData.log(AHTML.bold("Coverage Package " + getName() + " as of " + DateUtil.getMMDDYYHHMM(new Date())) + AHTML.newline()); } public void setCreationDate(Date creationDate) { diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java index 60b7cadf56b..50db31a81dc 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java @@ -38,8 +38,8 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.framework.skynet.core.utility.ElapsedTime; import org.eclipse.osee.framework.ui.plugin.util.Result; -import org.eclipse.osee.framework.ui.skynet.util.ElapsedTime; /** * @author Donald G. Dunne diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/DateUtil.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/DateUtil.java index 415a55d04fd..3c697271439 100644 --- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/DateUtil.java +++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/DateUtil.java @@ -10,14 +10,28 @@ *******************************************************************************/ package org.eclipse.osee.framework.jdk.core.util; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; +import java.util.HashMap; /** * @author Donald G. Dunne */ public class DateUtil { + public static final long MILLISECONDS_IN_A_WEEK = 604800000; + public static final long MILLISECONDS_IN_A_DAY = 86400000; + public final static String MMDDYY = "MM/dd/yyyy"; + public final static String YYYYMMDD = "yyyy/MM/dd"; + public final static String YYYY_MM_DD = "yyyy_MM_dd"; + public final static String MMDDYYHHMM = "MM/dd/yyyy hh:mm a"; + public final static String HHMMSS = "hh:mm:ss"; + public final static String HHMMSSSS = "hh:mm:ss:SS"; + public final static String HHMM = "hh:mm"; + public static final HashMap<String, DateFormat> dateFormats = new HashMap<String, DateFormat>(); + public static Calendar getCalendar(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); @@ -41,4 +55,114 @@ public class DateUtil { return workingDays; } + public static String getHHMM(Date date) { + return get(date, HHMM); + } + + public static String getHHMMSS(Date date) { + return get(date, HHMMSS); + } + + public static String getYYYYMMDD() { + return getYYYYMMDD(new Date()); + } + + public static String getYYYYMMDD(Date date) { + return get(date, YYYYMMDD); + } + + public static String getMMDDYY(Date date) { + return get(date, MMDDYY); + } + + public static String getMMDDYYHHMM() { + return getMMDDYYHHMM(new Date()); + } + + public static String getMMDDYYHHMM(Date date) { + return get(date, MMDDYYHHMM); + } + + public static String getDateNow() { + return getDateNow(new Date()); + } + + public static String getDateNow(Date date) { + return getDateNow(date, MMDDYY); + } + + public static String getTimeStamp() { + return getDateNow(new Date(), HHMMSSSS); + } + + public static String getDateStr(Date date, String format) { + if (date == null) { + return ""; + } + DateFormat dateFormat = dateFormats.get(format); + if (dateFormat == null) { + dateFormat = new SimpleDateFormat(format); + dateFormats.put(format, dateFormat); + } + return dateFormat.format(date); + } + + public static String getDateNow(String format) { + return get(new Date(), format); + } + + public static String getDateNow(Date date, String format) { + return get(date, format); + } + + public static String get(Date date) { + if (date == null) { + return ""; + } + return DateFormat.getDateInstance().format(date); + } + + public static String get(Date date, String pattern) { + return get(date, new SimpleDateFormat(pattern)); + } + + public static String get(Date date, DateFormat dateFormat) { + if (date == null) { + return ""; + } + String result = dateFormat.format(date); + return result; + } + + public static int getDifference(Date a, Date b) { + int tempDifference = 0; + int difference = 0; + Calendar earlier = Calendar.getInstance(); + Calendar later = Calendar.getInstance(); + + if (a.compareTo(b) < 0) { + earlier.setTime(a); + later.setTime(b); + } else { + earlier.setTime(b); + later.setTime(a); + } + + while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR)) { + tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR)); + difference += tempDifference; + + earlier.add(Calendar.DAY_OF_YEAR, tempDifference); + } + + if (earlier.get(Calendar.DAY_OF_YEAR) != later.get(Calendar.DAY_OF_YEAR)) { + tempDifference = later.get(Calendar.DAY_OF_YEAR) - earlier.get(Calendar.DAY_OF_YEAR); + difference += tempDifference; + + earlier.add(Calendar.DAY_OF_YEAR, tempDifference); + } + + return difference; + } + } diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java index cbf7181a71e..a9e959c4f10 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java @@ -50,6 +50,7 @@ import org.eclipse.osee.framework.skynet.core.relation.order.RelationOrderFactor import org.eclipse.osee.framework.skynet.core.relation.order.RelationSorterProvider; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.skynet.core.types.IArtifact; +import org.eclipse.osee.framework.skynet.core.utility.ElapsedTime; /** * @author Ryan D. Brooks @@ -290,6 +291,7 @@ public class RelationManager { } public static Set<Artifact> getRelatedArtifacts(Collection<? extends Artifact> artifacts, int depth, DeletionFlag allowDeleted, IRelationEnumeration... relationEnums) throws OseeCoreException { + ElapsedTime elapsedTime = new ElapsedTime("RelMgr - getRelatedArtifacts"); Set<Artifact> relatedArtifacts = new HashSet<Artifact>(artifacts.size() * 8); Collection<Artifact> newArtifactsToSearch = new ArrayList<Artifact>(artifacts); Collection<Artifact> newArtifacts = new ArrayList<Artifact>(); diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ElapsedTime.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/ElapsedTime.java index d8790d7c3a6..e58b776b9c5 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ElapsedTime.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/ElapsedTime.java @@ -8,10 +8,10 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.ui.skynet.util; +package org.eclipse.osee.framework.skynet.core.utility; import java.util.Date; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; /** * @author Donald G. Dunne @@ -29,7 +29,7 @@ public class ElapsedTime { public void start(String name) { this.name = name; startDate = new Date(); - System.out.println("\n" + name + " - start " + XDate.getTimeStamp()); + System.out.println("\n" + name + " - start " + DateUtil.getTimeStamp()); } public void end() { @@ -37,7 +37,7 @@ public class ElapsedTime { long diff = endDate.getTime() - startDate.getTime(); String str = String.format("%s - elapsed %d sec - start %s - end %s", name, (diff / 1000), - XDate.getDateStr(startDate, XDate.HHMMSSSS), XDate.getDateStr(endDate, XDate.HHMMSSSS)); + DateUtil.getDateStr(startDate, DateUtil.HHMMSSSS), DateUtil.getDateStr(endDate, DateUtil.HHMMSSSS)); System.out.println(str); } } diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/XResultData.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/XResultData.java index 954f87241b6..8845b3e1eeb 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/XResultData.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/XResultData.java @@ -19,6 +19,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.type.CountingMap; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.jdk.core.util.Lib; import org.eclipse.osee.framework.logging.IHealthStatus; import org.eclipse.osee.framework.logging.OseeLevel; @@ -31,7 +32,6 @@ import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.skynet.results.html.XResultBrowserHyperCmd; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage; import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.osee.framework.ui.swt.Displays; /** @@ -148,7 +148,7 @@ public final class XResultData { } public XResultPage getReport(final String title, Manipulations... manipulations) { - return new XResultPage(title + " - " + XDate.getDateNow(XDate.MMDDYYHHMM), + return new XResultPage(title + " - " + DateUtil.getMMDDYYHHMM(), (sb.toString().equals("") ? "Nothing Logged" : sb.toString()), manipulations); } @@ -274,9 +274,7 @@ public final class XResultData { for (int x = 0; x < 3; x++) { rd.addRaw(AHTML.addRowMultiColumnTable(new String[] {"Type " + x, "Title " + x, x + ""})); } - rd.addRaw(AHTML.addRowMultiColumnTable(new String[] { - "Error / Warning in table ", - "Error: this is error", + rd.addRaw(AHTML.addRowMultiColumnTable(new String[] {"Error / Warning in table ", "Error: this is error", "Warning: this is warning"})); rd.addRaw(AHTML.endMultiColumnTable()); rd.report("This is my report title"); diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XDate.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XDate.java index 838cea0d581..8bb574c39ae 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XDate.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XDate.java @@ -15,7 +15,6 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; -import java.util.HashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.eclipse.core.runtime.IStatus; @@ -23,6 +22,7 @@ import org.eclipse.core.runtime.Status; import org.eclipse.nebula.widgets.calendarcombo.CalendarCombo; import org.eclipse.nebula.widgets.calendarcombo.CalendarListenerAdapter; import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.swt.Widgets; import org.eclipse.swt.SWT; @@ -36,20 +36,9 @@ import org.eclipse.swt.widgets.Label; * @author Donald G. Dunne */ public class XDate extends XWidget { - public static final long MILLISECONDS_IN_A_WEEK = 604800000; - public static final long MILLISECONDS_IN_A_DAY = 86400000; - public final static String MMDDYY = "MM/dd/yyyy"; - public final static String YYYYMMDD = "yyyy/MM/dd"; - public final static String YYYY_MM_DD = "yyyy_MM_dd"; - public final static String MMDDYYHHMM = "MM/dd/yyyy hh:mm a"; - public final static String HHMMSS = "hh:mm:ss"; - public final static String HHMMSSSS = "hh:mm:ss:SS"; - public final static String HHMM = "hh:mm"; - - public static final HashMap<String, DateFormat> dateFormats = new HashMap<String, DateFormat>(); private final ArrayList<ModifyListener> listeners = new ArrayList<ModifyListener>(); - private String defaultFormat = MMDDYYHHMM; + private String defaultFormat = DateUtil.MMDDYYHHMM; private boolean requireFutureDate = false; private CalendarCombo dateCombo; private Composite parent; @@ -73,22 +62,6 @@ public class XDate extends XWidget { date = null; } - public String getHHMM() { - return get(HHMM); - } - - public String getHHMMSS() { - return get(HHMMSS); - } - - public String getMMDDYY() { - return get(MMDDYY); - } - - public String getMMDDYYHHMM() { - return get(MMDDYYHHMM); - } - @Override public Control getControl() { return dateCombo; @@ -96,7 +69,6 @@ public class XDate extends XWidget { /** * Set the default format for the date ADate.MMMDDDYY or ADate MMMDDDYYYHHHMM or use java.util.date format string - * */ public void setFormat(String format) { defaultFormat = format; @@ -106,32 +78,6 @@ public class XDate extends XWidget { date = null; } - public static String getDateStr(Date date, String format) { - if (date == null) { - return ""; - } - DateFormat dateFormat = dateFormats.get(format); - if (dateFormat == null) { - dateFormat = new SimpleDateFormat(format); - dateFormats.put(format, dateFormat); - } - return dateFormat.format(date); - } - - public static String getDateNow() { - return getDateNow(MMDDYY); - } - - public static String getTimeStamp() { - return getDateNow(HHMMSSSS); - } - - public static String getDateNow(String format) { - XDate d = new XDate(); - d.setDateToNow(); - return d.get(format); - } - /** * Create Date Widgets Label/DatePickerCombo * @@ -335,37 +281,7 @@ public class XDate extends XWidget { } public int getDifference(Date date) { - return calculateDifference(getDate(), date); + return DateUtil.getDifference(getDate(), date); } - public static int calculateDifference(Date a, Date b) { - int tempDifference = 0; - int difference = 0; - Calendar earlier = Calendar.getInstance(); - Calendar later = Calendar.getInstance(); - - if (a.compareTo(b) < 0) { - earlier.setTime(a); - later.setTime(b); - } else { - earlier.setTime(b); - later.setTime(a); - } - - while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR)) { - tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR)); - difference += tempDifference; - - earlier.add(Calendar.DAY_OF_YEAR, tempDifference); - } - - if (earlier.get(Calendar.DAY_OF_YEAR) != later.get(Calendar.DAY_OF_YEAR)) { - tempDifference = later.get(Calendar.DAY_OF_YEAR) - earlier.get(Calendar.DAY_OF_YEAR); - difference += tempDifference; - - earlier.add(Calendar.DAY_OF_YEAR, tempDifference); - } - - return difference; - } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xviewer/skynet/column/XViewerLastModifiedDateColumn.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xviewer/skynet/column/XViewerLastModifiedDateColumn.java index 27387c670ab..a5c19e68959 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xviewer/skynet/column/XViewerLastModifiedDateColumn.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xviewer/skynet/column/XViewerLastModifiedDateColumn.java @@ -15,9 +15,9 @@ import org.eclipse.nebula.widgets.xviewer.XViewerCells; import org.eclipse.nebula.widgets.xviewer.XViewerColumn; import org.eclipse.nebula.widgets.xviewer.XViewerValueColumn; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.change.Change; -import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.eclipse.swt.SWT; /** @@ -36,7 +36,6 @@ public class XViewerLastModifiedDateColumn extends XViewerValueColumn { /** * XViewer uses copies of column definitions so originals that are registered are not corrupted. Classes extending * XViewerValueColumn MUST extend this constructor so the correct sub-class is created - * */ @Override public XViewerLastModifiedDateColumn copy() { @@ -48,10 +47,10 @@ public class XViewerLastModifiedDateColumn extends XViewerValueColumn { public String getColumnText(Object element, XViewerColumn column, int columnIndex) { try { if (element instanceof Artifact) { - return XDate.getDateStr(((Artifact) element).getLastModified(), XDate.MMDDYYHHMM); + return DateUtil.getMMDDYYHHMM(((Artifact) element).getLastModified()); } else if (element instanceof Change) { Date date = ((Change) element).getChangeArtifact().getLastModified(); - return XDate.getDateStr(date, XDate.MMDDYYHHMM); + return DateUtil.getMMDDYYHHMM(date); } } catch (OseeCoreException ex) { return XViewerCells.getCellExceptionString(ex); |