Save Workflow Artifact to SDC.
Get SDC Serive Proxy Information from conf file.
Call rest api to save workflow artifact to SDC
Issue-ID: SDC-1004
Change-Id: I620674def79bdfb9fd71aebc96d0774bc7dfddd8
Signed-off-by: YuanHu <yuan.hu1@zte.com.cn>
diff --git a/sdc-workflow-designer-server/pom.xml b/sdc-workflow-designer-server/pom.xml
index 98733c9..b47f845 100644
--- a/sdc-workflow-designer-server/pom.xml
+++ b/sdc-workflow-designer-server/pom.xml
@@ -27,6 +27,8 @@
<properties>
<jackson.version>2.9.1</jackson.version>
+ <gson.version>2.2.4</gson.version>
+ <jaxrs.consumer.version>5.0</jaxrs.consumer.version>
<velocity.version>1.7</velocity.version>
<junit.version>4.10</junit.version>
<dropwizard.version>1.2.4</dropwizard.version>
@@ -157,6 +159,26 @@
<version>${jackson.version}</version>
</dependency>
+ <!-- gson -->
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>${gson.version}</version>
+ </dependency>
+
+ <!-- consumer -->
+ <dependency>
+ <groupId>com.eclipsesource.jaxrs</groupId>
+ <artifactId>consumer</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>com.eclipsesource.jaxrs</groupId>
+ <artifactId>jersey-all</artifactId>
+ </exclusion>
+ </exclusions>
+ <version>${jaxrs.consumer.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/SDCServiceProxyInfo.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/SDCServiceProxyInfo.java
new file mode 100644
index 0000000..5d8b8ea
--- /dev/null
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/SDCServiceProxyInfo.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2018 ZTE Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the Apache License, Version 2.0
+ * and the Eclipse Public License v1.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * ZTE - initial API and implementation and/or initial documentation
+ */
+package org.onap.sdc.workflowdesigner;
+
+/**
+ *
+ */
+public class SDCServiceProxyInfo {
+ private String xEcompInstanceId;
+
+ private String authorization;
+
+ /**
+ * @return the xEcompInstanceId
+ */
+ public String getxEcompInstanceId() {
+ return xEcompInstanceId;
+ }
+
+ /**
+ * @param xEcompInstanceId the xEcompInstanceId to set
+ */
+ public void setxEcompInstanceId(String xEcompInstanceId) {
+ this.xEcompInstanceId = xEcompInstanceId;
+ }
+
+ /**
+ * @return the authorization
+ */
+ public String getAuthorization() {
+ return authorization;
+ }
+
+ /**
+ * @param authorization the authorization to set
+ */
+ public void setAuthorization(String authorization) {
+ this.authorization = authorization;
+ }
+
+}
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerApp.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerApp.java
index e2ec271..ba0fcd7 100644
--- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerApp.java
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerApp.java
@@ -30,7 +30,6 @@
import io.swagger.jaxrs.listing.ApiListingResource;
public class WorkflowDesignerApp extends Application<WorkflowDesignerConfiguration> {
-
private static final Logger LOGGER = LoggerFactory.getLogger(WorkflowDesignerApp.class);
public static void main(String[] args) throws Exception {
@@ -55,6 +54,7 @@
LOGGER.info("Start to initialize Workflow Designer.");
AppConfig.setMsbServerAddr(configuration.getMsbServerAddr());
+ AppConfig.setSdcServiceProxy(configuration.getSdcServiceProxy());
environment.jersey().register(new WorkflowModelerResource());
environment.jersey().register(new ExtendActivityResource());
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerConfiguration.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerConfiguration.java
index b4ed3d1..dfdffcf 100644
--- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerConfiguration.java
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/WorkflowDesignerConfiguration.java
@@ -27,6 +27,9 @@
@NotEmpty
private String msbServerAddr;
+
+ @NotEmpty
+ private SDCServiceProxyInfo sdcServiceProxy;
@JsonProperty
public String getTemplate() {
@@ -58,4 +61,20 @@
this.msbServerAddr = msbServerAddr;
}
+ /**
+ * @return the sdcServiceProxy
+ */
+ @JsonProperty
+ public SDCServiceProxyInfo getSdcServiceProxy() {
+ return sdcServiceProxy;
+ }
+
+ /**
+ * @param sdcServiceProxy the sdcServiceProxy to set
+ */
+ @JsonProperty
+ public void setSdcServiceProxy(SDCServiceProxyInfo sdcServiceProxy) {
+ this.sdcServiceProxy = sdcServiceProxy;
+ }
+
}
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/WorkflowDesignerException.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/WorkflowDesignerException.java
new file mode 100644
index 0000000..343df01
--- /dev/null
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/WorkflowDesignerException.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 ZTE Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onap.sdc.workflowdesigner.common;
+
+public class WorkflowDesignerException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public WorkflowDesignerException() {
+ super();
+ }
+
+ public WorkflowDesignerException(String msg, Exception e) {
+ super(msg, e);
+ }
+
+ public WorkflowDesignerException(String msg) {
+ super(msg);
+ }
+}
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/config/AppConfig.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/config/AppConfig.java
index a3cae9c..f9aa060 100644
--- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/config/AppConfig.java
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/config/AppConfig.java
@@ -15,15 +15,17 @@
*/
package org.onap.sdc.workflowdesigner.config;
+import org.onap.sdc.workflowdesigner.SDCServiceProxyInfo;
+
/**
*
*/
public class AppConfig {
private static String msbServerAddr;
+ private static SDCServiceProxyInfo sdcServiceProxy;
private AppConfig() {}
-
public static String getMsbServerAddr() {
return msbServerAddr;
}
@@ -31,4 +33,23 @@
public static void setMsbServerAddr(String msbServerAddr) {
AppConfig.msbServerAddr = msbServerAddr;
}
+
+ public static String getSDCAddr() {
+ return msbServerAddr + "/api/sdc/v1";
+ }
+
+ /**
+ * @param sdcServiceProxy
+ */
+ public static void setSdcServiceProxy(SDCServiceProxyInfo sdcServiceProxy) {
+ AppConfig.sdcServiceProxy = sdcServiceProxy;
+ }
+
+ /**
+ * @return the sdcServiceProxy
+ */
+ public static SDCServiceProxyInfo getSdcServiceProxy() {
+ return sdcServiceProxy;
+ }
+
}
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCService.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCService.java
new file mode 100644
index 0000000..d5a5566
--- /dev/null
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCService.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright 2018 ZTE Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onap.sdc.workflowdesigner.externalservice.sdc;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.WorkflowArtifactInfo;
+
+@Path("/catalog")
+public interface SDCService {
+ @POST
+ @Path("/resource/{uuid}/interfaces/{operationID}/artifacts/{id}")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ public void saveWorkflowArtifact(@PathParam("uuid") String uuid,
+ @PathParam("operationID") String operationId, @PathParam("id") String workflowId,
+ @HeaderParam("X-ECOMP-InstanceID") String xEcompInstanceId,
+ @HeaderParam("Authorization") String authorization,
+ WorkflowArtifactInfo workflowArtifactInfo) throws Exception;
+
+
+ @GET
+ @Path("/resource/{uuid}/interfaces/{operationID}/artifacts/{id}")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ public WorkflowArtifactInfo getWorkflowArtifact(@PathParam("uuid") String uuid,
+ @PathParam("operationID") String operationId, @PathParam("id") String workflowId,
+ @HeaderParam("X-ECOMP-InstanceID") String xEcompInstanceId,
+ @HeaderParam("Authorization") String authorization) throws Exception;
+
+}
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCServiceProxy.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCServiceProxy.java
new file mode 100644
index 0000000..c9c0f81
--- /dev/null
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCServiceProxy.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2017-2018 ZTE Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onap.sdc.workflowdesigner.externalservice.sdc;
+
+import org.glassfish.jersey.client.ClientConfig;
+import org.onap.sdc.workflowdesigner.common.WorkflowDesignerException;
+import org.onap.sdc.workflowdesigner.config.AppConfig;
+import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.WorkflowArtifactInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.eclipsesource.jaxrs.consumer.ConsumerFactory;
+
+/**
+ *
+ */
+public class SDCServiceProxy {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SDCService.class);
+
+ /**
+ * @return
+ */
+ private SDCService getSDCServiceProxy() {
+ ClientConfig config = new ClientConfig();
+ SDCService sdcServiceProxy =
+ ConsumerFactory.createConsumer(AppConfig.getSDCAddr(), config, SDCService.class);
+ return sdcServiceProxy;
+ }
+
+ /**
+ *
+ * @param uuid
+ * @param operationId
+ * @param workflowId
+ * @param workflowArtifactInfo
+ * @throws WorkflowDesignerException
+ */
+ public void saveWorkflowArtifact(String uuid, String operationId, String workflowId,
+ WorkflowArtifactInfo workflowArtifactInfo) throws WorkflowDesignerException {
+ SDCService sdcServiceProxy = getSDCServiceProxy();
+ try {
+ sdcServiceProxy.saveWorkflowArtifact(uuid, operationId, workflowId,
+ AppConfig.getSdcServiceProxy().getxEcompInstanceId(),
+ AppConfig.getSdcServiceProxy().getAuthorization(), workflowArtifactInfo);
+ } catch (Exception e) {
+ LOGGER.error("Save WorkflowArtifact Failed.", e);
+ throw new WorkflowDesignerException("Save WorkflowArtifact Failed.", e);
+ }
+ }
+
+ /**
+ *
+ * @param uuid
+ * @param operationId
+ * @param workflowId
+ * @return
+ * @throws WorkflowDesignerException
+ */
+ public WorkflowArtifactInfo getWorkflowArtifact(String uuid, String operationId,
+ String workflowId) throws WorkflowDesignerException {
+ SDCService sdcServiceProxy = getSDCServiceProxy();
+ try {
+ return sdcServiceProxy.getWorkflowArtifact(uuid, operationId, workflowId,
+ AppConfig.getSdcServiceProxy().getxEcompInstanceId(),
+ AppConfig.getSdcServiceProxy().getAuthorization());
+ } catch (Exception e) {
+ LOGGER.error("Get WorkflowArtifact Failed.", e);
+ throw new WorkflowDesignerException("Save WorkflowArtifact Failed.", e);
+ }
+ }
+
+
+}
diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/entity/WorkflowArtifactInfo.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/entity/WorkflowArtifactInfo.java
new file mode 100644
index 0000000..23c8f86
--- /dev/null
+++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/entity/WorkflowArtifactInfo.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright 2018 ZTE Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onap.sdc.workflowdesigner.externalservice.sdc.entity;
+
+import java.io.Serializable;
+
+public class WorkflowArtifactInfo implements Serializable {
+ public static final long serialVersionUID = 1L;
+
+ private String artifactName;
+
+ private String description;
+
+ private String artifactType = "WORKFLOW";
+
+ private String payloadData;
+
+
+ /**
+ * @param artifactName
+ * @param description
+ * @param artifactType
+ * @param payloadData
+ */
+ public WorkflowArtifactInfo(String artifactName, String description, String artifactType,
+ String payloadData) {
+ super();
+ this.artifactName = artifactName;
+ this.description = description;
+ this.artifactType = artifactType;
+ this.payloadData = payloadData;
+ }
+
+ /**
+ * @return the artifactName
+ */
+ public String getArtifactName() {
+ return artifactName;
+ }
+
+ /**
+ * @param artifactName the artifactName to set
+ */
+ public void setArtifactName(String artifactName) {
+ this.artifactName = artifactName;
+ }
+
+ /**
+ * @return the description
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * @param description the description to set
+ */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /**
+ * @return the artifactType
+ */
+ public String getArtifactType() {
+ return artifactType;
+ }
+
+ /**
+ * @param artifactType the artifactType to set
+ */
+ public void setArtifactType(String artifactType) {
+ this.artifactType = artifactType;
+ }
+
+ /**
+ * @return the payloadData
+ */
+ public String getPayloadData() {
+ return payloadData;
+ }
+
+ /**
+ * @param payloadData the payloadData to set
+ */
+ public void setPayloadData(String payloadData) {
+ this.payloadData = payloadData;
+ }
+
+ /**
+ * @return the serialversionuid
+ */
+ public static long getSerialversionuid() {
+ return serialVersionUID;
+ }
+
+}