aboutsummaryrefslogtreecommitdiffstats
path: root/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'services/activity-spec/activity-spec-web/activity-spec-service/src/main/java')
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/ActivitySpecs.java77
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivityParameterToDto.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivityParameterToDto.java)22
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java54
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java)21
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java52
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapDtoToActivityParameter.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapDtoToActivityParameter.java)22
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/mapping/MapItemToListResponseDto.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapItemToListResponseDto.java)30
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/services/ActivitySpecsImpl.java114
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecAction.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecAction.java)6
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecActionRequestDto.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecActionRequestDto.java)5
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecCreateResponse.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecCreateResponse.java)7
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecGetResponse.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecGetResponse.java)21
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecListResponseDto.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecListResponseDto.java)13
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecParameterDto.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecParameterDto.java)9
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/ActivitySpecRequestDto.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/ActivitySpecRequestDto.java)24
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/rest/types/InternalEmptyObject.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/types/InternalEmptyObject.java)6
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java82
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java)29
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/ActivitySpecManager.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/ActivitySpecManager.java)20
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/ActivitySpecDao.java28
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java148
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/types/ActivitySpecEntity.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/types/ActivitySpecEntity.java)31
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecData.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecData.java)11
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ActivitySpecParameter.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ActivitySpecParameter.java)25
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ElementType.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ElementType.java)4
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/datatypes/ItemType.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/datatypes/ItemType.java)4
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/impl/ActivitySpecManagerImpl.java265
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecErrorResponse.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecErrorResponse.java)19
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecNotFoundException.java (renamed from services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/ActivitySpecNotFoundException.java)8
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/DefaultExceptionMapper.java96
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/utils/ActivitySpecConstant.java32
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/ActivitySpecs.java84
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecRequestDtoToActivitySpecEntity.java53
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecGetResponse.java51
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/rest/services/ActivitySpecsImpl.java117
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java83
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/ActivitySpecDao.java27
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/dao/impl/ActivitySpecDaoZusammenImpl.java155
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/be/impl/ActivitySpecManagerImpl.java291
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/errors/DefaultExceptionMapper.java99
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/utils/ActivitySpecConstant.java32
41 files changed, 1120 insertions, 1157 deletions
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 0000000000..06b85246af
--- /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
index bd644ff4d6..acf3ef4727 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 0000000000..aedb4edb5a
--- /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/openecomp/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
index 13c881404f..0568ef1192 100644
--- 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/onap/sdc/activityspec/api/rest/mapping/MapActivitySpecToActivitySpecCreateResponse.java
@@ -14,19 +14,20 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.mapping;
+package org.onap.sdc.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.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> {
+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);
- }
+ @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 0000000000..fb4fb18d38
--- /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/openecomp/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
index ccffaead76..051cbbd92d 100644
--- 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/onap/sdc/activityspec/api/rest/mapping/MapDtoToActivityParameter.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.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());
- }
+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/onap/sdc/activityspec/api/rest/mapping/MapItemToListResponseDto.java
index c85d5af427..2671c9771e 100644
--- 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/onap/sdc/activityspec/api/rest/mapping/MapItemToListResponseDto.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.mapping;
+package org.onap.sdc.activityspec.api.rest.mapping;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecListResponseDto;
+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;
@@ -26,20 +26,20 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
-import static org.openecomp.activityspec.utils.ActivitySpecConstant.CATEGORY_ATTRIBUTE_NAME;
+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);
+
+ @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 0000000000..e0eec80fcb
--- /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
index bedcfcb2da..c3e6904f82 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
index c9012120f1..a420e1f0fd 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
index 9a654f780c..d21dab19ee 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
index 9453935559..04cdc4efc4 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
index 782143f620..4c6128fab5 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
index 76e8262984..69a66cec32 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/openecomp/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
index 08b07b8031..86148ac315 100644
--- 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/onap/sdc/activityspec/api/rest/types/ActivitySpecRequestDto.java
@@ -1,11 +1,11 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * 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
+ * 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,
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.rest.types;
+package org.onap.sdc.activityspec.api.rest.types;
import io.swagger.annotations.ApiModel;
import org.hibernate.validator.constraints.NotBlank;
@@ -26,14 +26,14 @@ import java.util.List;
@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;
+ @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;
+ 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
index 2faf7bcafa..9d9538ebf4 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 0000000000..9269eacbfd
--- /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/openecomp/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
index 8ddb7f3493..cb1cc65d2c 100644
--- 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/onap/sdc/activityspec/api/server/listeners/ActivitySpecAppStartupListener.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.api.server.listeners;
+package org.onap.sdc.activityspec.api.server.listeners;
import org.openecomp.sdc.common.session.SessionContextProviderFactory;
import org.springframework.web.context.ContextLoaderListener;
@@ -22,23 +22,22 @@ 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;
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.TENANT;
+import static org.onap.sdc.activityspec.utils.ActivitySpecConstant.USER;
public class ActivitySpecAppStartupListener implements ServletContextListener {
- ContextLoaderListener springListener;
+ 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 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());
- }
+ @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/onap/sdc/activityspec/be/ActivitySpecManager.java
index 4fa41d029a..6c1a4d0526 100644
--- 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/onap/sdc/activityspec/be/ActivitySpecManager.java
@@ -1,11 +1,11 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * 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
+ * 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,
@@ -14,23 +14,23 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.be;
+package org.onap.sdc.activityspec.be;
import java.util.Collection;
-import org.openecomp.activityspec.api.rest.types.ActivitySpecAction;
-import org.openecomp.activityspec.be.dao.types.ActivitySpecEntity;
+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 createActivitySpec(ActivitySpecEntity activitySpecEntity);
- ActivitySpecEntity get(ActivitySpecEntity activitySpec);
+ ActivitySpecEntity get(ActivitySpecEntity activitySpec);
- void update(ActivitySpecEntity activitySpec);
+ void update(ActivitySpecEntity activitySpec);
- void actOnAction(String activitySpecId, String versionId, ActivitySpecAction action);
+ void actOnAction(String activitySpecId, String versionId, ActivitySpecAction action);
- Collection<Item> list(String versionStatus);
+ Collection<Item> list(String versionStatus);
}
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/ActivitySpecDao.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/ActivitySpecDao.java
new file mode 100644
index 0000000000..c71f296f1a
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/be/dao/ActivitySpecDao.java
@@ -0,0 +1,28 @@
+/*
+ * 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;
+
+import org.onap.sdc.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/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 0000000000..9da4cd4835
--- /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/openecomp/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
index 2f261f8fa9..7dc66123f9 100644
--- 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/onap/sdc/activityspec/be/dao/types/ActivitySpecEntity.java
@@ -1,11 +1,11 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * 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
+ * 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,
@@ -14,26 +14,27 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.be.dao.types;
+package org.onap.sdc.activityspec.be.dao.types;
-import org.openecomp.activityspec.be.datatypes.ActivitySpecParameter;
+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;
+ private String id;
+ private Version version;
+ private String name;
+ private String description;
- //Not to be maintained in activityspec element
- private String status;
+ 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
index ad70376aa2..2c76ed86d3 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
index b9153fa5d9..72273dd649 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
index be7e61ca8c..d063530145 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
index 5091412d08..f9d8fa33f3 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 0000000000..6853b855d2
--- /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/errors/ActivitySpecErrorResponse.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/onap/sdc/activityspec/errors/ActivitySpecErrorResponse.java
index 18ae886d87..8d9117daa6 100644
--- 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/onap/sdc/activityspec/errors/ActivitySpecErrorResponse.java
@@ -5,7 +5,7 @@
* 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
+ * 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,
@@ -14,17 +14,18 @@
* limitations under the License.
*/
-package org.openecomp.activityspec.errors;
+package org.onap.sdc.activityspec.errors;
@lombok.Data
public class ActivitySpecErrorResponse {
- private String message;
- public ActivitySpecErrorResponse() {
- //default constructor
- }
+ private String message;
- public ActivitySpecErrorResponse(String message) {
- this.message = 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
index 8c775f935c..415aa68093 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 0000000000..d09d1740eb
--- /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 0000000000..a0da1c977f
--- /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 ae9e1583fd..0000000000
--- 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 2364d59629..0000000000
--- 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/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 697e1bd667..0000000000
--- 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/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 db2db40f6e..0000000000
--- 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/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 715d0961e6..0000000000
--- 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/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 375adac876..0000000000
--- 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 0dabcca984..0000000000
--- 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/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 44383734e8..0000000000
--- 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/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 950988a4b1..0000000000
--- 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 f63810d884..0000000000
--- 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.
- }
-}