summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/pnfsimulator
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/pnfsimulator')
-rw-r--r--src/main/java/org/onap/pnfsimulator/Main.java59
-rw-r--r--src/main/java/org/onap/pnfsimulator/SwaggerConfig.java46
-rw-r--r--src/main/java/org/onap/pnfsimulator/db/Row.java39
-rw-r--r--src/main/java/org/onap/pnfsimulator/db/Storage.java41
-rw-r--r--src/main/java/org/onap/pnfsimulator/event/EventData.java67
-rw-r--r--src/main/java/org/onap/pnfsimulator/event/EventDataRepository.java26
-rw-r--r--src/main/java/org/onap/pnfsimulator/event/EventDataService.java65
-rw-r--r--src/main/java/org/onap/pnfsimulator/filesystem/WatcherConfig.java39
-rw-r--r--src/main/java/org/onap/pnfsimulator/filesystem/WatcherEventProcessor.java111
-rw-r--r--src/main/java/org/onap/pnfsimulator/filesystem/WatcherService.java44
-rw-r--r--src/main/java/org/onap/pnfsimulator/filesystem/WatcherThread.java81
-rw-r--r--src/main/java/org/onap/pnfsimulator/logging/MdcVariables.java35
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java241
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/TemplateController.java112
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/model/FullEvent.java48
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/model/SearchExp.java42
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/model/SimulatorParams.java46
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/model/SimulatorRequest.java55
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/model/TemplateRequest.java38
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/util/DateUtil.java35
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/util/JsonObjectDeserializer.java42
-rw-r--r--src/main/java/org/onap/pnfsimulator/rest/util/ResponseBuilder.java62
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/DbTemplateReader.java51
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/EventNotFoundException.java29
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/FilesystemTemplateReader.java54
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/IncrementProvider.java26
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/IncrementProviderImpl.java47
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/JsonTokenProcessor.java134
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/KeywordsExtractor.java129
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandler.java74
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandlerException.java28
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/KeywordsValueProvider.java80
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/SimulatorService.java132
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/TemplatePatcher.java53
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/TemplateReader.java29
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/TemplateVariablesReplacer.java50
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/HttpApacheResponseAdapterFactory.java45
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java27
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java119
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/HttpResponseAdapter.java41
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertAuthSslContextFactory.java53
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertificateReader.java46
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactory.java104
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactoryFacade.java40
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/PasswordConverter.java32
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SSLContextFactory.java48
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SslAuthenticationHelper.java45
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/keywords/Keyword.java76
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/keywords/NonParameterKeyword.java65
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/keywords/SingleParameterKeyword.java73
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/keywords/TwoParameterKeyword.java80
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java99
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java120
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java38
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfig.java49
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigRepository.java26
-rw-r--r--src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigService.java52
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/FsToDbTemplateSynchronizer.java74
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/Template.java92
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/TemplateRepository.java26
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/TemplateService.java81
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/search/IllegalJsonValueException.java28
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/search/JsonUtils.java104
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/search/TemplateSearchHelper.java95
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/search/handler/PrimitiveValueCriteriaBuilder.java103
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/search/viewmodel/FlatTemplateContent.java45
-rw-r--r--src/main/java/org/onap/pnfsimulator/template/search/viewmodel/KeyValuePair.java40
67 files changed, 0 insertions, 4256 deletions
diff --git a/src/main/java/org/onap/pnfsimulator/Main.java b/src/main/java/org/onap/pnfsimulator/Main.java
deleted file mode 100644
index 708f27f..0000000
--- a/src/main/java/org/onap/pnfsimulator/Main.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator;
-
-import javax.annotation.PostConstruct;
-
-import org.onap.pnfsimulator.filesystem.WatcherService;
-import org.onap.pnfsimulator.template.FsToDbTemplateSynchronizer;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.scheduling.annotation.EnableAsync;
-
-@SpringBootApplication
-@EnableAsync
-public class Main {
-
- private final WatcherService watcherService;
- private final FsToDbTemplateSynchronizer fsToDbTemplateSynchronizer;
-
- @Autowired
- public Main(WatcherService watcherService,
- FsToDbTemplateSynchronizer fsToDbTemplateSynchronizer) {
- this.watcherService = watcherService;
- this.fsToDbTemplateSynchronizer = fsToDbTemplateSynchronizer;
- }
-
- // We are excluding this line in Sonar due to fact that
- // Spring is handling arguments
- public static void main(String[] args) { // NOSONAR
- SpringApplication.run(Main.class, args);
- }
-
- @PostConstruct
- public void createWatchers() {
- fsToDbTemplateSynchronizer.synchronize();
- watcherService.createWatcher();
- }
-}
-
-
diff --git a/src/main/java/org/onap/pnfsimulator/SwaggerConfig.java b/src/main/java/org/onap/pnfsimulator/SwaggerConfig.java
deleted file mode 100644
index b6c6187..0000000
--- a/src/main/java/org/onap/pnfsimulator/SwaggerConfig.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator;
-
-import org.onap.pnfsimulator.simulator.client.utils.ssl.SslAuthenticationHelper;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-@Configuration
-@EnableConfigurationProperties(SslAuthenticationHelper.class)
-@EnableSwagger2
-public class SwaggerConfig {
-
- @Bean
- public Docket api() {
- return new Docket(DocumentationType.SWAGGER_2)
- .select()
- .apis(RequestHandlerSelectors.basePackage("org.onap.pnfsimulator"))
- .paths(PathSelectors.any())
- .build();
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/db/Row.java b/src/main/java/org/onap/pnfsimulator/db/Row.java
deleted file mode 100644
index 12745bf..0000000
--- a/src/main/java/org/onap/pnfsimulator/db/Row.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.db;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.mapping.Field;
-
-public abstract class Row {
- @Id
- @Field("_id")
- @Getter
- @Setter
- private String id;
-
-
- public String getId() {
- return id;
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/db/Storage.java b/src/main/java/org/onap/pnfsimulator/db/Storage.java
deleted file mode 100644
index ad98ce0..0000000
--- a/src/main/java/org/onap/pnfsimulator/db/Storage.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.db;
-
-import com.google.gson.JsonObject;
-
-import java.util.List;
-import java.util.Optional;
-
-public interface Storage<T extends Row> {
-
- List<T> getAll();
-
- Optional<T> get(String rowId);
-
- void persist(T row);
-
- boolean tryPersistOrOverwrite(T row, boolean overwrite);
-
- void delete(String rowId);
-
- List<String> getIdsByContentCriteria(JsonObject queryJson);
-}
diff --git a/src/main/java/org/onap/pnfsimulator/event/EventData.java b/src/main/java/org/onap/pnfsimulator/event/EventData.java
deleted file mode 100644
index ff85367..0000000
--- a/src/main/java/org/onap/pnfsimulator/event/EventData.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.event;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.mapping.Field;
-
-@Builder
-@Getter
-@Setter
-@ToString(exclude = "incrementValue")
-public class EventData {
- @Id
- private String id;
-
- @Field("template")
- @JsonInclude
- private String template;
-
- @Field("patched")
- @JsonInclude
- private String patched;
-
- @Field("input")
- @JsonInclude
- private String input;
-
- @Field("keywords")
- @JsonInclude
- private String keywords;
-
- @Field("incrementValue")
- @JsonInclude
- private int incrementValue;
-
- protected EventData(String id, String template, String patched, String input, String keywords, int incrementValue) {
- this.id = id;
- this.template = template;
- this.patched = patched;
- this.input = input;
- this.keywords = keywords;
- this.incrementValue = incrementValue;
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/event/EventDataRepository.java b/src/main/java/org/onap/pnfsimulator/event/EventDataRepository.java
deleted file mode 100644
index d1a66ab..0000000
--- a/src/main/java/org/onap/pnfsimulator/event/EventDataRepository.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.event;
-
-import org.springframework.data.mongodb.repository.MongoRepository;
-
-public interface EventDataRepository extends MongoRepository<EventData, String> {
-}
diff --git a/src/main/java/org/onap/pnfsimulator/event/EventDataService.java b/src/main/java/org/onap/pnfsimulator/event/EventDataService.java
deleted file mode 100644
index 266d56b..0000000
--- a/src/main/java/org/onap/pnfsimulator/event/EventDataService.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.event;
-
-import com.google.gson.JsonObject;
-
-import java.util.List;
-import java.util.Optional;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class EventDataService {
- private final EventDataRepository repository;
-
- @Autowired
- public EventDataService(EventDataRepository repository) {
- this.repository = repository;
- }
-
- private EventData persistEventData(String templateString, String patchedString, String inputString, String keywordsString) {
- EventData eventData = EventData.builder()
- .template(templateString)
- .patched(patchedString)
- .input(inputString)
- .keywords(keywordsString)
- .build();
- return repository.save(eventData);
- }
-
- public EventData persistEventData(JsonObject templateJson, JsonObject patchedJson, JsonObject inputJson,
- JsonObject keywordsJson) {
- return persistEventData(templateJson.toString(),
- patchedJson.toString(),
- inputJson.toString(),
- keywordsJson.toString());
- }
-
- public List<EventData> getAllEvents() {
- return repository.findAll();
- }
-
- public Optional<EventData> getById(String id) {
- return repository.findById(id);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherConfig.java b/src/main/java/org/onap/pnfsimulator/filesystem/WatcherConfig.java
deleted file mode 100644
index 3535e33..0000000
--- a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherConfig.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.filesystem;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-
-@Configuration
-public class WatcherConfig {
-
- @Bean
- public TaskExecutor watcherTaskExecutor() {
- ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
- executor.setThreadNamePrefix("pnfsimulator_fs_watcher");
- executor.initialize();
- return executor;
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherEventProcessor.java b/src/main/java/org/onap/pnfsimulator/filesystem/WatcherEventProcessor.java
deleted file mode 100644
index c03491a..0000000
--- a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherEventProcessor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.filesystem;
-
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardWatchEventKinds;
-import java.nio.file.WatchEvent;
-import java.nio.file.WatchEvent.Kind;
-import java.time.Instant;
-import java.util.Arrays;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import lombok.extern.slf4j.Slf4j;
-import org.bson.BSONException;
-import org.bson.json.JsonParseException;
-import org.onap.pnfsimulator.db.Storage;
-import org.onap.pnfsimulator.template.Template;
-import org.bson.Document;
-
-@Slf4j
-public enum WatcherEventProcessor {
- CREATED(StandardWatchEventKinds.ENTRY_CREATE) {
- @Override
- public void processEvent(Path path, Storage<Template> storage) throws IOException {
- String content = getContent(path);
- String fileName = path.getFileName().toString();
- Document documentsContent = Document.parse(content);
- storage.persist(new Template(fileName, documentsContent, Instant.now().getNano()));
- log.info("DB record created for template: " + fileName);
- }
- },
- MODIFIED(StandardWatchEventKinds.ENTRY_MODIFY) {
- @Override
- public void processEvent(Path path, Storage<Template> storage) throws IOException {
- String fileName = path.getFileName().toString();
- String content = getContent(path);
- Document documentsContent = Document.parse(content);
- Template template = storage.get(fileName).orElse(new Template(fileName, documentsContent, Instant.now().getNano()));
- template.setContent(documentsContent);
- storage.persist(template);
- log.info("DB record modified for template: " + fileName);
- }
- },
- DELETED(StandardWatchEventKinds.ENTRY_DELETE) {
- @Override
- public void processEvent(Path path, Storage<Template> storage) {
- String fileName = path.getFileName().toString();
- storage.delete(fileName);
- log.info("DB record deleted for template: " + fileName);
- }
- };
-
- private final Kind<Path> pathKind;
-
- String getContent(Path path) throws IOException {
- try (Stream<String> lines = Files.lines(path, StandardCharsets.UTF_8)) {
- return lines.collect(Collectors.joining(System.lineSeparator()));
- } catch (IOException e) {
- log.error("Could not get content due to: " + e.getMessage() + " " + e.getCause(), e);
- throw e;
- }
- }
-
- WatcherEventProcessor(Kind<Path> pathKind) {
- this.pathKind = pathKind;
- }
-
- public abstract void processEvent(Path templateName, Storage<Template> storage) throws IOException;
-
- static void process(WatchEvent<?> event, Storage<Template> storage, Path templatesDir) {
- Optional<WatcherEventProcessor> watcherEventProcessor = getWatcherEventProcessor(event);
- watcherEventProcessor.ifPresent(processor -> {
- try {
- final Path templatePath = templatesDir.resolve((Path) event.context());
- processor.processEvent(templatePath, storage);
- } catch (IOException e) {
- log.error("Error during processing DB record for template.", e);
- } catch (BSONException | JsonParseException e) {
- log.error("Invalid JSON format provided for template.", e);
- }
- });
- }
-
- private static Optional<WatcherEventProcessor> getWatcherEventProcessor(WatchEvent<?> event) {
- return Arrays.stream(values()).filter(value -> value.pathKind.equals(event.kind())).findFirst();
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherService.java b/src/main/java/org/onap/pnfsimulator/filesystem/WatcherService.java
deleted file mode 100644
index 26b684d..0000000
--- a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherService.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.filesystem;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Service;
-
-@Service
-public class WatcherService {
-
- private TaskExecutor taskExecutor;
- private ApplicationContext applicationContext;
-
- @Autowired
- public WatcherService(ApplicationContext applicationContext, TaskExecutor taskExecutor) {
- this.taskExecutor = taskExecutor;
- this.applicationContext = applicationContext;
- }
-
- public void createWatcher() {
- taskExecutor.execute(applicationContext.getBean(WatcherThread.class));
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherThread.java b/src/main/java/org/onap/pnfsimulator/filesystem/WatcherThread.java
deleted file mode 100644
index a202b1f..0000000
--- a/src/main/java/org/onap/pnfsimulator/filesystem/WatcherThread.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.filesystem;
-
-import java.io.IOException;
-import java.nio.file.FileSystems;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardWatchEventKinds;
-import java.nio.file.WatchEvent;
-import java.nio.file.WatchKey;
-import java.nio.file.WatchService;
-import lombok.extern.slf4j.Slf4j;
-import org.onap.pnfsimulator.db.Storage;
-import org.onap.pnfsimulator.template.Template;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Slf4j
-@Component
-public class WatcherThread implements Runnable {
-
- private final WatchService watchService;
- private final Storage<Template> storage;
- private final Path templatesDir;
-
- WatcherThread(String templatesDir, WatchService watchService, Storage<Template> storage) throws IOException {
- this.watchService = watchService;
- this.storage = storage;
- this.templatesDir = Paths.get(templatesDir);
- registerDirectory(this.templatesDir);
- }
-
- @Autowired
- public WatcherThread(@Value("${templates.dir}") String templatesDir, Storage<Template> storage) throws IOException {
- this(templatesDir, FileSystems.getDefault().newWatchService(), storage);
- }
-
- private void registerDirectory(Path path) throws IOException {
- path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE,
- StandardWatchEventKinds.ENTRY_MODIFY);
- }
-
- @Override
- public void run() {
- while (true) {
- WatchKey key;
- try {
- key = watchService.take();
- for (WatchEvent<?> event : key.pollEvents()) {
- WatcherEventProcessor.process(event, storage, templatesDir);
- }
- key.reset();
- } catch (InterruptedException e) {
- log.error("Watch service interrupted.", e.getMessage());
- Thread.currentThread().interrupt();
- return;
- }
-
- }
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/logging/MdcVariables.java b/src/main/java/org/onap/pnfsimulator/logging/MdcVariables.java
deleted file mode 100644
index 4feb168..0000000
--- a/src/main/java/org/onap/pnfsimulator/logging/MdcVariables.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.logging;
-
-public final class MdcVariables {
-
- public static final String X_ONAP_REQUEST_ID = "X-ONAP-RequestID";
- public static final String X_INVOCATION_ID = "X-InvocationID";
- public static final String REQUEST_ID = "RequestID";
- public static final String INVOCATION_ID = "InvocationID";
- public static final String INSTANCE_UUID = "InstanceUUID";
- public static final String RESPONSE_CODE = "ResponseCode";
- public static final String SERVICE_NAME = "ServiceName";
-
- private MdcVariables() {
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java b/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java
deleted file mode 100644
index f2c70dd..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.gson.JsonSyntaxException;
-import org.json.JSONException;
-import org.onap.pnfsimulator.event.EventData;
-import org.onap.pnfsimulator.event.EventDataService;
-import org.onap.pnfsimulator.rest.model.FullEvent;
-import org.onap.pnfsimulator.rest.model.SimulatorRequest;
-import org.onap.pnfsimulator.rest.util.DateUtil;
-import org.onap.pnfsimulator.rest.util.ResponseBuilder;
-import org.onap.pnfsimulator.simulator.SimulatorService;
-import org.onap.pnfsimulator.simulator.client.HttpResponseAdapter;
-import org.onap.pnfsimulator.simulatorconfig.SimulatorConfig;
-import org.quartz.SchedulerException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.slf4j.Marker;
-import org.slf4j.MarkerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.validation.Valid;
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import static org.onap.pnfsimulator.logging.MdcVariables.INSTANCE_UUID;
-import static org.onap.pnfsimulator.logging.MdcVariables.INVOCATION_ID;
-import static org.onap.pnfsimulator.logging.MdcVariables.REQUEST_ID;
-import static org.onap.pnfsimulator.logging.MdcVariables.RESPONSE_CODE;
-import static org.onap.pnfsimulator.logging.MdcVariables.SERVICE_NAME;
-import static org.onap.pnfsimulator.logging.MdcVariables.X_INVOCATION_ID;
-import static org.onap.pnfsimulator.logging.MdcVariables.X_ONAP_REQUEST_ID;
-import static org.onap.pnfsimulator.rest.util.ResponseBuilder.MESSAGE;
-import static org.onap.pnfsimulator.rest.util.ResponseBuilder.TIMESTAMP;
-import static org.springframework.http.HttpStatus.BAD_REQUEST;
-import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
-import static org.springframework.http.HttpStatus.NOT_FOUND;
-import static org.springframework.http.HttpStatus.OK;
-
-@RestController
-@RequestMapping("/simulator")
-public class SimulatorController {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(SimulatorController.class);
- private static final Marker ENTRY = MarkerFactory.getMarker("ENTRY");
- private static final String INCORRECT_TEMPLATE_MESSAGE = "Cannot start simulator, template %s is not in valid format: %s";
- private static final String NOT_EXISTING_TEMPLATE = "Cannot start simulator - template %s not found.";
- private static final String BREAKING_CHARACTER_REGEX = "[\n|\r|\t]";
- private final DateFormat responseDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss,SSS");
- private final SimulatorService simulatorService;
- private EventDataService eventDataService;
-
- @Autowired
- public SimulatorController(SimulatorService simulatorService,
- EventDataService eventDataService) {
- this.simulatorService = simulatorService;
- this.eventDataService = eventDataService;
- }
-
- /**
- * @deprecated
- */
- @PostMapping("test")
- @Deprecated
- public ResponseEntity<Map<String, Object>> test(@Valid @RequestBody SimulatorRequest simulatorRequest) {
- MDC.put("test", "test");
- String simulatorRequestString = simulatorRequest.toString();
- LOGGER.info(ENTRY, simulatorRequestString);
- return buildResponse(OK, ImmutableMap.of(MESSAGE, "message1234"));
- }
-
- @PostMapping(value = "start")
- public ResponseEntity<Map<String, Object>> start(@RequestHeader HttpHeaders headers,
- @Valid @RequestBody SimulatorRequest triggerEventRequest) {
- logContextHeaders(headers, "/simulator/start");
- LOGGER.info(ENTRY, "Simulator started");
-
- try {
- return processRequest(triggerEventRequest);
-
- } catch (JSONException | JsonSyntaxException e) {
- MDC.put(RESPONSE_CODE, BAD_REQUEST.toString());
- LOGGER.warn("Cannot trigger event, invalid json format: {}", e.getMessage());
- LOGGER.debug("Received json has invalid format", e);
- return buildResponse(BAD_REQUEST, ImmutableMap.of(MESSAGE, String
- .format(INCORRECT_TEMPLATE_MESSAGE, triggerEventRequest.getTemplateName(),
- e.getMessage())));
- } catch (GeneralSecurityException e) {
- MDC.put(RESPONSE_CODE, INTERNAL_SERVER_ERROR.toString());
- LOGGER.error("Client certificate validation failed: {}", e.getMessage());
- return buildResponse(INTERNAL_SERVER_ERROR,
- ImmutableMap.of(MESSAGE, "Invalid or misconfigured client certificate"));
- } catch (IOException e) {
- MDC.put(RESPONSE_CODE, BAD_REQUEST.toString());
- LOGGER.warn("Json validation failed: {}", e.getMessage());
- return buildResponse(BAD_REQUEST,
- ImmutableMap.of(MESSAGE, String.format(NOT_EXISTING_TEMPLATE, triggerEventRequest.getTemplateName())));
- } catch (Exception e) {
- MDC.put(RESPONSE_CODE, INTERNAL_SERVER_ERROR.toString());
- LOGGER.error("Cannot trigger event - unexpected exception", e);
- return buildResponse(INTERNAL_SERVER_ERROR,
- ImmutableMap.of(MESSAGE, "Unexpected exception: " + e.getMessage()));
- } finally {
- MDC.clear();
- }
- }
-
- /**
- * @deprecated
- */
- @GetMapping("all-events")
- @Deprecated
- public ResponseEntity<Map<String, Object>> allEvents() {
- List<EventData> eventDataList = eventDataService.getAllEvents();
- StringBuilder sb = new StringBuilder();
- eventDataList.forEach(e -> sb.append(e).append(System.lineSeparator()));
-
- return ResponseBuilder
- .status(OK).put(MESSAGE, sb.toString())
- .build();
- }
-
- @GetMapping("config")
- public ResponseEntity<Map<String, Object>> getConfig() {
- SimulatorConfig configToGet = simulatorService.getConfiguration();
- return buildResponse(OK, ImmutableMap.of("simulatorConfig", configToGet));
- }
-
- @PutMapping("config")
- public ResponseEntity<Map<String, Object>> updateConfig(@Valid @RequestBody SimulatorConfig newConfig) {
- SimulatorConfig updatedConfig = simulatorService.updateConfiguration(newConfig);
- return buildResponse(OK, ImmutableMap.of("simulatorConfig", updatedConfig));
- }
-
- @PostMapping("cancel/{jobName}")
- public ResponseEntity<Map<String, Object>> cancelEvent(@PathVariable String jobName) throws SchedulerException {
- String jobNameNoBreakingCharacters = replaceBreakingCharacters(jobName);
- LOGGER.info(ENTRY, "Cancel called on {}.", jobNameNoBreakingCharacters);
- boolean isCancelled = simulatorService.cancelEvent(jobName);
- return createCancelEventResponse(isCancelled);
- }
-
- @PostMapping("cancel")
- public ResponseEntity<Map<String, Object>> cancelAllEvent() throws SchedulerException {
- LOGGER.info(ENTRY, "Cancel called on all jobs");
- boolean isCancelled = simulatorService.cancelAllEvents();
- return createCancelEventResponse(isCancelled);
- }
-
- @PostMapping("event")
- public ResponseEntity<Map<String, Object>> sendEventDirectly(@RequestHeader HttpHeaders headers, @Valid @RequestBody FullEvent event)
- throws IOException, GeneralSecurityException {
- logContextHeaders(headers, "/simulator/event");
- LOGGER.info(ENTRY, "Trying to send one-time event directly to VES Collector");
- HttpResponseAdapter response = simulatorService.triggerOneTimeEvent(event);
- return buildResponse(response);
- }
-
- private String replaceBreakingCharacters(String jobName) {
- return jobName.replaceAll(BREAKING_CHARACTER_REGEX, "_");
- }
-
- private ResponseEntity<Map<String, Object>> processRequest(SimulatorRequest triggerEventRequest)
- throws IOException, SchedulerException, GeneralSecurityException {
-
- String jobName = simulatorService.triggerEvent(triggerEventRequest);
- MDC.put(RESPONSE_CODE, OK.toString());
- return buildResponse(OK, ImmutableMap.of(MESSAGE, "Request started", "jobName", jobName));
- }
-
- private ResponseEntity<Map<String, Object>> buildResponse(HttpStatus endStatus, Map<String, Object> parameters) {
- ResponseBuilder builder = ResponseBuilder
- .status(endStatus)
- .put(TIMESTAMP, DateUtil.getTimestamp(responseDateFormat));
- parameters.forEach(builder::put);
- return builder.build();
- }
-
- private ResponseEntity<Map<String, Object>> buildResponse(HttpResponseAdapter response) {
- HttpStatus status = HttpStatus.valueOf(response.getCode());
- Map<String, Object> parameters;
- if (response.getMessage().isEmpty()) {
- parameters = Map.of(MESSAGE, "One-time direct event sent successfully");
- } else {
- parameters = Map.of(MESSAGE, response.getMessage());
- }
- return buildResponse(status, parameters);
- }
-
- private void logContextHeaders(HttpHeaders headers, String serviceName) {
- MDC.put(REQUEST_ID, headers.getFirst(X_ONAP_REQUEST_ID));
- MDC.put(INVOCATION_ID, headers.getFirst(X_INVOCATION_ID));
- MDC.put(INSTANCE_UUID, UUID.randomUUID().toString());
- MDC.put(SERVICE_NAME, serviceName);
- }
-
- private ResponseEntity<Map<String, Object>> createCancelEventResponse(boolean isCancelled) {
- if (isCancelled) {
- return buildResponse(OK, ImmutableMap.of(MESSAGE, "Event(s) was cancelled"));
- } else {
- return buildResponse(NOT_FOUND, ImmutableMap.of(MESSAGE, "Simulator was not able to cancel event(s)"));
- }
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/TemplateController.java b/src/main/java/org/onap/pnfsimulator/rest/TemplateController.java
deleted file mode 100644
index 8f8fee7..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/TemplateController.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest;
-
-import java.time.Instant;
-import java.util.List;
-import java.util.Optional;
-import javax.validation.Valid;
-
-import com.google.gson.Gson;
-import org.onap.pnfsimulator.db.Storage;
-import org.onap.pnfsimulator.rest.model.TemplateRequest;
-import org.onap.pnfsimulator.rest.model.SearchExp;
-import org.onap.pnfsimulator.template.Template;
-import org.onap.pnfsimulator.template.search.IllegalJsonValueException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.server.ResponseStatusException;
-
-
-@RestController
-@RequestMapping("/template")
-public class TemplateController {
- static final String TEMPLATE_NOT_FOUND_MSG = "A template with given name does not exist";
- static final String CANNOT_OVERRIDE_TEMPLATE_MSG = "Cannot overwrite existing template. Use override=true to override";
- private final Storage<Template> service;
-
- @Autowired
- public TemplateController(Storage<Template> service) {
- this.service = service;
- }
-
- @GetMapping("list")
- public ResponseEntity<List<Template>> list() {
- return new ResponseEntity<>(service.getAll(), HttpStatus.OK);
- }
-
- @GetMapping("get/{templateName}")
- public ResponseEntity<String> get(@PathVariable String templateName) {
- Optional<Template> template = service.get(templateName);
- return template
- .map(this::createTemplateResponse)
- .orElse(this.createTemplateNotFoundResponse());
- }
-
- private ResponseEntity<String> createTemplateResponse(Template template) {
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
- return new ResponseEntity<>(new Gson().toJson(template),headers, HttpStatus.OK);
- }
-
- private ResponseEntity<String> createTemplateNotFoundResponse() {
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.TEXT_PLAIN);
- return new ResponseEntity<>(TEMPLATE_NOT_FOUND_MSG, headers, HttpStatus.NOT_FOUND);
- }
-
- @PostMapping("upload")
- public ResponseEntity<String> upload(
- @RequestBody @Valid TemplateRequest templateRequest,
- @RequestParam(required = false) boolean override) {
- String msg = "";
- HttpStatus status = HttpStatus.CREATED;
- Template template = new Template(templateRequest.getName(), templateRequest.getTemplate(), Instant.now().getNano());
- if (!service.tryPersistOrOverwrite(template, override)) {
- status = HttpStatus.CONFLICT;
- msg = CANNOT_OVERRIDE_TEMPLATE_MSG;
- }
- return new ResponseEntity<>(msg, status);
- }
-
- @PostMapping("search")
- public ResponseEntity<List<String>> searchByCriteria(@RequestBody SearchExp queryJson) {
- try {
- List<String> templateNames = service.getIdsByContentCriteria(queryJson.getSearchExpr());
- return new ResponseEntity<>(templateNames, HttpStatus.OK);
- } catch (IllegalJsonValueException ex) {
- throw new ResponseStatusException(HttpStatus.BAD_REQUEST, String.format("Try again with correct parameters. Cause: %s", ex.getMessage()), ex);
- }
-
- }
-
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/model/FullEvent.java b/src/main/java/org/onap/pnfsimulator/rest/model/FullEvent.java
deleted file mode 100644
index 77d9b3d..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/model/FullEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * FULL-EVENT
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.model;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.google.gson.JsonObject;
-import lombok.AllArgsConstructor;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-import org.onap.pnfsimulator.rest.util.JsonObjectDeserializer;
-import org.springframework.lang.Nullable;
-
-import javax.validation.constraints.NotNull;
-
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@ToString
-@EqualsAndHashCode
-public class FullEvent {
-
- @Nullable
- private String vesServerUrl;
-
- @NotNull
- @JsonDeserialize(using = JsonObjectDeserializer.class)
- private JsonObject event;
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/model/SearchExp.java b/src/main/java/org/onap/pnfsimulator/rest/model/SearchExp.java
deleted file mode 100644
index 41d112f..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/model/SearchExp.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.model;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.google.gson.JsonObject;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-import org.onap.pnfsimulator.rest.util.JsonObjectDeserializer;
-
-import javax.validation.constraints.NotNull;
-
-@Getter
-@NoArgsConstructor
-@AllArgsConstructor
-@ToString
-public class SearchExp {
-
- @NotNull
- @JsonDeserialize(using = JsonObjectDeserializer.class)
- private JsonObject searchExpr;
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/model/SimulatorParams.java b/src/main/java/org/onap/pnfsimulator/rest/model/SimulatorParams.java
deleted file mode 100644
index 787583e..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/model/SimulatorParams.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.model;
-
-import lombok.AllArgsConstructor;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import javax.validation.constraints.NotNull;
-import org.springframework.lang.Nullable;
-
-@Getter
-@EqualsAndHashCode
-@AllArgsConstructor
-@NoArgsConstructor
-public class SimulatorParams {
-
- @NotNull
- private String vesServerUrl;
-
- @Nullable
- private Integer repeatInterval;
-
- @Nullable
- private Integer repeatCount;
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/model/SimulatorRequest.java b/src/main/java/org/onap/pnfsimulator/rest/model/SimulatorRequest.java
deleted file mode 100644
index d00b311..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/model/SimulatorRequest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.model;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.google.gson.JsonObject;
-import javax.validation.constraints.NotNull;
-import lombok.AllArgsConstructor;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-import org.onap.pnfsimulator.rest.util.JsonObjectDeserializer;
-import org.springframework.lang.Nullable;
-
-@Getter
-@ToString
-@EqualsAndHashCode
-@AllArgsConstructor
-@NoArgsConstructor
-public class SimulatorRequest {
-
- @NotNull
- private SimulatorParams simulatorParams;
-
- @NotNull
- private String templateName;
-
- @Nullable
- @JsonDeserialize(using = JsonObjectDeserializer.class)
- private JsonObject patch;
-
- @Nullable
- @JsonDeserialize(using = JsonObjectDeserializer.class)
- private JsonObject variables;
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/model/TemplateRequest.java b/src/main/java/org/onap/pnfsimulator/rest/model/TemplateRequest.java
deleted file mode 100644
index f1e0243..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/model/TemplateRequest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import lombok.ToString;
-import org.bson.Document;
-
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@ToString
-public class TemplateRequest {
- private String name;
- private Document template;
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/util/DateUtil.java b/src/main/java/org/onap/pnfsimulator/rest/util/DateUtil.java
deleted file mode 100644
index 9a5c9ca..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/util/DateUtil.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.util;
-
-import java.text.DateFormat;
-import java.util.Date;
-
-public final class DateUtil {
-
- private DateUtil() {
- }
-
- public static String getTimestamp(DateFormat dateFormat) {
-
- return dateFormat.format(new Date());
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/util/JsonObjectDeserializer.java b/src/main/java/org/onap/pnfsimulator/rest/util/JsonObjectDeserializer.java
deleted file mode 100644
index f89c4a7..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/util/JsonObjectDeserializer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.util;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.ObjectCodec;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-
-import java.io.IOException;
-
-public class JsonObjectDeserializer extends JsonDeserializer<JsonObject> {
- private Gson gson = new Gson();
-
- @Override
- public JsonObject deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
- ObjectCodec oc = jsonParser.getCodec();
- JsonNode node = oc.readTree(jsonParser);
- return gson.fromJson(node.toString(), JsonObject.class);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/rest/util/ResponseBuilder.java b/src/main/java/org/onap/pnfsimulator/rest/util/ResponseBuilder.java
deleted file mode 100644
index 1fdd7cf..0000000
--- a/src/main/java/org/onap/pnfsimulator/rest/util/ResponseBuilder.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.rest.util;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-public class ResponseBuilder {
-
- public static final String TIMESTAMP = "timestamp";
- public static final String MESSAGE = "message";
- public static final String SIMULATOR_STATUS = "simulatorStatus";
- public static final String REMAINING_TIME = "remainingTime";
-
- private HttpStatus httpStatus;
- private Map<String, Object> body = new LinkedHashMap<>();
-
- private ResponseBuilder(HttpStatus httpStatus) {
- this.httpStatus = httpStatus;
- }
-
- public static ResponseBuilder status(HttpStatus httpStatus) {
-
- return new ResponseBuilder(httpStatus);
- }
-
- public ResponseBuilder put(String key, Object value) {
-
- body.put(key, value);
- return this;
- }
-
- public ResponseEntity<Map<String,Object>> build() {
-
- if (body.isEmpty()) {
- return ResponseEntity.status(httpStatus).build();
- }
-
- return ResponseEntity.status(httpStatus).body(body);
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/DbTemplateReader.java b/src/main/java/org/onap/pnfsimulator/simulator/DbTemplateReader.java
deleted file mode 100644
index 878591b..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/DbTemplateReader.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.io.IOException;
-
-import org.onap.pnfsimulator.template.Template;
-import org.onap.pnfsimulator.template.TemplateService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Component
-public class DbTemplateReader implements TemplateReader {
- private final TemplateService service;
- private final Gson gson;
-
- @Autowired
- public DbTemplateReader(TemplateService service, Gson gson) {
- this.service = service;
- this.gson = gson;
- }
-
- @Override
- public JsonObject readTemplate(String templateName) throws IOException {
- Template template = service.get(templateName).orElseThrow(() -> new IOException("Template does not exist"));
- JsonElement jsonElement = gson.toJsonTree(template.getContent());
- return jsonElement.getAsJsonObject();
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/EventNotFoundException.java b/src/main/java/org/onap/pnfsimulator/simulator/EventNotFoundException.java
deleted file mode 100644
index 01f6508..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/EventNotFoundException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-public class EventNotFoundException extends RuntimeException {
- private static final String NOT_FOUND = "Not found an event with id: ";
-
- public EventNotFoundException(String eventId) {
- super(NOT_FOUND + eventId);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/FilesystemTemplateReader.java b/src/main/java/org/onap/pnfsimulator/simulator/FilesystemTemplateReader.java
deleted file mode 100644
index a405a2e..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/FilesystemTemplateReader.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-class FilesystemTemplateReader implements TemplateReader {
-
- private final Path templatesDir;
- private final Gson gson;
-
- @Autowired
- FilesystemTemplateReader(@Value("${templates.dir}") String templatesDir, Gson gson) {
- this.templatesDir = Paths.get(templatesDir);
- this.gson = gson;
- }
-
- public JsonObject readTemplate(String templateFileName) throws IOException {
- Path absTemplateFilePath = templatesDir.resolve(templateFileName);
- try (Stream<String> lines = Files.lines(absTemplateFilePath)) {
- String content = lines.collect(Collectors.joining("\n"));
- return gson.fromJson(content, JsonObject.class);
- }
- }
-}
-
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/IncrementProvider.java b/src/main/java/org/onap/pnfsimulator/simulator/IncrementProvider.java
deleted file mode 100644
index 4a7cf02..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/IncrementProvider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-@FunctionalInterface
-public interface IncrementProvider {
- int getAndIncrement(String id);
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/IncrementProviderImpl.java b/src/main/java/org/onap/pnfsimulator/simulator/IncrementProviderImpl.java
deleted file mode 100644
index 9d4d3ec..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/IncrementProviderImpl.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-import org.onap.pnfsimulator.event.EventData;
-import org.onap.pnfsimulator.event.EventDataRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class IncrementProviderImpl implements IncrementProvider {
- private final EventDataRepository repository;
-
- @Autowired
- public IncrementProviderImpl(EventDataRepository repository) {
- this.repository = repository;
- }
-
- @Override
- public int getAndIncrement(String id) {
- EventData eventData = repository.findById(id)
- .orElseThrow(() -> new EventNotFoundException(id));
- int value = eventData.getIncrementValue() + 1;
- eventData.setIncrementValue(value);
- repository.save(eventData);
- return value;
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/JsonTokenProcessor.java b/src/main/java/org/onap/pnfsimulator/simulator/JsonTokenProcessor.java
deleted file mode 100644
index da0026a..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/JsonTokenProcessor.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator;
-
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonToken;
-import com.google.gson.stream.JsonWriter;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.stream.Collectors;
-
-public enum JsonTokenProcessor {
- STRING(JsonToken.STRING) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- String originalString = reader.nextString();
- if (keywordsExtractor.isPrimitive(originalString)) {
- writer.value(keywordsExtractor.substitutePrimitiveKeyword(originalString));
- } else {
- String possibleSubstitution = Arrays.stream(originalString.split(" "))
- .map(singleWord -> keywordsExtractor.substituteStringKeyword(singleWord, incrementValue)).collect(
- Collectors.joining(" "));
- writer.value(originalString.equals(possibleSubstitution) ? originalString : possibleSubstitution);
- }
- }
- },
- BEGIN_ARRAY(JsonToken.BEGIN_ARRAY) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- reader.beginArray();
- writer.beginArray();
- }
- },
- END_ARRAY(JsonToken.END_ARRAY) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- reader.endArray();
- writer.endArray();
- }
- },
- BEGIN_OBJECT(JsonToken.BEGIN_OBJECT) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- reader.beginObject();
- writer.beginObject();
- }
- },
- END_OBJECT(JsonToken.END_OBJECT) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- reader.endObject();
- writer.endObject();
- }
- },
- NAME(JsonToken.NAME) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- writer.name(reader.nextName());
- }
- },
- NUMBER(JsonToken.NUMBER) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- writer.value(new BigDecimal(reader.nextString()));
- }
- },
- BOOLEAN(JsonToken.BOOLEAN) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- writer.value(reader.nextBoolean());
- }
- },
- NULL(JsonToken.NULL) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- reader.nextNull();
- writer.nullValue();
- }
- },
- END_DOCUMENT(JsonToken.END_DOCUMENT) {
- @Override
- void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor)
- throws IOException {
- // do nothing
- }
- };
-
- private JsonToken jsonToken;
-
- JsonTokenProcessor(JsonToken jsonToken) {
- this.jsonToken = jsonToken;
- }
-
- boolean isProcessorFor(JsonToken jsonToken) {
- return this.jsonToken == jsonToken;
- }
-
- abstract void process(JsonReader reader, JsonWriter writer, int incrementValue, KeywordsExtractor keywordsExtractor) throws IOException;
-
- private static final String INVALID_JSON_BODY_UNSUPPORTED_JSON_TOKEN = "Invalid json body. Unsupported JsonToken.";
-
- static JsonTokenProcessor getProcessorFor(JsonToken jsonToken) throws IOException {
- return Arrays.stream(JsonTokenProcessor.values()).filter(processor -> processor.isProcessorFor(jsonToken)).findFirst()
- .orElseThrow(() -> new IOException(INVALID_JSON_BODY_UNSUPPORTED_JSON_TOKEN));
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsExtractor.java b/src/main/java/org/onap/pnfsimulator/simulator/KeywordsExtractor.java
deleted file mode 100644
index 2dc52a1..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsExtractor.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator;
-
-import static io.vavr.API.$;
-import static io.vavr.API.Case;
-import static io.vavr.API.Match;
-import static org.onap.pnfsimulator.simulator.KeywordsValueProvider.getEpochSecond;
-import static org.onap.pnfsimulator.simulator.KeywordsValueProvider.getRandomLimitedInteger;
-import static org.onap.pnfsimulator.simulator.KeywordsValueProvider.getRandomInteger;
-import static org.onap.pnfsimulator.simulator.KeywordsValueProvider.getRandomLimitedString;
-import static org.onap.pnfsimulator.simulator.KeywordsValueProvider.getRandomString;
-import static org.onap.pnfsimulator.simulator.KeywordsValueProvider.getRandomPrimitiveInteger;
-import static org.onap.pnfsimulator.simulator.KeywordsValueProvider.getTimestampPrimitive;
-import static org.onap.pnfsimulator.simulator.keywords.NonParameterKeywordPatterns.$nonParameterKeyword;
-import static org.onap.pnfsimulator.simulator.keywords.SingleParameterKeywordPatterns.$singleParameterKeyword;
-import static org.onap.pnfsimulator.simulator.keywords.TwoParameterKeywordPatterns.$twoParameterKeyword;
-
-import io.vavr.API.Match.Pattern1;
-import org.onap.pnfsimulator.simulator.keywords.Keyword;
-import org.onap.pnfsimulator.simulator.keywords.NonParameterKeyword;
-import org.onap.pnfsimulator.simulator.keywords.SingleParameterKeyword;
-import org.onap.pnfsimulator.simulator.keywords.TwoParameterKeyword;
-import org.springframework.stereotype.Component;
-
-@Component
-public class KeywordsExtractor {
-
- String substituteStringKeyword(String text, int increment) {
- return Match(text).of(
- Case(isRandomStringParamKeyword(),
- spk -> spk.substituteKeyword(getRandomString().apply(spk.getAdditionalParameter()))
- ),
- Case(isRandomStringNonParamKeyword(),
- npk -> npk.substituteKeyword(getRandomLimitedString().apply())
- ),
- Case(isRandomIntegerParamKeyword(),
- tpk -> tpk.substituteKeyword(getRandomInteger().apply(
- tpk.getAdditionalParameter1(),
- tpk.getAdditionalParameter2()
- )
- )
- ),
- Case(isRandomIntegerNonParamKeyword(),
- npk -> npk.substituteKeyword(getRandomLimitedInteger().apply())
- ),
- Case(isIncrementKeyword(),
- ik -> ik.substituteKeyword(String.valueOf(increment))
- ),
- Case(isTimestampNonParamKeyword(),
- npk -> npk.substituteKeyword(getEpochSecond().apply())
- ),
- Case(
- $(),
- () -> text
- ));
- }
-
- Long substitutePrimitiveKeyword(String text) {
- return Match(text).of(
- Case(isRandomPrimitiveIntegerParamKeyword(),
- tpk ->
- getRandomPrimitiveInteger().apply(tpk.getAdditionalParameter1(), tpk.getAdditionalParameter2())),
- Case(isTimestampPrimitiveNonParamKeyword(),
- tpk ->
- getTimestampPrimitive().apply()),
- Case(
- $(),
- () -> 0L
- ));
- }
-
- boolean isPrimitive(String text) {
- return Match(text).of(
- Case(isRandomPrimitiveIntegerParamKeyword(), () -> true),
- Case(isTimestampPrimitiveNonParamKeyword(), () -> true),
- Case($(), () -> false));
- }
-
- private Pattern1<String, SingleParameterKeyword> isRandomStringParamKeyword() {
- return $singleParameterKeyword($(spk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(spk, "RandomString")));
- }
-
- private Pattern1<String, NonParameterKeyword> isRandomStringNonParamKeyword() {
- return $nonParameterKeyword($(npk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(npk, "RandomString")));
- }
-
- private Pattern1<String, NonParameterKeyword> isIncrementKeyword() {
- return $nonParameterKeyword($(npk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(npk, "Increment")));
- }
-
- private Pattern1<String, TwoParameterKeyword> isRandomIntegerParamKeyword() {
- return $twoParameterKeyword($(tpk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(tpk, "RandomInteger")));
- }
-
- private Pattern1<String, TwoParameterKeyword> isRandomPrimitiveIntegerParamKeyword() {
- return $twoParameterKeyword($(tpk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(tpk, "RandomPrimitiveInteger")));
- }
-
- private Pattern1<String, NonParameterKeyword> isTimestampPrimitiveNonParamKeyword() {
- return $nonParameterKeyword($(npk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(npk, "TimestampPrimitive")));
- }
-
- private Pattern1<String, NonParameterKeyword> isRandomIntegerNonParamKeyword() {
- return $nonParameterKeyword($(npk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(npk, "RandomInteger")));
- }
-
- private Pattern1<String, NonParameterKeyword> isTimestampNonParamKeyword() {
- return $nonParameterKeyword($(npk -> Keyword.IS_MATCHING_KEYWORD_NAME.apply(npk, "Timestamp")));
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandler.java b/src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandler.java
deleted file mode 100644
index ac80647..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandler.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonToken;
-import com.google.gson.stream.JsonWriter;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import org.springframework.stereotype.Component;
-
-@Component
-public class KeywordsHandler {
-
- private KeywordsExtractor keywordsExtractor;
- private IncrementProvider incrementProvider;
-
- public KeywordsHandler(KeywordsExtractor keywordsExtractor, IncrementProvider incrementProvider) {
- this.keywordsExtractor = keywordsExtractor;
- this.incrementProvider = incrementProvider;
- }
-
- public JsonElement substituteKeywords(JsonElement jsonBody, String jobId) {
- int counter = incrementProvider.getAndIncrement(jobId);
- try (
- JsonReader reader = new JsonReader(new StringReader(jsonBody.toString()));
- StringWriter stringWriter = new StringWriter();
- JsonWriter jsonWriter = new JsonWriter(stringWriter);
- ) {
- modify(reader, jsonWriter, counter);
- return new Gson().fromJson(stringWriter.getBuffer().toString(), JsonElement.class);
- } catch (IOException e) {
- throw new KeywordsHandlerException(e);
- }
- }
-
- private void modify(JsonReader reader, JsonWriter writer, int incrementValue) throws IOException {
- JsonTokenProcessor jsonTokenProcessor;
- do {
- JsonToken token = reader.peek();
- jsonTokenProcessor = JsonTokenProcessor.getProcessorFor(token);
- jsonTokenProcessor.process(reader, writer, incrementValue, keywordsExtractor);
- } while (isJsonProcessingFinished(jsonTokenProcessor));
- }
-
- private boolean isJsonProcessingFinished(JsonTokenProcessor jsonTokenProcessor) {
- return !jsonTokenProcessor.isProcessorFor(JsonToken.END_DOCUMENT);
- }
-
-}
-
-
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandlerException.java b/src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandlerException.java
deleted file mode 100644
index 9685bc3..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsHandlerException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-public class KeywordsHandlerException extends RuntimeException {
-
- public KeywordsHandlerException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsValueProvider.java b/src/main/java/org/onap/pnfsimulator/simulator/KeywordsValueProvider.java
deleted file mode 100644
index 3bcfa5b..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/KeywordsValueProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator;
-
-import io.vavr.Function0;
-import io.vavr.Function1;
-import io.vavr.Function2;
-
-import java.time.Instant;
-import java.util.Random;
-
-import org.apache.commons.lang3.RandomStringUtils;
-
-class KeywordsValueProvider {
-
- private KeywordsValueProvider() {
- }
-
- static final int DEFAULT_STRING_LENGTH = 20;
- public static final int RANDOM_INTEGER_MAX_LIMITATION = 9;
- public static final int RANDOM_INTEGER_MIN_LIMITATION = 0;
-
- private static Function2<Integer, Integer, Integer> bigger = (left, right) -> left >= right ? left : right;
- private static Function2<Integer, Integer, Integer> smaller = (left, right) -> left < right ? left : right;
- private static Function2<Integer, Integer, Integer> randomPrimitiveIntegerFromSortedRange = (min, max) -> new Random().nextInt(max - min + 1) + min;
- private static Function2<Integer, Integer, String> randomIntegerFromSortedRange = (min, max) -> Integer.toString(new Random().nextInt(max - min + 1) + min);
-
- private static Function1<Integer, String> randomString = RandomStringUtils::randomAscii;
- private static Function2<Integer, Integer, String> randomInteger = (left, right) -> randomIntegerFromSortedRange.apply(smaller.apply(left, right), bigger.apply(left, right));
- private static Function0<String> randomLimitedInteger = () -> randomInteger.apply(RANDOM_INTEGER_MIN_LIMITATION, RANDOM_INTEGER_MAX_LIMITATION);
- private static Function0<String> randomLimitedString = () -> RandomStringUtils.randomAscii(DEFAULT_STRING_LENGTH);
- private static Function0<String> epochSecond = () -> Long.toString(Instant.now().getEpochSecond());
- private static Function2<Integer, Integer, Long> randomPrimitiveInteger = (left, right) -> randomPrimitiveIntegerFromSortedRange.apply(smaller.apply(left, right), bigger.apply(left, right)).longValue();
- private static Function0<Long> timestampPrimitive = () -> Instant.now().getEpochSecond();
-
- public static Function1<Integer, String> getRandomString() {
- return randomString;
- }
-
- public static Function2<Integer, Integer, String> getRandomInteger() {
- return randomInteger;
- }
-
- public static Function0<String> getRandomLimitedInteger() {
- return randomLimitedInteger;
- }
-
- public static Function0<String> getRandomLimitedString() {
- return randomLimitedString;
- }
-
- public static Function0<String> getEpochSecond() {
- return epochSecond;
- }
-
- public static Function2<Integer, Integer, Long> getRandomPrimitiveInteger() {
- return randomPrimitiveInteger;
- }
-
- public static Function0<Long> getTimestampPrimitive() {
- return timestampPrimitive;
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/SimulatorService.java b/src/main/java/org/onap/pnfsimulator/simulator/SimulatorService.java
deleted file mode 100644
index 218dbc8..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/SimulatorService.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-import com.google.common.base.Strings;
-import com.google.gson.JsonObject;
-import org.onap.pnfsimulator.event.EventData;
-import org.onap.pnfsimulator.event.EventDataService;
-import org.onap.pnfsimulator.rest.model.FullEvent;
-import org.onap.pnfsimulator.rest.model.SimulatorParams;
-import org.onap.pnfsimulator.rest.model.SimulatorRequest;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapter;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapterImpl;
-import org.onap.pnfsimulator.simulator.client.HttpResponseAdapter;
-import org.onap.pnfsimulator.simulator.client.utils.ssl.SslAuthenticationHelper;
-import org.onap.pnfsimulator.simulator.scheduler.EventScheduler;
-import org.onap.pnfsimulator.simulatorconfig.SimulatorConfig;
-import org.onap.pnfsimulator.simulatorconfig.SimulatorConfigService;
-import org.quartz.SchedulerException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.util.Optional;
-
-@Service
-public class SimulatorService {
-
- private final TemplatePatcher templatePatcher;
- private final TemplateVariablesReplacer templateVariablesReplacer;
- private final TemplateReader templateReader;
- private final EventDataService eventDataService;
- private final EventScheduler eventScheduler;
- private final SslAuthenticationHelper sslAuthenticationHelper;
- private SimulatorConfigService simulatorConfigService;
- private static final JsonObject EMPTY_JSON_OBJECT = new JsonObject();
-
- @Autowired
- public SimulatorService(
- TemplatePatcher templatePatcher,
- TemplateReader templateReader,
- EventScheduler eventScheduler,
- EventDataService eventDataService,
- SimulatorConfigService simulatorConfigService,
- TemplateVariablesReplacer templateVariablesReplacer,
- SslAuthenticationHelper sslAuthenticationHelper) {
- this.templatePatcher = templatePatcher;
- this.templateReader = templateReader;
- this.eventDataService = eventDataService;
- this.eventScheduler = eventScheduler;
- this.simulatorConfigService = simulatorConfigService;
- this.templateVariablesReplacer = templateVariablesReplacer;
- this.sslAuthenticationHelper = sslAuthenticationHelper;
- }
-
- public String triggerEvent(SimulatorRequest simulatorRequest) throws IOException, SchedulerException, GeneralSecurityException {
- String templateName = simulatorRequest.getTemplateName();
- SimulatorParams simulatorParams = simulatorRequest.getSimulatorParams();
- JsonObject template = templateReader.readTemplate(templateName);
- JsonObject input = Optional.ofNullable(simulatorRequest.getPatch()).orElse(new JsonObject());
- JsonObject patchedJson = templatePatcher
- .mergeTemplateWithPatch(template, input);
- JsonObject variables = Optional.ofNullable(simulatorRequest.getVariables()).orElse(new JsonObject());
- JsonObject patchedJsonWithVariablesSubstituted = templateVariablesReplacer.substituteVariables(patchedJson, variables);
-
- JsonObject keywords = new JsonObject();
-
- EventData eventData = eventDataService.persistEventData(template, patchedJsonWithVariablesSubstituted, input, keywords);
-
- String targetVesUrl = getDefaultUrlIfNotProvided(simulatorParams.getVesServerUrl());
- return eventScheduler
- .scheduleEvent(targetVesUrl, Optional.ofNullable(simulatorParams.getRepeatInterval()).orElse(1),
- Optional.ofNullable(simulatorParams.getRepeatCount()).orElse(1), simulatorRequest.getTemplateName(),
- eventData.getId(),
- patchedJsonWithVariablesSubstituted);
- }
-
- public HttpResponseAdapter triggerOneTimeEvent(FullEvent event) throws IOException, GeneralSecurityException {
- KeywordsHandler keywordsHandler = new KeywordsHandler(new KeywordsExtractor(), id -> 1);
- JsonObject withKeywordsSubstituted = keywordsHandler.substituteKeywords(event.getEvent(), "").getAsJsonObject();
-
- HttpClientAdapter client = createHttpClientAdapter(event.getVesServerUrl());
- eventDataService.persistEventData(EMPTY_JSON_OBJECT, withKeywordsSubstituted, event.getEvent(), EMPTY_JSON_OBJECT);
-
- return client.send(withKeywordsSubstituted.toString());
- }
-
- public SimulatorConfig getConfiguration() {
- return simulatorConfigService.getConfiguration();
- }
-
- public SimulatorConfig updateConfiguration(SimulatorConfig newConfig) {
- return simulatorConfigService.updateConfiguration(newConfig);
- }
-
- public boolean cancelAllEvents() throws SchedulerException {
- return eventScheduler.cancelAllEvents();
- }
-
- public boolean cancelEvent(String jobName) throws SchedulerException {
- return eventScheduler.cancelEvent(jobName);
- }
-
- HttpClientAdapter createHttpClientAdapter(String vesServerUrl) throws IOException, GeneralSecurityException {
- String targetVesUrl = getDefaultUrlIfNotProvided(vesServerUrl);
- return new HttpClientAdapterImpl(targetVesUrl, sslAuthenticationHelper);
- }
-
- private String getDefaultUrlIfNotProvided(String vesUrlSimulatorParam) {
- return Strings.isNullOrEmpty(vesUrlSimulatorParam)
- ? simulatorConfigService.getConfiguration().getVesServerUrl().toString() : vesUrlSimulatorParam;
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/TemplatePatcher.java b/src/main/java/org/onap/pnfsimulator/simulator/TemplatePatcher.java
deleted file mode 100644
index 1114d3c..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/TemplatePatcher.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-@Component
-class TemplatePatcher {
-
- JsonObject mergeTemplateWithPatch(JsonObject templateJson, JsonObject patchJson) {
- JsonObject template = templateJson.deepCopy();
- patchTemplateNode(template, patchJson);
- return template;
- }
-
- private void patchTemplateNode(JsonObject templateJson, JsonObject patchJson) {
- for (Map.Entry<String, JsonElement> stringJsonElementEntry : patchJson.entrySet()) {
- String patchKey = stringJsonElementEntry.getKey();
- JsonElement patchValue = stringJsonElementEntry.getValue();
- JsonElement templateElement = templateJson.get(patchKey);
-
- if (!patchValue.isJsonObject() || templateElement == null || !templateElement.isJsonObject()) {
- templateJson.remove(patchKey);
- templateJson.add(patchKey, patchValue);
- } else {
- patchTemplateNode(templateElement.getAsJsonObject(), patchValue.getAsJsonObject());
- }
-
- }
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/TemplateReader.java b/src/main/java/org/onap/pnfsimulator/simulator/TemplateReader.java
deleted file mode 100644
index 2471c08..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/TemplateReader.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator;
-
-import com.google.gson.JsonObject;
-
-import java.io.IOException;
-
-public interface TemplateReader {
- JsonObject readTemplate(String templateName) throws IOException;
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/TemplateVariablesReplacer.java b/src/main/java/org/onap/pnfsimulator/simulator/TemplateVariablesReplacer.java
deleted file mode 100644
index eb0b141..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/TemplateVariablesReplacer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.util.Map.Entry;
-
-import lombok.val;
-import org.springframework.stereotype.Component;
-
-@Component
-public class TemplateVariablesReplacer {
- private static final Gson GSON = new Gson();
- private static final String OBJECT_KEYWORD_MARK = "#";
- private static final String ESCAPED_QUOTE = "\"";
- private static final String STRING_KEYWORD_MARK = ESCAPED_QUOTE + OBJECT_KEYWORD_MARK + "%s" + ESCAPED_QUOTE;
-
- JsonObject substituteVariables(JsonObject source, JsonObject variables) {
- var result = source.toString();
- for (val variable : variables.entrySet()) {
- result = substituteVariable(result, variable);
- }
- return GSON.fromJson(result, JsonObject.class);
- }
-
- private String substituteVariable(String sourceAsString, Entry<String, JsonElement> variable) {
- return sourceAsString.replaceAll(String.format(STRING_KEYWORD_MARK, variable.getKey()), variable.getValue().toString());
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpApacheResponseAdapterFactory.java b/src/main/java/org/onap/pnfsimulator/simulator/client/HttpApacheResponseAdapterFactory.java
deleted file mode 100644
index 36ba922..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpApacheResponseAdapterFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2021 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client;
-
-import org.apache.http.HttpResponse;
-import org.apache.http.util.EntityUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class HttpApacheResponseAdapterFactory {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(HttpApacheResponseAdapterFactory.class);
-
- public HttpResponseAdapter create(HttpResponse response) {
- String message;
- try {
- message = EntityUtils.toString(response.getEntity());
- } catch (IllegalArgumentException | IOException e) {
- LOGGER.warn("Response from VES was empty");
- message = "";
- }
- return new HttpResponseAdapter(response.getStatusLine().getStatusCode(), message);
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java b/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java
deleted file mode 100644
index 8cb6aa2..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client;
-
-public interface HttpClientAdapter {
-
- HttpResponseAdapter send(String content);
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java b/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java
deleted file mode 100644
index ba668fc..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpClientAdapterImpl.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.http.HttpHeaders;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.util.EntityUtils;
-import org.onap.pnfsimulator.simulator.client.utils.ssl.HttpClientFactoryFacade;
-import org.onap.pnfsimulator.simulator.client.utils.ssl.SslAuthenticationHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.slf4j.Marker;
-import org.slf4j.MarkerFactory;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.charset.StandardCharsets;
-import java.security.GeneralSecurityException;
-import java.util.UUID;
-
-import static org.onap.pnfsimulator.logging.MdcVariables.REQUEST_ID;
-import static org.onap.pnfsimulator.logging.MdcVariables.X_INVOCATION_ID;
-import static org.onap.pnfsimulator.logging.MdcVariables.X_ONAP_REQUEST_ID;
-
-public class HttpClientAdapterImpl implements HttpClientAdapter {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(HttpClientAdapterImpl.class);
- private static final String CONTENT_TYPE = "Content-Type";
- private static final String APPLICATION_JSON = "application/json";
- private static final Marker INVOKE = MarkerFactory.getMarker("INVOKE");
- private static final HttpApacheResponseAdapterFactory responseFactory = new HttpApacheResponseAdapterFactory();
- private final HttpClient client;
- private final String targetUrl;
-
- public HttpClientAdapterImpl(String targetUrl, SslAuthenticationHelper sslAuthenticationHelper)
- throws IOException, GeneralSecurityException {
- this.client = HttpClientFactoryFacade.create(targetUrl, sslAuthenticationHelper);
- this.targetUrl = targetUrl;
- }
-
- HttpClientAdapterImpl(HttpClient client, String targetUrl) {
- this.client = client;
- this.targetUrl = targetUrl;
- }
-
- @Override
- public HttpResponseAdapter send(String content) {
- HttpResponseAdapter vesResponse;
- try {
- HttpResponse response = sendAndRetrieve(content);
- LOGGER.info(INVOKE, "Message sent, ves response code: {}", response.getStatusLine());
- vesResponse = responseFactory.create(response);
- EntityUtils.consumeQuietly(response.getEntity()); //response has to be fully consumed otherwise apache won't release connection
- } catch (IOException | URISyntaxException e) {
- LOGGER.warn("Error sending message to ves: {}", e.getMessage(), e.getCause());
- vesResponse = new HttpResponseAdapter(421, String.format("Fail to connect with ves: %s", e.getMessage()));
- }
- return vesResponse;
- }
-
- private HttpResponse sendAndRetrieve(String content) throws IOException, URISyntaxException {
- HttpPost request = createRequest(content);
- HttpResponse httpResponse = client.execute(request);
- request.releaseConnection();
- return httpResponse;
- }
-
- private HttpPost createRequest(String content) throws UnsupportedEncodingException, URISyntaxException {
- LOGGER.info("sending request using address: {}", this.targetUrl);
- URI targetAddress = new URI(this.targetUrl);
- HttpPost request = new HttpPost(targetAddress);
- if(urlContainsUserInfo(targetAddress)) {
- request.addHeader(HttpHeaders.AUTHORIZATION, getAuthenticationHeaderForUser(targetAddress.getUserInfo()));
- }
- StringEntity stringEntity = new StringEntity(content);
- request.addHeader(CONTENT_TYPE, APPLICATION_JSON);
- request.addHeader(X_ONAP_REQUEST_ID, MDC.get(REQUEST_ID));
- request.addHeader(X_INVOCATION_ID, UUID.randomUUID().toString());
- request.setEntity(stringEntity);
- return request;
- }
-
- private boolean urlContainsUserInfo(URI targetAddress) {
- return targetAddress.getUserInfo() != null && !targetAddress.getUserInfo().isEmpty();
- }
-
- private String getAuthenticationHeaderForUser(String userInfo) {
- final byte[] encodedUserInfo = Base64.encodeBase64(
- userInfo.getBytes(StandardCharsets.ISO_8859_1)
- );
- return String.format("Basic %s", new String(encodedUserInfo));
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpResponseAdapter.java b/src/main/java/org/onap/pnfsimulator/simulator/client/HttpResponseAdapter.java
deleted file mode 100644
index e78b8a3..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/HttpResponseAdapter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2021 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client;
-
-public class HttpResponseAdapter {
-
- private final int code;
- private final String message;
-
- public HttpResponseAdapter(int code, String message) {
- this.code = code;
- this.message = message;
- }
-
- public int getCode() {
- return code;
- }
-
- public String getMessage() {
- return message;
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertAuthSslContextFactory.java b/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertAuthSslContextFactory.java
deleted file mode 100644
index 72af9e5..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertAuthSslContextFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client.utils.ssl;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.security.KeyStore;
-import javax.net.ssl.SSLContext;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.ssl.SSLContexts;
-
-class CertAuthSslContextFactory {
-
- private final CertificateReader certificateReader;
-
- CertAuthSslContextFactory(CertificateReader certificateReader) {
- this.certificateReader = certificateReader;
- }
-
- SSLContext createSslContext(SslAuthenticationHelper sslAuthenticationHelper)
- throws GeneralSecurityException, IOException {
- final String keystorePasswordPath = sslAuthenticationHelper.getClientCertificatePasswordPath();
-
- final KeyStore keystore = certificateReader.read(sslAuthenticationHelper.getClientCertificatePath(),
- keystorePasswordPath, "PKCS12");
- final KeyStore truststore = certificateReader.read(sslAuthenticationHelper.getTrustStorePath(),
- sslAuthenticationHelper.getTrustStorePasswordPath(), "JKS");
-
- return SSLContexts.custom()
- .loadKeyMaterial(keystore, certificateReader.readPassword(keystorePasswordPath))
- .loadTrustMaterial(truststore, new TrustSelfSignedStrategy())
- .build();
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertificateReader.java b/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertificateReader.java
deleted file mode 100644
index a42114b..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/CertificateReader.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client.utils.ssl;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.security.GeneralSecurityException;
-import java.security.KeyStore;
-
-class CertificateReader {
-
- KeyStore read(String certificatePath, String passwordPath, String type) throws GeneralSecurityException, IOException {
- try (InputStream keyStoreStream = new FileInputStream(certificatePath)) {
- KeyStore keyStore = KeyStore.getInstance(type);
- keyStore.load(keyStoreStream, readPassword(passwordPath));
- return keyStore;
- }
- }
-
- char[] readPassword(String passwordPath) throws IOException {
- final String password = Files.readString(Path.of(passwordPath));
- return PasswordConverter.convert(password);
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactory.java b/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactory.java
deleted file mode 100644
index ca57a64..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactory.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client.utils.ssl;
-
-import io.vavr.control.Try;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.conn.ssl.DefaultHostnameVerifier;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.impl.client.HttpClients;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.SSLContext;
-import java.io.IOException;
-import java.net.URL;
-import java.security.GeneralSecurityException;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-
-class HttpClientFactory {
- private static final int CONNECTION_TIMEOUT = 1000;
- private static final RequestConfig CONFIG = RequestConfig.custom()
- .setConnectTimeout(CONNECTION_TIMEOUT)
- .setConnectionRequestTimeout(CONNECTION_TIMEOUT)
- .setSocketTimeout(CONNECTION_TIMEOUT)
- .build();
- private static final Logger LOGGER = LoggerFactory.getLogger(HttpClientFactory.class);
- private final SSLContextFactory sslContextFactory;
-
- HttpClientFactory(SSLContextFactory sslContextFactory) {
- this.sslContextFactory = sslContextFactory;
- }
-
- HttpClient create(String url, SslAuthenticationHelper sslAuthenticationHelper) throws GeneralSecurityException, IOException {
- HttpClient client;
- if (!sslAuthenticationHelper.isClientCertificateEnabled()) {
- client = "https".equals(new URL(url).getProtocol()) ? createForHttps() : createBasic();
- } else if (sslAuthenticationHelper.isStrictHostnameVerification()) {
- client = createSecured(sslContextFactory.create(sslAuthenticationHelper), new DefaultHostnameVerifier());
- } else {
- client = createSecured(sslContextFactory.create(sslAuthenticationHelper), new NoopHostnameVerifier());
- }
- return client;
- }
-
- private HttpClient createForHttps() {
- return Try.of(this::createSecuredTrustAlways)
- .onFailure(this::logErrorMessage)
- .getOrElse(createBasic());
- }
-
- private void logErrorMessage(Throwable e) {
- String message = String.format(
- "Could not initialize client due to SSL exception: %s. " +
- "Default client without SSL support will be used instead." +
- "\nCause: %s",
- e.getMessage(),
- e.getCause()
- );
- LOGGER.error(message, e);
- }
-
-
- private HttpClient createBasic() {
- return HttpClientBuilder
- .create()
- .setDefaultRequestConfig(CONFIG)
- .build();
- }
-
- private HttpClient createSecuredTrustAlways() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
- return createSecured(sslContextFactory.createTrustAlways(), new NoopHostnameVerifier());
- }
-
- private HttpClient createSecured(SSLContext trustAlways, HostnameVerifier hostnameVerifier) {
- return HttpClients.custom()
- .setSSLContext(trustAlways)
- .setDefaultRequestConfig(CONFIG)
- .setSSLHostnameVerifier(hostnameVerifier)
- .build();
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactoryFacade.java b/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactoryFacade.java
deleted file mode 100644
index dffd635..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/HttpClientFactoryFacade.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client.utils.ssl;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import org.apache.http.client.HttpClient;
-
-public class HttpClientFactoryFacade {
-
- private HttpClientFactoryFacade() {
- }
-
- private static final CertificateReader CERTIFICATE_READER = new CertificateReader();
- private static final CertAuthSslContextFactory CERT_AUTH_SSL_CONTEXT_FACTORY = new CertAuthSslContextFactory(CERTIFICATE_READER);
- private static final SSLContextFactory SSL_CONTEXT_FACTORY = new SSLContextFactory(CERT_AUTH_SSL_CONTEXT_FACTORY);
- private static final HttpClientFactory HTTP_CLIENT_FACTORY = new HttpClientFactory(SSL_CONTEXT_FACTORY);
-
- public static HttpClient create(String url, SslAuthenticationHelper sslAuthenticationHelper) throws GeneralSecurityException, IOException {
- return HTTP_CLIENT_FACTORY.create(url, sslAuthenticationHelper);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/PasswordConverter.java b/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/PasswordConverter.java
deleted file mode 100644
index 7a645ae..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/PasswordConverter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.client.utils.ssl;
-
-import java.util.Optional;
-
-class PasswordConverter {
- private PasswordConverter() {
- }
-
- static char[] convert(String password) {
- return Optional.ofNullable(password).map(String::toCharArray).orElse(null);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SSLContextFactory.java b/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SSLContextFactory.java
deleted file mode 100644
index b8dfe6f..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SSLContextFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.client.utils.ssl;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import javax.net.ssl.SSLContext;
-import org.apache.http.conn.ssl.TrustAllStrategy;
-import org.apache.http.conn.ssl.TrustStrategy;
-import org.apache.http.ssl.SSLContextBuilder;
-
-class SSLContextFactory {
- private static final TrustStrategy TRUST_STRATEGY_ALWAYS = new TrustAllStrategy();
-
- private final CertAuthSslContextFactory certAuthSslContextFactory;
-
- SSLContextFactory(CertAuthSslContextFactory certAuthSslContextFactory) {
- this.certAuthSslContextFactory = certAuthSslContextFactory;
- }
- SSLContext create(SslAuthenticationHelper sslAuthenticationHelper) throws GeneralSecurityException, IOException {
- return certAuthSslContextFactory.createSslContext(sslAuthenticationHelper);
- }
-
- SSLContext createTrustAlways() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
- return SSLContextBuilder.create().loadTrustMaterial(TRUST_STRATEGY_ALWAYS).build();
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SslAuthenticationHelper.java b/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SslAuthenticationHelper.java
deleted file mode 100644
index 271ad93..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/client/utils/ssl/SslAuthenticationHelper.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2020 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.client.utils.ssl;
-
-import java.io.Serializable;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.cloud.context.config.annotation.RefreshScope;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Component;
-
-@Component
-@ConfigurationProperties(prefix = "ssl")
-@RefreshScope
-@Primary
-@Getter
-@Setter
-public class SslAuthenticationHelper implements Serializable {
-
- private boolean clientCertificateEnabled;
- private boolean strictHostnameVerification;
- private String clientCertificatePath;
- private String clientCertificatePasswordPath;
- private String trustStorePath;
- private String trustStorePasswordPath;
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/keywords/Keyword.java b/src/main/java/org/onap/pnfsimulator/simulator/keywords/Keyword.java
deleted file mode 100644
index 1bb1332..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/keywords/Keyword.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.keywords;
-
-import io.vavr.Function1;
-import io.vavr.Function2;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import lombok.Getter;
-
-@Getter
-public class Keyword {
-
- protected static final String LETTERS_REGEX = "([a-zA-Z]+)";
- protected static final String NONLETTERS_REGEX = "([^a-zA-Z]+)";
-
- protected static final Function1<String, String> OPTIONAL =
- regex -> regex + "?";
-
- private final String name;
- private final List<String> meaningfulParts;
-
- public static final Function2<Keyword, String, Boolean> IS_MATCHING_KEYWORD_NAME = (keyword, key) ->
- keyword != null && keyword.getName() != null && keyword.getName().equals(key);
-
- /**
- * Returns list of independent parts inside the keyword. Current implementation assumes that customer can join keywords with integer values, so
- * keyword is decomposed to parts then some parts of the keyword is skipped because of replacement process.
- *
- * @param matcher - Matcher to check find independent groups inside the keyword
- * @param skipGroups Informs this method about which groups should be consider as part of the replacement process
- * @return list of independent parts inside the keywords
- */
- static List<String> extractPartsFrom(Matcher matcher, List<Integer> skipGroups) {
- List<String> parts = new ArrayList<>();
- for (int i = 1; i <= matcher.groupCount(); i++) {
- if (matcher.group(i) != null && !skipGroups.contains(i)) {
- parts.add(matcher.group(i));
- }
- }
- return parts;
- }
-
- Keyword(String name, List<String> meaningfulParts) {
- this.name = name;
- this.meaningfulParts = meaningfulParts;
- }
-
- public String substituteKeyword(String substitution) {
- return meaningfulParts.stream()
- .map(part -> part.equals(name) ? substitution : part)
- .collect(Collectors.joining());
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/keywords/NonParameterKeyword.java b/src/main/java/org/onap/pnfsimulator/simulator/keywords/NonParameterKeyword.java
deleted file mode 100644
index 5e44550..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/keywords/NonParameterKeyword.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.keywords;
-
-import io.vavr.Tuple;
-import io.vavr.Tuple1;
-import io.vavr.match.annotation.Patterns;
-import io.vavr.match.annotation.Unapply;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Pattern;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.val;
-
-@Patterns
-@Getter
-@Setter
-public class NonParameterKeyword extends Keyword {
-
- public static final int KEYWORD_NAME_GROUP = 2;
-
- private static final String KEYWORD_REGEX = new StringBuilder()
- .append(OPTIONAL.apply(NONLETTERS_REGEX))
- .append("#")
- .append(LETTERS_REGEX)
- .append("(?!\\()")
- .append(OPTIONAL.apply(NONLETTERS_REGEX))
- .toString();
-
- private NonParameterKeyword(String name, List<String> meaningfulParts) {
- super(name, meaningfulParts);
- }
-
- @Unapply
- static Tuple1<NonParameterKeyword> nonParameterKeyword(String keyword) {
- val matcher = Pattern.compile(KEYWORD_REGEX).matcher(keyword);
- NonParameterKeyword npk = null;
- if (matcher.find()) {
- npk = new NonParameterKeyword(
- matcher.group(KEYWORD_NAME_GROUP),
- extractPartsFrom(matcher, Collections.emptyList())
- );
- }
- return Tuple.of(npk);
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/keywords/SingleParameterKeyword.java b/src/main/java/org/onap/pnfsimulator/simulator/keywords/SingleParameterKeyword.java
deleted file mode 100644
index b1c38c8..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/keywords/SingleParameterKeyword.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.keywords;
-
-import io.vavr.Tuple;
-import io.vavr.Tuple1;
-import io.vavr.match.annotation.Patterns;
-import io.vavr.match.annotation.Unapply;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Pattern;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.val;
-
-@Patterns
-@Getter
-@Setter
-public class SingleParameterKeyword extends Keyword {
-
- public static final int KEYWORD_NAME_GROUP = 2;
- public static final int ADDITIONAL_PARAMETER_GROUP = 3;
-
- private static final String KEYWORD_REGEX = new StringBuilder()
- .append(OPTIONAL.apply(NONLETTERS_REGEX))
- .append("#")
- .append(LETTERS_REGEX)
- .append("\\((\\d+)\\)")
- .append(OPTIONAL.apply(NONLETTERS_REGEX))
- .toString();
- public static final int SKIPPED_GROUP_NUMBER = 3;
-
- private Integer additionalParameter;
-
- private SingleParameterKeyword(String name, List<String> meaningfulParts,
- Integer additionalParameter) {
- super(name, meaningfulParts);
- this.additionalParameter = additionalParameter;
- }
-
- @Unapply
- static Tuple1<SingleParameterKeyword> singleParameterKeyword(String keyword) {
- val matcher = Pattern.compile(KEYWORD_REGEX).matcher(keyword);
- SingleParameterKeyword spk = null;
- if (matcher.find()) {
- spk = new SingleParameterKeyword(
- matcher.group(KEYWORD_NAME_GROUP),
- extractPartsFrom(matcher, Collections.singletonList(SKIPPED_GROUP_NUMBER)),
- Integer.parseInt(matcher.group(ADDITIONAL_PARAMETER_GROUP))
- );
- }
- return Tuple.of(spk);
- }
-}
-
-
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/keywords/TwoParameterKeyword.java b/src/main/java/org/onap/pnfsimulator/simulator/keywords/TwoParameterKeyword.java
deleted file mode 100644
index 6fecfa6..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/keywords/TwoParameterKeyword.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.keywords;
-
-import io.vavr.Tuple;
-import io.vavr.Tuple1;
-import io.vavr.match.annotation.Patterns;
-import io.vavr.match.annotation.Unapply;
-import java.util.Arrays;
-import java.util.List;
-import java.util.regex.Pattern;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.val;
-
-@Patterns
-@Getter
-@Setter
-public class TwoParameterKeyword extends Keyword {
-
- public static final int ADDITIONAL_PARAMETER_1_GROUP = 3;
- public static final int ADDITIONAL_PARAMETER_2_GROUP = 4;
- public static final int KEYWORD_NAME_GROUP = 2;
- protected static final List<Integer> ADDITIONAL_PARAMETERS_GROUPS = Arrays.asList(ADDITIONAL_PARAMETER_1_GROUP, ADDITIONAL_PARAMETER_2_GROUP);
-
- private static final String NON_LIMITED_NUMBER_REGEX = "\\((\\d+)";
- private static final String COLON_REGEX = "\\s?,\\s?";
- private static final String OPTIONAL_NUMBER_PARAM_REGEX = "(\\d+)\\)";
-
- private static final String KEYWORD_REGEX = OPTIONAL.apply(NONLETTERS_REGEX)
- + "#"
- + LETTERS_REGEX
- + NON_LIMITED_NUMBER_REGEX
- + COLON_REGEX
- + OPTIONAL_NUMBER_PARAM_REGEX
- + OPTIONAL.apply(NONLETTERS_REGEX);
-
- private Integer additionalParameter1;
- private Integer additionalParameter2;
-
- private TwoParameterKeyword(String name, List<String> meaningfulParts, Integer additionalParameter1,
- Integer additionalParameter2) {
- super(name, meaningfulParts);
- this.additionalParameter1 = additionalParameter1;
- this.additionalParameter2 = additionalParameter2;
- }
-
- @Unapply
- static Tuple1<TwoParameterKeyword> twoParameterKeyword(String keyword) {
- val matcher = Pattern.compile(KEYWORD_REGEX).matcher(keyword);
- TwoParameterKeyword tpk = null;
- if (matcher.find()) {
- tpk = new TwoParameterKeyword(
- matcher.group(KEYWORD_NAME_GROUP),
- extractPartsFrom(matcher, ADDITIONAL_PARAMETERS_GROUPS),
- Integer.parseInt(matcher.group(ADDITIONAL_PARAMETER_1_GROUP)),
- Integer.parseInt(matcher.group(ADDITIONAL_PARAMETER_2_GROUP))
- );
- }
- return Tuple.of(tpk);
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java b/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java
deleted file mode 100644
index a467370..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventJob.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulator.scheduler;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import org.onap.pnfsimulator.simulator.KeywordsHandler;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapter;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapterImpl;
-import org.onap.pnfsimulator.simulator.client.utils.ssl.SslAuthenticationHelper;
-import org.quartz.Job;
-import org.quartz.JobDataMap;
-import org.quartz.JobExecutionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.security.GeneralSecurityException;
-import java.util.Optional;
-
-public class EventJob implements Job {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(EventJob.class);
-
- static final String TEMPLATE_NAME = "TEMPLATE_NAME";
- static final String VES_URL = "VES_URL";
- static final String BODY = "BODY";
- static final String CLIENT_ADAPTER = "CLIENT_ADAPTER";
- static final String KEYWORDS_HANDLER = "KEYWORDS_HANDLER";
- static final String EVENT_ID = "EVENT_ID";
-
- @Override
- public void execute(JobExecutionContext jobExecutionContext) {
- JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap();
- String templateName = jobDataMap.getString(TEMPLATE_NAME);
- String vesUrl = jobDataMap.getString(VES_URL);
- JsonObject body = (JsonObject) jobDataMap.get(BODY);
- String id = jobDataMap.getString(EVENT_ID);
- Optional<HttpClientAdapter> httpClientAdapter = getHttpClientAdapter(jobDataMap, vesUrl);
-
- if (httpClientAdapter.isPresent()) {
- KeywordsHandler keywordsHandler = (KeywordsHandler) jobDataMap.get(KEYWORDS_HANDLER);
- JsonElement processedBody = keywordsHandler.substituteKeywords(body, id);
- String processedBodyString = processedBody.toString();
- String jobKey = jobExecutionContext.getJobDetail().getKey().toString();
-
- logEventDetails(templateName, vesUrl, body.toString(), jobKey);
- httpClientAdapter.get().send(processedBodyString);
- } else {
- LOGGER.error("Could not send event as client is not available");
- }
- }
-
- private Optional<HttpClientAdapter> getHttpClientAdapter(JobDataMap jobDataMap, String vesUrl) {
- HttpClientAdapter adapter = null;
- try {
- adapter = (HttpClientAdapter) (jobDataMap.containsKey(CLIENT_ADAPTER) ? jobDataMap.get(CLIENT_ADAPTER)
- : new HttpClientAdapterImpl(vesUrl, new SslAuthenticationHelper()));
- adapter = (HttpClientAdapter) (
- jobDataMap.containsKey(CLIENT_ADAPTER)
- ? jobDataMap.get(CLIENT_ADAPTER)
- : new HttpClientAdapterImpl(vesUrl, new SslAuthenticationHelper())
- );
- } catch (MalformedURLException e) {
- LOGGER.error("Invalid format of vesServerUr: {}", vesUrl);
- } catch (IOException | GeneralSecurityException e) {
- LOGGER.error("Invalid configuration of client certificate");
- }
- return Optional.ofNullable(adapter);
- }
-
- private void logEventDetails(String templateName, String vesUrl, String body, String jobKey) {
- LOGGER.info("Job {}:Sending event to {} from template {}",
- jobKey, vesUrl, templateName);
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Job {}: Request body {}", jobKey, body);
- }
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java b/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java
deleted file mode 100644
index 5584cb1..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/EventScheduler.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.scheduler;
-
-
-import com.google.gson.JsonObject;
-import org.onap.pnfsimulator.simulator.KeywordsHandler;
-import org.onap.pnfsimulator.simulator.client.HttpClientAdapterImpl;
-import org.onap.pnfsimulator.simulator.client.utils.ssl.SslAuthenticationHelper;
-import org.quartz.JobBuilder;
-import org.quartz.JobDataMap;
-import org.quartz.JobDetail;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobKey;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.quartz.SimpleTrigger;
-import org.quartz.TriggerBuilder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.BODY;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.CLIENT_ADAPTER;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.EVENT_ID;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.KEYWORDS_HANDLER;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.TEMPLATE_NAME;
-import static org.onap.pnfsimulator.simulator.scheduler.EventJob.VES_URL;
-import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
-
-@Component
-public class EventScheduler {
-
-
- private final Scheduler scheduler;
- private final KeywordsHandler keywordsHandler;
- private final SslAuthenticationHelper sslAuthenticationHelper;
-
- @Autowired
- public EventScheduler(Scheduler scheduler, KeywordsHandler keywordsHandler, SslAuthenticationHelper sslAuthenticationHelper) {
- this.scheduler = scheduler;
- this.keywordsHandler = keywordsHandler;
- this.sslAuthenticationHelper = sslAuthenticationHelper;
- }
-
- public String scheduleEvent(String vesUrl, Integer repeatInterval, Integer repeatCount,
- String templateName, String eventId, JsonObject body)
- throws SchedulerException, IOException, GeneralSecurityException {
-
- JobDetail jobDetail = createJobDetail(vesUrl, templateName, eventId, body);
- SimpleTrigger trigger = createTrigger(repeatInterval, repeatCount);
-
- scheduler.scheduleJob(jobDetail, trigger);
- return jobDetail.getKey().getName();
- }
-
- public boolean cancelAllEvents() throws SchedulerException {
- List<JobKey> jobKeys = getActiveJobsKeys();
- return scheduler.deleteJobs(jobKeys);
- }
-
- public boolean cancelEvent(String jobName) throws SchedulerException {
- Optional<JobKey> activeJobKey = getActiveJobsKeys().stream().filter(e -> e.getName().equals(jobName)).findFirst();
- return activeJobKey.isPresent() && scheduler.deleteJob(activeJobKey.get());
- }
-
- private SimpleTrigger createTrigger(int interval, int repeatCount) {
- return TriggerBuilder.newTrigger()
- .withSchedule(simpleSchedule()
- .withIntervalInSeconds(interval)
- .withRepeatCount(repeatCount - 1))
- .build();
- }
-
- private JobDetail createJobDetail(String vesUrl, String templateName, String eventId, JsonObject body) throws IOException, GeneralSecurityException {
- JobDataMap jobDataMap = new JobDataMap();
- jobDataMap.put(TEMPLATE_NAME, templateName);
- jobDataMap.put(VES_URL, vesUrl);
- jobDataMap.put(EVENT_ID, eventId);
- jobDataMap.put(KEYWORDS_HANDLER, keywordsHandler);
- jobDataMap.put(BODY, body);
- jobDataMap.put(CLIENT_ADAPTER, new HttpClientAdapterImpl(vesUrl, sslAuthenticationHelper));
-
- return JobBuilder
- .newJob(EventJob.class)
- .withDescription(templateName)
- .usingJobData(jobDataMap)
- .build();
- }
-
- private List<JobKey> getActiveJobsKeys() throws SchedulerException {
- return scheduler.getCurrentlyExecutingJobs()
- .stream()
- .map(JobExecutionContext::getJobDetail)
- .map(JobDetail::getKey)
- .collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java b/src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java
deleted file mode 100644
index 2beb9dc..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulator/scheduler/QuartzConfiguration.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.pnfsimulator.simulator.scheduler;
-
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.quartz.impl.StdSchedulerFactory;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-class QuartzConfiguration {
-
- @Bean
- Scheduler provideScheduler() throws SchedulerException {
- StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
- Scheduler scheduler = stdSchedulerFactory.getScheduler();
- scheduler.start();
- return scheduler;
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfig.java b/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfig.java
deleted file mode 100644
index 0baa477..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfig.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulatorconfig;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import lombok.ToString;
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.mapping.Field;
-
-import javax.validation.constraints.NotNull;
-import java.net.URL;
-
-@Getter
-@Setter
-@AllArgsConstructor
-@NoArgsConstructor
-@ToString
-public class SimulatorConfig {
-
- @JsonIgnore
- @Id
- private String id;
-
- @NotNull
- @Field("vesServerUrl")
- private URL vesServerUrl;
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigRepository.java b/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigRepository.java
deleted file mode 100644
index 5e63ee4..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigRepository.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulatorconfig;
-
-import org.springframework.data.mongodb.repository.MongoRepository;
-
-public interface SimulatorConfigRepository extends MongoRepository<SimulatorConfig, String> {
-}
diff --git a/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigService.java b/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigService.java
deleted file mode 100644
index 2063351..0000000
--- a/src/main/java/org/onap/pnfsimulator/simulatorconfig/SimulatorConfigService.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.simulatorconfig;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-public class SimulatorConfigService {
-
- private final SimulatorConfigRepository repository;
-
- @Autowired
- public SimulatorConfigService(SimulatorConfigRepository repository) {
- this.repository = repository;
- }
-
-
- public SimulatorConfig getConfiguration() {
- List<SimulatorConfig> configs = repository.findAll();
- if (configs.isEmpty()) {
- throw new IllegalStateException("No configuration found in db");
- }
- return configs.get(0);
- }
-
- public SimulatorConfig updateConfiguration(SimulatorConfig configuration) {
- SimulatorConfig currentConfig = getConfiguration();
- currentConfig.setVesServerUrl(configuration.getVesServerUrl());
- return repository.save(currentConfig);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/FsToDbTemplateSynchronizer.java b/src/main/java/org/onap/pnfsimulator/template/FsToDbTemplateSynchronizer.java
deleted file mode 100644
index 0080813..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/FsToDbTemplateSynchronizer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template;
-
-import org.bson.json.JsonParseException;
-import org.onap.pnfsimulator.db.Storage;
-import org.onap.pnfsimulator.filesystem.WatcherEventProcessor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.stream.Stream;
-
-@Service
-public class FsToDbTemplateSynchronizer {
-
- private static final String CANNOT_SYNC = "Cannot synchronize templates. Check whether the proper folder exists.";
- private static final Logger LOGGER = LoggerFactory.getLogger(FsToDbTemplateSynchronizer.class);
-
- private final String templatesDir;
- private final Storage<Template> storage;
-
- @Autowired
- public FsToDbTemplateSynchronizer(@Value("${templates.dir}") String templatesDir,
- Storage<Template> storage) {
- this.templatesDir = templatesDir;
- this.storage = storage;
- }
-
- public void synchronize() {
- try {
- processTemplatesFolder();
- } catch (IOException e) {
- LOGGER.error(CANNOT_SYNC, e);
- }
- }
-
- private void processTemplatesFolder() throws IOException {
- try (Stream<Path> walk = Files.walk(Paths.get(templatesDir))) {
- walk.filter(Files::isRegularFile).forEach(path -> {
- try {
- WatcherEventProcessor.MODIFIED.processEvent(path, storage);
- } catch (IOException | JsonParseException e) {
- LOGGER
- .error("Cannot synchronize template: {}", path.getFileName(), e);
- }
- });
- }
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/Template.java b/src/main/java/org/onap/pnfsimulator/template/Template.java
deleted file mode 100644
index 121d7d4..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/Template.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template;
-
-import java.util.Objects;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-import org.onap.pnfsimulator.db.Row;
-import org.bson.Document;
-import org.onap.pnfsimulator.template.search.JsonUtils;
-import org.springframework.data.mongodb.core.mapping.Field;
-
-@NoArgsConstructor
-@ToString
-public class Template extends Row {
-
- @Field("content")
- private Document content;
-
- @Field("flatContent")
- private Document flatContent;
-
- @Field("lmod")
- private long lmod;
-
- public Template(String name, Document content, long lmod) {
- this.setId(name);
- this.content = content;
- this.lmod = lmod;
- this.flatContent = new JsonUtils().flatten(content);
- }
-
- public Template(String name, String template, long lmod) {
- this.setId(name);
- this.content = Document.parse(template);
- this.lmod = lmod;
- this.flatContent = new JsonUtils().flatten(this.content);
- }
-
- public void setContent(Document content) {
- this.content = content;
- this.flatContent = new JsonUtils().flatten(content);
- }
-
- public Document getContent() {
- return new Document(this.content);
- }
-
- @JsonIgnore
- public Document getFlatContent() {
- return new Document(this.flatContent);
- }
-
- @Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (object == null || getClass() != object.getClass()) {
- return false;
- }
- Template template = (Template) object;
- return Objects.equals(content, template.content)
- && Objects.equals(getId(), template.getId())
- && Objects.equals(lmod, template.lmod);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(content, getId());
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/TemplateRepository.java b/src/main/java/org/onap/pnfsimulator/template/TemplateRepository.java
deleted file mode 100644
index 78c9c77..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/TemplateRepository.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template;
-
-import org.springframework.data.mongodb.repository.MongoRepository;
-
-public interface TemplateRepository extends MongoRepository<Template, String> {
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/TemplateService.java b/src/main/java/org/onap/pnfsimulator/template/TemplateService.java
deleted file mode 100644
index 3e245e1..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/TemplateService.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template;
-
-import java.util.List;
-import java.util.Optional;
-
-import com.google.gson.JsonObject;
-import org.onap.pnfsimulator.db.Storage;
-import org.onap.pnfsimulator.template.search.TemplateSearchHelper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Service;
-
-@Primary
-@Service
-public class TemplateService implements Storage<Template> {
-
- private final TemplateRepository templateRepository;
- private TemplateSearchHelper searchHelper;
-
-
- @Autowired
- public TemplateService(TemplateRepository templateRepository, TemplateSearchHelper searchHelper) {
- this.templateRepository = templateRepository;
- this.searchHelper = searchHelper;
- }
-
- @Override
- public List<Template> getAll() {
- return templateRepository.findAll();
- }
-
- @Override
- public Optional<Template> get(String name) {
- return templateRepository.findById(name);
- }
-
- @Override
- public void persist(Template template) {
- templateRepository.save(template);
- }
-
- @Override
- public boolean tryPersistOrOverwrite(Template template, boolean overwrite) {
- if (templateRepository.existsById(template.getId()) && !overwrite) {
- return false;
- }
- templateRepository.save(template);
- return true;
- }
-
- @Override
- public void delete(String templateName) {
- templateRepository.deleteById(templateName);
- }
-
- @Override
- public List<String> getIdsByContentCriteria(JsonObject stringQueryJson) {
- return searchHelper.getIdsOfDocumentMatchingCriteria(stringQueryJson);
- }
-
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/search/IllegalJsonValueException.java b/src/main/java/org/onap/pnfsimulator/template/search/IllegalJsonValueException.java
deleted file mode 100644
index 1685536..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/search/IllegalJsonValueException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template.search;
-
-public class IllegalJsonValueException extends IllegalArgumentException {
-
- IllegalJsonValueException(String message) {
- super(message);
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/search/JsonUtils.java b/src/main/java/org/onap/pnfsimulator/template/search/JsonUtils.java
deleted file mode 100644
index b595b4f..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/search/JsonUtils.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template.search;
-
-import com.google.common.base.Strings;
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
-import org.bson.Document;
-
-/**
- * This util flattens nested json and produces json with keys transformed to form of json path
- * where default separator between parent object key and object key is ':'
- * For easing searching of boolean values, they are converted to its string representation
- */
-public class JsonUtils {
-
- private static final String DEFAULT_PARENT_KEY_TO_OBJECT_KEY_SEPARATOR = ":";
- private static final String SEED_PREFIX = "";
- private static final Gson GSON = new Gson();
-
- public JsonObject flatten(JsonObject original) {
- return flattenWithPrefixedKeys(DEFAULT_PARENT_KEY_TO_OBJECT_KEY_SEPARATOR, original.deepCopy(), SEED_PREFIX, new JsonObject());
- }
-
- public JsonObject flatten(String parentKeyToKeySeparator, JsonObject original) {
- return flattenWithPrefixedKeys(parentKeyToKeySeparator, original.deepCopy(), SEED_PREFIX, new JsonObject());
- }
-
- public Document flatten(Document original) {
- return flatten(DEFAULT_PARENT_KEY_TO_OBJECT_KEY_SEPARATOR, original);
- }
-
- public Document flatten(String parentKeyToKeySeparator, Document original) {
- JsonObject originalJsonObject = GSON.fromJson(original.toJson(), JsonObject.class);
- JsonObject flattenedJson = flatten(parentKeyToKeySeparator, originalJsonObject);
- return Document.parse(flattenedJson.toString());
- }
-
- private JsonObject flattenWithPrefixedKeys(String parentKeyToKeySeparator, JsonElement topLevelElem, String prefix, JsonObject acc) {
- if (topLevelElem.isJsonPrimitive()) {
- handleJsonPrimitive(topLevelElem, prefix, acc);
- } else if (topLevelElem.isJsonArray()) {
- handleJsonArray(parentKeyToKeySeparator, topLevelElem, prefix, acc);
- } else if (topLevelElem.isJsonObject()) {
- handleJsonObject(parentKeyToKeySeparator, topLevelElem, prefix, acc);
- } else {
- acc.add(prefix, topLevelElem.getAsJsonNull());
- }
- return acc.deepCopy();
- }
-
- private void handleJsonObject(String parentKeyToKeySeparator, JsonElement topLevelElem, String prefix, JsonObject acc) {
- boolean isEmpty = true;
- JsonObject thisToplevelObj = topLevelElem.getAsJsonObject();
- for (String key : thisToplevelObj.keySet()) {
- isEmpty = false;
- String keyPrefix = String.format("%s%s%s", prefix, parentKeyToKeySeparator, key);
- flattenWithPrefixedKeys(parentKeyToKeySeparator, thisToplevelObj.get(key), keyPrefix, acc);
- }
- if (isEmpty && !Strings.isNullOrEmpty(prefix)) {
- acc.add(prefix, new JsonObject());
- }
- }
-
- private void handleJsonArray(String parentKeyToKeySeparator, JsonElement topLevelElem, String prefix, JsonObject acc) {
- JsonArray asJsonArray = topLevelElem.getAsJsonArray();
- if (asJsonArray.size() == 0) {
- acc.add(prefix, new JsonArray());
- }
- for (int i = 0; i < asJsonArray.size(); i++) {
- flattenWithPrefixedKeys(parentKeyToKeySeparator, asJsonArray.get(i), String.format("%s[%s]", prefix, i), acc);
- }
- }
-
- private void handleJsonPrimitive(JsonElement topLevelElem, String prefix, JsonObject acc) {
- JsonPrimitive jsonPrimitive = topLevelElem.getAsJsonPrimitive();
- if (jsonPrimitive.isBoolean()) {
- acc.add(prefix, new JsonPrimitive(jsonPrimitive.getAsString()));
- } else {
- acc.add(prefix, topLevelElem.getAsJsonPrimitive());
- }
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/search/TemplateSearchHelper.java b/src/main/java/org/onap/pnfsimulator/template/search/TemplateSearchHelper.java
deleted file mode 100644
index 3f22b1a..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/search/TemplateSearchHelper.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template.search;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import org.onap.pnfsimulator.template.search.handler.PrimitiveValueCriteriaBuilder;
-import org.onap.pnfsimulator.template.search.viewmodel.FlatTemplateContent;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-@Component
-public class TemplateSearchHelper {
- private static final String PARENT_TO_CHILD_KEY_SEPARATOR = ":"; //compliant with flat json stored in db
- private static final String FLATTENED_JSON_KEY_REGEX = PARENT_TO_CHILD_KEY_SEPARATOR + "%s(?:(\\[[\\d]+\\]))?$";
- private static final String FLATTENED_TEMPLATES_VIEW = "flatTemplatesView";
-
- private MongoTemplate mongoTemplate;
- private PrimitiveValueCriteriaBuilder criteriaBuilder;
-
- @Autowired
- public TemplateSearchHelper(MongoTemplate mongoTemplate) {
- this.mongoTemplate = mongoTemplate;
- this.criteriaBuilder = new PrimitiveValueCriteriaBuilder();
- }
-
- public List<String> getIdsOfDocumentMatchingCriteria(JsonObject jsonCriteria) {
- if (isNullValuePresentInCriteria(jsonCriteria)) {
- throw new IllegalJsonValueException("Null values in search criteria are not supported.");
- }
- Criteria mongoDialectCriteria = composeCriteria(jsonCriteria);
- Query query = new Query(mongoDialectCriteria);
- List<FlatTemplateContent> flatTemplateContents = mongoTemplate.find(query, FlatTemplateContent.class, FLATTENED_TEMPLATES_VIEW);
- return flatTemplateContents
- .stream()
- .map(FlatTemplateContent::getId)
- .collect(Collectors.toList());
- }
-
-
- private Criteria composeCriteria(JsonObject criteria) {
- Criteria[] criteriaArr = criteria.entrySet()
- .stream()
- .map(this::mapEntryCriteriaWithRegex)
- .toArray(Criteria[]::new);
- return criteriaArr.length > 0 ? new Criteria().andOperator(criteriaArr) : new Criteria();
- }
-
- private Criteria mapEntryCriteriaWithRegex(Map.Entry<String, JsonElement> entry) {
- Pattern primitiveOrArrayElemKeyRegex = getCaseInsensitive(String.format(FLATTENED_JSON_KEY_REGEX, entry.getKey()));
- Criteria criteriaForJsonKey = Criteria.where("k").regex(primitiveOrArrayElemKeyRegex);
- Criteria criteriaWithValue = criteriaBuilder.applyValueCriteriaBasedOnPrimitiveType(criteriaForJsonKey.and("v"), entry.getValue().getAsJsonPrimitive());
- return Criteria.where("keyValues").elemMatch(criteriaWithValue);
-
- }
-
- private boolean isNullValuePresentInCriteria(JsonObject jsonObject) {
- return jsonObject.entrySet()
- .stream()
- .map(Map.Entry::getValue)
- .anyMatch(JsonElement::isJsonNull);
- }
-
- static Pattern getCaseInsensitive(String base) {
- return Pattern.compile(base, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
- }
-}
-
-
diff --git a/src/main/java/org/onap/pnfsimulator/template/search/handler/PrimitiveValueCriteriaBuilder.java b/src/main/java/org/onap/pnfsimulator/template/search/handler/PrimitiveValueCriteriaBuilder.java
deleted file mode 100644
index 79d64b7..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/search/handler/PrimitiveValueCriteriaBuilder.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template.search.handler;
-
-import com.google.common.collect.Lists;
-import com.google.gson.JsonPrimitive;
-import org.springframework.data.mongodb.core.query.Criteria;
-
-import java.util.List;
-import java.util.regex.Pattern;
-
-/**
- * This class is a helper class for constructing apropriate criteria for query send to mongodb based on type of value.
- * Query is build to search mongodb for templates that contains key-value pairs that satisfy given criteria.
- * Value is oftype JsonPrimitive, based on its primitive java type following criteria are build to get proper document:
- * -for string - there is a regex expression that ignores every meta character inside passed argument and searches for exact literal match ignoring case;
- * -for number - all numbers are treated as double (mongodb number type equivalent)
- * -for boolean - exact match, used string representation of boolean in search
- **/
-
-public class PrimitiveValueCriteriaBuilder {
-
- private final List<ValueTypeHandler> typeHandlers;
-
- public PrimitiveValueCriteriaBuilder() {
- typeHandlers = Lists.newArrayList(new StringValueHandler(), new NumberValueHandler(), new BoolValueHandler());
- }
-
- public Criteria applyValueCriteriaBasedOnPrimitiveType(Criteria baseCriteria, JsonPrimitive jsonPrimitive) {
- ValueTypeHandler typeHandler = typeHandlers.stream()
- .filter(el -> el.isProperTypeHandler(jsonPrimitive))
- .findFirst()
- .orElseThrow(() ->
- new IllegalArgumentException(String.format(
- "Expected json primitive, but given value: %s is of type: %s and could not be decoded",
- jsonPrimitive, jsonPrimitive.getClass().toString())));
- return typeHandler.chainCriteriaForValue(baseCriteria, jsonPrimitive);
- }
-
- private interface ValueTypeHandler {
- boolean isProperTypeHandler(JsonPrimitive value);
-
- Criteria chainCriteriaForValue(Criteria criteria, JsonPrimitive value);
- }
-
- private class BoolValueHandler implements ValueTypeHandler {
- public boolean isProperTypeHandler(JsonPrimitive value) {
- return value.isBoolean();
- }
-
- public Criteria chainCriteriaForValue(Criteria criteria, JsonPrimitive value) {
- return criteria.is(value.getAsString());
- }
-
- }
-
- private class NumberValueHandler implements ValueTypeHandler {
- public boolean isProperTypeHandler(JsonPrimitive value) {
- return value.isNumber();
- }
-
- public Criteria chainCriteriaForValue(Criteria baseCriteria, JsonPrimitive value) {
- return baseCriteria.is(value.getAsDouble());
- }
- }
-
- private class StringValueHandler implements ValueTypeHandler {
- public boolean isProperTypeHandler(JsonPrimitive value) {
- return value.isString();
- }
-
- public Criteria chainCriteriaForValue(Criteria baseCriteria, JsonPrimitive value) {
- return baseCriteria.regex(makeRegexCaseInsensitive(value.getAsString()));
- }
-
- private Pattern makeRegexCaseInsensitive(String base) {
- String metaCharEscaped = convertToIgnoreMetaChars(base);
- return Pattern.compile("^" + metaCharEscaped + "$", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
- }
-
- private String convertToIgnoreMetaChars(String valueWithMetaChars) {
- return Pattern.quote(valueWithMetaChars);
- }
- }
-}
diff --git a/src/main/java/org/onap/pnfsimulator/template/search/viewmodel/FlatTemplateContent.java b/src/main/java/org/onap/pnfsimulator/template/search/viewmodel/FlatTemplateContent.java
deleted file mode 100644
index 8634052..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/search/viewmodel/FlatTemplateContent.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template.search.viewmodel;
-
-
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-import org.onap.pnfsimulator.db.Row;
-
-import java.util.List;
-
-@Getter
-@NoArgsConstructor
-@ToString
-public class FlatTemplateContent extends Row {
-
- private List<KeyValuePair> keyValues;
-
-
- public FlatTemplateContent(String name, List<KeyValuePair> keyValues) {
- this.setId(name);
- this.keyValues = keyValues;
- }
-}
-
-
diff --git a/src/main/java/org/onap/pnfsimulator/template/search/viewmodel/KeyValuePair.java b/src/main/java/org/onap/pnfsimulator/template/search/viewmodel/KeyValuePair.java
deleted file mode 100644
index 8f24334..0000000
--- a/src/main/java/org/onap/pnfsimulator/template/search/viewmodel/KeyValuePair.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Simulator
- * ================================================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.pnfsimulator.template.search.viewmodel;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-
-@Getter
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-/**
- * POJO for mongo structure after $objectToArray mapping where object consists of fields: k and v
- */
-public class KeyValuePair {
-
- private String key;
- private String value;
-
-}