[SDC] rebase 1710 code
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / impl / migration / v1707 / Migration1707Config.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.asdctool.impl.migration.v1707;
22
23
24 import java.util.List;
25
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;
60
61 @Configuration
62 public class Migration1707Config {
63
64
65     @Bean(name = "migration1707")
66     public Migration1707 migration1707(List<Migration1707Task> migrations) {
67         return new Migration1707(migrations);
68     }
69
70     @Bean(name = "renameGraphPropertyKeysMigration")
71     @Order(1)
72     public Migration1707Task renameGraphPropertyKeysMigration() {
73         return new RenameGraphPropertyKeys();
74     }
75
76     @Bean(name = "toscaNamesUpdate")
77     @Order(2)
78     public Migration1707Task toscaNamesUpdate() {
79         return new ToscaNamesUpdate();
80     }
81
82     @Bean(name = "users-migration")
83     @Order(3)
84     public Migration1707Task usersMigration() {
85         return new UsersMigration();
86     }
87
88     @Bean(name = "resource-category-migration")
89     @Order(4)
90     public Migration1707Task resourceCategoriesMigration() {
91         return new ResourcesCategoriesMigration();
92     }
93
94     @Bean(name = "service-category-migration")
95     @Order(5)
96     public Migration1707Task serviceCategoriesMigration() {
97         return new ServiceCategoriesMigration();
98     }
99
100     @Bean(name = "normatives-migration")
101     @Order(6)
102     public Migration1707Task normativesMigration() {
103         return new NormativesMigration();
104     }
105
106     @Bean(name = "vf-migration")
107     @Order(7)
108     public Migration1707Task vfMigration() {
109         return new VFResourcesMigration();
110     }
111
112     @Bean(name = "service-migration")
113     @Order(8)
114     public Migration1707Task serviceMigration() {
115         return new ServicesMigration();
116     }
117
118     @Bean(name = "consumers-migration")
119     @Order(9)
120     public Migration1707Task consumersMigration() { return new ConsumersMigration(); }
121
122     @Bean(name = "tosca-template-regeneration")
123     @Order(10)
124     public Migration1707Task ToscaTemplateRegeneration() {
125         return new ToscaTemplateRegeneration();
126     }
127
128     @Bean(name = "distributionStatusUpdate")
129     public DistributionStatusUpdate distributionStatusUpdate() {
130         return new DistributionStatusUpdate();
131     }
132
133     @Bean("resource-version-migration")
134     public VersionMigration<Resource> resourceVersionMigration() {
135         return new ResourceVersionMigration();
136     }
137
138     @Bean("service-version-migration")
139     public VersionMigration<Service> serviceVersionMigration() {
140         return new ServiceVersionMigration();
141     }
142
143     @Bean(name = "normatives-resolver")
144     public NormativesResolver normativesResolver() {
145         return new NormativesResolver();
146     }
147     
148         @Bean(name = "property-operation-mig")
149         public PropertyOperation propertyOperation(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
150                 return new PropertyOperation(titanGenericDao);
151         } 
152         
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);
156     }
157
158     @Bean(name = "titan-generic-dao-migration")
159     public TitanGenericDao titanGenericDaoMigration(@Qualifier("migration-titan-client") TitanGraphClient titanGraphClient) {
160         return new TitanGenericDao(titanGraphClient);
161     }
162
163     @Bean(name = "migration-titan-strategy")
164     public TitanClientStrategy migrationStrategy() {
165         return new MigrationTitanStrategy();
166     }
167
168     @Bean(name = "migration-titan-client", initMethod = "createGraph")
169     public TitanGraphClient titanMigrationClient(@Qualifier("migration-titan-strategy") TitanClientStrategy titanClientStrategy) {
170         return new TitanGraphClient(titanClientStrategy);
171     }
172
173     @Bean(name = "user-operation-migration")
174     public IUserAdminOperation userOperationNewKeySpace(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
175         return new UserAdminOperation(titanGenericDao);
176     }
177
178     @Bean(name = "element-operation-migration")
179     public IElementOperation elementOperationNewKeyspace(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
180         return new ElementOperation(titanGenericDao);
181     }
182
183     @Bean(name = "tosca-operation-facade")
184     public ToscaOperationFacade toscaOperationFacade() {
185         return new ToscaOperationFacade();
186     }
187
188     @Bean(name = "node-type-operation")
189     public NodeTypeOperation nodeTypeOperation(@Qualifier("mig-derived-resolver") DerivedNodeTypeResolver migrationDerivedNodeTypeResolver) {
190         return new NodeTypeOperation(migrationDerivedNodeTypeResolver);
191     }
192
193     @Bean(name = "topology-template-operation")
194     public TopologyTemplateOperation topologyTemplateOperation() {
195         return new TopologyTemplateOperation();
196     }
197
198     @Bean(name = "node-template-operation")
199     public NodeTemplateOperation nodeTemplateOperation() {
200         return new NodeTemplateOperation();
201     }
202
203     @Bean(name = "titan-dao")
204     public TitanDao titanDao(@Qualifier("migration-titan-client") TitanGraphClient titanGraphClient) {
205         return new TitanDao(titanGraphClient);
206     }
207
208     @Bean(name = "category-operation")
209     public CategoryOperation categoryOperation() {
210         return new CategoryOperation();
211     }
212
213     @Bean(name = "artifacts-operation")
214     public ArtifactsOperations artifactsOperation() {
215         return new ArtifactsOperations();
216     }
217
218     @Bean(name = "tosca-data-operation")
219     public ToscaDataOperation toscaDataOperation() {
220         return new ToscaDataOperation();
221     }
222
223     @Bean(name = "tosca-element-lifecycle-operation")
224     public ToscaElementLifecycleOperation toscaElementLifecycleOperation() {
225         return new ToscaElementLifecycleOperation();
226     }
227
228     @Bean(name = "tosca-path-calculator")
229     public ToscaDefinitionPathCalculator pathCalculator() {
230         return new ToscaDefinitionPathCalculatorImpl();
231     }
232
233     @Bean(name = "fulfilled-capabilities-mig-service")
234     public FulfilledCapabilitiesMigrationService fulfilledCapabilitiesMigService() {
235         return new FulfilledCapabilitiesMigrationService();
236     }
237
238     @Bean(name = "fulfilled-requirements-mig-service")
239     public FulfilledRequirementsMigrationService requirementsMigService() {
240         return new FulfilledRequirementsMigrationService();
241     }
242
243     @Bean(name ="req-cap-mig-service")
244     public RequirementsCapabilitiesMigrationService reqCapMigService() {
245         return new RequirementsCapabilitiesMigrationService();
246     }
247
248     @Bean(name = "mig-derived-resolver")
249     public DerivedNodeTypeResolver migrationDerivedNodeTypeResolver() {
250         return new MigrationByIdDerivedNodeTypeResolver();
251     }
252
253     @Bean(name = "invariant-uuid-resolver")
254     public InvariantUUIDResolver invariantUUIDResolver() {
255         return new InvariantUUIDResolver();
256     }
257
258     @Bean(name="consumer-operation-mig")
259     @Primary
260     public ConsumerOperation consumerOperation(@Qualifier("titan-generic-dao-migration") TitanGenericDao titanGenericDao) {
261         return new ConsumerOperation(titanGenericDao);
262     }
263     
264     @Bean(name = "vfModulesPropertiesAdding")
265     public VfModulesPropertiesAdding vfModulesPropertiesAdding() {
266         return new VfModulesPropertiesAdding();
267     }
268     
269     @Bean(name = "node-template-missing-data-resolver")
270     public NodeTemplateMissingDataResolver nodeTemplateMissingDataResolver() {
271         return new NodeTemplateMissingDataResolver<>();
272     }
273
274     @Bean(name = "migration1707MissingInfoFix")
275     public Migration1707MissingInfoFix migration1707MissingInfoFix() {
276         return new Migration1707MissingInfoFix();
277     }
278
279 }