2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.asdctool.impl.migration.v1707;
24 import java.util.List;
26 import org.openecomp.sdc.asdctool.impl.migration.Migration1707Task;
27 import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.*;
28 import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.relations.FulfilledCapabilitiesMigrationService;
29 import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.relations.FulfilledRequirementsMigrationService;
30 import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.relations.RequirementsCapabilitiesMigrationService;
31 import org.openecomp.sdc.be.dao.TitanClientStrategy;
32 import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
33 import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
34 import org.openecomp.sdc.be.dao.titan.TitanGraphClient;
35 import org.openecomp.sdc.be.model.DerivedNodeTypeResolver;
36 import org.openecomp.sdc.be.model.Resource;
37 import org.openecomp.sdc.be.model.Service;
38 import org.openecomp.sdc.be.model.jsontitan.operations.ArtifactsOperations;
39 import org.openecomp.sdc.be.model.jsontitan.operations.CategoryOperation;
40 import org.openecomp.sdc.be.model.jsontitan.operations.NodeTemplateOperation;
41 import org.openecomp.sdc.be.model.jsontitan.operations.NodeTypeOperation;
42 import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation;
43 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaDataOperation;
44 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation;
45 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
46 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
47 import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation;
48 import org.openecomp.sdc.be.model.operations.api.ToscaDefinitionPathCalculator;
49 import org.openecomp.sdc.be.model.operations.impl.ConsumerOperation;
50 import org.openecomp.sdc.be.model.operations.impl.ElementOperation;
51 import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation;
52 import org.openecomp.sdc.be.model.operations.impl.PropertyOperation;
53 import org.openecomp.sdc.be.model.operations.impl.ToscaDefinitionPathCalculatorImpl;
54 import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation;
55 import org.springframework.beans.factory.annotation.Qualifier;
56 import org.springframework.context.annotation.Bean;
57 import org.springframework.context.annotation.Configuration;
58 import org.springframework.context.annotation.Primary;
59 import org.springframework.core.annotation.Order;
62 public class Migration1707Config {
65 @Bean(name = "migration1707")
66 public Migration1707 migration1707(List<Migration1707Task> migrations) {
67 return new Migration1707(migrations);
70 @Bean(name = "renameGraphPropertyKeysMigration")
72 public Migration1707Task renameGraphPropertyKeysMigration() {
73 return new RenameGraphPropertyKeys();
76 @Bean(name = "toscaNamesUpdate")
78 public Migration1707Task toscaNamesUpdate() {
79 return new ToscaNamesUpdate();
82 @Bean(name = "users-migration")
84 public Migration1707Task usersMigration() {
85 return new UsersMigration();
88 @Bean(name = "resource-category-migration")
90 public Migration1707Task resourceCategoriesMigration() {
91 return new ResourcesCategoriesMigration();
94 @Bean(name = "service-category-migration")
96 public Migration1707Task serviceCategoriesMigration() {
97 return new ServiceCategoriesMigration();
100 @Bean(name = "normatives-migration")
102 public Migration1707Task normativesMigration() {
103 return new NormativesMigration();
106 @Bean(name = "vf-migration")
108 public Migration1707Task vfMigration() {
109 return new VFResourcesMigration();
112 @Bean(name = "service-migration")
114 public Migration1707Task serviceMigration() {
115 return new ServicesMigration();
118 @Bean(name = "consumers-migration")
120 public Migration1707Task consumersMigration() { return new ConsumersMigration(); }
122 @Bean(name = "tosca-template-regeneration")
124 public Migration1707Task ToscaTemplateRegeneration() {
125 return new ToscaTemplateRegeneration();
128 @Bean(name = "distributionStatusUpdate")
129 public DistributionStatusUpdate distributionStatusUpdate() {
130 return new DistributionStatusUpdate();
133 @Bean("resource-version-migration")
134 public VersionMigration<Resource> resourceVersionMigration() {
135 return new ResourceVersionMigration();
138 @Bean("service-version-migration")
139 public VersionMigration<Service> serviceVersionMigration() {
140 return new ServiceVersionMigration();
143 @Bean(name = "normatives-resolver")
144 public NormativesResolver normativesResolver() {
145 return new NormativesResolver();
148 @Bean(name = "property-operation-mig")
149 public PropertyOperation propertyOperation(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
150 return new PropertyOperation(titanGenericDao);
153 @Bean(name = "group-type-operation-mig")
154 public GroupTypeOperation groupTypeOperation(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao, @Qualifier("property-operation-mig") PropertyOperation propertyOperation) {
155 return new GroupTypeOperation(titanGenericDao, propertyOperation);
158 @Bean(name = "titan-generic-dao-migration")
159 public TitanGenericDao titanGenericDaoMigration(@Qualifier("migration-titan-client") TitanGraphClient titanGraphClient) {
160 return new TitanGenericDao(titanGraphClient);
163 @Bean(name = "migration-titan-strategy")
164 public TitanClientStrategy migrationStrategy() {
165 return new MigrationTitanStrategy();
168 @Bean(name = "migration-titan-client", initMethod = "createGraph")
169 public TitanGraphClient titanMigrationClient(@Qualifier("migration-titan-strategy") TitanClientStrategy titanClientStrategy) {
170 return new TitanGraphClient(titanClientStrategy);
173 @Bean(name = "user-operation-migration")
174 public IUserAdminOperation userOperationNewKeySpace(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
175 return new UserAdminOperation(titanGenericDao);
178 @Bean(name = "element-operation-migration")
179 public IElementOperation elementOperationNewKeyspace(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
180 return new ElementOperation(titanGenericDao);
183 @Bean(name = "tosca-operation-facade")
184 public ToscaOperationFacade toscaOperationFacade() {
185 return new ToscaOperationFacade();
188 @Bean(name = "node-type-operation")
189 public NodeTypeOperation nodeTypeOperation(@Qualifier("mig-derived-resolver") DerivedNodeTypeResolver migrationDerivedNodeTypeResolver) {
190 return new NodeTypeOperation(migrationDerivedNodeTypeResolver);
193 @Bean(name = "topology-template-operation")
194 public TopologyTemplateOperation topologyTemplateOperation() {
195 return new TopologyTemplateOperation();
198 @Bean(name = "node-template-operation")
199 public NodeTemplateOperation nodeTemplateOperation() {
200 return new NodeTemplateOperation();
203 @Bean(name = "titan-dao")
204 public TitanDao titanDao(@Qualifier("migration-titan-client") TitanGraphClient titanGraphClient) {
205 return new TitanDao(titanGraphClient);
208 @Bean(name = "category-operation")
209 public CategoryOperation categoryOperation() {
210 return new CategoryOperation();
213 @Bean(name = "artifacts-operation")
214 public ArtifactsOperations artifactsOperation() {
215 return new ArtifactsOperations();
218 @Bean(name = "tosca-data-operation")
219 public ToscaDataOperation toscaDataOperation() {
220 return new ToscaDataOperation();
223 @Bean(name = "tosca-element-lifecycle-operation")
224 public ToscaElementLifecycleOperation toscaElementLifecycleOperation() {
225 return new ToscaElementLifecycleOperation();
228 @Bean(name = "tosca-path-calculator")
229 public ToscaDefinitionPathCalculator pathCalculator() {
230 return new ToscaDefinitionPathCalculatorImpl();
233 @Bean(name = "fulfilled-capabilities-mig-service")
234 public FulfilledCapabilitiesMigrationService fulfilledCapabilitiesMigService() {
235 return new FulfilledCapabilitiesMigrationService();
238 @Bean(name = "fulfilled-requirements-mig-service")
239 public FulfilledRequirementsMigrationService requirementsMigService() {
240 return new FulfilledRequirementsMigrationService();
243 @Bean(name ="req-cap-mig-service")
244 public RequirementsCapabilitiesMigrationService reqCapMigService() {
245 return new RequirementsCapabilitiesMigrationService();
248 @Bean(name = "mig-derived-resolver")
249 public DerivedNodeTypeResolver migrationDerivedNodeTypeResolver() {
250 return new MigrationByIdDerivedNodeTypeResolver();
253 @Bean(name = "invariant-uuid-resolver")
254 public InvariantUUIDResolver invariantUUIDResolver() {
255 return new InvariantUUIDResolver();
258 @Bean(name="consumer-operation-mig")
260 public ConsumerOperation consumerOperation(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
261 return new ConsumerOperation(titanGenericDao);
264 @Bean(name = "vfModulesPropertiesAdding")
265 public VfModulesPropertiesAdding vfModulesPropertiesAdding() {
266 return new VfModulesPropertiesAdding();
269 @Bean(name = "node-template-missing-data-resolver")
270 public NodeTemplateMissingDataResolver nodeTemplateMissingDataResolver() {
271 return new NodeTemplateMissingDataResolver<>();
274 @Bean(name = "migration1707MissingInfoFix")
275 public Migration1707MissingInfoFix migration1707MissingInfoFix() {
276 return new Migration1707MissingInfoFix();