Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2015-09-16 19:54:43 +0000
committerRyan D. Brooks2015-09-16 19:54:43 +0000
commitf12239abe2b4267948195947a6b59ab0bd1917a4 (patch)
treed243c024cd5da2f68e4d0d3bfc84d46c483c4580 /plugins
parent76241f8d2fedfee92f8bc7d2e24dfe6780d76e71 (diff)
downloadorg.eclipse.osee-f12239abe2b4267948195947a6b59ab0bd1917a4.tar.gz
org.eclipse.osee-f12239abe2b4267948195947a6b59ab0bd1917a4.tar.xz
org.eclipse.osee-f12239abe2b4267948195947a6b59ab0bd1917a4.zip
feature[ats_ATS217737]: Add store work definition to server
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsServices.java2
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/AtsConfigEndpointApi.java7
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/JaxAtsWorkDef.java37
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/OSEE-INF/support/WorkDef_Team_AtsTestUtil.ats74
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/build.properties3
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/AtsClientService.java9
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java108
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/AtsTest_Workflow_Suite.java1
-rw-r--r--plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/StoreWorkDefinitionTest.java60
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java5
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java6
-rw-r--r--plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigEndpointImpl.java38
-rw-r--r--plugins/org.eclipse.osee.framework.ui.ws/src/org/eclipse/osee/framework/ui/ws/AWorkspace.java19
14 files changed, 300 insertions, 70 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsServices.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsServices.java
index 30fe616db84..a1893118722 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsServices.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsServices.java
@@ -92,4 +92,6 @@ public interface IAtsServices {
IAtsTaskService getTaskService();
+ ArtifactId getArtifactByName(IArtifactType artifactType, String name);
+
}
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/AtsConfigEndpointApi.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/AtsConfigEndpointApi.java
index 84b62a653b6..81cff27ef66 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/AtsConfigEndpointApi.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/AtsConfigEndpointApi.java
@@ -13,6 +13,7 @@ package org.eclipse.osee.ats.api.config;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
@@ -20,6 +21,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
+import org.eclipse.osee.ats.api.workdef.JaxAtsWorkDef;
import org.eclipse.osee.framework.jdk.core.type.ViewModel;
/**
@@ -60,4 +62,9 @@ public interface AtsConfigEndpointApi {
@POST
public Response createUpdateConfig();
+ @PUT
+ @Path("workDef")
+ @Consumes(MediaType.APPLICATION_JSON)
+ public Response storeWorkDef(JaxAtsWorkDef jaxWorkDef);
+
}
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/JaxAtsWorkDef.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/JaxAtsWorkDef.java
new file mode 100644
index 00000000000..824886ec0e5
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/JaxAtsWorkDef.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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.api.workdef;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class JaxAtsWorkDef {
+
+ private String name;
+ private String workDefDsl;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getWorkDefDsl() {
+ return workDefDsl;
+ }
+
+ public void setWorkDefDsl(String workDefDsl) {
+ this.workDefDsl = workDefDsl;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.client.integration.tests/META-INF/MANIFEST.MF
index e56b0fad88e..61d0ee6e669 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/META-INF/MANIFEST.MF
@@ -120,6 +120,7 @@ Import-Package: com.google.common.collect,
org.eclipse.osee.framework.ui.skynet.widgets.util,
org.eclipse.osee.framework.ui.skynet.widgets.xnavigate,
org.eclipse.osee.framework.ui.swt,
+ org.eclipse.osee.framework.ui.ws,
org.eclipse.osee.jaxrs,
org.eclipse.osee.jaxrs.client,
org.eclipse.osee.orcs.rest.model,
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/OSEE-INF/support/WorkDef_Team_AtsTestUtil.ats b/plugins/org.eclipse.osee.ats.client.integration.tests/OSEE-INF/support/WorkDef_Team_AtsTestUtil.ats
new file mode 100644
index 00000000000..167ac05144f
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/OSEE-INF/support/WorkDef_Team_AtsTestUtil.ats
@@ -0,0 +1,74 @@
+workDefinition "WorkDef_Team_AtsTestUtil" {
+ id "WorkDef_Team_AtsTestUtil"
+ startState "Analyze"
+
+ widgetDefinition "Estimated Hours" {
+ attributeName "ats.Estimated Hours"
+ xWidgetName "XFloatDam"
+ }
+
+ widgetDefinition "Work Package" {
+ attributeName "ats.Work Package"
+ xWidgetName "XTextDam"
+ }
+
+ widgetDefinition "Title" {
+ attributeName "Name"
+ xWidgetName "XTextDam"
+ option REQUIRED_FOR_TRANSITION
+ }
+
+ widgetDefinition "Description" {
+ attributeName "ats.Description"
+ xWidgetName "XTextDam"
+ option REQUIRED_FOR_TRANSITION
+ option FILL_VERTICALLY
+ }
+
+ state "Analyze" {
+ type Working
+ ordinal 1
+ to "Implement" AsDefault
+ to "Completed"
+ to "Cancelled" OverrideAttributeValidation
+ layout {
+ widget "Title"
+ widget "Description"
+ composite {
+ numColumns 4
+ widget "Estimated Hours"
+ widget "Work Package"
+ }
+ }
+ }
+
+ state "Implement" {
+ type Working
+ ordinal 2
+ to "Analyze" OverrideAttributeValidation
+ to "Completed" AsDefault
+ to "Cancelled" OverrideAttributeValidation
+ layout {
+ widget "Title"
+ widget "Description"
+ composite {
+ numColumns 4
+ widget "Estimated Hours"
+ widget "Work Package"
+ }
+ }
+ }
+
+ state "Completed" {
+ type Completed
+ ordinal 3
+ to "Implement" OverrideAttributeValidation
+ }
+
+ state "Cancelled" {
+ type Cancelled
+ ordinal 4
+ to "Analyze" OverrideAttributeValidation
+ to "Implement" OverrideAttributeValidation
+ }
+}
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/build.properties b/plugins/org.eclipse.osee.ats.client.integration.tests/build.properties
index c58ea2178c3..f6362c7e7c6 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/build.properties
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/build.properties
@@ -2,4 +2,5 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- OSGI-INF/
+ OSGI-INF/,\
+ OSEE-INF/
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/AtsClientService.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/AtsClientService.java
index e362e560b5a..f638128eddb 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/AtsClientService.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/AtsClientService.java
@@ -11,6 +11,7 @@
package org.eclipse.osee.ats.client.integration.tests;
import org.eclipse.osee.ats.api.agile.AgileEndpointApi;
+import org.eclipse.osee.ats.api.config.AtsConfigEndpointApi;
import org.eclipse.osee.ats.api.country.CountryEndpointApi;
import org.eclipse.osee.ats.api.insertion.InsertionActivityEndpointApi;
import org.eclipse.osee.ats.api.insertion.InsertionEndpointApi;
@@ -40,6 +41,7 @@ public class AtsClientService {
private static AtsTaskEndpointApi taskEp;
private static AtsRuleEndpointApi ruleEp;
private static AtsNotifyEndpointApi notifyEp;
+ private static AtsConfigEndpointApi configEp;
public void setAtsClient(IAtsClient atsClient) {
AtsClientService.atsClient = atsClient;
@@ -125,4 +127,11 @@ public class AtsClientService {
return notifyEp;
}
+ public static AtsConfigEndpointApi getConfigEndpoint() {
+ if (configEp == null) {
+ configEp = getTarget().newProxy(AtsConfigEndpointApi.class);
+ }
+ return configEp;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java
index 12451e5e6d9..ff86c6a4246 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/core/client/AtsTestUtil.java
@@ -85,7 +85,7 @@ import org.eclipse.osee.support.test.util.TestUtil;
/**
* Test utility that will create a new work definition, team definition, versions and allow tests to easily
* create/cleanup team workflows, tasks and reviews.
- *
+ *
* @author Donald G. Dunne
*/
public class AtsTestUtil {
@@ -100,7 +100,7 @@ public class AtsTestUtil {
private static ActionArtifact actionArt = null, actionArt2 = null, actionArt3 = null, actionArt4 = null;
private static MockStateDefinition analyze, implement, completed, cancelled = null;
private static MockWorkDefinition workDef = null;
- public static String WORK_DEF_NAME = "Test_Team _Workflow_Definition";
+ public static String WORK_DEF_NAME = "WorkDef_Team_AtsTestUtil";
private static MockWidgetDefinition estHoursWidgetDef, workPackageWidgetDef;
private static String postFixName;
@@ -308,41 +308,36 @@ public class AtsTestUtil {
AtsClientService.get().getWorkDefinitionAdmin().addWorkDefinition(workDef);
String guid = GUID.create();
- testAi =
- AtsClientService.get().createActionableItem(guid, getTitle("AI", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ testAi = AtsClientService.get().createActionableItem(guid, getTitle("AI", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
testAi.setActive(true);
testAi.setActionable(true);
AtsUtilCore.putUuidToGuid(guid, testAi);
guid = GUID.create();
- testAi2 =
- AtsClientService.get().createActionableItem(guid, getTitle("AI2", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ testAi2 = AtsClientService.get().createActionableItem(guid, getTitle("AI2", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
testAi2.setActive(true);
testAi2.setActionable(true);
AtsUtilCore.putUuidToGuid(guid, testAi2);
guid = GUID.create();
- testAi3 =
- AtsClientService.get().createActionableItem(guid, getTitle("AI3", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ testAi3 = AtsClientService.get().createActionableItem(guid, getTitle("AI3", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
testAi3.setActive(true);
testAi3.setActionable(true);
AtsUtilCore.putUuidToGuid(guid, testAi3);
guid = GUID.create();
- testAi4 =
- AtsClientService.get().createActionableItem(guid, getTitle("AI4", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ testAi4 = AtsClientService.get().createActionableItem(guid, getTitle("AI4", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
testAi4.setActive(true);
testAi4.setActionable(true);
AtsUtilCore.putUuidToGuid(guid, testAi4);
guid = GUID.create();
- teamDef =
- AtsClientService.get().createTeamDefinition(guid, getTitle("Team Def", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ teamDef = AtsClientService.get().createTeamDefinition(guid, getTitle("Team Def", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
teamDef.setWorkflowDefinition(WORK_DEF_NAME);
teamDef.setActive(true);
teamDef.getLeads().add(AtsClientService.get().getUserService().getCurrentUser());
@@ -354,37 +349,32 @@ public class AtsTestUtil {
testAi4.setTeamDefinition(teamDef);
guid = GUID.create();
- verArt1 =
- AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 1.0", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ verArt1 = AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 1.0", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
teamDef.getVersions().add(verArt1);
AtsUtilCore.putUuidToGuid(guid, verArt1);
guid = GUID.create();
- verArt2 =
- AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 2.0", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ verArt2 = AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 2.0", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
teamDef.getVersions().add(verArt2);
AtsUtilCore.putUuidToGuid(guid, verArt2);
guid = GUID.create();
- verArt3 =
- AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 3.0", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ verArt3 = AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 3.0", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
teamDef.getVersions().add(verArt3);
AtsUtilCore.putUuidToGuid(guid, verArt3);
guid = GUID.create();
- verArt4 =
- AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 4.0", postFixName),
- AtsUtilClient.createConfigObjectUuid());
+ verArt4 = AtsClientService.get().getVersionService().createVersion(guid, getTitle("ver 4.0", postFixName),
+ AtsUtilClient.createConfigObjectUuid());
teamDef.getVersions().add(verArt4);
AtsUtilCore.putUuidToGuid(guid, verArt4);
- actionArt =
- ActionManager.createAction(null, getTitle("Team WF", postFixName), "description", ChangeType.Improvement, "1",
- false, null, Arrays.asList(testAi), new Date(), AtsClientService.get().getUserService().getCurrentUser(),
- null, changes);
+ actionArt = ActionManager.createAction(null, getTitle("Team WF", postFixName), "description",
+ ChangeType.Improvement, "1", false, null, Arrays.asList(testAi), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), null, changes);
AtsUtilCore.putUuidToGuid(actionArt.getGuid(), actionArt);
teamArt = actionArt.getFirstTeam();
@@ -396,9 +386,8 @@ public class AtsTestUtil {
public static TaskArtifact getOrCreateTaskOffTeamWf1(AtsChangeSet changes) throws OseeCoreException {
ensureLoaded();
if (taskArtWf1 == null) {
- taskArtWf1 =
- teamArt.createNewTask(getTitle("Task", postFixName), new Date(),
- AtsClientService.get().getUserService().getCurrentUser(), changes);
+ taskArtWf1 = teamArt.createNewTask(getTitle("Task", postFixName), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), changes);
taskArtWf1.setSoleAttributeValue(AtsAttributeTypes.RelatedToState, teamArt.getCurrentStateName());
AtsUtilCore.putUuidToGuid(taskArtWf1.getGuid(), taskArtWf1);
}
@@ -408,9 +397,8 @@ public class AtsTestUtil {
public static TaskArtifact getOrCreateTaskOffTeamWf2(AtsChangeSet changes) throws OseeCoreException {
ensureLoaded();
if (taskArtWf2 == null) {
- taskArtWf2 =
- teamArt.createNewTask(getTitle("Task", postFixName), new Date(),
- AtsClientService.get().getUserService().getCurrentUser(), changes);
+ taskArtWf2 = teamArt.createNewTask(getTitle("Task", postFixName), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), changes);
taskArtWf2.setSoleAttributeValue(AtsAttributeTypes.RelatedToState, teamArt.getCurrentStateName());
AtsUtilCore.putUuidToGuid(taskArtWf2.getGuid(), taskArtWf2);
}
@@ -424,11 +412,10 @@ public class AtsTestUtil {
options.add(new SimpleDecisionReviewOption(DecisionReviewState.Completed.getName(), false, null));
options.add(new SimpleDecisionReviewOption(DecisionReviewState.Followup.getName(), true,
Arrays.asList(AtsClientService.get().getUserService().getCurrentUser().getUserId())));
- decRevArt =
- DecisionReviewManager.createNewDecisionReview(teamArt, reviewBlockType,
- AtsTestUtil.class.getSimpleName() + " Test Decision Review", relatedToState.getName(),
- "Decision Review", options, Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()),
- new Date(), AtsClientService.get().getUserService().getCurrentUser(), changes);
+ decRevArt = DecisionReviewManager.createNewDecisionReview(teamArt, reviewBlockType,
+ AtsTestUtil.class.getSimpleName() + " Test Decision Review", relatedToState.getName(), "Decision Review",
+ options, Arrays.asList(AtsClientService.get().getUserService().getCurrentUser()), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), changes);
AtsUtilCore.putUuidToGuid(decRevArt.getGuid(), decRevArt);
}
return decRevArt;
@@ -523,9 +510,8 @@ public class AtsTestUtil {
deleteTeamWf(teamArt3);
deleteTeamWf(teamArt4);
- SkynetTransaction transaction =
- TransactionManager.createTransaction(AtsUtilCore.getAtsBranch(),
- AtsTestUtil.class.getSimpleName() + " - cleanup config");
+ SkynetTransaction transaction = TransactionManager.createTransaction(AtsUtilCore.getAtsBranch(),
+ AtsTestUtil.class.getSimpleName() + " - cleanup config");
for (IAtsConfigObject config : Arrays.asList(teamDef, testAi, testAi2, testAi3, testAi4)) {
if (config != null && config.getStoreObject() instanceof Artifact) {
Artifact art = (Artifact) config.getStoreObject();
@@ -644,10 +630,9 @@ public class AtsTestUtil {
ensureLoaded();
try {
if (peerRevArt == null) {
- peerRevArt =
- PeerToPeerReviewManager.createNewPeerToPeerReview(
- AtsClientService.get().getWorkDefinitionAdmin().getDefaultPeerToPeerWorkflowDefinitionMatch().getWorkDefinition(),
- teamArt, AtsTestUtil.class.getSimpleName() + " Test Peer Review", relatedToState.getName(), changes);
+ peerRevArt = PeerToPeerReviewManager.createNewPeerToPeerReview(
+ AtsClientService.get().getWorkDefinitionAdmin().getDefaultPeerToPeerWorkflowDefinitionMatch().getWorkDefinition(),
+ teamArt, AtsTestUtil.class.getSimpleName() + " Test Peer Review", relatedToState.getName(), changes);
peerRevArt.setSoleAttributeValue(AtsAttributeTypes.ReviewBlocks, reviewBlockType.name());
}
} catch (OseeCoreException ex) {
@@ -660,10 +645,9 @@ public class AtsTestUtil {
ensureLoaded();
if (teamArt2 == null) {
AtsChangeSet changes = new AtsChangeSet(AtsTestUtil.class.getSimpleName());
- actionArt2 =
- ActionManager.createAction(null, getTitle("Team WF2", postFixName), "description", ChangeType.Improvement,
- "1", false, null, Arrays.asList(testAi2), new Date(),
- AtsClientService.get().getUserService().getCurrentUser(), null, changes);
+ actionArt2 = ActionManager.createAction(null, getTitle("Team WF2", postFixName), "description",
+ ChangeType.Improvement, "1", false, null, Arrays.asList(testAi2), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), null, changes);
teamArt2 = actionArt2.getFirstTeam();
changes.execute();
AtsUtilCore.putUuidToGuid(actionArt2.getGuid(), actionArt2);
@@ -681,10 +665,9 @@ public class AtsTestUtil {
ensureLoaded();
if (teamArt3 == null) {
AtsChangeSet changes = new AtsChangeSet(AtsTestUtil.class.getSimpleName());
- actionArt3 =
- ActionManager.createAction(null, getTitle("Team WF3", postFixName), "description", ChangeType.Improvement,
- "1", false, null, Arrays.asList(testAi3), new Date(),
- AtsClientService.get().getUserService().getCurrentUser(), null, changes);
+ actionArt3 = ActionManager.createAction(null, getTitle("Team WF3", postFixName), "description",
+ ChangeType.Improvement, "1", false, null, Arrays.asList(testAi3), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), null, changes);
teamArt3 = actionArt3.getFirstTeam();
changes.execute();
AtsUtilCore.putUuidToGuid(actionArt3.getGuid(), actionArt3);
@@ -702,10 +685,9 @@ public class AtsTestUtil {
ensureLoaded();
if (teamArt4 == null) {
AtsChangeSet changes = new AtsChangeSet(AtsTestUtil.class.getSimpleName());
- actionArt4 =
- ActionManager.createAction(null, getTitle("Team WF4", postFixName), "description", ChangeType.Improvement,
- "1", false, null, Arrays.asList(testAi4), new Date(),
- AtsClientService.get().getUserService().getCurrentUser(), null, changes);
+ actionArt4 = ActionManager.createAction(null, getTitle("Team WF4", postFixName), "description",
+ ChangeType.Improvement, "1", false, null, Arrays.asList(testAi4), new Date(),
+ AtsClientService.get().getUserService().getCurrentUser(), null, changes);
teamArt4 = actionArt4.getFirstTeam();
AtsClientService.get().getVersionService().setTargetedVersion(teamArt4, verArt4);
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/AtsTest_Workflow_Suite.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/AtsTest_Workflow_Suite.java
index d4355bc282a..ca00fc0865c 100644
--- a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/AtsTest_Workflow_Suite.java
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/AtsTest_Workflow_Suite.java
@@ -22,6 +22,7 @@ import org.junit.runners.Suite;
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({
+ StoreWorkDefinitionTest.class,
AtsTaskEndpointImplTest.class,
SMAPromptChangeStatusTest.class,
TeamWorkflowProvidersTest.class,
diff --git a/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/StoreWorkDefinitionTest.java b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/StoreWorkDefinitionTest.java
new file mode 100644
index 00000000000..26d20f2d1fa
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.client.integration.tests/src/org/eclipse/osee/ats/client/integration/tests/ats/workflow/StoreWorkDefinitionTest.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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.client.integration.tests.ats.workflow;
+
+import org.eclipse.osee.ats.api.config.AtsConfigEndpointApi;
+import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
+import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
+import org.eclipse.osee.ats.api.workdef.JaxAtsWorkDef;
+import org.eclipse.osee.ats.client.integration.tests.AtsClientService;
+import org.eclipse.osee.ats.client.integration.tests.ats.core.client.AtsTestUtil;
+import org.eclipse.osee.framework.core.util.XResultData;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.ui.ws.AWorkspace;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test unit for {@link AtsConfigEndpointApi.storeWorkDef}
+ *
+ * @author Mark Joy
+ */
+
+public class StoreWorkDefinitionTest {
+
+ @Before
+ @After
+ public void cleanup() throws Exception {
+ Artifact workDefArt = (Artifact) AtsClientService.get().getArtifactByName(AtsArtifactTypes.WorkDefinition,
+ AtsTestUtil.WORK_DEF_NAME);
+ if (workDefArt != null) {
+ workDefArt.deleteAndPersist();
+ }
+ }
+
+ @Test
+ public void test() throws Exception {
+ JaxAtsWorkDef jaxWorkDef = new JaxAtsWorkDef();
+ jaxWorkDef.setName(AtsTestUtil.WORK_DEF_NAME);
+ String atsDsl =
+ AWorkspace.getOseeInfResource("support/" + AtsTestUtil.WORK_DEF_NAME + ".ats", StoreWorkDefinitionTest.class);
+ jaxWorkDef.setWorkDefDsl(atsDsl);
+ AtsClientService.getConfigEndpoint().storeWorkDef(jaxWorkDef);
+
+ XResultData resultData = new XResultData();
+ IAtsWorkDefinition workDef =
+ AtsClientService.get().getWorkDefService().getWorkDef(AtsTestUtil.WORK_DEF_NAME, resultData);
+ Assert.assertNotNull(workDef);
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
index aa9fb7dd86c..21cfd88f349 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
@@ -815,4 +815,9 @@ public class AtsClientImpl extends AtsCoreServiceImpl implements IAtsClient {
return taskService;
}
+ @Override
+ public Artifact getArtifactByName(IArtifactType artType, String name) {
+ return ArtifactQuery.getArtifactFromTypeAndNameNoException(artType, name, AtsUtilCore.getAtsBranch());
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java
index dae7825b8ba..d252866b433 100644
--- a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java
@@ -598,4 +598,10 @@ public class AtsServerImpl extends AtsCoreServiceImpl implements IAtsServer {
return taskService;
}
+ @Override
+ public ArtifactReadable getArtifactByName(IArtifactType artifactType, String name) {
+ return orcsApi.getQueryFactory().fromBranch(AtsUtilCore.getAtsBranch()).andIsOfType(artifactType).andNameEquals(
+ name).getResults().getAtMostOneOrNull();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigEndpointImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigEndpointImpl.java
index afe7fef7570..91175654c6f 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigEndpointImpl.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigEndpointImpl.java
@@ -13,6 +13,7 @@ package org.eclipse.osee.ats.rest.internal.config;
import java.util.concurrent.Callable;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
@@ -29,6 +30,9 @@ import org.eclipse.osee.ats.api.data.AtsArtifactToken;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.api.workdef.JaxAtsWorkDef;
+import org.eclipse.osee.ats.core.users.AtsCoreUsers;
+import org.eclipse.osee.ats.core.util.AtsUtilCore;
import org.eclipse.osee.ats.impl.IAtsServer;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.IArtifactToken;
@@ -221,4 +225,38 @@ public final class AtsConfigEndpointImpl implements AtsConfigEndpointApi {
return Response.ok(resultData.toString()).build();
}
+ @PUT
+ @Path("workDef")
+ @Override
+ public Response storeWorkDef(JaxAtsWorkDef jaxWorkDef) {
+ TransactionBuilder tx = orcsApi.getTransactionFactory().createTransaction(CoreBranches.COMMON,
+ atsServer.getArtifactByUuid(AtsCoreUsers.SYSTEM_USER.getUuid()),
+ "Store Work Definition " + jaxWorkDef.getName());
+ ArtifactReadable workDefArt = orcsApi.getQueryFactory().fromBranch(AtsUtilCore.getAtsBranch()).andIsOfType(
+ AtsArtifactTypes.WorkDefinition).andNameEquals(jaxWorkDef.getName()).getResults().getAtMostOneOrNull();
+ boolean changed = false;
+ if (workDefArt == null) {
+ workDefArt = (ArtifactReadable) tx.createArtifact(AtsArtifactTypes.WorkDefinition, jaxWorkDef.getName());
+ changed = true;
+ }
+
+ String currentDsl = workDefArt.getSoleAttributeAsString(AtsAttributeTypes.DslSheet, null);
+ String newDsl = jaxWorkDef.getWorkDefDsl();
+ if (!newDsl.equals(currentDsl)) {
+ tx.setSoleAttributeValue(workDefArt, AtsAttributeTypes.DslSheet, jaxWorkDef.getWorkDefDsl());
+ changed = true;
+ }
+
+ if (workDefArt.getParent() == null) {
+ ArtifactReadable workDefFolder = atsServer.getArtifact(AtsArtifactToken.WorkDefinitionsFolder);
+ tx.addChildren(workDefFolder, workDefArt);
+ changed = true;
+ }
+ if (changed) {
+ tx.commit();
+ }
+ atsServer.getWorkDefAdmin().clearCaches();
+ return Response.ok().build();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.ui.ws/src/org/eclipse/osee/framework/ui/ws/AWorkspace.java b/plugins/org.eclipse.osee.framework.ui.ws/src/org/eclipse/osee/framework/ui/ws/AWorkspace.java
index d0d3ba5837c..6ffef8be26e 100644
--- a/plugins/org.eclipse.osee.framework.ui.ws/src/org/eclipse/osee/framework/ui/ws/AWorkspace.java
+++ b/plugins/org.eclipse.osee.framework.ui.ws/src/org/eclipse/osee/framework/ui/ws/AWorkspace.java
@@ -11,9 +11,9 @@
package org.eclipse.osee.framework.ui.ws;
import java.io.File;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
-
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@@ -26,6 +26,7 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.ui.IPackagesViewPart;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IViewReference;
@@ -34,10 +35,11 @@ import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.ISetSelectionTarget;
+import org.eclipse.ui.navigator.CommonNavigator;
import org.eclipse.ui.views.navigator.IResourceNavigator;
import org.eclipse.ui.views.navigator.ResourceNavigator;
-import org.eclipse.ui.navigator.CommonNavigator;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
/**
* @author Donald G. Dunne
@@ -142,9 +144,8 @@ public final class AWorkspace {
if (file == null) {
return false;
}
- IViewPart p =
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(
- "org.eclipse.jdt.ui.PackageExplorer");
+ IViewPart p = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(
+ "org.eclipse.jdt.ui.PackageExplorer");
if (p != null && p instanceof IPackagesViewPart) {
StructuredSelection ss = new StructuredSelection(file);
IPackagesViewPart rn = (IPackagesViewPart) p;
@@ -197,6 +198,12 @@ public final class AWorkspace {
return !resources.isEmpty() ? resources.iterator().next() : null;
}
+ public static String getOseeInfResource(String path, Class<?> clazz) throws Exception {
+ Bundle bundle = FrameworkUtil.getBundle(clazz);
+ URL url = bundle.getEntry("OSEE-INF/" + path);
+ return Lib.inputStreamToString(url.openStream());
+ }
+
public static void recursiveFileFind(String fileName, IResource resource, List<IResource> matches) {
if (resource.getName().equalsIgnoreCase(fileName)) {
matches.add(resource);

Back to the top