2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 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.validator.config;
23 import org.openecomp.sdc.asdctool.impl.VrfObjectFixHandler;
24 import org.openecomp.sdc.asdctool.impl.validator.ArtifactToolBL;
25 import org.openecomp.sdc.asdctool.impl.validator.ValidationToolBL;
26 import org.openecomp.sdc.asdctool.impl.validator.executor.IArtifactValidatorExecutor;
27 import org.openecomp.sdc.asdctool.impl.validator.executor.NodeToscaArtifactsValidatorExecutor;
28 import org.openecomp.sdc.asdctool.impl.validator.executor.ServiceToscaArtifactsValidatorExecutor;
29 import org.openecomp.sdc.asdctool.impl.validator.executor.ServiceValidatorExecutor;
30 import org.openecomp.sdc.asdctool.impl.validator.executor.VFToscaArtifactValidatorExecutor;
31 import org.openecomp.sdc.asdctool.impl.validator.executor.ValidatorExecutor;
32 import org.openecomp.sdc.asdctool.impl.validator.executor.VfValidatorExecutor;
33 import org.openecomp.sdc.asdctool.impl.validator.tasks.VfValidationTask;
34 import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ArtifactValidationUtils;
35 import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ServiceArtifactValidationTask;
36 import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.VfArtifactValidationTask;
37 import org.openecomp.sdc.asdctool.impl.validator.tasks.module.json.ModuleJsonTask;
38 import org.openecomp.sdc.asdctool.migration.config.mocks.DistributionEngineMock;
39 import org.openecomp.sdc.be.components.distribution.engine.IDistributionEngine;
40 import org.openecomp.sdc.be.components.distribution.engine.ServiceDistributionArtifactsBuilder;
41 import org.openecomp.sdc.be.config.CatalogModelSpringConfig;
42 import org.openecomp.sdc.be.dao.DAOJanusGraphStrategy;
43 import org.openecomp.sdc.be.dao.JanusGraphClientStrategy;
44 import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao;
45 import org.openecomp.sdc.be.dao.cassandra.CassandraClient;
46 import org.openecomp.sdc.be.dao.config.DAOSpringConfig;
47 import org.openecomp.sdc.be.dao.impl.HealingPipelineDao;
48 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient;
49 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao;
50 import org.openecomp.sdc.be.dao.jsongraph.HealingJanusGraphDao;
51 import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
52 import org.openecomp.sdc.be.model.DerivedNodeTypeResolver;
53 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArchiveOperation;
54 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ByToscaNameDerivedNodeTypeResolver;
55 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.GroupsOperation;
56 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation;
57 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTypeOperation;
58 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation;
59 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
60 import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation;
61 import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation;
62 import org.openecomp.sdc.config.CatalogBESpringConfig;
63 import org.springframework.beans.factory.annotation.Qualifier;
64 import org.springframework.beans.factory.config.PropertiesFactoryBean;
65 import org.springframework.context.annotation.Bean;
66 import org.springframework.context.annotation.Configuration;
67 import org.springframework.context.annotation.Import;
68 import org.springframework.context.annotation.Primary;
69 import org.springframework.core.io.FileSystemResource;
71 import java.util.List;
74 * Created by chaya on 7/3/2017.
77 @Import({DAOSpringConfig.class, CatalogBESpringConfig.class, CatalogModelSpringConfig.class})
78 public class ValidationToolConfiguration {
81 public ServiceValidatorExecutor basicServiceValidator(JanusGraphDao janusGraphDao) {
82 return new ServiceValidatorExecutor(janusGraphDao);
86 public NodeToscaArtifactsValidatorExecutor NodeToscaArtifactsValidatorValidator(JanusGraphDao janusGraphDao,
87 ToscaOperationFacade toscaOperationFacade) {
88 return new NodeToscaArtifactsValidatorExecutor(janusGraphDao, toscaOperationFacade);
92 public ServiceToscaArtifactsValidatorExecutor ServiceToscaArtifactsValidator(JanusGraphDao janusGraphDao,
93 ToscaOperationFacade toscaOperationFacade) {
94 return new ServiceToscaArtifactsValidatorExecutor(janusGraphDao, toscaOperationFacade);
98 public VFToscaArtifactValidatorExecutor VFToscaArtifactValidator(JanusGraphDao janusGraphDao,
99 ToscaOperationFacade toscaOperationFacade) {
100 return new VFToscaArtifactValidatorExecutor(janusGraphDao, toscaOperationFacade);
104 public VfArtifactValidationTask vfArtifactValidationTask(ArtifactValidationUtils artifactValidationUtils) {
105 return new VfArtifactValidationTask(artifactValidationUtils);
109 public ServiceArtifactValidationTask serviceArtifactValidationTask(ArtifactValidationUtils artifactValidationUtils) {
110 return new ServiceArtifactValidationTask(artifactValidationUtils);
114 public ModuleJsonTask moduleJsonTask(TopologyTemplateOperation topologyTemplateOperation) {
115 return new ModuleJsonTask(topologyTemplateOperation);
119 public ValidationToolBL validationToolBL(List<ValidatorExecutor> validators) {
120 return new ValidationToolBL(validators);
124 public ArtifactToolBL artifactToolBL(List<IArtifactValidatorExecutor> validators) {
125 return new ArtifactToolBL(validators);
129 public VfValidatorExecutor basicVfValidator(List<VfValidationTask> tasks, JanusGraphDao janusGraphDao) {
130 return new VfValidatorExecutor(tasks, janusGraphDao);
133 @Bean(name = "artifact-cassandra-dao")
134 public ArtifactCassandraDao artifactCassandraDao(CassandraClient cassandraClient) {
135 return new ArtifactCassandraDao(cassandraClient);
139 public ArtifactValidationUtils artifactValidationUtils(ArtifactCassandraDao artifactCassandraDao,
140 TopologyTemplateOperation topologyTemplateOperation) {
141 return new ArtifactValidationUtils(artifactCassandraDao, topologyTemplateOperation);
144 @Bean(name = "groups-operation")
145 public GroupsOperation jsonGroupsOperation() {
146 return new GroupsOperation();
149 @Bean(name = "cassandra-client")
150 public CassandraClient cassandraClient() {
151 return new CassandraClient();
154 @Bean(name = "dao-janusgraph-strategy")
155 public JanusGraphClientStrategy daoStrategy() {
156 return new DAOJanusGraphStrategy();
159 @Bean(name = "migration-janusgraph-client", initMethod = "createGraph")
160 public JanusGraphClient janusGraphMigrationClient(@Qualifier("dao-janusgraph-strategy")
161 JanusGraphClientStrategy janusGraphClientStrategy) {
162 return new JanusGraphClient(janusGraphClientStrategy);
165 @Bean(name = "tosca-operation-facade")
166 public ToscaOperationFacade toscaOperationFacade() {
167 return new ToscaOperationFacade();
170 @Bean(name = "node-type-operation")
171 public NodeTypeOperation nodeTypeOperation(@Qualifier("mig-derived-resolver") DerivedNodeTypeResolver migrationDerivedNodeTypeResolver) {
172 return new NodeTypeOperation(migrationDerivedNodeTypeResolver);
175 @Bean(name = "topology-template-operation")
176 public TopologyTemplateOperation topologyTemplateOperation() {
177 return new TopologyTemplateOperation();
180 @Bean(name = "node-template-operation")
181 public NodeTemplateOperation nodeTemplateOperation() {
182 return new NodeTemplateOperation();
186 @Bean(name = "mig-derived-resolver")
187 public DerivedNodeTypeResolver migrationDerivedNodeTypeResolver() {
188 return new ByToscaNameDerivedNodeTypeResolver();
192 public JanusGraphGenericDao janusGraphGenericDao(@Qualifier("migration-janusgraph-client") JanusGraphClient janusGraphClient) {
193 return new JanusGraphGenericDao(janusGraphClient);
196 @Bean(name = "elasticsearchConfig")
197 public PropertiesFactoryBean mapper() {
198 String configHome = System.getProperty("config.home");
199 PropertiesFactoryBean bean = new PropertiesFactoryBean();
200 bean.setLocation(new FileSystemResource(configHome + "/elasticsearch.yml"));
205 public ArchiveOperation archiveOperation(JanusGraphDao janusGraphDao, IGraphLockOperation graphLockOperation) {
206 return new ArchiveOperation(janusGraphDao, graphLockOperation);
210 public IGraphLockOperation graphLockOperation() {
211 return new GraphLockOperation();
214 @Bean(name = "janusgraph-client")
216 public JanusGraphClient janusGraphClient(@Qualifier("dao-client-strategy")
217 JanusGraphClientStrategy janusGraphClientStrategy) {
218 return new JanusGraphClient(janusGraphClientStrategy);
221 @Bean(name ="dao-client-strategy")
222 public JanusGraphClientStrategy janusGraphClientStrategy() {
223 return new DAOJanusGraphStrategy();
227 public VrfObjectFixHandler vrfObjectFixHandler(@Qualifier("janusgraph-dao")
228 JanusGraphDao janusGraphDao){
229 return new VrfObjectFixHandler(janusGraphDao);
232 @Bean(name = "healingPipelineDao")
233 public HealingPipelineDao healingPipelineDao(){
234 return new HealingPipelineDao();
237 @Bean(name = "janusgraph-dao")
238 public HealingJanusGraphDao healingJanusGraphDao(HealingPipelineDao healingPipelineDao, JanusGraphClient janusGraphClient) {
239 return new HealingJanusGraphDao(healingPipelineDao, janusGraphClient);
243 public IDistributionEngine iDistributionEngine() {
244 return new DistributionEngineMock();
248 public ServiceDistributionArtifactsBuilder serviceDistributionArtifactsBuilder(ToscaOperationFacade toscaOperationFacade) {
249 return new ServiceDistributionArtifactsBuilder(toscaOperationFacade);