Activity Spec - change in package and group names
1 Package structure will now be org.onap.sdc.activityspec instead of
org.openecomp.activityspec
2 Same applies for group names
3 This is done to fix issue with pushing docker images to nexus
repository
4 In ONAP in order for you to push to nexus you need to match the package
and artifact name to the repository
Change-Id: I1266c66fa0d0a85acd9ca1164647b996433eb960
Issue-ID: SDC-1048
Signed-off-by: sheetalm <sheetal.mudholkar@amdocs.com>
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml b/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml
index 12bb3ca..49cb3f4 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml
@@ -7,7 +7,7 @@
<artifactId>activity-spec-service</artifactId>
<parent>
- <groupId>org.openecomp.activityspec</groupId>
+ <groupId>org.onap.sdc.activityspec</groupId>
<artifactId>activity-spec</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../..</relativePath>
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/ActivitySpecs.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/ActivitySpecs.java
new file mode 100644
index 0000000..06b8524
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/ActivitySpecs.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecActionRequestDto;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+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.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/activity-spec/")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Activity Specs")
+@Validated
+public interface ActivitySpecs {
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create Activity Spec")
+ Response createActivitySpec(@Valid ActivitySpecRequestDto request);
+
+ @GET
+ @Path("/{id}/versions/{versionId}")
+ @ApiOperation(value = "Get Activity Spec")
+ Response getActivitySpec(@ApiParam(value = "Activity Spec Id") @PathParam("id") String id,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId);
+
+ @PUT
+ @Path("/{id}/versions/{versionId}")
+ @ApiOperation(value = "Update Activity Spec")
+ Response updateActivitySpec(@Valid ActivitySpecRequestDto request,
+ @ApiParam(value = "Activity Spec Id") @PathParam("id") String id,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId);
+
+ @PUT
+ @Path("/{id}/versions/{versionId}/actions")
+ @ApiOperation(value = "Actions on a activity spec",
+ notes = "Performs one of the following actions on a activity spec: |" + "CERTIFY: Certifies activity spec.|"
+ + "DEPRECATE: Deprecates activity spec.|" + "DELETE: Deletes activity spec.")
+ Response actOnActivitySpec(ActivitySpecActionRequestDto request,
+ @ApiParam(value = "Activity Spec Id") @PathParam("id") String id,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId);
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "Get list of activity specs ", responseContainer = "List")
+ Response list(@ApiParam(value = "List activity specs based on status filter") @QueryParam("status")
+ String versionStatus);
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivityParameterToDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivityParameterToDto.java
similarity index 60%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivityParameterToDto.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivityParameterToDto.java
index bd644ff..acf3ef4 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivityParameterToDto.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivityParameterToDto.java
@@ -14,18 +14,18 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.mapping;
+package org.onap.sdc.activityspec.api.rest.mapping;
-import org.openecomp.activityspec.be.datatypes.ActivitySpecParameter;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecParameterDto;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecParameterDto;
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecParameter;
import org.openecomp.sdcrests.mapping.MappingBase;
-public class MapActivityParameterToDto extends MappingBase<ActivitySpecParameter,
- ActivitySpecParameterDto> {
- @Override
- public void doMapping(ActivitySpecParameter source, ActivitySpecParameterDto target) {
- target.setName(source.getName());
- target.setType(source.getType());
- target.setValue(source.getValue());
- }
+public class MapActivityParameterToDto extends MappingBase<ActivitySpecParameter, ActivitySpecParameterDto> {
+
+ @Override
+ public void doMapping(ActivitySpecParameter source, ActivitySpecParameterDto target) {
+ target.setName(source.getName());
+ target.setType(source.getType());
+ target.setValue(source.getValue());
+ }
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java
new file mode 100644
index 0000000..aedb4ed
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest.mapping;
+
+import java.util.ArrayList;
+
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecRequestDto;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecParameter;
+import org.openecomp.sdcrests.mapping.MappingBase;
+
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+public class MapActivitySpecRequestDtoToActivitySpecEntity
+ extends MappingBase<ActivitySpecRequestDto, ActivitySpecEntity> {
+
+ @Override
+ public void doMapping(ActivitySpecRequestDto source, ActivitySpecEntity target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setCategoryList(source.getCategoryList() == null ? new ArrayList<>() : source.getCategoryList());
+ if (Objects.nonNull(source.getInputs())) {
+ target.setInputs(source.getInputs().stream().map(activitySpecParameterDto -> new MapDtoToActivityParameter()
+ .applyMapping(
+ activitySpecParameterDto,
+ ActivitySpecParameter.class))
+ .collect(Collectors.toList()));
+ }
+ if (Objects.nonNull(source.getOutputs())) {
+ target.setOutputs(source.getOutputs().stream()
+ .map(activitySpecParameterDto -> new MapDtoToActivityParameter()
+ .applyMapping(activitySpecParameterDto,
+ ActivitySpecParameter.class))
+ .collect(Collectors.toList()));
+ }
+ target.setType(source.getType());
+ target.setContent(source.getContent());
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java
new file mode 100644
index 0000000..0568ef1
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest.mapping;
+
+import java.util.Objects;
+
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecCreateResponse;
+import org.openecomp.sdcrests.mapping.MappingBase;
+
+public class MapActivitySpecToActivitySpecCreateResponse
+ extends MappingBase<ActivitySpecEntity, ActivitySpecCreateResponse> {
+
+ @Override
+ public void doMapping(ActivitySpecEntity source, ActivitySpecCreateResponse target) {
+ target.setId(source.getId());
+ target.setVersionId(Objects.nonNull(source.getVersion()) ? source.getVersion().getId() : null);
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java
new file mode 100644
index 0000000..fb4fb18
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest.mapping;
+
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecParameterDto;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecGetResponse;
+import org.openecomp.sdcrests.mapping.MappingBase;
+
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+public class MapActivitySpecToActivitySpecGetResponse extends MappingBase<ActivitySpecEntity, ActivitySpecGetResponse> {
+
+ @Override
+ public void doMapping(ActivitySpecEntity source, ActivitySpecGetResponse target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setCategoryList(source.getCategoryList());
+ if (Objects.nonNull(source.getInputs())) {
+ target.setInputs(source.getInputs().stream().map(activitySpecParameter -> new MapActivityParameterToDto()
+ .applyMapping(
+ activitySpecParameter,
+ ActivitySpecParameterDto.class))
+ .collect(Collectors.toList()));
+ }
+ if (Objects.nonNull(source.getOutputs())) {
+ target.setOutputs(source.getOutputs().stream().map(activitySpecParameter -> new MapActivityParameterToDto()
+ .applyMapping(
+ activitySpecParameter,
+ ActivitySpecParameterDto.class))
+ .collect(Collectors.toList()));
+ }
+ target.setStatus(source.getStatus());
+ target.setType(source.getType());
+ target.setContent(source.getContent());
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapDtoToActivityParameter.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapDtoToActivityParameter.java
new file mode 100644
index 0000000..051cbbd
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapDtoToActivityParameter.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest.mapping;
+
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecParameter;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecParameterDto;
+import org.openecomp.sdcrests.mapping.MappingBase;
+
+public class MapDtoToActivityParameter extends MappingBase<ActivitySpecParameterDto, ActivitySpecParameter> {
+
+ @Override
+ public void doMapping(ActivitySpecParameterDto source, ActivitySpecParameter target) {
+ target.setName(source.getName());
+ target.setType(source.getType());
+ target.setValue(source.getValue());
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapItemToListResponseDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapItemToListResponseDto.java
new file mode 100644
index 0000000..2671c97
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapItemToListResponseDto.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest.mapping;
+
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecListResponseDto;
+import org.openecomp.sdc.versioning.dao.types.VersionStatus;
+import org.openecomp.sdc.versioning.types.Item;
+import org.openecomp.sdcrests.mapping.MappingBase;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.CATEGORY_ATTRIBUTE_NAME;
+
+public class MapItemToListResponseDto extends MappingBase<Item, ActivitySpecListResponseDto> {
+
+ @Override
+ public void doMapping(Item source, ActivitySpecListResponseDto target) {
+ target.setId(source.getId());
+ target.setName(source.getName());
+ target.setCategoryList((List<String>) source.getProperties().get(CATEGORY_ATTRIBUTE_NAME));
+ final Map<VersionStatus, Integer> versionStatusCounters = source.getVersionStatusCounters();
+ if (Objects.nonNull(versionStatusCounters) && !versionStatusCounters.isEmpty()) {
+ final Set<VersionStatus> versionStatuses = versionStatusCounters.keySet();
+ target.setStatus(versionStatuses.stream().findFirst().isPresent()
+ ? versionStatuses.stream().findFirst().get().name() : null);
+ }
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/services/ActivitySpecsImpl.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/services/ActivitySpecsImpl.java
new file mode 100644
index 0000000..e0eec80
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/services/ActivitySpecsImpl.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest.services;
+
+import org.onap.sdc.activityspec.api.rest.ActivitySpecs;
+import org.onap.sdc.activityspec.api.rest.mapping.MapActivitySpecRequestDtoToActivitySpecEntity;
+import org.onap.sdc.activityspec.api.rest.mapping.MapActivitySpecToActivitySpecCreateResponse;
+import org.onap.sdc.activityspec.api.rest.mapping.MapActivitySpecToActivitySpecGetResponse;
+import org.onap.sdc.activityspec.api.rest.mapping.MapItemToListResponseDto;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecActionRequestDto;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecGetResponse;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecListResponseDto;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecRequestDto;
+import org.onap.sdc.activityspec.api.rest.types.InternalEmptyObject;
+import org.onap.sdc.activityspec.be.ActivitySpecManager;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.be.impl.ActivitySpecManagerImpl;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecCreateResponse;
+import org.onap.sdc.activityspec.be.dao.impl.ActivitySpecDaoZusammenImpl;
+import org.openecomp.core.dao.UniqueValueDaoFactory;
+import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
+import org.openecomp.sdc.versioning.ItemManagerFactory;
+import org.openecomp.sdc.versioning.VersioningManagerFactory;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.ws.rs.core.Response;
+
+@Service("activitySpecs")
+@Validated
+public class ActivitySpecsImpl implements ActivitySpecs {
+
+
+ private final ActivitySpecManager activitySpecManager =
+ new ActivitySpecManagerImpl(ItemManagerFactory.getInstance().createInterface(),
+ VersioningManagerFactory.getInstance().createInterface(),
+ new ActivitySpecDaoZusammenImpl(ZusammenAdaptorFactory.getInstance()
+ .createInterface()),
+ UniqueValueDaoFactory.getInstance().createInterface());
+
+ @Override
+ public Response createActivitySpec(ActivitySpecRequestDto request) {
+ ActivitySpecEntity activitySpec =
+ new MapActivitySpecRequestDtoToActivitySpecEntity().applyMapping(request, ActivitySpecEntity.class);
+
+ activitySpec = activitySpecManager.createActivitySpec(activitySpec);
+ ActivitySpecCreateResponse createActivitySpecResponse = new MapActivitySpecToActivitySpecCreateResponse()
+ .applyMapping(activitySpec,
+ ActivitySpecCreateResponse.class);
+
+ return Response.ok(createActivitySpecResponse).build();
+ }
+
+ @Override
+ public Response getActivitySpec(String activitySpecId, String versionId) {
+ ActivitySpecEntity activitySpec = new ActivitySpecEntity();
+ activitySpec.setId(activitySpecId);
+ activitySpec.setVersion(new Version(versionId));
+ final ActivitySpecEntity retrieved = activitySpecManager.get(activitySpec);
+ ActivitySpecGetResponse getResponse =
+ new MapActivitySpecToActivitySpecGetResponse().applyMapping(retrieved, ActivitySpecGetResponse.class);
+ return Response.ok(getResponse).build();
+ }
+
+ @Override
+ public Response updateActivitySpec(ActivitySpecRequestDto request, String activitySpecId, String versionId) {
+ ActivitySpecEntity activitySpec =
+ new MapActivitySpecRequestDtoToActivitySpecEntity().applyMapping(request, ActivitySpecEntity.class);
+
+ activitySpec.setId(activitySpecId);
+ activitySpec.setVersion(new Version(versionId));
+
+ activitySpecManager.update(activitySpec);
+
+ return Response.ok(new InternalEmptyObject()).build();
+ }
+
+ @Override
+ public Response actOnActivitySpec(ActivitySpecActionRequestDto request, String activitySpecId, String versionId) {
+ activitySpecManager.actOnAction(activitySpecId, versionId, request.getAction());
+ return Response.ok(new InternalEmptyObject()).build();
+ }
+
+ @Override
+ public Response list(String versionStatus) {
+
+ GenericCollectionWrapper<ActivitySpecListResponseDto> results = new GenericCollectionWrapper<>();
+ MapItemToListResponseDto mapper = new MapItemToListResponseDto();
+ activitySpecManager.list(versionStatus).stream()
+ .sorted((o1, o2) -> o2.getModificationTime().compareTo(o1.getModificationTime())).forEach(
+ activitySpecItem -> results.add(
+ mapper.applyMapping(activitySpecItem, ActivitySpecListResponseDto.class)));
+
+ return Response.ok(results).build();
+ }
+
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecAction.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecAction.java
similarity index 88%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecAction.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecAction.java
index bedcfcb..c3e6904 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecAction.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecAction.java
@@ -14,10 +14,8 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
public enum ActivitySpecAction {
- CERTIFY,
- DEPRECATE,
- DELETE
+ CERTIFY, DEPRECATE, DELETE
}
\ No newline at end of file
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecActionRequestDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecActionRequestDto.java
similarity index 88%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecActionRequestDto.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecActionRequestDto.java
index c901212..a420e1f 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecActionRequestDto.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecActionRequestDto.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
@lombok.Data
public class ActivitySpecActionRequestDto {
- private ActivitySpecAction action;
+
+ private ActivitySpecAction action;
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecCreateResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecCreateResponse.java
similarity index 86%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecCreateResponse.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecCreateResponse.java
index 9a654f7..d21dab1 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecCreateResponse.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecCreateResponse.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
@lombok.Data
public class ActivitySpecCreateResponse {
- private String id;
- private String versionId;
+
+ private String id;
+ private String versionId;
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecGetResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecGetResponse.java
similarity index 64%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecGetResponse.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecGetResponse.java
index 9453935..04cdc4e 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecGetResponse.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecGetResponse.java
@@ -14,18 +14,19 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
import java.util.List;
@lombok.Data
-public class ActivitySpecGetResponse {
- private String name;
- private String description;
- private List<String> categoryList;
- private List<ActivitySpecParameterDto> inputs;
- private List<ActivitySpecParameterDto> outputs;
- private String status;
- private String type;
- private String content;
+public class ActivitySpecGetResponse {
+
+ private String name;
+ private String description;
+ private List<String> categoryList;
+ private List<ActivitySpecParameterDto> inputs;
+ private List<ActivitySpecParameterDto> outputs;
+ private String status;
+ private String type;
+ private String content;
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecListResponseDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecListResponseDto.java
similarity index 79%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecListResponseDto.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecListResponseDto.java
index 782143f..4c6128f 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecListResponseDto.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecListResponseDto.java
@@ -14,15 +14,16 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
import java.util.List;
@lombok.Data
public class ActivitySpecListResponseDto {
- private String id;
- private String version;
- String name;
- List<String> categoryList;
- private String status;
+
+ private String id;
+ private String version;
+ String name;
+ List<String> categoryList;
+ private String status;
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecParameterDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecParameterDto.java
similarity index 83%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecParameterDto.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecParameterDto.java
index 76e8262..69a66ce 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecParameterDto.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecParameterDto.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
@lombok.Data
public class ActivitySpecParameterDto {
- private String name;
- private String type;
- private String value;
+
+ private String name;
+ private String type;
+ private String value;
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecRequestDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecRequestDto.java
new file mode 100644
index 0000000..86148ac
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecRequestDto.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.rest.types;
+
+import io.swagger.annotations.ApiModel;
+import org.hibernate.validator.constraints.NotBlank;
+
+import javax.validation.constraints.Pattern;
+import java.util.List;
+
+@ApiModel(value = "ActivitySpecRequest")
+@lombok.Data
+public class ActivitySpecRequestDto {
+
+ @NotBlank(message = "Mandatory %s field is missing/null")
+ @Pattern(regexp = "^[a-zA-Z0-9-]*$", message = "%s should match with \"^[a-zA-Z0-9-]*$\" pattern")
+ private String name;
+ private String description;
+
+ private List<String> categoryList;
+ private List<ActivitySpecParameterDto> inputs;
+ private List<ActivitySpecParameterDto> outputs;
+ private String type;
+ private String content;
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/InternalEmptyObject.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/InternalEmptyObject.java
similarity index 88%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/InternalEmptyObject.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/InternalEmptyObject.java
index 2faf7bc..9d9538e 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/InternalEmptyObject.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/InternalEmptyObject.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
import org.codehaus.jackson.annotate.JsonAutoDetect;
/**
- * Object of this class can be used to create empty Response body like "{}"
+ * Object of this class can be used to create empty Response body like "{}".
*/
@JsonAutoDetect
-public class InternalEmptyObject {
+public class InternalEmptyObject {
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
new file mode 100644
index 0000000..9269eac
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.server.filters;
+
+import java.io.IOException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.commons.lang.StringUtils;
+import org.onap.sdc.activityspec.utils.ActivitySpecConstant;
+import org.openecomp.sdc.common.session.SessionContextProvider;
+import org.openecomp.sdc.common.session.SessionContextProviderFactory;
+
+public class ActivitySpecSessionContextFilter implements Filter {
+
+ private static final String MESSAGE_USER_MAY_NOT_BE_NULL = "{\"message\": \"User ID can not be null\"}";
+
+ @Override
+ public void init(FilterConfig filterConfig) {
+ //No ActivitySpec specific initialization required
+ }
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
+ throws IOException, ServletException {
+
+ final String userHeader =
+ ((HttpServletRequest) servletRequest).getHeader(ActivitySpecConstant.USER_ID_HEADER_PARAM);
+
+ // Not a real security, just make sure the request
+ // has passed some authentication gateway
+ if (StringUtils.isEmpty(userHeader)) {
+ sendErrorResponse(servletResponse);
+ return;
+ }
+
+ SessionContextProvider contextProvider = SessionContextProviderFactory.getInstance().createInterface();
+
+ try {
+ // use the system-wide user and tenant
+ contextProvider.create(ActivitySpecConstant.USER, ActivitySpecConstant.TENANT);
+ filterChain.doFilter(servletRequest, servletResponse);
+ } finally {
+ contextProvider.close();
+ }
+ }
+
+ private void sendErrorResponse(ServletResponse servletResponse) throws IOException {
+ HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
+ httpServletResponse.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+ httpServletResponse.setStatus(Status.UNAUTHORIZED.getStatusCode());
+ servletResponse.getOutputStream().write(MESSAGE_USER_MAY_NOT_BE_NULL.getBytes());
+ }
+
+ @Override
+ public void destroy() {
+ //No ActivitySpec specific destroy required
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java
new file mode 100644
index 0000000..cb1cc65
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.api.server.listeners;
+
+import org.openecomp.sdc.common.session.SessionContextProviderFactory;
+import org.springframework.web.context.ContextLoaderListener;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.TENANT;
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.USER;
+
+public class ActivitySpecAppStartupListener implements ServletContextListener {
+
+ private ContextLoaderListener springListener;
+
+ @Override
+ public void contextInitialized(ServletContextEvent servletContextEvent) {
+ SessionContextProviderFactory.getInstance().createInterface().create(USER, TENANT);
+ springListener = new ContextLoaderListener();
+ springListener.initWebApplicationContext(servletContextEvent.getServletContext());
+ }
+
+ @Override
+ public void contextDestroyed(ServletContextEvent servletContextEvent) {
+ springListener.closeWebApplicationContext(servletContextEvent.getServletContext());
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/ActivitySpecManager.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/ActivitySpecManager.java
new file mode 100644
index 0000000..6c1a4d0
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/ActivitySpecManager.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.be;
+
+import java.util.Collection;
+
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecAction;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.openecomp.sdc.versioning.types.Item;
+
+public interface ActivitySpecManager {
+
+ ActivitySpecEntity createActivitySpec(ActivitySpecEntity activitySpecEntity);
+
+ ActivitySpecEntity get(ActivitySpecEntity activitySpec);
+
+ void update(ActivitySpecEntity activitySpec);
+
+ void actOnAction(String activitySpecId, String versionId, ActivitySpecAction action);
+
+ Collection<Item> list(String versionStatus);
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecListResponseDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/ActivitySpecDao.java
similarity index 66%
copy from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecListResponseDto.java
copy to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/ActivitySpecDao.java
index 782143f..c71f296 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecListResponseDto.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/ActivitySpecDao.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.be.dao;
-import java.util.List;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
-@lombok.Data
-public class ActivitySpecListResponseDto {
- private String id;
- private String version;
- String name;
- List<String> categoryList;
- private String status;
+public interface ActivitySpecDao {
+
+ void create(ActivitySpecEntity activitySpecEntity);
+
+ ActivitySpecEntity get(ActivitySpecEntity activitySpec);
+
+ void update(ActivitySpecEntity activitySpec);
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java
new file mode 100644
index 0000000..9da4cd4
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.be.dao.impl;
+
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.Action;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+
+import org.onap.sdc.activityspec.be.dao.ActivitySpecDao;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecData;
+import org.onap.sdc.activityspec.be.datatypes.ElementType;
+import org.onap.sdc.activityspec.utils.ActivitySpecConstant;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.Objects;
+import java.util.Optional;
+
+import static org.openecomp.core.zusammen.api.ZusammenUtil.buildStructuralElement;
+import static org.openecomp.core.zusammen.api.ZusammenUtil.createSessionContext;
+
+public class ActivitySpecDaoZusammenImpl implements ActivitySpecDao {
+
+ private final ZusammenAdaptor zusammenAdaptor;
+
+ public ActivitySpecDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
+ this.zusammenAdaptor = zusammenAdaptor;
+ }
+
+ @Override
+ public void create(ActivitySpecEntity entity) {
+ SessionContext context = createSessionContext();
+ ZusammenElement generalElement = mapActivityDetailsToZusammenElement(entity, Action.CREATE);
+
+ ElementContext elementContext = new ElementContext(entity.getId(), entity.getVersion().getId());
+ zusammenAdaptor
+ .saveElement(context, elementContext, generalElement, "Create Activity Spec General Info Element");
+ }
+
+ @Override
+ public ActivitySpecEntity get(ActivitySpecEntity entity) {
+ SessionContext context = createSessionContext();
+
+ ElementContext elementContext = new ElementContext(entity.getId(), entity.getVersion().getId());
+ Optional<Element> element =
+ zusammenAdaptor.getElementByName(context, elementContext, null, ElementType.ACTIVITYSPEC.name());
+ if (element.isPresent()) {
+ return mapZusammenElementToActivityDetails(element.get());
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public void update(ActivitySpecEntity entity) {
+ SessionContext context = createSessionContext();
+ ZusammenElement generalElement = mapActivityDetailsToZusammenElement(entity, Action.UPDATE);
+
+ ElementContext elementContext = new ElementContext(entity.getId(), entity.getVersion().getId());
+ zusammenAdaptor
+ .saveElement(context, elementContext, generalElement, "Update Activity Spec General Info Element");
+ }
+
+
+ private ActivitySpecEntity mapZusammenElementToActivityDetails(Element element) {
+ ActivitySpecEntity entity = new ActivitySpecEntity();
+ entity.setId(element.getElementId().getValue());
+ enrichEntityFromElementData(entity, element.getData());
+ enrichEntityFromElementInfo(entity, element.getInfo());
+ return entity;
+ }
+
+ private ZusammenElement mapActivityDetailsToZusammenElement(ActivitySpecEntity entity, Action action) {
+ ZusammenElement generalElement = buildStructuralElement(ElementType.ACTIVITYSPEC.name(), action);
+
+ enrichElementInfoFromEntity(generalElement, entity);
+ enrichElementDataFromEntity(generalElement, entity);
+ return generalElement;
+ }
+
+
+ private void enrichEntityFromElementInfo(ActivitySpecEntity entity, Info info) {
+ entity.setName(info.getProperty(InfoPropertyName.NAME.getValue()));
+ entity.setDescription(info.getProperty(InfoPropertyName.DESCRIPTION.getValue()));
+ entity.setCategoryList(info.getProperty(InfoPropertyName.CATEGORY.getValue()));
+ }
+
+ private void enrichEntityFromElementData(ActivitySpecEntity entity, InputStream data) {
+ ActivitySpecData activitySpecData = JsonUtil.json2Object(data, ActivitySpecData.class);
+ if (Objects.nonNull(activitySpecData)) {
+ entity.setInputs(activitySpecData.getInputs());
+ entity.setOutputs(activitySpecData.getOutputs());
+ entity.setType(activitySpecData.getType());
+ entity.setContent(activitySpecData.getContent());
+ }
+ }
+
+ private void enrichElementInfoFromEntity(ZusammenElement element, ActivitySpecEntity entity) {
+ element.getInfo().addProperty(InfoPropertyName.DESCRIPTION.getValue(), entity.getDescription());
+ element.getInfo().addProperty(InfoPropertyName.NAME.getValue(), entity.getName());
+ element.getInfo().addProperty(InfoPropertyName.CATEGORY.getValue(), entity.getCategoryList());
+ }
+
+
+ private void enrichElementDataFromEntity(ZusammenElement element, ActivitySpecEntity entity) {
+ ActivitySpecData activitySpecData = new ActivitySpecData();
+ activitySpecData.setInputs(entity.getInputs());
+ activitySpecData.setOutputs(entity.getOutputs());
+ activitySpecData.setType(entity.getType());
+ activitySpecData.setContent(entity.getContent());
+ element.setData(new ByteArrayInputStream(JsonUtil.object2Json(activitySpecData).getBytes()));
+ }
+
+ public enum InfoPropertyName {
+ DESCRIPTION("description"), NAME("name"), CATEGORY(ActivitySpecConstant.CATEGORY_ATTRIBUTE_NAME);
+
+ private final String value;
+
+ InfoPropertyName(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+ }
+
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/types/ActivitySpecEntity.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/types/ActivitySpecEntity.java
new file mode 100644
index 0000000..7dc6612
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/types/ActivitySpecEntity.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.be.dao.types;
+
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecParameter;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.List;
+
+@lombok.Data
+public class ActivitySpecEntity {
+
+ private String id;
+ private Version version;
+ private String name;
+ private String description;
+
+ private List<String> categoryList;
+ private List<ActivitySpecParameter> inputs;
+ private List<ActivitySpecParameter> outputs;
+ private String type;
+ private String content;
+
+ //Not to be maintained in activityspec element
+ private String status;
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecData.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecData.java
similarity index 74%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecData.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecData.java
index ad70376..2c76ed8 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecData.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecData.java
@@ -14,16 +14,17 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.be.datatypes;
+package org.onap.sdc.activityspec.be.datatypes;
import java.util.Collections;
import java.util.List;
@lombok.Data
public class ActivitySpecData {
- private List<ActivitySpecParameter> inputs = Collections.emptyList();
- private List<ActivitySpecParameter> outputs = Collections.emptyList();
- private String type;
- private String content;
+
+ private List<ActivitySpecParameter> inputs = Collections.emptyList();
+ private List<ActivitySpecParameter> outputs = Collections.emptyList();
+ private String type;
+ private String content;
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecParameter.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecParameter.java
similarity index 63%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecParameter.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecParameter.java
index b9153fa..72273dd 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecParameter.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecParameter.java
@@ -14,21 +14,22 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.be.datatypes;
+package org.onap.sdc.activityspec.be.datatypes;
@lombok.Data
public class ActivitySpecParameter {
- private String name;
- private String type;
- private String value;
- @SuppressWarnings("unused")
- public ActivitySpecParameter() {
- // default constructor for automatic tools that use reflection
- }
+ private String name;
+ private String type;
+ private String value;
- public ActivitySpecParameter(String name, String type) {
- this.name = name;
- this.type = type;
- }
+ @SuppressWarnings("unused")
+ public ActivitySpecParameter() {
+ // default constructor for automatic tools that use reflection
+ }
+
+ public ActivitySpecParameter(String name, String type) {
+ this.name = name;
+ this.type = type;
+ }
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ElementType.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ElementType.java
similarity index 90%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ElementType.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ElementType.java
index be7e61c..d063530 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ElementType.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ElementType.java
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.be.datatypes;
+package org.onap.sdc.activityspec.be.datatypes;
public enum ElementType {
- ACTIVITYSPEC;
+ ACTIVITYSPEC
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ItemType.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ItemType.java
similarity index 90%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ItemType.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ItemType.java
index 5091412..f9d8fa3 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ItemType.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ItemType.java
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.be.datatypes;
+package org.onap.sdc.activityspec.be.datatypes;
public enum ItemType {
- ACTIVITYSPEC
+ ACTIVITYSPEC
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/impl/ActivitySpecManagerImpl.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/impl/ActivitySpecManagerImpl.java
new file mode 100644
index 0000000..6853b85
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/impl/ActivitySpecManagerImpl.java
@@ -0,0 +1,265 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.be.impl;
+
+import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Certified;
+import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Deleted;
+import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Deprecated;
+import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Draft;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Predicate;
+
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecAction;
+import org.onap.sdc.activityspec.be.dao.ActivitySpecDao;
+import org.onap.sdc.activityspec.utils.ActivitySpecConstant;
+import org.onap.sdc.activityspec.be.ActivitySpecManager;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.be.datatypes.ItemType;
+import org.onap.sdc.activityspec.errors.ActivitySpecNotFoundException;
+import org.openecomp.core.dao.UniqueValueDao;
+import org.openecomp.core.util.UniqueValueUtil;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.common.errors.SdcRuntimeException;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.versioning.ItemManager;
+import org.openecomp.sdc.versioning.VersioningManager;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.dao.types.VersionStatus;
+import org.openecomp.sdc.versioning.types.Item;
+import org.openecomp.sdc.versioning.types.VersionCreationMethod;
+
+public class ActivitySpecManagerImpl implements ActivitySpecManager {
+
+ private static final Map<VersionStatus, VersionStatus> EXPECTED_PREV_STATUS;
+
+ static {
+ EXPECTED_PREV_STATUS = new EnumMap<>(VersionStatus.class);
+ EXPECTED_PREV_STATUS.put(Certified, Draft);
+ EXPECTED_PREV_STATUS.put(Deprecated, Certified);
+ EXPECTED_PREV_STATUS.put(Deleted, Deprecated);
+ }
+
+ private final ItemManager itemManager;
+ private final VersioningManager versioningManager;
+ private final ActivitySpecDao activitySpecDao;
+ private final UniqueValueUtil uniqueValueUtil;
+ private static final String ACTIVITY_SPEC_NAME = "ActivitySpec.Name";
+ private static final Logger LOGGER = LoggerFactory.getLogger(ActivitySpecManagerImpl.class);
+
+ public ActivitySpecManagerImpl(ItemManager itemManager, VersioningManager versioningManager,
+ ActivitySpecDao activitySpecDao, UniqueValueDao uniqueValueDao) {
+ this.itemManager = itemManager;
+ this.versioningManager = versioningManager;
+ this.activitySpecDao = activitySpecDao;
+ this.uniqueValueUtil = new UniqueValueUtil(uniqueValueDao);
+ }
+
+ @Override
+ public ActivitySpecEntity createActivitySpec(ActivitySpecEntity activitySpecEntity) {
+
+ validateUniqueValue(activitySpecEntity);
+
+ Item item = getActivitySpecItem(activitySpecEntity);
+ item = itemManager.create(item);
+
+ Version version = getActivitySpecVersion(activitySpecEntity);
+ versioningManager.create(item.getId(), version, VersionCreationMethod.major);
+
+ enrichActivitySpec(item, version, activitySpecEntity);
+ activitySpecDao.create(activitySpecEntity);
+
+ uniqueValueUtil.createUniqueValue(ACTIVITY_SPEC_NAME, activitySpecEntity.getName());
+ return activitySpecEntity;
+ }
+
+ private void validateUniqueValue(ActivitySpecEntity activitySpecEntity) {
+ try {
+ uniqueValueUtil.validateUniqueValue(ACTIVITY_SPEC_NAME, activitySpecEntity.getName());
+ } catch (CoreException exception) {
+ LOGGER.debug("Unique value error for activity spec name :" + activitySpecEntity.getName(), exception);
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(exception.code().id())
+ .withMessage("name already in use").build());
+ }
+ }
+
+ private Version getActivitySpecVersion(ActivitySpecEntity activitySpecEntity) {
+ return activitySpecEntity.getVersion() == null ? new Version() : activitySpecEntity.getVersion();
+
+ }
+
+ @Override
+ public ActivitySpecEntity get(ActivitySpecEntity activitySpec) {
+ activitySpec.setVersion(calculateLatestVersion(activitySpec.getId(), activitySpec.getVersion()));
+ ActivitySpecEntity retrieved;
+ try {
+ retrieved = activitySpecDao.get(activitySpec);
+ } catch (SdcRuntimeException runtimeException) {
+ LOGGER.debug(
+ "Failed to retrieve activity spec for activitySpecId: " + activitySpec.getId() + " and version: "
+ + activitySpec.getVersion().getId(), runtimeException);
+ throw new ActivitySpecNotFoundException(ActivitySpecConstant.ACTIVITY_SPEC_NOT_FOUND, runtimeException);
+ }
+ if (retrieved != null) {
+ final Version retrievedVersion = versioningManager.get(activitySpec.getId(), activitySpec.getVersion());
+ retrieved.setStatus(Objects.nonNull(retrievedVersion) ? retrievedVersion.getStatus().name() : null);
+ }
+ return retrieved;
+ }
+
+ @Override
+ public void update(ActivitySpecEntity activitySpec) {
+
+ ActivitySpecEntity previousActivitySpec = get(activitySpec);
+
+ if (!activitySpec.getName().equals(previousActivitySpec.getName())) {
+ validateUniqueValue(activitySpec);
+ }
+
+ activitySpecDao.update(activitySpec);
+
+ if (!activitySpec.getName().equals(previousActivitySpec.getName())) {
+ uniqueValueUtil.createUniqueValue(ACTIVITY_SPEC_NAME, activitySpec.getName());
+ itemManager.updateName(activitySpec.getId(), activitySpec.getName());
+ uniqueValueUtil.deleteUniqueValue(ACTIVITY_SPEC_NAME, previousActivitySpec.getName());
+ }
+ }
+
+ @Override
+ public void actOnAction(String activitySpecId, String versionId, ActivitySpecAction action) {
+ Version version = new Version(versionId);
+ version = calculateLatestVersion(activitySpecId, version);
+ if (action == ActivitySpecAction.CERTIFY) {
+ version.setStatus(Certified);
+ }
+ if (action == ActivitySpecAction.DEPRECATE) {
+ version.setStatus(Deprecated);
+ }
+ if (action == ActivitySpecAction.DELETE) {
+ version.setStatus(Deleted);
+ }
+
+ updateVersionStatus(activitySpecId, action, version);
+ if (action == ActivitySpecAction.DELETE) {
+ ActivitySpecEntity entity = new ActivitySpecEntity();
+ entity.setId(activitySpecId);
+ entity.setVersion(version);
+ final ActivitySpecEntity activitySpecEntity = get(entity);
+ uniqueValueUtil.deleteUniqueValue(ACTIVITY_SPEC_NAME, activitySpecEntity.getName());
+ }
+ }
+
+ private void updateVersionStatus(String activitySpecId, ActivitySpecAction action, Version version) {
+ VersionStatus prevVersionStatus = null;
+ Version retrievedVersion;
+ try {
+ retrievedVersion = versioningManager.get(activitySpecId, version);
+ } catch (SdcRuntimeException exception) {
+ LOGGER.debug(
+ "Failed to get version for activitySpecId: " + activitySpecId + " and version: " + version.getId(),
+ exception);
+ throw new ActivitySpecNotFoundException(ActivitySpecConstant.ACTIVITY_SPEC_NOT_FOUND, exception);
+
+ }
+
+ VersionStatus status = version.getStatus();
+ VersionStatus expectedPrevStatus = EXPECTED_PREV_STATUS.get(status);
+ if (expectedPrevStatus != null) {
+
+ VersionStatus retrievedStatus = Objects.nonNull(retrievedVersion) ? retrievedVersion.getStatus() : null;
+ if (retrievedStatus != expectedPrevStatus) {
+ LOGGER.debug("Failed to " + version.getStatus() + " since activity spec is in " + retrievedStatus);
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder().withMessage(ActivitySpecConstant.INVALID_STATE)
+ .build());
+ }
+ prevVersionStatus = expectedPrevStatus;
+ }
+
+ if (Objects.nonNull(retrievedVersion)) {
+ retrievedVersion.setStatus(status);
+ versioningManager.updateVersion(activitySpecId, retrievedVersion);
+ itemManager.updateVersionStatus(activitySpecId, status, prevVersionStatus);
+ versioningManager.publish(activitySpecId, retrievedVersion, "actionOnActivitySpec :" + action.name());
+ }
+ }
+
+ private Version calculateLatestVersion(String activitySpecId, Version version) {
+ if (ActivitySpecConstant.VERSION_ID_DEFAULT_VALUE.equalsIgnoreCase(version.getId())) {
+ List<Version> list;
+ try {
+ list = versioningManager.list(activitySpecId);
+ } catch (SdcRuntimeException runtimeException) {
+ LOGGER.debug("Failed to list versions for activitySpecId " + activitySpecId, runtimeException);
+ throw new ActivitySpecNotFoundException(ActivitySpecConstant.ACTIVITY_SPEC_NOT_FOUND, runtimeException);
+ }
+ if (Objects.nonNull(list) && !list.isEmpty()) {
+ return list.get(0);
+ }
+ }
+ return version;
+ }
+
+ @Override
+ public Collection<Item> list(String versionStatus) {
+ Predicate<Item> itemPredicate;
+ if (Objects.nonNull(versionStatus)) {
+
+ VersionStatus statusEnumValue;
+
+ try {
+ statusEnumValue = VersionStatus.valueOf(versionStatus);
+ } catch (IllegalArgumentException e) {
+ LOGGER.debug("Unexpected value of VersionStatus {}", versionStatus);
+ return Collections.emptyList();
+ }
+
+ itemPredicate =
+ item -> ItemType.ACTIVITYSPEC.name().equals(item.getType()) && item.getVersionStatusCounters()
+ .containsKey(statusEnumValue);
+
+ } else {
+ itemPredicate = item -> ItemType.ACTIVITYSPEC.name().equals(item.getType());
+ }
+
+ return itemManager.list(itemPredicate);
+ }
+
+ private void enrichActivitySpec(Item item, Version version, ActivitySpecEntity activitySpecEntity) {
+ activitySpecEntity.setId(item.getId());
+ activitySpecEntity.setVersion(version);
+ }
+
+ private Item getActivitySpecItem(ActivitySpecEntity activitySpecEntity) {
+ Item item = new Item();
+ item.setType(ItemType.ACTIVITYSPEC.name());
+ item.setName(activitySpecEntity.getName());
+ if (activitySpecEntity.getId() != null) {
+ item.setId(activitySpecEntity.getId());
+ }
+ item.addProperty(ActivitySpecConstant.CATEGORY_ATTRIBUTE_NAME, activitySpecEntity.getCategoryList());
+ return item;
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecParameterDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecErrorResponse.java
similarity index 68%
copy from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecParameterDto.java
copy to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecErrorResponse.java
index 76e8262..8d9117d 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecParameterDto.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecErrorResponse.java
@@ -14,11 +14,18 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.errors;
@lombok.Data
-public class ActivitySpecParameterDto {
- private String name;
- private String type;
- private String value;
+public class ActivitySpecErrorResponse {
+
+ private String message;
+
+ public ActivitySpecErrorResponse() {
+ //default constructor
+ }
+
+ public ActivitySpecErrorResponse(String message) {
+ this.message = message;
+ }
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecNotFoundException.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecNotFoundException.java
similarity index 81%
rename from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecNotFoundException.java
rename to services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecNotFoundException.java
index 8c775f9..415aa68 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecNotFoundException.java
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecNotFoundException.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.errors;
+package org.onap.sdc.activityspec.errors;
public class ActivitySpecNotFoundException extends RuntimeException {
- public ActivitySpecNotFoundException(String message, Throwable cause) {
- super(message, cause);
- }
+ public ActivitySpecNotFoundException(String message, Throwable cause) {
+ super(message, cause);
+ }
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/DefaultExceptionMapper.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/DefaultExceptionMapper.java
new file mode 100644
index 0000000..d09d174
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/DefaultExceptionMapper.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.errors;
+
+import java.util.Set;
+import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintViolationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.ext.ExceptionMapper;
+
+import org.codehaus.jackson.map.JsonMappingException;
+import org.hibernate.validator.internal.engine.path.PathImpl;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+
+public class DefaultExceptionMapper implements ExceptionMapper<Exception> {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(DefaultExceptionMapper.class);
+
+ @Override
+ public Response toResponse(Exception exception) {
+ Response response;
+ if (exception instanceof CoreException) {
+ response = transform(CoreException.class.cast(exception));
+ } else if (exception instanceof ActivitySpecNotFoundException) {
+ response = transform(ActivitySpecNotFoundException.class.cast(exception));
+ } else if (exception instanceof ConstraintViolationException) {
+ response = transform(ConstraintViolationException.class.cast(exception));
+ } else if (exception instanceof JsonMappingException) {
+ response = transform(JsonMappingException.class.cast(exception));
+ } else {
+ response = transform(exception);
+ }
+
+ return response;
+ }
+
+ private Response transform(ActivitySpecNotFoundException notFoundException) {
+ LOGGER.error("Transforming ActivitySpecNotFoundException to Error Response :", notFoundException);
+ return generateResponse(Status.NOT_FOUND, new ActivitySpecErrorResponse(notFoundException.getMessage()));
+ }
+
+ private Response transform(CoreException coreException) {
+ LOGGER.error("Transforming CoreException to Error Response :", coreException);
+ return generateResponse(Status.BAD_REQUEST, new ActivitySpecErrorResponse(coreException.getMessage()));
+ }
+
+ private Response transform(ConstraintViolationException validationException) {
+ LOGGER.error("Transforming ConstraintViolationException to Error Response :", validationException);
+ Set<ConstraintViolation<?>> constraintViolationSet = validationException.getConstraintViolations();
+ String message;
+
+ String fieldName = null;
+ if (constraintViolationSet != null) {
+ // getting the first violation message for the output response.
+ ConstraintViolation<?> constraintViolation = constraintViolationSet.iterator().next();
+ message = constraintViolation.getMessage();
+ fieldName = ((PathImpl) constraintViolation.getPropertyPath()).getLeafNode().toString();
+
+ } else {
+ message = validationException.getMessage();
+ }
+ return generateResponse(Status.BAD_REQUEST, new ActivitySpecErrorResponse(String.format(message, fieldName)));
+ }
+
+ private Response transform(Exception exception) {
+ LOGGER.error("Transforming Exception to Error Response " + exception);
+ return generateResponse(Status.INTERNAL_SERVER_ERROR, new ActivitySpecErrorResponse(exception.getMessage()));
+ }
+
+ private Response transform(JsonMappingException jsonMappingException) {
+ LOGGER.error("Transforming JsonMappingException to Error Response " + jsonMappingException);
+ return generateResponse(Status.BAD_REQUEST, new ActivitySpecErrorResponse("Invalid Json Input"));
+ }
+
+ private Response generateResponse(Response.Status status, ActivitySpecErrorResponse activitySpecErrorResponse) {
+ return Response.status(status).entity(activitySpecErrorResponse).type(MediaType.APPLICATION_JSON).build();
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/utils/ActivitySpecConstant.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/utils/ActivitySpecConstant.java
new file mode 100644
index 0000000..a0da1c9
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/utils/ActivitySpecConstant.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.utils;
+
+public class ActivitySpecConstant {
+
+ public static final String CATEGORY_ATTRIBUTE_NAME = "category";
+ public static final String VERSION_ID_DEFAULT_VALUE = "latest";
+ public static final String TENANT = "activity_spec";
+ public static final String USER = "activity_spec_USER";
+ public static final String USER_ID_HEADER_PARAM = "USER_ID";
+ public static final String ACTIVITY_SPEC_NOT_FOUND = "No Activity Spec found for the given identifiers";
+ public static final String INVALID_STATE = "Activity Spec is in an invalid state";
+
+ private ActivitySpecConstant() {
+ //Utility Class declaring constants does not require instantiation.
+ }
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/ActivitySpecs.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/ActivitySpecs.java
deleted file mode 100644
index ae9e158..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/ActivitySpecs.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecActionRequestDto;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecRequestDto;
-import org.springframework.validation.annotation.Validated;
-
-import javax.validation.Valid;
-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.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-@Path("/v1.0/activity-spec/")
-@Produces(MediaType.APPLICATION_JSON)
-@Consumes(MediaType.APPLICATION_JSON)
-@Api(value = "Activity Specs")
-@Validated
-public interface ActivitySpecs {
- @POST
- @Path("/")
- @ApiOperation(value = "Create Activity Spec")
- Response createActivitySpec(@Valid ActivitySpecRequestDto request);
-
- @GET
- @Path("/{id}/versions/{versionId}")
- @ApiOperation(value = "Get Activity Spec")
- Response getActivitySpec(@ApiParam(value = "Activity Spec Id") @PathParam("id")
- String id,
- @ApiParam(value = "Version Id") @PathParam("versionId")
- String versionId);
-
- @PUT
- @Path("/{id}/versions/{versionId}")
- @ApiOperation(value = "Update Activity Spec")
- Response updateActivitySpec(@Valid ActivitySpecRequestDto request,
- @ApiParam(value = "Activity Spec Id") @PathParam("id")
- String id,
- @ApiParam(value = "Version Id") @PathParam("versionId")
- String versionId);
-
- @PUT
- @Path("/{id}/versions/{versionId}/actions")
- @ApiOperation(value = "Actions on a activity spec",
- notes = "Performs one of the following actions on a activity spec: |"
- + "CERTIFY: Certifies activity spec.|"
- + "DEPRECATE: Deprecates activity spec.|"
- + "DELETE: Deletes activity spec.")
- Response actOnActivitySpec(ActivitySpecActionRequestDto request,
- @ApiParam(value = "Activity Spec Id") @PathParam("id") String id,
- @ApiParam(value = "Version Id") @PathParam("versionId") String versionId);
-
- @GET
- @Path("/")
- @ApiOperation(value = "Get list of activity specs ",
- responseContainer = "List")
- Response list(@ApiParam(
- value = "List activity specs based on status filter")
- @QueryParam("status") String versionStatus);
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java
deleted file mode 100644
index 2364d59..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest.mapping;
-
-import java.util.ArrayList;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.be.datatypes.ActivitySpecParameter;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecRequestDto;
-import org.openecomp.sdcrests.mapping.MappingBase;
-
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-public class MapActivitySpecRequestDtoToActivitySpecEntity
- extends MappingBase<ActivitySpecRequestDto,
- ActivitySpecEntity> {
-
- @Override
- public void doMapping(ActivitySpecRequestDto source, ActivitySpecEntity target) {
- target.setName(source.getName());
- target.setDescription(source.getDescription());
- target.setCategoryList(source.getCategoryList() == null ? new ArrayList<String>()
- : source.getCategoryList());
- if (Objects.nonNull(source.getInputs())) {
- target.setInputs(source.getInputs().stream()
- .map(activitySpecParameterDto -> new MapDtoToActivityParameter()
- .applyMapping(activitySpecParameterDto, ActivitySpecParameter.class))
- .collect(Collectors.toList()));
- }
- if (Objects.nonNull(source.getOutputs())) {
- target.setOutputs(source.getOutputs().stream()
- .map(activitySpecParameterDto -> new MapDtoToActivityParameter()
- .applyMapping(activitySpecParameterDto, ActivitySpecParameter.class))
- .collect(Collectors.toList()));
- }
- target.setType(source.getType());
- target.setContent(source.getContent());
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java
deleted file mode 100644
index 13c8814..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest.mapping;
-
-import java.util.Objects;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecCreateResponse;
-import org.openecomp.sdcrests.mapping.MappingBase;
-
-public class MapActivitySpecToActivitySpecCreateResponse extends MappingBase<ActivitySpecEntity,
- ActivitySpecCreateResponse> {
-
- @Override
- public void doMapping(ActivitySpecEntity source, ActivitySpecCreateResponse target) {
- target.setId(source.getId());
- target.setVersionId(Objects.nonNull(source.getVersion()) ? source.getVersion().getId() : null);
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java
deleted file mode 100644
index 697e1bd..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest.mapping;
-
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecGetResponse;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecParameterDto;
-import org.openecomp.sdcrests.mapping.MappingBase;
-
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-public class MapActivitySpecToActivitySpecGetResponse extends MappingBase<ActivitySpecEntity,
- ActivitySpecGetResponse> {
-
- @Override
- public void doMapping(ActivitySpecEntity source, ActivitySpecGetResponse target) {
- target.setName(source.getName());
- target.setDescription(source.getDescription());
- target.setCategoryList(source.getCategoryList());
- if (Objects.nonNull(source.getInputs())) {
- target.setInputs(source.getInputs().stream().map(
- activitySpecParameter -> new MapActivityParameterToDto()
- .applyMapping(activitySpecParameter, ActivitySpecParameterDto
- .class)).collect(Collectors.toList()));
- }
- if (Objects.nonNull(source.getOutputs())) {
- target.setOutputs(source.getOutputs().stream().map(
- activitySpecParameter -> new MapActivityParameterToDto()
- .applyMapping(activitySpecParameter, ActivitySpecParameterDto
- .class)).collect(Collectors.toList()));
- }
- target.setStatus(source.getStatus());
- target.setType(source.getType());
- target.setContent(source.getContent());
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapDtoToActivityParameter.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapDtoToActivityParameter.java
deleted file mode 100644
index ccffaea..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapDtoToActivityParameter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest.mapping;
-
-import org.openecomp.activityspec.be.datatypes.ActivitySpecParameter;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecParameterDto;
-import org.openecomp.sdcrests.mapping.MappingBase;
-
-public class MapDtoToActivityParameter extends MappingBase<ActivitySpecParameterDto,
- ActivitySpecParameter> {
- @Override
- public void doMapping(ActivitySpecParameterDto source, ActivitySpecParameter target) {
- target.setName(source.getName());
- target.setType(source.getType());
- target.setValue(source.getValue());
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapItemToListResponseDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapItemToListResponseDto.java
deleted file mode 100644
index c85d5af..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapItemToListResponseDto.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest.mapping;
-
-import org.openecomp.activityspec.api.rest.types.ActivitySpecListResponseDto;
-import org.openecomp.sdc.versioning.dao.types.VersionStatus;
-import org.openecomp.sdc.versioning.types.Item;
-import org.openecomp.sdcrests.mapping.MappingBase;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.CATEGORY_ATTRIBUTE_NAME;
-
-public class MapItemToListResponseDto extends MappingBase<Item, ActivitySpecListResponseDto> {
- @Override
- public void doMapping(Item source, ActivitySpecListResponseDto target) {
- target.setId(source.getId());
- target.setName(source.getName());
- target.setCategoryList((List<String>) source.getProperties().get(
- CATEGORY_ATTRIBUTE_NAME));
- final Map<VersionStatus, Integer> versionStatusCounters = source.getVersionStatusCounters();
- if (Objects.nonNull(versionStatusCounters) && !versionStatusCounters.isEmpty()) {
- final Set<VersionStatus> versionStatuses = versionStatusCounters.keySet();
- target.setStatus(versionStatuses.stream().findFirst().isPresent()
- ? versionStatuses.stream().findFirst().get().name() : null);
- }
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/services/ActivitySpecsImpl.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/services/ActivitySpecsImpl.java
deleted file mode 100644
index db2db40..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/services/ActivitySpecsImpl.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest.services;
-
-import org.openecomp.activityspec.api.rest.ActivitySpecs;
-import org.openecomp.activityspec.api.rest.mapping.MapActivitySpecRequestDtoToActivitySpecEntity;
-import org.openecomp.activityspec.api.rest.mapping.MapActivitySpecToActivitySpecCreateResponse;
-import org.openecomp.activityspec.api.rest.mapping.MapActivitySpecToActivitySpecGetResponse;
-import org.openecomp.activityspec.api.rest.mapping.MapItemToListResponseDto;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecActionRequestDto;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecCreateResponse;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecGetResponse;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecListResponseDto;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecRequestDto;
-import org.openecomp.activityspec.api.rest.types.InternalEmptyObject;
-import org.openecomp.activityspec.be.ActivitySpecManager;
-import org.openecomp.activityspec.be.dao.impl.ActivitySpecDaoZusammenImpl;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.be.impl.ActivitySpecManagerImpl;
-import org.openecomp.core.dao.UniqueValueDaoFactory;
-import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
-import org.openecomp.sdc.versioning.ItemManagerFactory;
-import org.openecomp.sdc.versioning.VersioningManagerFactory;
-import org.openecomp.sdc.versioning.dao.types.Version;
-
-import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.ws.rs.core.Response;
-
-@Service("activitySpecs")
-@Scope(value = "singleton")
-@Validated
-public class ActivitySpecsImpl implements ActivitySpecs {
-
-
- private final ActivitySpecManager activitySpecManager =
- new ActivitySpecManagerImpl(ItemManagerFactory.getInstance().createInterface(),
- VersioningManagerFactory.getInstance().createInterface(),
- new ActivitySpecDaoZusammenImpl(ZusammenAdaptorFactory.getInstance().createInterface()),
- UniqueValueDaoFactory.getInstance().createInterface());
-
- @Override
- public Response createActivitySpec(ActivitySpecRequestDto request) {
- ActivitySpecEntity activitySpec = new MapActivitySpecRequestDtoToActivitySpecEntity()
- .applyMapping(request, ActivitySpecEntity.class);
-
- activitySpec = activitySpecManager.createActivitySpec(activitySpec);
- ActivitySpecCreateResponse createActivitySpecResponse =
- new MapActivitySpecToActivitySpecCreateResponse().applyMapping(activitySpec,
- ActivitySpecCreateResponse.class);
-
- return Response.ok(createActivitySpecResponse).build();
- }
-
- @Override
- public Response getActivitySpec(String activitySpecId, String versionId) {
- ActivitySpecEntity activitySpec = new ActivitySpecEntity();
- activitySpec.setId(activitySpecId);
- activitySpec.setVersion(new Version(versionId));
- final ActivitySpecEntity retrieved = activitySpecManager.get(activitySpec);
- ActivitySpecGetResponse getResponse = new MapActivitySpecToActivitySpecGetResponse()
- .applyMapping(retrieved, ActivitySpecGetResponse.class);
- return Response.ok(getResponse).build();
- }
-
- @Override
- public Response updateActivitySpec(ActivitySpecRequestDto request, String activitySpecId,
- String versionId) {
- ActivitySpecEntity activitySpec = new MapActivitySpecRequestDtoToActivitySpecEntity()
- .applyMapping(request, ActivitySpecEntity.class);
-
- activitySpec.setId(activitySpecId);
- activitySpec.setVersion(new Version(versionId));
-
- activitySpecManager.update(activitySpec);
-
- return Response.ok(new InternalEmptyObject()).build();
- }
-
- @Override
- public Response actOnActivitySpec(ActivitySpecActionRequestDto request, String activitySpecId,
- String versionId) {
- activitySpecManager.actOnAction(activitySpecId, versionId, request.getAction());
- return Response.ok(new InternalEmptyObject()).build();
- }
-
- @Override
- public Response list(String versionStatus) {
-
- GenericCollectionWrapper<ActivitySpecListResponseDto> results = new GenericCollectionWrapper<>();
- MapItemToListResponseDto mapper = new MapItemToListResponseDto();
- activitySpecManager.list(versionStatus).stream()
- .sorted((o1, o2) -> o2.getModificationTime().compareTo(o1.getModificationTime()))
- .forEach(activitySpecItem -> results.add(mapper.applyMapping(activitySpecItem,
- ActivitySpecListResponseDto.class)));
-
- return Response.ok(results).build();
- }
-
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecRequestDto.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecRequestDto.java
deleted file mode 100644
index 08b07b8..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecRequestDto.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright © 2016-2017 European Support Limited
- *
- * 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.openecomp.activityspec.api.rest.types;
-
-import io.swagger.annotations.ApiModel;
-import org.hibernate.validator.constraints.NotBlank;
-
-import javax.validation.constraints.Pattern;
-import java.util.List;
-
-@ApiModel(value = "ActivitySpecRequest")
-@lombok.Data
-public class ActivitySpecRequestDto {
-
- @NotBlank(message = "Mandatory %s field is missing/null")
- @Pattern(regexp = "^[a-zA-Z0-9-]*$", message = "%s should match with \"^[a-zA-Z0-9-]*$\" pattern")
- private String name;
- private String description;
-
- private List<String> categoryList;
- private List<ActivitySpecParameterDto> inputs;
- private List<ActivitySpecParameterDto> outputs;
- private String type;
- private String content;
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
deleted file mode 100644
index 715d096..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.server.filters;
-
-import java.io.IOException;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response.Status;
-import org.apache.commons.lang.StringUtils;
-import org.openecomp.sdc.common.session.SessionContextProvider;
-import org.openecomp.sdc.common.session.SessionContextProviderFactory;
-
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.TENANT;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.USER;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.USER_ID_HEADER_PARAM;
-
-public class ActivitySpecSessionContextFilter implements Filter {
-
- private static final String MESSAGE_USER_MAY_NOT_BE_NULL = "{\"message\": \"User ID can not be null\"}";
-
- @Override
- public void init(FilterConfig filterConfig) {
- //No ActivitySpec specific initialization required
- }
-
- @Override
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
- FilterChain filterChain) throws IOException, ServletException {
-
- final String userHeader = ((HttpServletRequest) servletRequest).getHeader(USER_ID_HEADER_PARAM);
-
- // Not a real security, just make sure the request
- // has passed some authentication gateway
- if (StringUtils.isEmpty(userHeader)) {
- sendErrorResponse(servletResponse);
- return;
- }
-
- SessionContextProvider contextProvider = SessionContextProviderFactory.getInstance().createInterface();
-
- try {
- // use the system-wide user and tenant
- contextProvider.create(USER, TENANT);
- filterChain.doFilter(servletRequest, servletResponse);
- } finally {
- contextProvider.close();
- }
- }
-
- private void sendErrorResponse(ServletResponse servletResponse) throws IOException {
- HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
- httpServletResponse.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
- httpServletResponse.setStatus(Status.UNAUTHORIZED.getStatusCode());
- servletResponse.getOutputStream().write(MESSAGE_USER_MAY_NOT_BE_NULL.getBytes());
- }
-
- @Override
- public void destroy() {
- //No ActivitySpec specific destroy required
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java
deleted file mode 100644
index 8ddb7f3..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.api.server.listeners;
-
-import org.openecomp.sdc.common.session.SessionContextProviderFactory;
-import org.springframework.web.context.ContextLoaderListener;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.TENANT;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.USER;
-
-public class ActivitySpecAppStartupListener implements ServletContextListener {
-
- ContextLoaderListener springListener;
-
- @Override
- public void contextInitialized(ServletContextEvent servletContextEvent) {
- SessionContextProviderFactory.getInstance().createInterface().create(USER,
- TENANT);
- springListener = new ContextLoaderListener();
- springListener.initWebApplicationContext(servletContextEvent.getServletContext());
- }
-
- @Override
- public void contextDestroyed(ServletContextEvent servletContextEvent) {
- springListener.closeWebApplicationContext(servletContextEvent.getServletContext());
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/ActivitySpecManager.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/ActivitySpecManager.java
deleted file mode 100644
index 4fa41d0..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/ActivitySpecManager.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright © 2016-2017 European Support Limited
- *
- * 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.openecomp.activityspec.be;
-
-import java.util.Collection;
-
-import org.openecomp.activityspec.api.rest.types.ActivitySpecAction;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.sdc.versioning.types.Item;
-
-public interface ActivitySpecManager {
-
- ActivitySpecEntity createActivitySpec(ActivitySpecEntity activitySpecEntity);
-
- ActivitySpecEntity get(ActivitySpecEntity activitySpec);
-
- void update(ActivitySpecEntity activitySpec);
-
- void actOnAction(String activitySpecId, String versionId, ActivitySpecAction action);
-
- Collection<Item> list(String versionStatus);
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/ActivitySpecDao.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/ActivitySpecDao.java
deleted file mode 100644
index 375adac..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/ActivitySpecDao.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright © 2016-2017 European Support Limited
- *
- * 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.openecomp.activityspec.be.dao;
-
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-
-public interface ActivitySpecDao {
- void create(ActivitySpecEntity activitySpecEntity);
-
- ActivitySpecEntity get(ActivitySpecEntity activitySpec);
-
- void update(ActivitySpecEntity activitySpec);
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java
deleted file mode 100644
index 0dabcca..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright © 2016-2017 European Support Limited
- *
- * 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.openecomp.activityspec.be.dao.impl;
-
-import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
-import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.Action;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.datatypes.item.Info;
-
-import org.openecomp.activityspec.be.dao.ActivitySpecDao;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.utils.ActivitySpecConstant;
-import org.openecomp.activityspec.be.datatypes.ActivitySpecData;
-import org.openecomp.activityspec.be.datatypes.ElementType;
-import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.core.zusammen.api.ZusammenAdaptor;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.Objects;
-import java.util.Optional;
-
-import static org.openecomp.core.zusammen.api.ZusammenUtil.buildStructuralElement;
-import static org.openecomp.core.zusammen.api.ZusammenUtil.createSessionContext;
-
-public class ActivitySpecDaoZusammenImpl implements ActivitySpecDao {
-
- private final ZusammenAdaptor zusammenAdaptor;
-
- public ActivitySpecDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
- this.zusammenAdaptor = zusammenAdaptor;
- }
-
- @Override
- public void create(ActivitySpecEntity entity) {
- SessionContext context = createSessionContext();
- ZusammenElement generalElement = mapActivityDetailsToZusammenElement(entity, Action.CREATE);
-
- ElementContext elementContext =
- new ElementContext(entity.getId(), entity.getVersion().getId());
- zusammenAdaptor.saveElement(context, elementContext, generalElement,
- "Create Activity Spec General Info Element");
- }
-
- @Override
- public ActivitySpecEntity get(ActivitySpecEntity entity) {
- SessionContext context = createSessionContext();
-
- ElementContext elementContext = new ElementContext(entity.getId(), entity.getVersion().getId());
- Optional<Element> element = zusammenAdaptor.getElementByName(context, elementContext,
- null, ElementType.ACTIVITYSPEC.name());
- if (element.isPresent()) {
- return mapZusammenElementToActivityDetails(element.get());
- } else {
- return null;
- }
- }
-
- @Override
- public void update(ActivitySpecEntity entity) {
- SessionContext context = createSessionContext();
- ZusammenElement generalElement = mapActivityDetailsToZusammenElement(entity, Action.UPDATE);
-
- ElementContext elementContext =
- new ElementContext(entity.getId(), entity.getVersion().getId());
- zusammenAdaptor.saveElement(context, elementContext, generalElement,
- "Update Activity Spec General Info Element");
- }
-
-
- private ActivitySpecEntity mapZusammenElementToActivityDetails(Element element) {
- ActivitySpecEntity entity = new ActivitySpecEntity();
- entity.setId(element.getElementId().getValue());
- enrichEntityFromElementData(entity, element.getData());
- enrichEntityFromElementInfo(entity, element.getInfo());
- return entity;
- }
-
- private ZusammenElement mapActivityDetailsToZusammenElement(ActivitySpecEntity entity,
- Action action) {
- ZusammenElement generalElement =
- buildStructuralElement(ElementType.ACTIVITYSPEC.name(), action);
-
- enrichElementInfoFromEntity(generalElement, entity);
- enrichElementDataFromEntity(generalElement, entity);
- return generalElement;
- }
-
-
- private void enrichEntityFromElementInfo(ActivitySpecEntity entity, Info info) {
- entity.setName(info.getProperty(InfoPropertyName.NAME.getValue()));
- entity.setDescription(info.getProperty(InfoPropertyName.DESCRIPTION.getValue()));
- entity.setCategoryList(info.getProperty(InfoPropertyName.CATEGORY.getValue()));
- }
-
- private void enrichEntityFromElementData(ActivitySpecEntity entity, InputStream data) {
- ActivitySpecData activitySpecData = JsonUtil.json2Object(data, ActivitySpecData.class);
- if (Objects.nonNull(activitySpecData)) {
- entity.setInputs(activitySpecData.getInputs());
- entity.setOutputs(activitySpecData.getOutputs());
- entity.setType(activitySpecData.getType());
- entity.setContent(activitySpecData.getContent());
- }
- }
-
- private void enrichElementInfoFromEntity(ZusammenElement element, ActivitySpecEntity entity) {
- element.getInfo().addProperty(InfoPropertyName.DESCRIPTION.getValue(), entity.getDescription());
- element.getInfo().addProperty(InfoPropertyName.NAME.getValue(), entity.getName());
- element.getInfo().addProperty(InfoPropertyName.CATEGORY.getValue(),
- entity.getCategoryList());
- }
-
-
- private void enrichElementDataFromEntity(ZusammenElement element, ActivitySpecEntity entity) {
- ActivitySpecData activitySpecData = new ActivitySpecData();
- activitySpecData.setInputs(entity.getInputs());
- activitySpecData.setOutputs(entity.getOutputs());
- activitySpecData.setType(entity.getType());
- activitySpecData.setContent(entity.getContent());
- element.setData(new ByteArrayInputStream(JsonUtil.object2Json(activitySpecData).getBytes()));
- }
-
- public enum InfoPropertyName {
- DESCRIPTION("description"),
- NAME("name"),
- CATEGORY(ActivitySpecConstant.CATEGORY_ATTRIBUTE_NAME);
-
- private final String value;
-
- InfoPropertyName(String value) {
- this.value = value;
- }
-
- public String getValue() {
- return value;
- }
- }
-
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/types/ActivitySpecEntity.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/types/ActivitySpecEntity.java
deleted file mode 100644
index 2f261f8..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/types/ActivitySpecEntity.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright © 2016-2017 European Support Limited
- *
- * 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.openecomp.activityspec.be.dao.types;
-
-import org.openecomp.activityspec.be.datatypes.ActivitySpecParameter;
-import org.openecomp.sdc.versioning.dao.types.Version;
-
-import java.util.List;
-
-@lombok.Data
-public class ActivitySpecEntity {
- private String id;
- private Version version;
- private String name;
- private String description;
-
- private List<String> categoryList;
- private List<ActivitySpecParameter> inputs;
- private List<ActivitySpecParameter> outputs;
- private String type;
- private String content;
-
- //Not to be maintained in activityspec element
- private String status;
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/impl/ActivitySpecManagerImpl.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/impl/ActivitySpecManagerImpl.java
deleted file mode 100644
index 4438373..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/impl/ActivitySpecManagerImpl.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Copyright © 2016-2017 European Support Limited
- *
- * 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.openecomp.activityspec.be.impl;
-
-import static org.openecomp.activityspec.api.rest.types.ActivitySpecAction.CERTIFY;
-import static org.openecomp.activityspec.api.rest.types.ActivitySpecAction.DELETE;
-import static org.openecomp.activityspec.api.rest.types.ActivitySpecAction.DEPRECATE;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.ACTIVITY_SPEC_NOT_FOUND;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.INVALID_STATE;
-import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Certified;
-import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Deleted;
-import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Deprecated;
-import static org.openecomp.sdc.versioning.dao.types.VersionStatus.Draft;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Predicate;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecAction;
-import org.openecomp.activityspec.be.ActivitySpecManager;
-import org.openecomp.activityspec.be.dao.ActivitySpecDao;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.be.datatypes.ItemType;
-import org.openecomp.activityspec.errors.ActivitySpecNotFoundException;
-import org.openecomp.activityspec.utils.ActivitySpecConstant;
-import org.openecomp.core.dao.UniqueValueDao;
-import org.openecomp.core.util.UniqueValueUtil;
-import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.common.errors.ErrorCategory;
-import org.openecomp.sdc.common.errors.ErrorCode;
-import org.openecomp.sdc.common.errors.SdcRuntimeException;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.sdc.versioning.ItemManager;
-import org.openecomp.sdc.versioning.VersioningManager;
-import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.dao.types.VersionStatus;
-import org.openecomp.sdc.versioning.types.Item;
-import org.openecomp.sdc.versioning.types.VersionCreationMethod;
-
-public class ActivitySpecManagerImpl implements ActivitySpecManager {
-
- private static final Map<VersionStatus, Transition> TRANSITIONS;
-
- static {
- TRANSITIONS = new EnumMap<>(VersionStatus.class);
- TRANSITIONS.put(Certified, new Transition("Certify", Draft));
- TRANSITIONS.put(Deprecated, new Transition("Deprecate", Certified));
- TRANSITIONS.put(Deleted, new Transition("Delete", Deprecated));
- }
-
- private final ItemManager itemManager;
- private final VersioningManager versioningManager;
- private final ActivitySpecDao activitySpecDao;
- private final UniqueValueUtil uniqueValueUtil;
- private static final String ACTIVITY_SPEC_NAME = "ActivitySpec.Name";
- private static final Logger LOGGER =
- LoggerFactory.getLogger(ActivitySpecManagerImpl.class);
-
- public ActivitySpecManagerImpl(ItemManager itemManager,
- VersioningManager versioningManager,
- ActivitySpecDao activitySpecDao,
- UniqueValueDao uniqueValueDao) {
- this.itemManager = itemManager;
- this.versioningManager = versioningManager;
- this.activitySpecDao = activitySpecDao;
- this.uniqueValueUtil = new UniqueValueUtil(uniqueValueDao);
- }
-
- @Override
- public ActivitySpecEntity createActivitySpec(ActivitySpecEntity activitySpecEntity) {
-
- validateUniqueValue(activitySpecEntity);
-
- Item item = getActivitySpecItem(activitySpecEntity);
- item = itemManager.create(item);
-
- Version version = getActivitySpecVersion(activitySpecEntity);
- versioningManager.create(item.getId(), version, VersionCreationMethod.major);
-
- enrichActivitySpec(item, version, activitySpecEntity);
- activitySpecDao.create(activitySpecEntity);
-
- uniqueValueUtil.createUniqueValue(ACTIVITY_SPEC_NAME, activitySpecEntity.getName());
- return activitySpecEntity;
- }
-
- private void validateUniqueValue(ActivitySpecEntity activitySpecEntity) {
- try {
- uniqueValueUtil.validateUniqueValue(ACTIVITY_SPEC_NAME, activitySpecEntity.getName());
- } catch (CoreException exception) {
- LOGGER.debug("Unique value error for activity spec name :" + activitySpecEntity.getName(), exception);
- throw new CoreException(new ErrorCode.ErrorCodeBuilder()
- .withCategory(ErrorCategory.APPLICATION)
- .withId(exception.code().id())
- .withMessage("name already in use").build());
- }
- }
-
- private Version getActivitySpecVersion(ActivitySpecEntity activitySpecEntity) {
- return activitySpecEntity.getVersion() == null ? new Version()
- : activitySpecEntity.getVersion();
-
- }
-
- @Override
- public ActivitySpecEntity get(ActivitySpecEntity activitySpec) {
- activitySpec.setVersion(calculateLatestVersion(activitySpec.getId(),activitySpec.getVersion()));
- ActivitySpecEntity retrieved;
- try {
- retrieved = activitySpecDao.get(activitySpec);
- } catch (SdcRuntimeException runtimeException) {
- LOGGER.debug("Failed to retrieve activity spec for activitySpecId: " + activitySpec.getId()
- + " and version: " + activitySpec.getVersion().getId(), runtimeException);
- throw new ActivitySpecNotFoundException(ACTIVITY_SPEC_NOT_FOUND, runtimeException);
- }
- if (retrieved != null) {
- final Version retrievedVersion = versioningManager.get(activitySpec.getId(),
- activitySpec.getVersion());
- retrieved.setStatus(Objects.nonNull(retrievedVersion) ? retrievedVersion.getStatus().name()
- : null);
- }
- return retrieved;
- }
-
- @Override
- public void update(ActivitySpecEntity activitySpec) {
-
- ActivitySpecEntity previousActivitySpec = get(activitySpec);
-
- if (!activitySpec.getName().equals(previousActivitySpec.getName())) {
- validateUniqueValue(activitySpec);
- }
-
- activitySpecDao.update(activitySpec);
-
- if (!activitySpec.getName().equals(previousActivitySpec.getName())) {
- uniqueValueUtil.createUniqueValue(ACTIVITY_SPEC_NAME, activitySpec.getName());
- itemManager.updateName(activitySpec.getId(), activitySpec.getName());
- uniqueValueUtil.deleteUniqueValue(ACTIVITY_SPEC_NAME, previousActivitySpec.getName());
- }
- }
-
- @Override
- public void actOnAction(String activitySpecId, String versionId, ActivitySpecAction action) {
- Version version = new Version(versionId);
- version = calculateLatestVersion(activitySpecId, version);
- if (action == CERTIFY) {
- version.setStatus(Certified);
- }
- if (action == DEPRECATE) {
- version.setStatus(Deprecated);
- }
- if (action == DELETE) {
- version.setStatus(Deleted);
- }
-
- updateVersionStatus(activitySpecId, action, version);
- if (action == DELETE) {
- ActivitySpecEntity entity = new ActivitySpecEntity();
- entity.setId(activitySpecId);
- entity.setVersion(version);
- final ActivitySpecEntity activitySpecEntity = get(entity);
- uniqueValueUtil.deleteUniqueValue(ACTIVITY_SPEC_NAME, activitySpecEntity.getName());
- }
- }
-
- private void updateVersionStatus(String activitySpecId, ActivitySpecAction action,
- Version version) {
- VersionStatus prevVersionStatus = null;
- Version retrievedVersion;
- try {
- retrievedVersion = versioningManager.get(activitySpecId, version);
- } catch (SdcRuntimeException exception) {
- LOGGER.debug("Failed to get version for activitySpecId: " + activitySpecId
- + " and version: " + version.getId(), exception);
- throw new ActivitySpecNotFoundException(ACTIVITY_SPEC_NOT_FOUND, exception);
-
- }
-
- VersionStatus status = version.getStatus();
- Transition transition = TRANSITIONS.get(status);
- if (transition != null) {
-
- VersionStatus retrievedStatus = Objects.nonNull(retrievedVersion) ? retrievedVersion.getStatus() : null;
- if (retrievedStatus != transition.prevStatus) {
- LOGGER.debug("Failed to " + version.getStatus() + " since activity spec is in "
- + retrievedStatus);
- throw new CoreException(new ErrorCode.ErrorCodeBuilder()
- .withMessage(INVALID_STATE).build());
- }
- prevVersionStatus = transition.prevStatus;
- }
-
- if (Objects.nonNull(retrievedVersion)) {
- retrievedVersion.setStatus(status);
- versioningManager.updateVersion(activitySpecId, retrievedVersion);
- itemManager.updateVersionStatus(activitySpecId, status, prevVersionStatus);
- versioningManager.publish(activitySpecId, retrievedVersion, "actionOnActivitySpec :"
- + action.name());
- }
- }
-
- private Version calculateLatestVersion(String activitySpecId, Version version) {
- if (ActivitySpecConstant.VERSION_ID_DEFAULT_VALUE.equalsIgnoreCase(version.getId())) {
- List<Version> list;
- try {
- list = versioningManager.list(activitySpecId);
- } catch (SdcRuntimeException runtimeException) {
- LOGGER.debug("Failed to list versions for activitySpecId "
- + activitySpecId, runtimeException);
- throw new ActivitySpecNotFoundException(ACTIVITY_SPEC_NOT_FOUND, runtimeException);
- }
- if (Objects.nonNull(list) && !list.isEmpty()) {
- return list.get(0);
- }
- }
- return version;
- }
-
- @Override
- public Collection<Item> list(String versionStatus) {
- Predicate<Item> itemPredicate;
- if (Objects.nonNull(versionStatus)) {
-
- VersionStatus statusEnumValue;
-
- try {
- statusEnumValue = VersionStatus.valueOf(versionStatus);
- } catch (IllegalArgumentException e) {
- LOGGER.debug("Unexpected value of VersionStatus {}", versionStatus);
- return Collections.emptyList();
- }
-
- itemPredicate = item -> ItemType.ACTIVITYSPEC.name().equals(item.getType())
- && item.getVersionStatusCounters().containsKey(statusEnumValue);
-
- } else {
- itemPredicate = item -> ItemType.ACTIVITYSPEC.name().equals(item.getType());
- }
-
- return itemManager.list(itemPredicate);
- }
-
- private void enrichActivitySpec(Item item, Version version,
- ActivitySpecEntity activitySpecEntity) {
- activitySpecEntity.setId(item.getId());
- activitySpecEntity.setVersion(version);
- }
-
- private Item getActivitySpecItem(ActivitySpecEntity activitySpecEntity) {
- Item item = new Item();
- item.setType(ItemType.ACTIVITYSPEC.name());
- item.setName(activitySpecEntity.getName());
- if (activitySpecEntity.getId() != null) {
- item.setId(activitySpecEntity.getId());
- }
- item.addProperty(ActivitySpecConstant.CATEGORY_ATTRIBUTE_NAME,
- activitySpecEntity.getCategoryList());
- return item;
- }
-
- private static class Transition {
-
- private final String action;
- private final VersionStatus prevStatus;
-
- private Transition(String action, VersionStatus prevStatus) {
- this.action = action;
- this.prevStatus = prevStatus;
- }
- }
-
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecErrorResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecErrorResponse.java
deleted file mode 100644
index 18ae886..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecErrorResponse.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.errors;
-
-@lombok.Data
-public class ActivitySpecErrorResponse {
- private String message;
-
- public ActivitySpecErrorResponse() {
- //default constructor
- }
-
- public ActivitySpecErrorResponse(String message) {
- this.message = message;
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/DefaultExceptionMapper.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/DefaultExceptionMapper.java
deleted file mode 100644
index 950988a..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/DefaultExceptionMapper.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.errors;
-
-import java.util.Set;
-import javax.validation.ConstraintViolation;
-import javax.validation.ConstraintViolationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.ext.ExceptionMapper;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.hibernate.validator.internal.engine.path.PathImpl;
-import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
-
-public class DefaultExceptionMapper implements ExceptionMapper<Exception> {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(DefaultExceptionMapper.class);
-
- @Override
- public Response toResponse(Exception exception) {
- Response response;
- if (exception instanceof CoreException) {
- response = transform(CoreException.class.cast(exception));
- } else if (exception instanceof ActivitySpecNotFoundException) {
- response = transform(ActivitySpecNotFoundException.class.cast(exception));
- } else if (exception instanceof ConstraintViolationException) {
- response = transform(ConstraintViolationException.class.cast(exception));
- } else if (exception instanceof JsonMappingException) {
- response = transform(JsonMappingException.class.cast(exception));
- } else {
- response = transform(exception);
- }
-
- return response;
- }
-
- private Response transform(ActivitySpecNotFoundException notFoundException) {
- LOGGER.error("Transforming ActivitySpecNotFoundException to Error Response :", notFoundException);
- return generateResponse(Status.NOT_FOUND, new ActivitySpecErrorResponse(notFoundException.getMessage()));
- }
-
- private Response transform(CoreException coreException) {
- LOGGER.error("Transforming CoreException to Error Response :", coreException);
- return generateResponse(Status.BAD_REQUEST, new ActivitySpecErrorResponse(coreException.getMessage()));
- }
-
- private Response transform(ConstraintViolationException validationException) {
- LOGGER.error("Transforming ConstraintViolationException to Error Response :",
- validationException);
- Set<ConstraintViolation<?>> constraintViolationSet = validationException
- .getConstraintViolations();
- String message;
-
- String fieldName = null;
- if (constraintViolationSet != null) {
- // getting the first violation message for the output response.
- ConstraintViolation<?> constraintViolation = constraintViolationSet.iterator().next();
- message = constraintViolation.getMessage();
- fieldName = ((PathImpl) constraintViolation.getPropertyPath()).getLeafNode().toString();
-
- } else {
- message = validationException.getMessage();
- }
- return generateResponse(Status.BAD_REQUEST, new ActivitySpecErrorResponse(String.format(message,fieldName)));
- }
-
- private Response transform(Exception exception) {
- LOGGER.error("Transforming Exception to Error Response " + exception);
- return generateResponse(Status.INTERNAL_SERVER_ERROR, new ActivitySpecErrorResponse(exception.getMessage()));
- }
-
- private Response transform(JsonMappingException jsonMappingException) {
- LOGGER.error("Transforming JsonMappingException to Error Response " + jsonMappingException);
- return generateResponse(Status.BAD_REQUEST, new ActivitySpecErrorResponse("Invalid Json Input"));
- }
-
- private Response generateResponse(Response.Status status, ActivitySpecErrorResponse
- activitySpecErrorResponse) {
- return Response.status(status).entity(activitySpecErrorResponse).type(MediaType
- .APPLICATION_JSON).build();
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/utils/ActivitySpecConstant.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/utils/ActivitySpecConstant.java
deleted file mode 100644
index f63810d..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/utils/ActivitySpecConstant.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.utils;
-
-public class ActivitySpecConstant {
-
- public static final String CATEGORY_ATTRIBUTE_NAME = "category";
- public static final String VERSION_ID_DEFAULT_VALUE = "latest";
- public static final String TENANT = "activity_spec";
- public static final String USER = "activity_spec_USER";
- public static final String USER_ID_HEADER_PARAM = "USER_ID";
- public static final String ACTIVITY_SPEC_NOT_FOUND = "No Activity Spec found for the given identifiers";
- public static final String INVALID_STATE = "Activity Spec is in an invalid state";
-
- private ActivitySpecConstant(){
- //Utility Class declaring constants does not require instantiation.
- }
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/onap/sdc/activityspec/be/dao/impl/ActivitySpecZusammenDaoImplTest.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/onap/sdc/activityspec/be/dao/impl/ActivitySpecZusammenDaoImplTest.java
new file mode 100644
index 0000000..26b9adb
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/onap/sdc/activityspec/be/dao/impl/ActivitySpecZusammenDaoImplTest.java
@@ -0,0 +1,368 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.be.dao.impl;
+
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflict;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ItemVersionConflict;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.Action;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+import com.amdocs.zusammen.datatypes.item.Item;
+import com.amdocs.zusammen.datatypes.item.ItemVersion;
+import com.amdocs.zusammen.datatypes.item.ItemVersionData;
+import com.amdocs.zusammen.datatypes.item.ItemVersionStatus;
+import com.amdocs.zusammen.datatypes.item.Resolution;
+import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
+import com.amdocs.zusammen.datatypes.itemversion.Tag;
+
+import java.io.InputStream;
+
+import org.onap.sdc.activityspec.be.dao.impl.ActivitySpecDaoZusammenImpl.InfoPropertyName;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecData;
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecParameter;
+import org.onap.sdc.activityspec.be.datatypes.ElementType;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+import org.openecomp.sdc.common.session.SessionContextProviderFactory;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.types.ElementPropertyName;
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+import static org.openecomp.core.zusammen.api.ZusammenUtil.createSessionContext;
+
+public class ActivitySpecZusammenDaoImplTest {
+
+ private static final Version version = new Version();
+ private static final String versionId = "1234";
+ private static final String itemId = "5678";
+ private static final String tenant = "dox";
+
+ private ZusammenAdaptorMock zusammenAdaptor;
+ private ActivitySpecDaoZusammenImpl daoImpl;
+ private ActivitySpecEntity entity;
+
+
+ @BeforeMethod
+ public void setUp() {
+ SessionContextProviderFactory.getInstance().createInterface().create("test", tenant);
+ zusammenAdaptor = new ZusammenAdaptorMock();
+ daoImpl = new ActivitySpecDaoZusammenImpl(zusammenAdaptor);
+ entity = new ActivitySpecEntity();
+ entity = new ActivitySpecEntity();
+
+ entity.setId(itemId);
+ version.setId(versionId);
+ entity.setVersion(version);
+ entity.setName("activitySpec");
+ List<String> categoryList = new ArrayList<>();
+ categoryList.add("category1");
+ entity.setCategoryList(categoryList);
+ ActivitySpecParameter inputParams = new ActivitySpecParameter("dbhost", "String");
+ inputParams.setValue("localhost");
+ List<ActivitySpecParameter> inputs = new ArrayList<>();
+ inputs.add(inputParams);
+ entity.setInputs(inputs);
+ }
+
+ @AfterMethod
+ public void tearDown() {
+ SessionContextProviderFactory.getInstance().createInterface().close();
+ }
+
+ @Test
+ public void testCreate() {
+ ItemVersion itemVersionmock = new ItemVersion();
+ itemVersionmock.setId(new Id());
+
+ daoImpl.create(entity);
+ SessionContext context = createSessionContext();
+ ElementContext elementContext = new ElementContext(entity.getId(), entity.getVersion().getId());
+ Optional<ElementInfo> testElementInfo =
+ zusammenAdaptor.getElementInfoByName(context, elementContext, Id.ZERO, ElementType.ACTIVITYSPEC.name());
+ Assert.assertTrue(testElementInfo.isPresent());
+ Assert.assertEquals(testElementInfo.get().getInfo().getName(), ElementType.ACTIVITYSPEC.name());
+ Assert.assertEquals(testElementInfo.get().getInfo().getProperty(
+ ActivitySpecDaoZusammenImpl.InfoPropertyName.DESCRIPTION.getValue()), entity.getDescription());
+ Assert.assertEquals(testElementInfo.get().getInfo().getProperty(InfoPropertyName.CATEGORY.getValue()),
+ entity.getCategoryList());
+ Assert.assertEquals(testElementInfo.get().getInfo()
+ .getProperty(ActivitySpecDaoZusammenImpl.InfoPropertyName.NAME.getValue()),
+ entity.getName());
+
+ final Optional<Element> testElement =
+ zusammenAdaptor.getElement(context, elementContext, zusammenAdaptor.elementId);
+ final InputStream data = testElement.get().getData();
+ final ActivitySpecData activitySpecData = JsonUtil.json2Object(data, ActivitySpecData.class);
+ Assert.assertEquals(activitySpecData.getInputs().get(0).getName(), entity.getInputs().get(0).getName());
+ }
+
+ @Test
+ public void testGet() {
+ final ActivitySpecEntity retrieved = daoImpl.get(entity);
+ Assert.assertEquals(retrieved.getName(), entity.getName());
+ Assert.assertEquals(retrieved.getDescription(), entity.getDescription());
+ Assert.assertEquals(retrieved.getCategoryList(), entity.getCategoryList());
+ }
+
+ @Test
+ public void testUpdate() {
+ entity.setDescription("Update AS version1");
+ daoImpl.update(entity);
+ final ActivitySpecEntity retrieved = daoImpl.get(entity);
+ Assert.assertEquals(retrieved.getName(), entity.getName());
+ Assert.assertEquals(retrieved.getDescription(), entity.getDescription());
+ Assert.assertEquals(retrieved.getCategoryList(), entity.getCategoryList());
+ }
+
+ private class ZusammenAdaptorMock implements ZusammenAdaptor {
+
+ private ItemVersion itemVersion;
+ private final Map<String, Element> elementMap = new HashMap<>();
+ String elementId;
+
+ @Override
+ public Optional<ItemVersion> getFirstVersion(SessionContext context, Id itemId) {
+
+ return Optional.ofNullable(itemVersion);
+ }
+
+ @Override
+ public Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId) {
+ return null;
+ }
+
+ @Override
+ public ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId) {
+ return null;
+ }
+
+ @Override
+ public Optional<Element> getElement(SessionContext context, ElementContext elementContext, String elementId) {
+ return Optional.of(elementMap.get(elementId));
+ }
+
+ @Override
+ public Optional<Element> getElementByName(SessionContext context, ElementContext elementContext,
+ Id parentElementId, String elementName) {
+ //return Optional.empty();
+ ZusammenElement element = new ZusammenElement();
+ Info info = new Info();
+ element.setElementId(Id.ZERO);
+ info.addProperty("name", entity.getName());
+ info.addProperty("description", entity.getDescription());
+ info.addProperty("category", entity.getCategoryList());
+ element.setInfo(info);
+ return Optional.ofNullable(element);
+ }
+
+ @Override
+ public Collection<ElementInfo> listElements(SessionContext context, ElementContext elementContext,
+ Id parentElementId) {
+ return null;
+ }
+
+ @Override
+ public Collection<Element> listElementData(SessionContext context, ElementContext elementContext,
+ Id parentElementId) {
+ return elementMap.values();
+ }
+
+ @Override
+ public Collection<ElementInfo> listElementsByName(SessionContext context, ElementContext elementContext,
+ Id parentElementId, String elementName) {
+
+ return elementMap.values().stream()
+ .filter(element -> elementName.equals(element.getInfo()
+ .getProperty(
+ ElementPropertyName.elementType
+ .name())))
+ .map(element -> {
+ ElementInfo elementInfo = new ElementInfo();
+ elementInfo.setId(element.getElementId());
+ elementInfo.setInfo(element.getInfo());
+ return elementInfo;
+ }).collect(Collectors.toList());
+
+ }
+
+ @Override
+ public Optional<ElementInfo> getElementInfoByName(SessionContext context, ElementContext elementContext,
+ Id parentElementId, String elementName) {
+
+
+ return elementMap.values().stream()
+ .filter(element -> elementName.equals(element.getInfo()
+ .getProperty(
+ ElementPropertyName.elementType
+ .name())))
+ .map(element -> {
+ ElementInfo elementInfo = new ElementInfo();
+ elementInfo.setId(element.getElementId());
+ elementInfo.setInfo(element.getInfo());
+ return elementInfo;
+ }).findAny();
+
+
+ }
+
+ @Override
+ public Element saveElement(SessionContext context, ElementContext elementContext, ZusammenElement element,
+ String message) {
+ if (element.getAction().equals(Action.CREATE) || element.getAction().equals(Action.UPDATE)) {
+ element.setElementId(new Id(UUID.randomUUID().toString()));
+ }
+ elementMap.put(element.getElementId().getValue(), element);
+ elementId = element.getElementId().getValue();
+ return element;
+ }
+
+ @Override
+ public void resolveElementConflict(SessionContext context, ElementContext elementContext,
+ ZusammenElement element, Resolution resolution) {
+
+ }
+
+ @Override
+ public Collection<HealthInfo> checkHealth(SessionContext context) {
+ return null;
+ }
+
+ @Override
+ public Id createItem(SessionContext context, Info info) {
+ return null;
+ }
+
+ @Override
+ public void updateItem(SessionContext context, Id itemId, Info info) {
+
+ }
+
+ @Override
+ public Id createVersion(SessionContext context, Id itemId, Id baseVersionId, ItemVersionData itemVersionData) {
+ return null;
+ }
+
+ @Override
+ public void updateVersion(SessionContext context, Id itemId, Id versionId, ItemVersionData itemVersionData) {
+
+ }
+
+ @Override
+ public ItemVersion getVersion(SessionContext context, Id itemId, Id versionId) {
+ return null;
+ }
+
+ @Override
+ public String getVersion(SessionContext sessionContext) {
+ return null;
+ }
+
+ @Override
+ public ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId) {
+ return null;
+ }
+
+ @Override
+ public ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId) {
+ return null;
+ }
+
+ @Override
+ public void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag) {
+
+ }
+
+ @Override
+ public void resetVersionHistory(SessionContext context, Id itemId, Id versionId, String changeRef) {
+
+ }
+
+
+ @Override
+ public void publishVersion(SessionContext context, Id itemId, Id versionId, String message) {
+
+ }
+
+ @Override
+ public void syncVersion(SessionContext sessionContext, Id itemId, Id versionId) {
+
+ }
+
+ @Override
+ public void forceSyncVersion(SessionContext context, Id itemId, Id versionId) {
+
+ }
+
+ @Override
+ public Optional<ElementInfo> getElementInfo(SessionContext context, ElementContext elementContext,
+ Id elementId) {
+ return Optional.empty();
+ }
+
+ @Override
+ public void revert(SessionContext sessionContext, Id itemId, Id versionId, Id revisionId) {
+
+ }
+
+ @Override
+ public ItemVersionRevisions listRevisions(SessionContext sessionContext, Id itemId, Id versionId) {
+ return null;
+ }
+
+ @Override
+ public Optional<ElementConflict> getElementConflict(SessionContext context, ElementContext elementContext,
+ Id id) {
+ return Optional.empty();
+ }
+
+ @Override
+ public Collection<Item> listItems(SessionContext context) {
+ return null;
+ }
+
+ @Override
+ public Item getItem(SessionContext context, Id itemId) {
+ return null;
+ }
+
+ @Override
+ public void deleteItem(SessionContext context, Id itemId) {
+
+ }
+
+ }
+
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/onap/sdc/activityspec/be/impl/ActivitySpecManagerImplTest.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/onap/sdc/activityspec/be/impl/ActivitySpecManagerImplTest.java
new file mode 100644
index 0000000..21d1709
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/onap/sdc/activityspec/be/impl/ActivitySpecManagerImplTest.java
@@ -0,0 +1,302 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.activityspec.be.impl;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.onap.sdc.activityspec.be.dao.ActivitySpecDao;
+import org.onap.sdc.activityspec.api.rest.types.ActivitySpecAction;
+import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
+import org.onap.sdc.activityspec.be.datatypes.ActivitySpecParameter;
+import org.onap.sdc.activityspec.errors.ActivitySpecNotFoundException;
+import org.openecomp.core.dao.UniqueValueDao;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.SdcRuntimeException;
+import org.openecomp.sdc.common.session.SessionContextProviderFactory;
+import org.openecomp.sdc.versioning.ItemManager;
+import org.openecomp.sdc.versioning.VersioningManager;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.dao.types.VersionStatus;
+import org.openecomp.sdc.versioning.types.Item;
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.ACTIVITY_SPEC_NOT_FOUND;
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.INVALID_STATE;
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.VERSION_ID_DEFAULT_VALUE;
+
+public class ActivitySpecManagerImplTest {
+
+ private static final String STRING_TYPE = "String";
+ private static final String TEST_ERROR_MSG = "Test Error";
+ private ActivitySpecEntity input;
+ private static final Version VERSION01 = new Version("12345");
+ private static final String ID = "ID1";
+
+ @Spy
+ @InjectMocks
+ private ActivitySpecManagerImpl activitySpecManager;
+
+ @Mock
+ private ItemManager itemManagerMock;
+
+ @Mock
+ private VersioningManager versionManagerMock;
+
+ @Mock
+ private ActivitySpecDao activitySpecDaoMock;
+
+ //This is used to mock UniqueValueUtil. This should not be removed.
+ @Mock
+ private UniqueValueDao uniqueValueDaoMock;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @AfterMethod
+ public void tearDown() {
+ activitySpecManager = null;
+ }
+
+ @Test
+ public void testCreate() {
+
+ SessionContextProviderFactory.getInstance().createInterface().create("testUser", "testTenant");
+
+ ActivitySpecEntity activitySpecToCreate = new ActivitySpecEntity();
+ activitySpecToCreate.setName("startserver");
+ activitySpecToCreate.setDescription("start the server");
+ activitySpecToCreate.setVersion(VERSION01);
+
+ List<String> categoryList = new ArrayList<>();
+ categoryList.add("category1");
+ categoryList.add("category2");
+ activitySpecToCreate.setCategoryList(categoryList);
+
+ ActivitySpecParameter inputParams = new ActivitySpecParameter("dbhost", STRING_TYPE);
+ inputParams.setValue("localhost");
+ ActivitySpecParameter inputParams1 = new ActivitySpecParameter("dbname", STRING_TYPE);
+ inputParams.setValue("prod");
+ List<ActivitySpecParameter> inputs = new ArrayList<>();
+ inputs.add(inputParams);
+ inputs.add(inputParams1);
+ activitySpecToCreate.setInputs(inputs);
+
+ ActivitySpecParameter outputParams = new ActivitySpecParameter("status", STRING_TYPE);
+ outputParams.setValue("started");
+ List<ActivitySpecParameter> outputs = new ArrayList<>();
+ outputs.add(outputParams);
+ activitySpecToCreate.setOutputs(outputs);
+
+ activitySpecToCreate.setId("ID1");
+ activitySpecToCreate.setVersion(VERSION01);
+
+ Item item = new Item();
+ doReturn(item).when(itemManagerMock).create(anyObject());
+
+ ActivitySpecEntity activitySpec = activitySpecManager.createActivitySpec(activitySpecToCreate);
+
+ Assert.assertNotNull(activitySpec);
+ activitySpec.setId("ID1");
+ activitySpec.setStatus(VersionStatus.Draft.name());
+ assertActivitySpecEquals(activitySpec, activitySpecToCreate);
+ }
+
+
+ @Test
+ public void testList() {
+ ActivitySpecEntity activitySpec = new ActivitySpecEntity();
+ activitySpec.setName("stopServer");
+ doReturn(Arrays.asList(activitySpec)).when(itemManagerMock).list(anyObject());
+ final Collection<Item> activitySpecs = activitySpecManager.list("Certified");
+ Assert.assertEquals(activitySpecs.size(), 1);
+ }
+
+ @Test
+ public void testListInvalidFilter() {
+ final Collection<Item> activitySpecs = activitySpecManager.list("invalid_status");
+ Assert.assertEquals(activitySpecs.size(), 0);
+ }
+
+ @Test
+ public void testListNoFilter() {
+ final Collection<Item> activitySpecs = activitySpecManager.list(null);
+ Assert.assertEquals(activitySpecs.size(), 0);
+ }
+
+ @Test
+ public void testGet() {
+ input = new ActivitySpecEntity();
+ input.setId(ID);
+ input.setVersion(VERSION01);
+
+ doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
+ doReturn(input).when(activitySpecDaoMock).get(anyObject());
+ VERSION01.setStatus(VersionStatus.Draft);
+ doReturn(VERSION01).when(versionManagerMock).get(anyObject(), anyObject());
+ ActivitySpecEntity retrieved = activitySpecManager.get(input);
+ assertActivitySpecEquals(retrieved, input);
+ Assert.assertEquals(retrieved.getStatus(), VersionStatus.Draft.name());
+
+
+ input.setVersion(new Version(VERSION_ID_DEFAULT_VALUE));
+ retrieved = activitySpecManager.get(input);
+ assertActivitySpecEquals(retrieved, input);
+ Assert.assertEquals(retrieved.getStatus(), VersionStatus.Draft.name());
+ }
+
+ @Test
+ public void testGetActivitySpecDaoFail() {
+ input = new ActivitySpecEntity();
+ input.setId(ID);
+ input.setVersion(VERSION01);
+ doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
+ doReturn(input).when(activitySpecDaoMock).get(anyObject());
+ doThrow(new SdcRuntimeException(TEST_ERROR_MSG)).when(activitySpecDaoMock).get(anyObject());
+ try {
+ activitySpecManager.get(input);
+ Assert.fail();
+ } catch (ActivitySpecNotFoundException exception) {
+ Assert.assertEquals(exception.getMessage(), ACTIVITY_SPEC_NOT_FOUND);
+ }
+ }
+
+ @Test
+ public void testListVersionFail() {
+ input = new ActivitySpecEntity();
+ input.setId(ID);
+ input.setVersion(VERSION01);
+ input.getVersion().setId(VERSION_ID_DEFAULT_VALUE);
+ doThrow(new SdcRuntimeException(TEST_ERROR_MSG)).when(versionManagerMock).list(anyObject());
+ try {
+ activitySpecManager.get(input);
+ Assert.fail();
+ } catch (ActivitySpecNotFoundException exception) {
+ Assert.assertEquals(exception.getMessage(), ACTIVITY_SPEC_NOT_FOUND);
+ }
+ }
+
+ @Test
+ public void testInvalidDeprecate() {
+ try {
+ activitySpecManager.actOnAction(ID, VERSION01.getId(), ActivitySpecAction.DEPRECATE);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.getMessage(), INVALID_STATE);
+ }
+ }
+
+ @Test
+ public void testInvalidDelete() {
+ try {
+ activitySpecManager.actOnAction(ID, VERSION01.getId(), ActivitySpecAction.DELETE);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.getMessage(), INVALID_STATE);
+ }
+ }
+
+ @Test
+ public void testCertify() {
+ doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
+ doReturn(VERSION01).when(versionManagerMock).get(anyObject(), anyObject());
+ activitySpecManager.actOnAction(ID, VERSION01.getId(), ActivitySpecAction.CERTIFY);
+
+ verify(versionManagerMock).updateVersion(ID, VERSION01);
+ verify(itemManagerMock).updateVersionStatus(ID, VersionStatus.Certified, VersionStatus.Draft);
+ verify(versionManagerMock).publish(anyObject(), anyObject(), anyObject());
+ }
+
+ @Test
+ public void testInvalidCertify() {
+ try {
+ activitySpecManager.actOnAction(ID, VERSION01.getId(), ActivitySpecAction.CERTIFY);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.getMessage(), INVALID_STATE);
+ }
+ }
+
+ @Test
+ public void testGetVersionFailOnStatusChangeAction() {
+ doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
+ doThrow(new SdcRuntimeException(TEST_ERROR_MSG)).when(versionManagerMock).get(anyObject(), anyObject());
+ try {
+ activitySpecManager.actOnAction(ID, VERSION01.getId(), ActivitySpecAction.CERTIFY);
+ Assert.fail();
+ } catch (ActivitySpecNotFoundException exception) {
+ Assert.assertEquals(exception.getMessage(), ACTIVITY_SPEC_NOT_FOUND);
+ }
+ }
+
+ @Test
+ public void testDeprecate() {
+ VERSION01.setStatus(VersionStatus.Certified);
+ Version retrivedVersion = new Version("12");
+ retrivedVersion.setStatus(VersionStatus.Certified);
+ doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
+ doReturn(retrivedVersion).when(versionManagerMock).get(anyObject(), anyObject());
+ activitySpecManager.actOnAction(ID, VERSION_ID_DEFAULT_VALUE, ActivitySpecAction.DEPRECATE);
+
+ verify(versionManagerMock).updateVersion(ID, retrivedVersion);
+ verify(itemManagerMock).updateVersionStatus(ID, VersionStatus.Deprecated, VersionStatus.Certified);
+ verify(versionManagerMock).publish(anyObject(), anyObject(), anyObject());
+ }
+
+ @Test
+ public void testDelete() {
+ ActivitySpecEntity activitySpec = new ActivitySpecEntity();
+ VERSION01.setStatus(VersionStatus.Deprecated);
+ activitySpec.setName("stopServer");
+ activitySpec.setVersion(VERSION01);
+
+ Version retrivedVersion = new Version("12");
+ retrivedVersion.setStatus(VersionStatus.Deprecated);
+
+ doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
+ doReturn(retrivedVersion).when(versionManagerMock).get(anyObject(), anyObject());
+ doReturn(activitySpec).when(activitySpecDaoMock).get(anyObject());
+ activitySpecManager.actOnAction(ID, VERSION_ID_DEFAULT_VALUE, ActivitySpecAction.DELETE);
+
+ verify(versionManagerMock).updateVersion(ID, VERSION01);
+ verify(itemManagerMock).updateVersionStatus(ID, VersionStatus.Deleted, VersionStatus.Deprecated);
+ verify(versionManagerMock).publish(anyObject(), anyObject(), anyObject());
+ }
+
+ private void assertActivitySpecEquals(ActivitySpecEntity actual, ActivitySpecEntity expected) {
+ Assert.assertEquals(actual.getId(), expected.getId());
+ Assert.assertEquals(actual.getName(), expected.getName());
+ Assert.assertEquals(actual.getDescription(), expected.getDescription());
+ Assert.assertEquals(actual.getCategoryList(), expected.getCategoryList());
+ Assert.assertEquals(actual.getInputs(), expected.getInputs());
+ Assert.assertEquals(actual.getOutputs(), expected.getOutputs());
+ }
+
+}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/openecomp/activityspec/be/dao/impl/ActivitySpecZusammenDaoImplTest.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/openecomp/activityspec/be/dao/impl/ActivitySpecZusammenDaoImplTest.java
deleted file mode 100644
index b03f454..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/openecomp/activityspec/be/dao/impl/ActivitySpecZusammenDaoImplTest.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.be.dao.impl;
-
-import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
-import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflict;
-import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
-import com.amdocs.zusammen.adaptor.inbound.api.types.item.ItemVersionConflict;
-import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
-import com.amdocs.zusammen.commons.health.data.HealthInfo;
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.Action;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.datatypes.item.Info;
-import com.amdocs.zusammen.datatypes.item.Item;
-import com.amdocs.zusammen.datatypes.item.ItemVersion;
-import com.amdocs.zusammen.datatypes.item.ItemVersionData;
-import com.amdocs.zusammen.datatypes.item.ItemVersionStatus;
-import com.amdocs.zusammen.datatypes.item.Resolution;
-import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
-import com.amdocs.zusammen.datatypes.itemversion.Tag;
-import java.io.InputStream;
-import org.openecomp.activityspec.be.dao.impl.ActivitySpecDaoZusammenImpl.InfoPropertyName;
-import org.openecomp.activityspec.be.datatypes.ActivitySpecData;
-import org.openecomp.activityspec.be.datatypes.ActivitySpecParameter;
-import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.core.zusammen.api.ZusammenAdaptor;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.be.datatypes.ElementType;
-import org.openecomp.sdc.common.session.SessionContextProviderFactory;
-import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.types.ElementPropertyName;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-import static org.mockito.Mockito.verify;
-import static org.openecomp.core.zusammen.api.ZusammenUtil.createSessionContext;
-
-public class ActivitySpecZusammenDaoImplTest {
-
- private static final Version version = new Version();
- private static final String versionId = "1234";
- private static final String itemId = "5678";
- private static final String tenant = "dox";
-
- ZusammenAdaptorMock zusammenAdaptor;
- ActivitySpecDaoZusammenImpl daoImpl;
- ActivitySpecEntity entity;
-
-
- @BeforeMethod
- public void setUp(){
- SessionContextProviderFactory.getInstance().createInterface().create("test",
- tenant);
- zusammenAdaptor = new ZusammenAdaptorMock();
- daoImpl = new ActivitySpecDaoZusammenImpl(zusammenAdaptor);
- entity = new ActivitySpecEntity();
- entity = new ActivitySpecEntity();
-
- entity.setId(itemId);
- version.setId(versionId);
- entity.setVersion(version);
- entity.setName("activitySpec");
- List<String> categoryList = new ArrayList<String>();
- categoryList.add("category1");
- entity.setCategoryList(categoryList);
- ActivitySpecParameter inputParams = new ActivitySpecParameter("dbhost", "String");
- inputParams.setValue("localhost");
- List<ActivitySpecParameter> inputs = new ArrayList<>();
- inputs.add(inputParams);
- entity.setInputs(inputs);
- }
-
- @AfterMethod
- public void tearDown(){
- SessionContextProviderFactory.getInstance().createInterface().close();
- }
-
- @Test
- public void testCreate() {
- ItemVersion itemVersionmock = new ItemVersion();
- itemVersionmock.setId(new Id());
-
- daoImpl.create(entity);
- SessionContext context = createSessionContext();
- ElementContext elementContext =
- new ElementContext(entity.getId(), entity.getVersion().getId());
- Optional<ElementInfo> testElementInfo =
- zusammenAdaptor.getElementInfoByName(context, elementContext,Id.ZERO,
- ElementType.ACTIVITYSPEC.name() );
- Assert.assertTrue(testElementInfo.isPresent());
- Assert.assertEquals(testElementInfo.get().getInfo().getName(), ElementType.ACTIVITYSPEC.name());
- Assert.assertEquals(testElementInfo.get().getInfo().getProperty(
- ActivitySpecDaoZusammenImpl.InfoPropertyName.DESCRIPTION.getValue()),
- entity.getDescription());
- Assert.assertEquals(testElementInfo.get().getInfo().getProperty(
- InfoPropertyName.CATEGORY.getValue()),
- entity.getCategoryList());
- Assert.assertEquals(testElementInfo.get().getInfo().getProperty(
- ActivitySpecDaoZusammenImpl.InfoPropertyName.NAME.getValue()),
- entity.getName());
-
- final Optional<Element> testElement = zusammenAdaptor
- .getElement(context, elementContext, zusammenAdaptor.elementId);
- final InputStream data = testElement.get().getData();
- final ActivitySpecData activitySpecData = JsonUtil.json2Object(data, ActivitySpecData.class);
- Assert.assertEquals(activitySpecData.getInputs().get(0).getName(),
- entity.getInputs().get(0).getName());
- }
-
- @Test
- public void testGet () {
- SessionContext context = createSessionContext();
- ElementContext elementContext =
- new ElementContext(entity.getId(), entity.getVersion().getId());
- final ActivitySpecEntity retrieved = daoImpl.get(entity);
- Assert.assertEquals(retrieved.getName(), entity.getName());
- Assert.assertEquals(retrieved.getDescription(), entity.getDescription());
- Assert.assertEquals(retrieved.getCategoryList(), entity.getCategoryList());
- }
-
- @Test
- public void testUpdate () {
- SessionContext context = createSessionContext();
- ElementContext elementContext =
- new ElementContext(entity.getId(), entity.getVersion().getId());
- entity.setDescription("Update AS version1");
- daoImpl.update(entity);
- final ActivitySpecEntity retrieved = daoImpl.get(entity);
- Assert.assertEquals(retrieved.getName(), entity.getName());
- Assert.assertEquals(retrieved.getDescription(), entity.getDescription());
- Assert.assertEquals(retrieved.getCategoryList(), entity.getCategoryList());
- }
-
- private class ZusammenAdaptorMock implements ZusammenAdaptor {
-
- private ItemVersion itemVersion;
- private Map<String,Element> elementMap = new HashMap<>();
- String elementId;
-
- /* private void setItemVersion(ItemVersion itemVersion) {
- this.itemVersion = itemVersion;
- }
-
- private void addElementInfo(String key, ElementInfo elementInfo) {
- elementInfoMap.put(key, elementInfo);
- }
-
- private void addElement(Element element) {
- elements.add(element);
- }*/
-
- @Override
- public Optional<ItemVersion> getFirstVersion(SessionContext context, Id itemId) {
-
- return Optional.ofNullable(itemVersion);
- }
-
- @Override
- public Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId) {
- return null;
- }
-
- @Override
- public ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId) {
- return null;
- }
-
- @Override
- public Optional<Element> getElement(SessionContext context, ElementContext elementContext,
- String elementId) {
- return Optional.of(elementMap.get(elementId));
- }
-
- @Override
- public Optional<Element> getElementByName(SessionContext context,
- ElementContext elementContext,
- Id parentElementId, String elementName) {
- //return Optional.empty();
- ZusammenElement element = new ZusammenElement();
- Info info = new Info();
- element.setElementId(Id.ZERO);
- info.addProperty("name", entity.getName());
- info.addProperty("description", entity.getDescription());
- info.addProperty("category", entity.getCategoryList());
- element.setInfo(info);
- return Optional.ofNullable(element);
- }
-
- @Override
- public Collection<ElementInfo> listElements(SessionContext context,
- ElementContext elementContext,
- Id parentElementId) {
- return null;
- }
-
- @Override
- public Collection<Element> listElementData(SessionContext context,
- ElementContext elementContext,
- Id parentElementId) {
- return elementMap.values();
- }
-
- @Override
- public Collection<ElementInfo> listElementsByName(SessionContext context,
- ElementContext elementContext,
- Id parentElementId, String elementName) {
-
- return elementMap.values().stream().
- filter(element->elementName.equals(element.getInfo().getProperty
- (ElementPropertyName.elementType.name()))).map(element->{
- ElementInfo elementInfo = new ElementInfo();
- elementInfo.setId(element.getElementId());
- elementInfo.setInfo(element.getInfo());
- return elementInfo;
- }).collect(Collectors.toList());
-
- }
-
- @Override
- public Optional<ElementInfo> getElementInfoByName(SessionContext context,
- ElementContext elementContext,
- Id parentElementId, String elementName) {
-
-
- return elementMap.values().stream().
- filter(element -> elementName.equals(element.getInfo().getProperty
- (ElementPropertyName.elementType.name()))).map(element -> {
- ElementInfo elementInfo = new ElementInfo();
- elementInfo.setId(element.getElementId());
- elementInfo.setInfo(element.getInfo());
- return elementInfo;
- }).findAny();
-
-
-
- }
-
- @Override
- public Element saveElement(SessionContext context, ElementContext elementContext,
- ZusammenElement element, String message) {
- if(element.getAction().equals(Action.CREATE) ||
- element.getAction().equals(Action.UPDATE)){
- element.setElementId(new Id(UUID.randomUUID().toString()));
- }
- elementMap.put(element.getElementId().getValue(),element);
- elementId = element.getElementId().getValue();
- return element;
- }
-
- @Override
- public void resolveElementConflict(SessionContext context, ElementContext elementContext,
- ZusammenElement element, Resolution resolution) {
-
- }
-
- @Override
- public Collection<HealthInfo> checkHealth(SessionContext context) {
- return null;
- }
-
- @Override
- public Id createItem(SessionContext context, Info info) {
- return null;
- }
-
- @Override
- public void updateItem(SessionContext context, Id itemId, Info info) {
-
- }
-
- @Override
- public Id createVersion(SessionContext context, Id itemId, Id baseVersionId,
- ItemVersionData itemVersionData) {
- return null;
- }
-
- @Override
- public void updateVersion(SessionContext context, Id itemId, Id versionId,
- ItemVersionData itemVersionData) {
-
- }
-
- @Override
- public ItemVersion getVersion(SessionContext context, Id itemId, Id versionId) {
- return null;
- }
-
- @Override
- public ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId) {
- return null;
- }
-
- @Override
- public ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId) {
- return null;
- }
-
- @Override
- public void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag) {
-
- }
-
- @Override
- public void resetVersionHistory(SessionContext context, Id itemId, Id versionId,
- String changeRef) {
-
- }
-
-
- @Override
- public void publishVersion(SessionContext context, Id itemId, Id versionId, String message) {
-
- }
-
- @Override
- public void syncVersion(SessionContext sessionContext, Id itemId, Id versionId) {
-
- }
-
- @Override
- public void forceSyncVersion(SessionContext context, Id itemId, Id versionId) {
-
- }
-
- @Override
- public Optional<ElementInfo> getElementInfo(SessionContext context,
- ElementContext elementContext,
- Id elementId) {
- return Optional.empty();
- }
-
- @Override
- public String getVersion(SessionContext sessionContext) {
- return null;
- }
-
- @Override
- public void revert(SessionContext sessionContext, Id itemId, Id versionId,
- Id revisionId) {
-
- }
-
- @Override
- public ItemVersionRevisions listRevisions(SessionContext sessionContext, Id itemId,
- Id versionId) {
- return null;
- }
-
- @Override
- public Optional<ElementConflict> getElementConflict(SessionContext context,
- ElementContext elementContext,
- Id id) {
- return Optional.empty();
- }
-
- @Override
- public Collection<Item> listItems(SessionContext context) {
- return null;
- }
-
- @Override
- public Item getItem(SessionContext context, Id itemId) {
- return null;
- }
-
- @Override
- public void deleteItem(SessionContext context, Id itemId) {
-
- }
-
- }
-
-}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/openecomp/activityspec/be/impl/ActivitySpecManagerImplTest.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/openecomp/activityspec/be/impl/ActivitySpecManagerImplTest.java
deleted file mode 100644
index e930dd9..0000000
--- a/services/activity-spec/activity-spec-web/activity-spec-service/src/test/java/org/openecomp/activityspec/be/impl/ActivitySpecManagerImplTest.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.openecomp.activityspec.be.impl;
-
-import java.util.Arrays;
-import java.util.Collection;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecAction;
-import org.openecomp.activityspec.be.dao.ActivitySpecDao;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
-import org.openecomp.activityspec.be.datatypes.ActivitySpecParameter;
-import org.openecomp.activityspec.errors.ActivitySpecNotFoundException;
-import org.openecomp.core.dao.UniqueValueDao;
-import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.common.errors.SdcRuntimeException;
-import org.openecomp.sdc.common.session.SessionContextProviderFactory;
-import org.openecomp.sdc.versioning.ItemManager;
-import org.openecomp.sdc.versioning.VersioningManager;
-import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.dao.types.VersionStatus;
-import org.openecomp.sdc.versioning.types.Item;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.verify;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.ACTIVITY_SPEC_NOT_FOUND;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.INVALID_STATE;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.VERSION_ID_DEFAULT_VALUE;
-
-public class ActivitySpecManagerImplTest {
-
- private static final String STRING_TYPE = "String";
- private static final String TEST_ERROR_MSG = "Test Error";
- private ActivitySpecEntity input;
- private static final Version VERSION01 = new Version("12345");
- private static final String ID = "ID1";
-
- @Spy
- @InjectMocks
- private ActivitySpecManagerImpl activitySpecManager;
-
- @Mock
- private ItemManager itemManagerMock;
-
- @Mock
- private VersioningManager versionManagerMock;
-
- @Mock
- private ActivitySpecDao activitySpecDaoMock;
-
- //This is used to mock UniqueValueUtil. This should not be removed.
- @Mock
- private UniqueValueDao uniqueValueDaoMock;
-
- @BeforeMethod
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- }
-
- @AfterMethod
- public void tearDown() {
- activitySpecManager = null;
- }
-
- @Test
- public void testCreate() {
-
- SessionContextProviderFactory.getInstance().createInterface().create("testUser", "testTenant");
-
- ActivitySpecEntity activitySpecToCreate = new ActivitySpecEntity();
- activitySpecToCreate.setName("startserver");
- activitySpecToCreate.setDescription("start the server");
- activitySpecToCreate.setVersion(VERSION01);
-
- List<String> categoryList = new ArrayList<>();
- categoryList.add("category1");
- categoryList.add("category2");
- activitySpecToCreate.setCategoryList(categoryList);
-
- ActivitySpecParameter inputParams = new ActivitySpecParameter("dbhost", STRING_TYPE);
- inputParams.setValue("localhost");
- ActivitySpecParameter inputParams1 = new ActivitySpecParameter("dbname", STRING_TYPE);
- inputParams.setValue("prod");
- List<ActivitySpecParameter> inputs = new ArrayList<>();
- inputs.add(inputParams);
- inputs.add(inputParams1);
- activitySpecToCreate.setInputs(inputs);
-
- ActivitySpecParameter outputParams = new ActivitySpecParameter("status", STRING_TYPE);
- outputParams.setValue("started");
- List<ActivitySpecParameter> outputs = new ArrayList<>();
- outputs.add(outputParams);
- activitySpecToCreate.setOutputs(outputs);
-
- activitySpecToCreate.setId("ID1");
- activitySpecToCreate.setVersion(VERSION01);
-
- Item item = new Item();
- doReturn(item).when(itemManagerMock).create(anyObject());
-
- ActivitySpecEntity activitySpec = activitySpecManager.createActivitySpec
- (activitySpecToCreate);
-
- Assert.assertNotNull(activitySpec);
- activitySpec.setId("ID1");
- activitySpec.setStatus(VersionStatus.Draft.name());
- assertActivitySpecEquals(activitySpec, activitySpecToCreate);
- }
-
-
-
- @Test
- public void testList () {
- ActivitySpecEntity activitySpec = new ActivitySpecEntity();
- activitySpec.setName("stopServer");
- doReturn(Arrays.asList(
- activitySpec))
- .when(itemManagerMock).list(anyObject());
- final Collection<Item> activitySpecs = activitySpecManager.list("Certified");
- Assert.assertEquals(activitySpecs.size(), 1);
- }
-
- @Test
- public void testListInvalidFilter () {
- final Collection<Item> activitySpecs = activitySpecManager.list("invalid_status");
- Assert.assertEquals(activitySpecs.size(), 0);
- }
-
- @Test
- public void testListNoFilter () {
- final Collection<Item> activitySpecs = activitySpecManager.list(null);
- Assert.assertEquals(activitySpecs.size(), 0);
- }
-
- @Test
- public void testGet () {
- input = new ActivitySpecEntity();
- input.setId(ID);
- input.setVersion(VERSION01);
-
- doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
- doReturn(input).when(activitySpecDaoMock).get(anyObject());
- VERSION01.setStatus(VersionStatus.Draft);
- doReturn(VERSION01).when(versionManagerMock).get(anyObject(), anyObject());
- ActivitySpecEntity retrieved = activitySpecManager.get(input);
- assertActivitySpecEquals(retrieved, input);
- Assert.assertEquals(retrieved.getStatus(), VersionStatus.Draft.name());
-
-
- input.setVersion(new Version(VERSION_ID_DEFAULT_VALUE));
- retrieved = activitySpecManager.get(input);
- assertActivitySpecEquals(retrieved, input);
- Assert.assertEquals(retrieved.getStatus(), VersionStatus.Draft.name());
- }
-
- @Test
- public void testGetActivitySpecDaoFail () {
- input = new ActivitySpecEntity();
- input.setId(ID);
- input.setVersion(VERSION01);
- doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
- doReturn(input).when(activitySpecDaoMock).get(anyObject());
- doThrow(new SdcRuntimeException(TEST_ERROR_MSG)).when(activitySpecDaoMock).get(anyObject());
- try {
- activitySpecManager.get(input);
- Assert.fail();
- } catch (ActivitySpecNotFoundException exception) {
- Assert.assertEquals(exception.getMessage(), ACTIVITY_SPEC_NOT_FOUND);
- }
- }
-
- @Test
- public void testListVersionFail () {
- input = new ActivitySpecEntity();
- input.setId(ID);
- input.setVersion(VERSION01);
- input.getVersion().setId(VERSION_ID_DEFAULT_VALUE);
- doThrow(new SdcRuntimeException(TEST_ERROR_MSG)).when(versionManagerMock).list(anyObject());
- try {
- activitySpecManager.get(input);
- Assert.fail();
- } catch (ActivitySpecNotFoundException exception) {
- Assert.assertEquals(exception.getMessage(), ACTIVITY_SPEC_NOT_FOUND);
- }
- }
-
- @Test
- public void testInvalidDeprecate () {
- try {
- activitySpecManager.actOnAction(ID,
- VERSION01.getId(), ActivitySpecAction.DEPRECATE);
- }
- catch (CoreException exception) {
- Assert.assertEquals(exception.getMessage(), INVALID_STATE);
- }
- }
-
- @Test
- public void testInvalidDelete () {
- try {
- activitySpecManager.actOnAction(ID,
- VERSION01.getId(), ActivitySpecAction.DELETE);
- }
- catch (CoreException exception) {
- Assert.assertEquals(exception.getMessage(), INVALID_STATE);
- }
- }
-
- @Test
- public void testCertify () {
- doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
- doReturn(VERSION01).when(versionManagerMock).get(anyObject(), anyObject());
- activitySpecManager.actOnAction(ID,
- VERSION01.getId(), ActivitySpecAction.CERTIFY);
-
- verify(versionManagerMock).updateVersion(ID, VERSION01);
- verify(itemManagerMock).updateVersionStatus(ID, VersionStatus.Certified,
- VersionStatus.Draft);
- verify(versionManagerMock).publish(anyObject(), anyObject(), anyObject());
- }
-
- @Test
- public void testInvalidCertify () {
- try {
- activitySpecManager.actOnAction(ID,
- VERSION01.getId(), ActivitySpecAction.CERTIFY);
- }
- catch (CoreException exception) {
- Assert.assertEquals(exception.getMessage(), INVALID_STATE);
- }
- }
-
- @Test
- public void testGetVersionFailOnStatusChangeAction () {
- doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
- doThrow(new SdcRuntimeException(TEST_ERROR_MSG)).when(versionManagerMock).get(anyObject(), anyObject());
- try {
- activitySpecManager.actOnAction(ID,
- VERSION01.getId(), ActivitySpecAction.CERTIFY);
- Assert.fail();
- } catch (ActivitySpecNotFoundException exception) {
- Assert.assertEquals(exception.getMessage(), ACTIVITY_SPEC_NOT_FOUND);
- }
- }
-
- @Test
- public void testDeprecate () {
- VERSION01.setStatus(VersionStatus.Certified);
- Version retrivedVersion = new Version("12");
- retrivedVersion.setStatus(VersionStatus.Certified);
- doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
- doReturn(retrivedVersion).when(versionManagerMock).get(anyObject(), anyObject());
- activitySpecManager.actOnAction(ID,
- VERSION_ID_DEFAULT_VALUE, ActivitySpecAction.DEPRECATE);
-
- verify(versionManagerMock).updateVersion(ID, retrivedVersion);
- verify(itemManagerMock).updateVersionStatus(ID, VersionStatus.Deprecated,
- VersionStatus.Certified);
- verify(versionManagerMock).publish(anyObject(), anyObject(), anyObject());
- }
-
- @Test
- public void testDelete () {
- ActivitySpecEntity activitySpec = new ActivitySpecEntity();
- VERSION01.setStatus(VersionStatus.Deprecated);
- activitySpec.setName("stopServer");
- activitySpec.setVersion(VERSION01);
-
- Version retrivedVersion = new Version("12");
- retrivedVersion.setStatus(VersionStatus.Deprecated);
-
- doReturn(Arrays.asList(VERSION01)).when(versionManagerMock).list(anyObject());
- doReturn(retrivedVersion).when(versionManagerMock).get(anyObject(), anyObject());
- doReturn(activitySpec).when(activitySpecDaoMock).get(anyObject());
- activitySpecManager.actOnAction(ID,
- VERSION_ID_DEFAULT_VALUE, ActivitySpecAction.DELETE);
-
- verify(versionManagerMock).updateVersion(ID, VERSION01);
- verify(itemManagerMock).updateVersionStatus(ID, VersionStatus.Deleted,
- VersionStatus.Deprecated);
- verify(versionManagerMock).publish(anyObject(), anyObject(), anyObject());
- }
-
- private void assertActivitySpecEquals(ActivitySpecEntity actual, ActivitySpecEntity expected) {
- Assert.assertEquals(actual.getId(), expected.getId());
- Assert.assertEquals(actual.getName(), expected.getName());
- Assert.assertEquals(actual.getDescription(), expected.getDescription());
- Assert.assertEquals(actual.getCategoryList(), expected.getCategoryList());
- Assert.assertEquals(actual.getInputs(), expected.getInputs());
- Assert.assertEquals(actual.getOutputs(), expected.getOutputs());
- }
-
-}