Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2012-08-30 17:30:24 +0000
committerRoberto E. Escobar2012-08-30 17:30:24 +0000
commitecf813e89a127214d826864720d57995876feaac (patch)
treef99b0f6f2184c08cdc615d1f9259c35e872cc13a
parent3ac0e206d7d95e900e043bc2a598c273b3cc8d83 (diff)
downloadorg.eclipse.osee-ecf813e89a127214d826864720d57995876feaac.tar.gz
org.eclipse.osee-ecf813e89a127214d826864720d57995876feaac.tar.xz
org.eclipse.osee-ecf813e89a127214d826864720d57995876feaac.zip
feature: Create ValidateAtsConfiguration navigate item
-rw-r--r--plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/navigate/DemoNavigateViewItems.java2
-rw-r--r--plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperationTest.java4
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/ValidateAtsConfiguration.java96
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsValidation.java4
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateAtsDatabase.java65
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java2
6 files changed, 155 insertions, 18 deletions
diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/navigate/DemoNavigateViewItems.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/navigate/DemoNavigateViewItems.java
index f9148acdafd..dad7095ac34 100644
--- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/navigate/DemoNavigateViewItems.java
+++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/navigate/DemoNavigateViewItems.java
@@ -16,6 +16,7 @@ import java.util.List;
import java.util.logging.Level;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.config.ValidateAtsConfiguration;
import org.eclipse.osee.ats.config.demo.PopulateDemoActions;
import org.eclipse.osee.ats.config.demo.internal.Activator;
import org.eclipse.osee.ats.core.config.AtsConfigCache;
@@ -137,6 +138,7 @@ public class DemoNavigateViewItems implements IAtsNavigateItem {
XNavigateItem healthItems = new XNavigateItem(adminItems, "Health", FrameworkImage.LASER);
new ValidateAtsDatabase(healthItems);
+ new ValidateAtsConfiguration(healthItems);
new CreateGoalTestDemoArtifacts(healthItems);
XNavigateItem demoItems = new XNavigateItem(adminItems, "Demo Data", PluginUiImage.ADMIN);
diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperationTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperationTest.java
index 5623b466820..43eb6c6c1a3 100644
--- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperationTest.java
+++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/config/copy/CopyAtsConfigurationOperationTest.java
@@ -24,6 +24,7 @@ import org.eclipse.osee.ats.health.ValidateAtsDatabase;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.operation.Operations;
import org.eclipse.osee.framework.core.util.XResultData;
+import org.eclipse.osee.framework.jdk.core.type.CountingMap;
import org.eclipse.osee.framework.jdk.core.type.HashCollection;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.junit.AfterClass;
@@ -57,8 +58,9 @@ public class CopyAtsConfigurationOperationTest {
Assert.assertEquals(5, ais.size());
HashCollection<String, String> testNameToResultsMap = new HashCollection<String, String>();
+ CountingMap<String> testNameToTimeSpentMap = new CountingMap<String>();
Collection<Artifact> aiaArts = AtsObjectsClient.getArtifacts(ais);
- ValidateAtsDatabase.testActionableItemToTeamDefinition(testNameToResultsMap, aiaArts);
+ ValidateAtsDatabase.testActionableItemToTeamDefinition(aiaArts, testNameToResultsMap, testNameToTimeSpentMap);
Assert.assertEquals(0, testNameToResultsMap.size());
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/ValidateAtsConfiguration.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/ValidateAtsConfiguration.java
new file mode 100644
index 00000000000..3c07be6cf12
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/ValidateAtsConfiguration.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * 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.config;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.logging.Level;
+import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
+import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
+import org.eclipse.osee.ats.health.ValidateAtsDatabase;
+import org.eclipse.osee.ats.internal.Activator;
+import org.eclipse.osee.ats.util.AtsUtil;
+import org.eclipse.osee.framework.core.enums.DeletionFlag;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.util.XResultData;
+import org.eclipse.osee.framework.jdk.core.type.CountingMap;
+import org.eclipse.osee.framework.jdk.core.type.HashCollection;
+import org.eclipse.osee.framework.jdk.core.type.MutableInteger;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+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.transaction.TransactionManager;
+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.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class ValidateAtsConfiguration extends XNavigateItemAction {
+
+ public ValidateAtsConfiguration(XNavigateItem parent) {
+ super(parent, "Validate ATS Configuration", FrameworkImage.GEAR);
+ }
+
+ @Override
+ public void run(TableLoadOption... tableLoadOptions) {
+ XResultData rd = new XResultData();
+ rd.log(getName());
+
+ try {
+ List<Artifact> configArts =
+ ArtifactQuery.getArtifactListFromType(
+ Arrays.asList(AtsArtifactTypes.TeamDefinition, AtsArtifactTypes.ActionableItem, AtsArtifactTypes.Version),
+ AtsUtilCore.getAtsBranchToken(), DeletionFlag.EXCLUDE_DELETED);
+ SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtil.getAtsBranchToken(), getName());
+
+ CountingMap<String> testNameToTimeSpentMap = new CountingMap<String>();
+ HashCollection<String, String> testNameToResultsMap = new HashCollection<String, String>();
+
+ ValidateAtsDatabase.testAtsAttributeValues(transaction, testNameToTimeSpentMap, testNameToResultsMap, true,
+ configArts);
+ ValidateAtsDatabase.testVersionArtifacts(configArts, testNameToResultsMap, testNameToTimeSpentMap);
+ ValidateAtsDatabase.testActionableItemToTeamDefinition(configArts, testNameToResultsMap,
+ testNameToTimeSpentMap);
+ ValidateAtsDatabase.testTeamDefinitions(configArts, testNameToResultsMap, testNameToTimeSpentMap);
+ ValidateAtsDatabase.testParallelConfig(configArts, testNameToResultsMap, testNameToTimeSpentMap);
+
+ // Log counts of types checked
+ logCounts(configArts, testNameToResultsMap);
+
+ // Log results
+ ValidateAtsDatabase.addResultsMapToResultData(rd, testNameToResultsMap);
+ ValidateAtsDatabase.addTestTimeMapToResultData(rd, testNameToTimeSpentMap);
+
+ transaction.execute();
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+
+ XResultDataUI.report(rd, getName());
+ }
+
+ private void logCounts(List<Artifact> configArts, HashCollection<String, String> testNameToResultsMap) {
+ CountingMap<String> typeToCount = new CountingMap<String>();
+ for (Artifact art : configArts) {
+ typeToCount.put(art.getArtifactTypeName());
+ }
+ for (Entry<String, MutableInteger> type : typeToCount.getCounts()) {
+ testNameToResultsMap.put("Type Counts",
+ String.format("%d of type %s", type.getValue().getValue(), type.getKey()));
+ }
+ }
+}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsValidation.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsValidation.java
index f0c95224a21..719eac4aa20 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsValidation.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/copy/CopyAtsValidation.java
@@ -20,6 +20,7 @@ import org.eclipse.osee.ats.core.config.TeamDefinitions;
import org.eclipse.osee.ats.health.ValidateAtsDatabase;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.util.XResultData;
+import org.eclipse.osee.framework.jdk.core.type.CountingMap;
import org.eclipse.osee.framework.jdk.core.type.HashCollection;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
@@ -53,11 +54,12 @@ public class CopyAtsValidation {
private void performValidateAtsDatabaseChecks() throws OseeCoreException {
HashCollection<String, String> testNameToResultsMap = new HashCollection<String, String>();
+ CountingMap<String> testNameToTimeSpentMap = new CountingMap<String>();
// Validate AIs to TeamDefs
Set<Artifact> aias = new HashSet<Artifact>();
aias.addAll(AtsObjectsClient.getArtifacts(ActionableItems.getActionableItemsFromItemAndChildren(configData.getActionableItem())));
- ValidateAtsDatabase.testActionableItemToTeamDefinition(testNameToResultsMap, aias);
+ ValidateAtsDatabase.testActionableItemToTeamDefinition(aias, testNameToResultsMap, testNameToTimeSpentMap);
// Validate TeamDefs have Workflow Definitions
Set<IAtsTeamDefinition> teamDefs = new HashSet<IAtsTeamDefinition>();
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 a21a33d9b72..a061bba9382 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
@@ -225,11 +225,12 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
testReviewsHaveValidDefectAndRoleXml(artifacts);
testTeamWorkflows(artifacts);
testAtsBranchManager(artifacts);
- testTeamDefinitions(artifacts);
- testVersionArtifacts(artifacts);
+ testTeamDefinitions(artifacts, testNameToResultsMap, testNameToTimeSpentMap);
+ testVersionArtifacts(artifacts, testNameToResultsMap, testNameToTimeSpentMap);
+ testParallelConfig(artifacts, testNameToResultsMap, testNameToTimeSpentMap);
testStateMachineAssignees(artifacts);
testAtsLogs(artifacts);
- testActionableItemToTeamDefinition(artifacts);
+ testActionableItemToTeamDefinition(artifacts, testNameToResultsMap, testNameToTimeSpentMap);
for (IAtsHealthCheck atsHealthCheck : AtsHealthCheck.getAtsHealthCheckItems()) {
atsHealthCheck.validateAtsDatabase(artifacts, testNameToResultsMap, testNameToTimeSpentMap);
@@ -241,7 +242,7 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
}
// Log resultMap data into xResultData
addResultsMapToResultData(xResultData, testNameToResultsMap);
- addTestTimeMapToResultData(xResultData);
+ addTestTimeMapToResultData(xResultData, testNameToTimeSpentMap);
} finally {
OseeEventManager.setDisableEvents(false);
}
@@ -460,7 +461,7 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
}
}
- private void addTestTimeMapToResultData(XResultData xResultData) {
+ public static void addTestTimeMapToResultData(XResultData xResultData, CountingMap<String> testNameToTimeSpentMap) {
xResultData.log("\n\nTime Spent in Tests");
long totalTime = 0;
for (Entry<String, MutableInteger> entry : testNameToTimeSpentMap.getCounts()) {
@@ -571,7 +572,7 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
testNameToTimeSpentMap.put(testName, spent);
}
- private void testVersionArtifacts(Collection<Artifact> artifacts) {
+ public static void testVersionArtifacts(Collection<Artifact> artifacts, HashCollection<String, String> testNameToResultsMap, CountingMap<String> testNameToTimeSpentMap) {
Date date = new Date();
for (Artifact artifact : artifacts) {
if (artifact.isDeleted()) {
@@ -583,8 +584,14 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
try {
String parentBranchGuid = version.getBaslineBranchGuid();
if (Strings.isValid(parentBranchGuid)) {
- validateBranchGuid(version, parentBranchGuid);
+ validateBranchGuid(version, parentBranchGuid, testNameToResultsMap, testNameToTimeSpentMap);
}
+
+ if (AtsVersionService.get().getTeamDefinition(version) == null) {
+ testNameToResultsMap.put("testVersionArtifacts",
+ "Error: " + version.toStringWithId() + " not related to Team Definition");
+ }
+
} catch (Exception ex) {
testNameToResultsMap.put(
"testVersionArtifacts",
@@ -596,7 +603,36 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
logTestTimeSpent(date, "testVersionArtifacts", testNameToTimeSpentMap);
}
- private void testTeamDefinitions(Collection<Artifact> artifacts) {
+ public static void testParallelConfig(List<Artifact> artifacts, HashCollection<String, String> testNameToResultsMap, CountingMap<String> testNameToTimeSpentMap) {
+ Date date = new Date();
+ for (Artifact artifact : artifacts) {
+ if (artifact.isDeleted()) {
+ continue;
+ }
+ if (artifact.isOfType(AtsArtifactTypes.Version)) {
+ IAtsVersion version = AtsConfigCache.instance.getSoleByGuid(artifact.getGuid(), IAtsVersion.class);
+ for (IAtsVersion parallelVersion : version.getParallelVersions()) {
+ if (parallelVersion != null) {
+ try {
+ String parentBranchGuid = parallelVersion.getBaslineBranchGuid();
+ if (!Strings.isValid(parentBranchGuid)) {
+ testNameToResultsMap.put(
+ "testParallelConfig",
+ "Error: [" + parallelVersion.toStringWithId() + "] in parallel config without parent branch guid");
+ }
+ } catch (Exception ex) {
+ testNameToResultsMap.put(
+ "testParallelConfig",
+ "Error: " + version.getName() + " exception testing testVersionArtifacts: " + ex.getLocalizedMessage());
+ }
+ }
+ }
+ }
+ }
+ logTestTimeSpent(date, "testParallelConfig", testNameToTimeSpentMap);
+ }
+
+ public static void testTeamDefinitions(Collection<Artifact> artifacts, HashCollection<String, String> testNameToResultsMap, CountingMap<String> testNameToTimeSpentMap) {
Date date = new Date();
for (Artifact art : artifacts) {
if (art.isDeleted()) {
@@ -607,7 +643,7 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
try {
String parentBranchGuid = teamDef.getBaslineBranchGuid();
if (Strings.isValid(parentBranchGuid)) {
- validateBranchGuid(teamDef, parentBranchGuid);
+ validateBranchGuid(teamDef, parentBranchGuid, testNameToResultsMap, testNameToTimeSpentMap);
}
} catch (Exception ex) {
testNameToResultsMap.put("testTeamDefinitionss",
@@ -671,7 +707,7 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
logTestTimeSpent(date, "testAtsBranchManager", testNameToTimeSpentMap);
}
- private void validateBranchGuid(IAtsConfigObject name, String parentBranchGuid) {
+ public static void validateBranchGuid(IAtsConfigObject name, String parentBranchGuid, HashCollection<String, String> testNameToResultsMap, CountingMap<String> testNameToTimeSpentMap) {
Date date = new Date();
try {
Branch branch = BranchManager.getBranchByGuid(parentBranchGuid);
@@ -920,13 +956,8 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
logTestTimeSpent(date, "testTasksHaveParentWorkflow", testNameToTimeSpentMap);
}
- public void testActionableItemToTeamDefinition(Collection<Artifact> artifacts) {
+ public static void testActionableItemToTeamDefinition(Collection<Artifact> artifacts, HashCollection<String, String> testNameToResultsMap, CountingMap<String> testNameToTimeSpentMap) {
Date date = new Date();
- testActionableItemToTeamDefinition(testNameToResultsMap, artifacts);
- logTestTimeSpent(date, "testActionableItemToTeamDefinition", testNameToTimeSpentMap);
- }
-
- public static void testActionableItemToTeamDefinition(HashCollection<String, String> testNameToResultsMap, Collection<Artifact> artifacts) {
for (Artifact artifact : artifacts) {
if (artifact.isDeleted()) {
continue;
@@ -947,6 +978,8 @@ public class ValidateAtsDatabase extends WorldXNavigateItemAction {
"Error: Exception: " + ex.getLocalizedMessage());
}
}
+ logTestTimeSpent(date, "testActionableItemToTeamDefinition", testNameToTimeSpentMap);
+
}
private void testReviewsHaveValidDefectAndRoleXml(Collection<Artifact> artifacts) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java
index 02cf23eb834..f013e7f151c 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java
@@ -29,6 +29,7 @@ import org.eclipse.osee.ats.actions.NewGoal;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.config.ValidateAtsConfiguration;
import org.eclipse.osee.ats.config.editor.AtsConfigResultsEditorNavigateItem;
import org.eclipse.osee.ats.core.client.util.AtsUsersClient;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
@@ -213,6 +214,7 @@ public final class AtsNavigateViewItems implements XNavigateViewItems, IXNavigat
XNavigateItem healthItems = new XNavigateItemFolder(adminItems, "Health");
new ValidateAtsDatabase(healthItems);
+ new ValidateAtsConfiguration(healthItems);
new ValidateWorkspaceToDatabaseWorkDefinitions(healthItems);
// new ActionNavigateItem(adminItems, new XViewerViewAction());

Back to the top