feature[TW2228]: Remove code using WorkDefinition attr

Change-Id: Ib19c7f673984350224a9a54c55c6608cbbe8ad9f
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java
index d04e356..3d44453 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java
@@ -170,8 +170,6 @@
 
    IAtsConfigurationsService getConfigService();
 
-   boolean isWorkDefAsName();
-
    IAtsTaskRelatedService getTaskRelatedService();
 
    IAtsHealthService getHealthService();
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsAttributeTypes.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsAttributeTypes.java
index 11a5ee4..f19da47 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsAttributeTypes.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsAttributeTypes.java
@@ -208,7 +208,7 @@
    AttributeTypeString Shortname = ats.createStringNoTag(1152921504606847340L, "Shortname", MediaType.TEXT_PLAIN, "Shorter name of project");
    AttributeTypeString TaskCountForProject = ats.createString(1152921504606849831L, "ats.TaskCountForProject", MediaType.TEXT_PLAIN, "Count value to hold the number of tasks under a project");
 
-   // Remove static after 26.0
+   // Remove after 1.0.0 full release
    AttributeTypeString WorkflowDefinition = ats.createString(1152921504606847149L, "ats.Workflow Definition", MediaType.TEXT_PLAIN, "Specific work flow definition id used by this Workflow artifact");
    AttributeTypeString RelatedPeerWorkflowDefinition = ats.createString(1152921504606847870L, "ats.Related Peer Workflow Definition", MediaType.TEXT_PLAIN, "Specific work flow definition id used by Peer To Peer Reviews for this Team");
    AttributeTypeString RelatedTaskWorkflowDefinition = ats.createString(1152921504606847152L, "ats.Related Task Workflow Definition", MediaType.TEXT_PLAIN, "Specific work flow definition id used by Tasks related to this Workflow");
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/AtsWorkDefinitionTokens.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/AtsWorkDefinitionTokens.java
index e89a984..ede2032 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/AtsWorkDefinitionTokens.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/AtsWorkDefinitionTokens.java
@@ -35,6 +35,7 @@
 
    public static AtsWorkDefinitionToken WorkDef_Team_AtsConfig2Example = new AtsWorkDefinitionToken(282846363L, "WorkDef_Team_AtsConfig2Example");
    public static AtsWorkDefinitionToken WorkDef_Team_Simple_InWork = new AtsWorkDefinitionToken(7285608L, "WorkDef_Team_Simple_InWork");
+   public static AtsWorkDefinitionToken WorkDef_Team_Simple_Analyze = new AtsWorkDefinitionToken(946555776L, "WorkDef_Team_Simple_Analyze");
    public static AtsWorkDefinitionToken WorkDef_Team_ProductLine = new AtsWorkDefinitionToken(10837868L, "WorkDef_Team_ProductLine");
 
    // @formatter:on
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImplTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImplTest.java
index 4909709..388321f 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImplTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImplTest.java
@@ -16,8 +16,6 @@
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.when;
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import org.eclipse.osee.ats.api.AtsApi;
 import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
@@ -60,9 +58,7 @@
  */
 public class AtsWorkDefinitionServiceImplTest {
 
-   private static final String MyPeerToPeerWorkDefName = "myPeerToPeerWorkDef";
    private static final ArtifactId MyPeerToPeerWorkDefArt = ArtifactId.valueOf(266434L);
-   private static final String MyTaskWorkDefId = "WorkDef_Task_Test_Review";
    private static final ArtifactId MyTaskWorkDefArt = ArtifactId.valueOf(34345L);
 
    // @formatter:off
@@ -92,7 +88,6 @@
    @Before
    public void setup() throws Exception {
       MockitoAnnotations.initMocks(this);
-      when(atsApi.isWorkDefAsName()).thenReturn(true);
       when(atsApi.getTeamDefinitionService()).thenReturn(teamDefinitionService);
       when(atsApi.getTeamDefinitionService().getParentTeamDef(topTeamDef)).thenReturn(null);
       when(atsApi.getTeamDefinitionService().getParentTeamDef(projTeamDef)).thenReturn(topTeamDef);
@@ -121,21 +116,6 @@
    }
 
    /**
-    * When peerReview has no WorkDefinition attribute set, then default peer review WorkDefinition is returned
-    */
-   @Test
-   public void testGetWorkDefinitionForPeerToPeerReview_deafault() throws Exception {
-      when(attributeResolver.getAttributeValues(peerReview, AtsAttributeTypes.WorkflowDefinition)).thenReturn(
-         Collections.emptyList());
-      when(
-         attributeResolver.getAttributeValues(peerReview, AtsAttributeTypes.RelatedPeerWorkflowDefinition)).thenReturn(
-            Collections.emptyList());
-
-      IAtsWorkDefinition workDef = workDefService.getWorkDefinitionForPeerToPeerReview(peerReview);
-      assertEquals(defaultPeerToPeerWorkDef, workDef);
-   }
-
-   /**
     * Test that peer review WorkDefinition id comes from teamDefinition hierarchy
     */
    @Test
@@ -150,27 +130,6 @@
    }
 
    /**
-    * When peerReview WorkDefinition attribute is set, then that WorkDefinition is returned instead of default
-    */
-   @Test
-   public void testGetWorkDefinitionForPeerToPeerReviewIAtsTeamWorkflowIAtsPeerToPeerReview__fromReview() throws Exception {
-      List<Object> attrValues = new ArrayList<>();
-      attrValues.add(MyPeerToPeerWorkDefName);
-      when(attributeResolver.getAttributeValues(peerReview, AtsAttributeTypes.WorkflowDefinition)).thenReturn(
-         attrValues);
-      List<Object> attrValues2 = new ArrayList<>();
-      attrValues2.add(MyPeerToPeerWorkDefArt);
-      when(
-         attributeResolver.getAttributeValues(peerReview, AtsAttributeTypes.RelatedPeerWorkflowDefinition)).thenReturn(
-            attrValues2);
-
-      Mockito.doReturn(myPeerToPeerWorkDef).when(workDefService).getWorkDefinitionByName(MyPeerToPeerWorkDefName);
-
-      IAtsWorkDefinition workDef = workDefService.getWorkDefinitionForPeerToPeerReview(peerReview);
-      assertEquals(myPeerToPeerWorkDef, workDef);
-   }
-
-   /**
     * Test that stand alone peer WorkDefinition comes from actionableItem's Team Definition hierarchy
     */
    @Test
@@ -217,59 +176,6 @@
          AtsAttributeTypes.RelatedPeerWorkflowDefinitionReference, ArtifactId.SENTINEL)).thenReturn(
             ArtifactId.SENTINEL);
 
-      // Test that no-match is returned
-      Mockito.doReturn(myPeerToPeerWorkDef).when(workDefService).getWorkDefinitionByName(eq(MyPeerToPeerWorkDefName));
-
-      // Setup that top team definition has WorkDefinition defined
-      when(attributeResolver.getSoleAttributeValue(topTeamDef, AtsAttributeTypes.RelatedPeerWorkflowDefinition,
-         "")).thenReturn(MyPeerToPeerWorkDefName);
-
-      when(attributeResolver.getSoleArtifactIdReference(peerReview, AtsAttributeTypes.RelatedPeerWorkflowDefinition,
-         ArtifactId.SENTINEL)).thenReturn(MyPeerToPeerWorkDefArt);
-
-      when(attributeResolver.getSoleAttributeValue(topTeamDef, AtsAttributeTypes.WorkflowDefinition, "")).thenReturn(
-         MyPeerToPeerWorkDefName);
-      when(attributeResolver.getSoleArtifactIdReference(topTeamDef, AtsAttributeTypes.WorkflowDefinitionReference,
-         ArtifactId.SENTINEL)).thenReturn(MyPeerToPeerWorkDefArt);
-      Mockito.doReturn(myPeerToPeerWorkDef).when(workDefService).getWorkDefinitionByName(MyPeerToPeerWorkDefName);
-
-   }
-
-   @Test
-   public void testGetWorkDefinitionIAtsWorkItem() throws Exception {
-      when(peerReview.getParentTeamWorkflow()).thenReturn(teamWf);
-      when(teamWf.getTeamDefinition()).thenReturn(topTeamDef);
-      when(
-         attributeResolver.getAttributeValues(topTeamDef, AtsAttributeTypes.RelatedPeerWorkflowDefinition)).thenReturn(
-            Collections.emptyList());
-      when(
-         attributeResolver.getAttributeValues(peerReview, AtsAttributeTypes.RelatedPeerWorkflowDefinition)).thenReturn(
-            Collections.emptyList());
-
-      Mockito.doReturn(defaultPeerToPeerWorkDef).when(workDefService).getWorkDefinition(peerReview);
-
-      IAtsWorkDefinition workDef = workDefService.getWorkDefinition(peerReview);
-      assertEquals(defaultPeerToPeerWorkDef, workDef);
-   }
-
-   @Test
-   public void testGetWorkDefinitionForTaskWithSpecifiedId() throws Exception {
-      List<Object> attrValues = new ArrayList<>();
-      attrValues.add(MyTaskWorkDefId);
-      when(attributeResolver.getAttributeValues(task, AtsAttributeTypes.WorkflowDefinition)).thenReturn(attrValues);
-
-      List<Object> attrValues2 = new ArrayList<>();
-      attrValues2.add(MyTaskWorkDefArt);
-      when(attributeResolver.getAttributeValues(task, AtsAttributeTypes.WorkflowDefinitionReference)).thenReturn(
-         attrValues2);
-
-      when(task.getParentTeamWorkflow()).thenReturn(teamWf);
-
-      Mockito.doReturn(myTaskWorkDef).when(workDefService).getWorkDefinitionByName(eq(MyTaskWorkDefId));
-      Mockito.doReturn(myTaskWorkDef).when(workDefService).getWorkDefinition(task);
-
-      IAtsWorkDefinition workDef = workDefService.getWorkDefinition(task);
-      assertEquals(workDef, myTaskWorkDef);
    }
 
    @Test
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/StateDefinitionTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/StateDefinitionTest.java
index 8496e45..916d0bb 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/StateDefinitionTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/StateDefinitionTest.java
@@ -13,7 +13,6 @@
 
 package org.eclipse.osee.ats.core.workdef;
 
-import static org.mockito.Mockito.when;
 import org.eclipse.osee.ats.api.AtsApi;
 import org.eclipse.osee.ats.api.workdef.IAtsCompositeLayoutItem;
 import org.eclipse.osee.ats.api.workdef.IAtsWidgetDefinition;
@@ -45,7 +44,6 @@
    @Before
    public void setup() throws Exception {
       MockitoAnnotations.initMocks(this);
-      when(atsApi.isWorkDefAsName()).thenReturn(true);
    }
 
    @Test
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/access/AtsArtifactChecks.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/access/AtsArtifactChecks.java
index 8137c61..8a00cb3 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/access/AtsArtifactChecks.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/access/AtsArtifactChecks.java
@@ -222,20 +222,6 @@
 
    private void checkAtsWorkDefinitions(boolean isAtsAdmin, AtsApi atsApi, Collection<ArtifactToken> artifacts, XResultData results) {
       for (ArtifactToken art : artifacts) {
-         // legacy work definition check (remove after 26.0)
-         if (art.isOfType(AtsArtifactTypes.WorkDefinition)) {
-            List<ArtifactToken> artifactListFromTypeAndAttribute =
-               atsApi.getQueryService().getArtifactListFromTypeAndAttribute(AtsArtifactTypes.WorkDefinition,
-                  AtsAttributeTypes.WorkflowDefinition, art.getName(), atsApi.getAtsBranch());
-            if (artifactListFromTypeAndAttribute.size() > 0) {
-               results.errorf(
-                  "ATS WorkDefinition [%s] selected to delete has ats.WorkDefinition attributes set to it's name in %d artifact.  These must be changed first.",
-                  art, artifactListFromTypeAndAttribute.size());
-            }
-            if (!isAtsAdmin) {
-               results.error("Deletion of Work Definitions is only permitted by ATS Admin.");
-            }
-         }
          if (art.isOfType(AtsArtifactTypes.WorkDefinition)) {
             List<ArtifactToken> artifactListFromTypeAndAttribute =
                atsApi.getQueryService().getArtifactListFromTypeAndAttribute(AtsArtifactTypes.WorkDefinition,
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/task/CreateTasksOperation.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/task/CreateTasksOperation.java
index 1c2935c..88ee382 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/task/CreateTasksOperation.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/task/CreateTasksOperation.java
@@ -174,7 +174,6 @@
                taskWorkDef = atsApi.getWorkDefinitionService().computedWorkDefinitionForTaskNotYetCreated(teamWf);
             }
             Conditions.assertNotNull(taskWorkDef, "Work Definition can not be null for [%s]", task.getTaskWorkDef());
-            task.addAttribute(AtsAttributeTypes.WorkflowDefinition, taskWorkDef.getName());
             task.addAttribute(AtsAttributeTypes.WorkflowDefinitionReference, ArtifactId.valueOf(taskWorkDef.getId()));
 
             for (JaxAttribute attribute : task.getAttributes()) {
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImpl.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImpl.java
index 4824bd0..dc81df3 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionServiceImpl.java
@@ -72,7 +72,6 @@
 
    private final AtsApi atsApi;
    private final ITeamWorkflowProvidersLazy teamWorkflowProvidersLazy;
-   private final Map<String, IAtsWorkDefinition> workDefNameToWorkDef = new HashMap<>();
    private final Map<IAtsWorkItem, IAtsWorkDefinition> bootstrappingWorkItemToWorkDefCache = new HashMap<>();
    private final Set<IAtsWorkItem> logOnce = new HashSet<>();
 
@@ -109,14 +108,6 @@
          throw new OseeWrappedException(ex, "Error getting work definition for work item %s",
             workItem.toStringWithId());
       }
-      if (workDefinition == null && atsApi.isWorkDefAsName()) {
-         try {
-            return computeWorkDefinition(workItem);
-         } catch (Exception ex) {
-            throw new OseeWrappedException(ex, "Error getting work definition for work item %s",
-               workItem.toStringWithId());
-         }
-      }
       return workDefinition;
    }
 
@@ -135,44 +126,17 @@
 
    private IAtsWorkDefinition getWorkDefinitionFromArtifactsAttributeValue(IAtsWorkItem workItem) {
       IAtsWorkDefinition workDefinition = getWorkDefinitionFromAsObject(workItem);
-      if (workDefinition == null && atsApi.isWorkDefAsName()) {
-         // If this artifact specifies it's own workflow definition, use it
-         String workFlowDefName = null;
-         Collection<Object> attributeValues =
-            atsApi.getAttributeResolver().getAttributeValues(workItem, AtsAttributeTypes.WorkflowDefinition);
-         if (!attributeValues.isEmpty()) {
-            workFlowDefName = (String) attributeValues.iterator().next();
-         }
-         if (Strings.isValid(workFlowDefName)) {
-            workDefinition = getWorkDefinitionByName(workFlowDefName);
-         }
-      }
       return workDefinition;
    }
 
    private IAtsWorkDefinition getWorkDefinitionFromArtifactsAttributeValue(IAtsTeamDefinition teamDef) {
       IAtsWorkDefinition workDefinition = getWorkDefinitionFromAsObject(teamDef);
-      if (workDefinition == null && atsApi.isWorkDefAsName()) {
-         String workFlowDefName =
-            atsApi.getAttributeResolver().getSoleAttributeValue(teamDef, AtsAttributeTypes.WorkflowDefinition, "");
-         if (Strings.isValid(workFlowDefName)) {
-            workDefinition = getWorkDefinitionByName(workFlowDefName);
-         }
-      }
       return workDefinition;
    }
 
    private IAtsWorkDefinition getTaskWorkDefinitionFromArtifactsAttributeValue(IAtsTeamDefinition teamDef) {
       IAtsWorkDefinition workDefinition =
          getWorkDefinitionFromAsObject(teamDef, AtsAttributeTypes.RelatedTaskWorkflowDefinitionReference);
-      if (workDefinition == null && atsApi.isWorkDefAsName()) {
-         // If this artifact specifies it's own workflow definition, use it
-         String workFlowDefName = atsApi.getAttributeResolver().getSoleAttributeValueAsString(teamDef,
-            AtsAttributeTypes.RelatedTaskWorkflowDefinition, "");
-         if (Strings.isValid(workFlowDefName)) {
-            workDefinition = getWorkDefinitionByName(workFlowDefName);
-         }
-      }
       return workDefinition;
    }
 
@@ -205,13 +169,6 @@
             workDefinition = getWorkDefinition(workDefTok);
             break;
          }
-         if (atsApi.isWorkDefAsName()) {
-            AtsWorkDefinitionToken workDefT = provider.getRelatedTaskWorkflowDefinitionId(teamWf);
-            if (workDefT != null && workDefT.isValid()) {
-               workDefinition = getWorkDefinition(workDefT);
-               break;
-            }
-         }
       }
       if (workDefinition == null) {
          // Else If parent TeamWorkflow's IAtsTeamDefinition has a related task definition workflow id, use it
@@ -348,18 +305,6 @@
             workDefinition = getPeerToPeerWorkDefinitionFromTeamDefinitionAttributeValueRecurse(parentTeamDef);
          }
       }
-      if (workDefinition == null && atsApi.isWorkDefAsName()) {
-         String workDefId = atsApi.getAttributeResolver().getSoleAttributeValue(teamDef,
-            AtsAttributeTypes.RelatedPeerWorkflowDefinition, "");
-         if (Strings.isNumeric(workDefId)) {
-            workDefinition = getWorkDefinition(Long.valueOf(workDefId));
-         } else {
-            IAtsTeamDefinition parentTeamDef = atsApi.getTeamDefinitionService().getParentTeamDef(teamDef);
-            if (parentTeamDef != null) {
-               workDefinition = getPeerToPeerWorkDefinitionFromTeamDefinitionAttributeValueRecurse(parentTeamDef);
-            }
-         }
-      }
       return workDefinition;
    }
 
@@ -535,16 +480,6 @@
       if (workDefinition != null && workDefinition.isValid()) {
          return workDefinition;
       }
-      String workDefName = atsApi.getAttributeResolver().getSoleAttributeValueAsString(teamDef,
-         AtsAttributeTypes.WorkflowDefinition, null);
-      if (Strings.isValid(workDefName)) {
-         workDefinition = workDefNameToWorkDef.get(workDefName);
-         if (workDefinition == null) {
-            workDefinition = getWorkDefinitionByName(workDefName);
-            workDefNameToWorkDef.put(workDefName, workDefinition);
-         }
-         return workDefinition;
-      }
 
       IAtsTeamDefinition parentTeamDef = atsApi.getTeamDefinitionService().getParentTeamDef(teamDef);
       if (parentTeamDef == null) {
@@ -566,7 +501,6 @@
    private void setWorkDefinitionAttrs(IAtsObject atsObject, IAtsWorkDefinition workDef, IAtsChangeSet changes) {
       Conditions.assertNotNull(workDef, "workDefArt");
       Conditions.assertNotSentinel(workDef, "workDefArt");
-      changes.setSoleAttributeValue(atsObject, AtsAttributeTypes.WorkflowDefinition, workDef.getName());
       changes.setSoleAttributeValue(atsObject, AtsAttributeTypes.WorkflowDefinitionReference,
          Id.valueOf(workDef.getId()));
    }
@@ -577,7 +511,6 @@
       Conditions.assertNotSentinel(topTeam, "topTeam");
       Conditions.assertNotNull(id, "id");
       Conditions.assertNotSentinel(id, "id");
-      changes.setSoleAttributeValue(topTeam, AtsAttributeTypes.WorkflowDefinition, id.getName());
       changes.setSoleAttributeValue(topTeam, AtsAttributeTypes.WorkflowDefinitionReference, id);
    }
 
@@ -587,7 +520,6 @@
       Conditions.assertNotSentinel(teamWf, "teamWf");
       Conditions.assertNotNull(id, "id");
       Conditions.assertNotSentinel(id, "id");
-      changes.setSoleAttributeValue(teamWf, AtsAttributeTypes.WorkflowDefinition, id.getName());
       changes.setSoleAttributeValue(teamWf, AtsAttributeTypes.WorkflowDefinitionReference, id);
    }
 
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/internal/AtsWorkDefinitionProvider.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/internal/AtsWorkDefinitionProvider.java
index baf7992..dbb2f16 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/internal/AtsWorkDefinitionProvider.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/internal/AtsWorkDefinitionProvider.java
@@ -40,6 +40,7 @@
 import org.eclipse.osee.ats.core.workdef.internal.workdefs.WorkDefTeamDemoSwDesign;
 import org.eclipse.osee.ats.core.workdef.internal.workdefs.WorkDefTeamDemoTest;
 import org.eclipse.osee.ats.core.workdef.internal.workdefs.WorkDefTeamSimple;
+import org.eclipse.osee.ats.core.workdef.internal.workdefs.WorkDefTeamSimpleAnalyze;
 
 /**
  * @author Donald G. Dunne
@@ -66,7 +67,8 @@
             new WorkDefTeamDefault().build(),
             new WorkDefTeamProductLine().build(),
             new WorkDefTeamSimpleInWork().build(),
-            new WorkDefTeamSimple().build()));
+            new WorkDefTeamSimple().build(),
+            new WorkDefTeamSimpleAnalyze().build()));
          if (isDemoDb()) {
             ret.addAll(Arrays.asList(
             // Team Wf
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/WorkDefTeamAtsTestUtil.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/internal/workdefs/WorkDefTeamSimpleAnalyze.java
similarity index 89%
rename from plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/WorkDefTeamAtsTestUtil.java
rename to plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/internal/workdefs/WorkDefTeamSimpleAnalyze.java
index 002b17c..5a809b0 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/WorkDefTeamAtsTestUtil.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/internal/workdefs/WorkDefTeamSimpleAnalyze.java
@@ -11,11 +11,12 @@
  *     Boeing - initial API and implementation
  **********************************************************************/
 
-package org.eclipse.osee.ats.ide.integration.tests.ats.workdef;
+package org.eclipse.osee.ats.core.workdef.internal.workdefs;
 
 import static org.eclipse.osee.ats.api.workdef.WidgetOption.FILL_VERTICALLY;
 import static org.eclipse.osee.ats.api.workdef.WidgetOption.REQUIRED_FOR_TRANSITION;
 import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
+import org.eclipse.osee.ats.api.workdef.AtsWorkDefinitionTokens;
 import org.eclipse.osee.ats.api.workdef.StateColor;
 import org.eclipse.osee.ats.api.workdef.StateToken;
 import org.eclipse.osee.ats.api.workdef.StateType;
@@ -29,10 +30,10 @@
 /**
  * @author Donald G. Dunne
  */
-public class WorkDefTeamAtsTestUtil extends AbstractWorkDef {
+public class WorkDefTeamSimpleAnalyze extends AbstractWorkDef {
 
-   public WorkDefTeamAtsTestUtil() {
-      super(DemoWorkDefinitionTokens.WorkDef_Team_AtsTestUtil);
+   public WorkDefTeamSimpleAnalyze() {
+      super(AtsWorkDefinitionTokens.WorkDef_Team_Simple_Analyze);
    }
 
    @Override
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/AtsIntegrationTestsWorkDefinitionProvider.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/AtsIntegrationTestsWorkDefinitionProvider.java
index 41b1973..212ab19 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/AtsIntegrationTestsWorkDefinitionProvider.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/AtsIntegrationTestsWorkDefinitionProvider.java
@@ -23,7 +23,7 @@
 public class AtsIntegrationTestsWorkDefinitionProvider {
 
    public Collection<IAtsWorkDefinitionBuilder> getWorkDefinitionBuilders() {
-      return Arrays.asList(new WorkDefTeamAtsTestUtil(), new WorkDefTeamDecisionReviewDefinitionManagerTestPrepare(),
+      return Arrays.asList(new WorkDefTeamDecisionReviewDefinitionManagerTestPrepare(),
          new WorkDefTeamDecisionReviewDefinitionManagerTesttoDecision(),
          new WorkDefTeamPeerReviewDefinitionManagerTestTransition(),
          new WorkDefTeamTransitionManagerTestTargetedVersion(),
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/DemoWorkDefinitionTokens.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/DemoWorkDefinitionTokens.java
index ef545be..c30ed3f 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/DemoWorkDefinitionTokens.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workdef/DemoWorkDefinitionTokens.java
@@ -22,7 +22,6 @@
 
    // @formatter:off
 
-   public static AtsWorkDefinitionToken WorkDef_Team_AtsTestUtil = new AtsWorkDefinitionToken(946555776L, "WorkDef_Team_AtsTestUtil");
    public static AtsWorkDefinitionToken WorkDef_Team_DecisionReviewDefinitionManagerTest_Prepare = new AtsWorkDefinitionToken(916526903L, "WorkDef_Team_DecisionReviewDefinitionManagerTest_Prepare");
    public static AtsWorkDefinitionToken WorkDef_Team_DecisionReviewDefinitionManagerTest_toDecision = new AtsWorkDefinitionToken(913396704L, "WorkDef_Team_DecisionReviewDefinitionManagerTest_toDecision");
    public static AtsWorkDefinitionToken WorkDef_Team_PeerReviewDefinitionManagerTest_Transition = new AtsWorkDefinitionToken(162205335L, "WorkDef_Team_PeerReviewDefinitionManagerTest_Transition");
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtil.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtil.java
index 9fa9615..7e6a79a 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtil.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtil.java
@@ -39,6 +39,7 @@
 import org.eclipse.osee.ats.api.util.IAtsChangeSet;
 import org.eclipse.osee.ats.api.version.IAtsVersion;
 import org.eclipse.osee.ats.api.version.Version;
+import org.eclipse.osee.ats.api.workdef.AtsWorkDefinitionTokens;
 import org.eclipse.osee.ats.api.workdef.IAtsDecisionReviewOption;
 import org.eclipse.osee.ats.api.workdef.IAtsLayoutItem;
 import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
@@ -58,7 +59,6 @@
 import org.eclipse.osee.ats.ide.actions.ISelectedAtsArtifacts;
 import org.eclipse.osee.ats.ide.editor.WorkflowEditor;
 import org.eclipse.osee.ats.ide.integration.tests.AtsApiService;
-import org.eclipse.osee.ats.ide.integration.tests.ats.workdef.DemoWorkDefinitionTokens;
 import org.eclipse.osee.ats.ide.workflow.review.AbstractReviewArtifact;
 import org.eclipse.osee.ats.ide.workflow.review.DecisionReviewArtifact;
 import org.eclipse.osee.ats.ide.workflow.review.ReviewManager;
@@ -306,7 +306,7 @@
 
       // All tests use the same Work Definition so it doesn't have to be re-created and imported each time
       AtsApiService.get().getWorkDefinitionService().setWorkDefinitionAttrs(teamDef,
-         DemoWorkDefinitionTokens.WorkDef_Team_AtsTestUtil, changes);
+         AtsWorkDefinitionTokens.WorkDef_Team_Simple_Analyze, changes);
 
       changes.setSoleAttributeValue(teamDef, AtsAttributeTypes.Active, true);
       changes.relate(teamDef, AtsRelationTypes.TeamLead_Lead, AtsApiService.get().getUserService().getCurrentUser());
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtilTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtilTest.java
index 8d0a2f8..a30100e 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtilTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTestUtilTest.java
@@ -24,7 +24,6 @@
 import org.eclipse.osee.ats.core.workflow.state.TeamState;
 import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
 import org.eclipse.osee.ats.ide.integration.tests.AtsApiService;
-import org.eclipse.osee.ats.ide.integration.tests.ats.workdef.WorkDefTeamAtsTestUtil;
 import org.eclipse.osee.ats.ide.workflow.teamwf.TeamWorkFlowArtifact;
 import org.eclipse.osee.framework.core.data.BranchId;
 import org.eclipse.osee.framework.core.enums.DemoUsers;
@@ -32,7 +31,6 @@
 import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
 import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
 import org.junit.Assert;
-import org.junit.BeforeClass;
 
 /**
  * Test unit for {@link AtsTestUtil}
@@ -41,11 +39,6 @@
  */
 public class AtsTestUtilTest extends AtsTestUtil {
 
-   @BeforeClass
-   public static void cleanup() {
-      AtsApiService.get().getWorkDefinitionService().addWorkDefinition(new WorkDefTeamAtsTestUtil());
-   }
-
    @org.junit.Test
    public void test() {
       AtsTestUtil.cleanupAndReset(getClass().getSimpleName());
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/task/AtsTaskEndpointImplTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/task/AtsTaskEndpointImplTest.java
index 0ad1bac..0e15966 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/task/AtsTaskEndpointImplTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/task/AtsTaskEndpointImplTest.java
@@ -181,11 +181,6 @@
       // Work Definition should be set
       boolean found = false;
       for (JaxAttribute attr : attributes) {
-         if (attr.getAttrType().equals(AtsAttributeTypes.WorkflowDefinition)) {
-            found = true;
-            Assert.assertEquals("Expected Attribute WorkDefintiion WorkDef_Task_Default", "WorkDef_Task_Default",
-               attr.getValues().iterator().next());
-         }
          if (attr.getAttrType().equals(AtsAttributeTypes.WorkflowDefinitionReference)) {
             found = true;
             Assert.assertEquals("Expected Attribute WorkDefintiion WorkDef_Task_Default",
@@ -207,21 +202,14 @@
       Assert.assertEquals(SystemUser.UnAssigned.getUserId(), task2R.getAssigneeUserIds().iterator().next());
       // Work Definition attribute should NOT be set
       attributes = task2R.getAttributes();
-      boolean foundByName = false;
       boolean foundById = false;
       for (JaxAttribute attr : attributes) {
-         if (attr.getAttrType().equals(AtsAttributeTypes.WorkflowDefinition)) {
-            Assert.assertEquals(AtsWorkDefinitionTokens.WorkDef_Task_Default.getName(),
-               attr.getValues().iterator().next());
-            foundByName = true;
-         }
          if (attr.getAttrType().equals(AtsAttributeTypes.WorkflowDefinitionReference)) {
             Assert.assertEquals(AtsWorkDefinitionTokens.WorkDef_Task_Default.getIdString(),
                attr.getValues().iterator().next());
             foundById = true;
          }
       }
-      Assert.assertTrue(foundByName);
       Assert.assertTrue(foundById);
 
       JaxAtsTask task3R = taskEp.get(taskId3);
@@ -232,7 +220,7 @@
       Assert.assertEquals("", task3R.getDescription());
       Assert.assertEquals(true, task3R.isActive());
       Assert.assertEquals(1, task3R.getAssigneeUserIds().size());
-      Assert.assertEquals(11, task3R.getAttributes().size());
+      Assert.assertEquals(10, task3R.getAttributes().size());
       found = false;
       for (JaxAttribute attribute : task3R.getAttributes()) {
          if (attribute.getAttrType().equals(CoreAttributeTypes.StaticId)) {
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/AtsMockitoTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/AtsMockitoTest.java
index 072306d..738761d 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/AtsMockitoTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/AtsMockitoTest.java
@@ -80,7 +80,6 @@
    @Mock protected AtsApi atsApi;
    // @formatter:on
 
-   public String WORK_DEF_NAME = "Mock_Team_Workflow_Definition";
    public ArtifactId WORK_DEF_ART = ArtifactId.valueOf(345L);
    private final String className;
    private String testName = "";
@@ -118,7 +117,6 @@
       initializeState(cancelled, "Cancelled", StateType.Cancelled, 4, Arrays.asList(analyze, implement),
          Arrays.asList(analyze, implement));
 
-      when(workDef.getName()).thenReturn(WORK_DEF_NAME);
       when(workDef.getStartState()).thenReturn(analyze);
       when(workDef.getStates()).thenReturn(Arrays.asList(cancelled, analyze, completed, implement));
 
@@ -143,8 +141,6 @@
       when(atsApi.getTeamDefinitionService()).thenReturn(teamDefinitionService);
       when(teamDefinitionService.getLeads(teamDef)).thenReturn(Arrays.asList(currentUser));
       when(actionableItemService.getActionableItems(teamDef)).thenReturn(aias);
-      when(attrResolver.getSoleAttributeValue(teamDef, AtsAttributeTypes.WorkflowDefinition, "")).thenReturn(
-         WORK_DEF_NAME);
       when(attrResolver.getSoleArtifactIdReference(teamDef, AtsAttributeTypes.WorkflowDefinitionReference,
          ArtifactId.SENTINEL)).thenReturn(WORK_DEF_ART);
 
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/config/AtsConfig2DataExample.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/config/AtsConfig2DataExample.java
index bb84e63..53e8074 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/config/AtsConfig2DataExample.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/config/AtsConfig2DataExample.java
@@ -48,8 +48,6 @@
       IAtsTeamDefinition dtsSoftwareTeam =
          AtsApiService.get().getTeamDefinitionService().getTeamDefinitionById(dtsSoftwareArt);
 
-      changes.setSoleAttributeValue(dtsSoftwareTeam, AtsAttributeTypes.RelatedTaskWorkflowDefinition,
-         AtsWorkDefinitionTokens.WorkDef_Task_AtsConfig2Example);
       changes.setSoleAttributeValue(dtsSoftwareTeam, AtsAttributeTypes.RelatedTaskWorkflowDefinitionReference,
          AtsWorkDefinitionTokens.WorkDef_Task_AtsConfig2Example);
 
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java
index 3ab7c48..a5d46e1 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java
@@ -65,7 +65,6 @@
 import org.eclipse.osee.framework.core.util.OsgiUtil;
 import org.eclipse.osee.framework.plugin.core.util.Jobs;
 import org.eclipse.osee.framework.skynet.core.access.UserServiceImpl;
-import org.eclipse.osee.framework.skynet.core.utility.OseeInfo;
 import org.eclipse.osee.orcs.rest.client.OseeClient;
 
 /**
@@ -224,11 +223,6 @@
    }
 
    @Override
-   public boolean isWorkDefAsName() {
-      return "true".equals(OseeInfo.getCachedValue("osee.work.def.as.name"));
-   }
-
-   @Override
    public IAtsQueryService getQueryService() {
       return queryService;
    }
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/task/widgets/estimates/XTaskEstManager.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/task/widgets/estimates/XTaskEstManager.java
index 92ea566..8a4d90e 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/task/widgets/estimates/XTaskEstManager.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/task/widgets/estimates/XTaskEstManager.java
@@ -379,7 +379,7 @@
 
    @Override
    public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
-      if (artifactEvent.isModified(getTeamArt())) {
+      if (getTeamArt() != null && artifactEvent.isModified(getTeamArt())) {
          Displays.ensureInDisplayThread(new Runnable() {
             @Override
             public void run() {
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java
index f0b98b5..8c57fc9 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java
@@ -54,7 +54,6 @@
 import org.eclipse.osee.framework.core.data.UserService;
 import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
 import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.core.server.OseeInfo;
 import org.eclipse.osee.orcs.OrcsApi;
 
 /**
@@ -256,11 +255,6 @@
    }
 
    @Override
-   public boolean isWorkDefAsName() {
-      return "true".equals(OseeInfo.getCachedValue(getJdbcService().getClient(), "osee.work.def.as.name"));
-   }
-
-   @Override
    public IAtsTaskRelatedService getTaskRelatedService() {
       return taskRelatedService;
    }
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApplication.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApplication.java
index 9ed61a5..b34155b 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApplication.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApplication.java
@@ -51,7 +51,6 @@
 import org.eclipse.osee.ats.rest.internal.workitem.AtsWorkPackageEndpointImpl;
 import org.eclipse.osee.ats.rest.internal.workitem.StateResource;
 import org.eclipse.osee.ats.rest.internal.workitem.operations.ConvertWorkDefinitionToAttributes;
-import org.eclipse.osee.ats.rest.internal.workitem.operations.FixWorkDefinitionToAttributeConversion;
 import org.eclipse.osee.ats.rest.internal.workitem.workdef.AtsWorkDefEndpointImpl;
 import org.eclipse.osee.ats.rest.internal.world.AtsWorldEndpointImpl;
 import org.eclipse.osee.framework.core.executor.ExecutorAdmin;
@@ -111,7 +110,6 @@
       atsApiServer.addAtsDatabaseConversion(atsConfgConversion);
       atsApiServer.addAtsDatabaseConversion(new ConvertAtsConfigGuidAttributes());
       atsApiServer.addAtsDatabaseConversion(new ConvertWorkDefinitionToAttributes());
-      atsApiServer.addAtsDatabaseConversion(new FixWorkDefinitionToAttributeConversion());
 
       // Register agile html report operations
       atsApiServer.getAgileSprintHtmlReportOperations().add(new SprintSummaryOperation(atsApiServer, registry));
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/operations/ConvertWorkDefinitionOperations.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/operations/ConvertWorkDefinitionOperations.java
index c13dce5..9e77d0b 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/operations/ConvertWorkDefinitionOperations.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/operations/ConvertWorkDefinitionOperations.java
@@ -13,6 +13,7 @@
 
 package org.eclipse.osee.ats.rest.internal.workitem.operations;
 
+import static org.eclipse.osee.ats.api.data.AtsTypeTokenProvider.ats;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -21,6 +22,7 @@
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
+import javax.ws.rs.core.MediaType;
 import org.eclipse.osee.ats.api.AtsApi;
 import org.eclipse.osee.ats.api.IAtsWorkItem;
 import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
@@ -31,6 +33,7 @@
 import org.eclipse.osee.ats.api.workflow.WorkItemType;
 import org.eclipse.osee.framework.core.data.ArtifactId;
 import org.eclipse.osee.framework.core.data.ArtifactToken;
+import org.eclipse.osee.framework.core.data.AttributeTypeString;
 import org.eclipse.osee.framework.core.data.AttributeTypeToken;
 import org.eclipse.osee.framework.jdk.core.result.XResultData;
 import org.eclipse.osee.framework.jdk.core.util.Collections;
@@ -48,6 +51,10 @@
    private final AtsApi atsApi;
    private final OrcsApi orcsApi;
 
+   // Types would need to be moved back temporarily to AtsAttributeTypes to be loaded correctly
+   AttributeTypeString WorkflowDefinition = ats.createString(1152921504606847149L, "ats.Workflow Definition",
+      MediaType.TEXT_PLAIN, "Specific work flow definition id used by this Workflow artifact");
+
    public ConvertWorkDefinitionOperations(AtsApi atsApi, OrcsApi orcsApi) {
       this.atsApi = atsApi;
       this.orcsApi = orcsApi;
@@ -65,7 +72,7 @@
       List<ArtifactId> artIdList = new LinkedList<>();
       artIdList.addAll(
          atsApi.getQueryService().createQuery(WorkItemType.WorkItem).andAttr(AtsAttributeTypes.CurrentStateType,
-            StateType.Working.name()).andNotExists(AtsAttributeTypes.WorkflowDefinition).getItemIds());
+            StateType.Working.name()).andNotExists(WorkflowDefinition).getItemIds());
       List<Collection<ArtifactId>> subDivide = Collections.subDivide(artIdList, 500);
       int size = subDivide.size();
       int count = 1;
@@ -91,8 +98,7 @@
                if (workDefinition == null || workDefinition.isInvalid()) {
                   rd.error(String.format("null Work Definition for %s", workItem.toStringWithId()));
                } else {
-                  changes.setSoleAttributeValue(workItem, AtsAttributeTypes.WorkflowDefinition,
-                     workDefinition.getName());
+                  changes.setSoleAttributeValue(workItem, WorkflowDefinition, workDefinition.getName());
                   updatedCount++;
                }
             }
@@ -229,7 +235,7 @@
    private void convertMissingTeamDefinitionWorkDefAttributes(XResultData rd) {
 
       Map<AttributeTypeToken, AttributeTypeToken> oldAttrTypeToNewTypeMap = new HashMap<>();
-      oldAttrTypeToNewTypeMap.put(AtsAttributeTypes.WorkflowDefinition, AtsAttributeTypes.WorkflowDefinitionReference);
+      oldAttrTypeToNewTypeMap.put(WorkflowDefinition, AtsAttributeTypes.WorkflowDefinitionReference);
       oldAttrTypeToNewTypeMap.put(AtsAttributeTypes.RelatedTaskWorkflowDefinition,
          AtsAttributeTypes.RelatedTaskWorkflowDefinitionReference);
       oldAttrTypeToNewTypeMap.put(AtsAttributeTypes.RelatedPeerWorkflowDefinition,
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/operations/FixWorkDefinitionToAttributeConversion.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/operations/FixWorkDefinitionToAttributeConversion.java
deleted file mode 100644
index 16b2196..0000000
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/operations/FixWorkDefinitionToAttributeConversion.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2019 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.ats.rest.internal.workitem.operations;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import org.eclipse.osee.ats.api.AtsApi;
-import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
-import org.eclipse.osee.ats.api.util.IAtsDatabaseConversion;
-import org.eclipse.osee.ats.api.workdef.AtsWorkDefinitionTokens;
-import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
-import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
-import org.eclipse.osee.ats.api.workflow.WorkItemType;
-import org.eclipse.osee.framework.core.data.ArtifactId;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.jdk.core.result.XResultData;
-import org.eclipse.osee.framework.jdk.core.util.Collections;
-
-/**
- * See description below
- *
- * @author Donald G Dunne
- */
-public class FixWorkDefinitionToAttributeConversion implements IAtsDatabaseConversion {
-
-   @Override
-   public void run(XResultData rd, boolean reportOnly, AtsApi atsApi) {
-      List<ArtifactId> artIdList = new LinkedList<>();
-      artIdList.addAll(atsApi.getQueryService().createQuery(WorkItemType.WorkItem).andAttr(
-         AtsAttributeTypes.WorkflowDefinition, AtsWorkDefinitionTokens.WorkDef_Team_Default.getName()).getItemIds());
-      List<Collection<ArtifactId>> subDivide = Collections.subDivide(artIdList, 500);
-      int size = subDivide.size();
-      int count = 1;
-      for (Collection<ArtifactId> artIds : subDivide) {
-         String msg = String.format("WorkItem Set: Processing %s / %s\n", count++, size);
-         rd.logf(msg);
-         List<Long> ids = new LinkedList<>();
-         for (ArtifactId art : artIds) {
-            ids.add(art.getId());
-         }
-         Collection<ArtifactToken> artSet = atsApi.getQueryService().getArtifacts(ids);
-         for (ArtifactToken art : artSet) {
-            IAtsTeamWorkflow teamWf = atsApi.getWorkItemService().getTeamWf(art);
-            IAtsWorkDefinition workDefinition = atsApi.getWorkDefinitionService().getWorkDefinition(teamWf);
-            IAtsWorkDefinition computeWorkDefinition =
-               atsApi.getWorkDefinitionService().computeWorkDefinition(teamWf, false);
-            if (!workDefinition.equals(computeWorkDefinition)) {
-               String log = String.format("Work Def [%s] doesn't match computed [%s] for %s", workDefinition,
-                  computeWorkDefinition, teamWf.toStringWithId());
-               rd.error(log);
-            }
-         }
-      }
-   }
-
-   @Override
-   public String getDescription() {
-      StringBuffer data = new StringBuffer();
-      data.append("Fix/Validate Work Definition to attributes conversion....\n");
-      return data.toString();
-   }
-
-   @Override
-   public String getName() {
-      return "Fix/Validate Work Definition To Attributes";
-   }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/sections/BlamOutputSection.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/sections/BlamOutputSection.java
index d373cfd..8621ef6 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/sections/BlamOutputSection.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/sections/BlamOutputSection.java
@@ -123,13 +123,15 @@
 
    @Override
    public void refresh() {
-      super.refresh();
-      int height = formText.getLineCount() * formText.getLineHeight();
-      GridData formTextGd = new GridData(SWT.FILL, SWT.FILL, true, true);
-      formTextGd.heightHint = height;
-      formTextGd.widthHint = 200;
-      formText.setLayoutData(formTextGd);
-      getManagedForm().reflow(true);
+      if (!formText.isDisposed()) {
+         super.refresh();
+         int height = formText.getLineCount() * formText.getLineHeight();
+         GridData formTextGd = new GridData(SWT.FILL, SWT.FILL, true, true);
+         formTextGd.heightHint = height;
+         formTextGd.widthHint = 200;
+         formText.setLayoutData(formTextGd);
+         getManagedForm().reflow(true);
+      }
    }
 
    private final class InternalLogger extends OperationLogger {