aboutsummaryrefslogtreecommitdiffstats
path: root/datafile-dmaap-client/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'datafile-dmaap-client/src/main')
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileCollectClient.java29
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileServerData.java33
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FtpsClient.java189
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/Scheme.java51
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/SftpClient.java108
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpAsyncClientBuilderWrapper.java67
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/IHttpAsyncClientBuilder.java43
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/DmaapReactiveWebClient.java94
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/HttpUtils.java30
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/producer/DmaapProducerHttpClient.java152
-rw-r--r--datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/web/PublishRedirectStrategy.java81
11 files changed, 0 insertions, 877 deletions
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileCollectClient.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileCollectClient.java
deleted file mode 100644
index de50f24a..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileCollectClient.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018-2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.ftp;
-
-import java.nio.file.Path;
-
-import org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException;
-
-/**
- * @author <a href="mailto:henrik.b.andersson@est.tech">Henrik Andersson</a>
- */
-public interface FileCollectClient extends AutoCloseable {
- public void collectFile(String remoteFile, Path localFile) throws DatafileTaskException;
- public void open() throws DatafileTaskException;
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileServerData.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileServerData.java
deleted file mode 100644
index b080c320..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FileServerData.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018-2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.ftp;
-
-import java.util.Optional;
-
-import org.immutables.value.Value;
-
-/**
- * @author <a href="mailto:henrik.b.andersson@est.tech">Henrik Andersson</a>
- *
- */
-@Value.Immutable
-public interface FileServerData {
- public String serverAddress();
- public String userId();
- public String password();
- public Optional<Integer> port();
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FtpsClient.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FtpsClient.java
deleted file mode 100644
index 492768c2..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/FtpsClient.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018-2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.ftp;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.file.Path;
-import java.security.GeneralSecurityException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import java.util.Optional;
-
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.TrustManagerFactory;
-
-import org.apache.commons.net.ftp.FTP;
-import org.apache.commons.net.ftp.FTPReply;
-import org.apache.commons.net.ftp.FTPSClient;
-import org.apache.commons.net.util.KeyManagerUtils;
-import org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.FileSystemResource;
-
-/**
- * Gets file from PNF with FTPS protocol.
- *
- * @author <a href="mailto:martin.c.yan@est.tech">Martin Yan</a>
- */
-public class FtpsClient implements FileCollectClient {
- private static final Logger logger = LoggerFactory.getLogger(FtpsClient.class);
- FTPSClient realFtpsClient = new FTPSClient();
- private final FileServerData fileServerData;
- private static TrustManager theTrustManager = null;
-
- private final String keyCertPath;
- private final String keyCertPassword;
- private final Path trustedCAPath;
- private final String trustedCAPassword;
-
- public FtpsClient(FileServerData fileServerData, String keyCertPath, String keyCertPassword, Path trustedCAPath,
- String trustedCAPassword) {
- this.fileServerData = fileServerData;
- this.keyCertPath = keyCertPath;
- this.keyCertPassword = keyCertPassword;
- this.trustedCAPath = trustedCAPath;
- this.trustedCAPassword = trustedCAPassword;
- }
-
- @Override
- public void open() throws DatafileTaskException {
- try {
- realFtpsClient.setNeedClientAuth(true);
- realFtpsClient.setKeyManager(createKeyManager(keyCertPath, keyCertPassword));
- realFtpsClient.setTrustManager(getTrustManager(trustedCAPath, trustedCAPassword));
- setUpConnection();
- } catch (DatafileTaskException e) {
- throw e;
- } catch (Exception e) {
- throw new DatafileTaskException("Could not open connection: " + e, e);
- }
- }
-
- @Override
- public void close() {
- logger.trace("starting to closeDownConnection");
- if (realFtpsClient.isConnected()) {
- try {
- boolean logOut = realFtpsClient.logout();
- logger.trace("logOut: {}", logOut);
- } catch (Exception e) {
- logger.trace("Unable to logout connection.", e);
- }
- try {
- realFtpsClient.disconnect();
- logger.trace("disconnected!");
- } catch (Exception e) {
- logger.trace("Unable to disconnect connection.", e);
- }
- }
- }
-
- @Override
- public void collectFile(String remoteFileName, Path localFileName) throws DatafileTaskException {
- logger.trace("collectFile called");
-
- try (OutputStream output = createOutputStream(localFileName)) {
- logger.trace("begin to retrieve from xNF.");
- if (!realFtpsClient.retrieveFile(remoteFileName, output)) {
- throw new DatafileTaskException("Could not retrieve file " + remoteFileName);
- }
- } catch (IOException e) {
- throw new DatafileTaskException("Could not fetch file: " + e, e);
- }
- logger.trace("collectFile fetched: {}", localFileName);
- }
-
- private int getPort(Optional<Integer> port) {
- final int FTPS_DEFAULT_PORT = 21;
- return port.isPresent() ? port.get() : FTPS_DEFAULT_PORT;
- }
-
- private void setUpConnection() throws DatafileTaskException, IOException {
-
- realFtpsClient.connect(fileServerData.serverAddress(), getPort(fileServerData.port()));
- logger.trace("after ftp connect");
-
- if (!realFtpsClient.login(fileServerData.userId(), fileServerData.password())) {
- throw new DatafileTaskException("Unable to log in to xNF. " + fileServerData.serverAddress());
- }
-
- if (FTPReply.isPositiveCompletion(realFtpsClient.getReplyCode())) {
- realFtpsClient.enterLocalPassiveMode();
- realFtpsClient.setFileType(FTP.BINARY_FILE_TYPE);
- // Set protection buffer size
- realFtpsClient.execPBSZ(0);
- // Set data channel protection to private
- realFtpsClient.execPROT("P");
- realFtpsClient.setBufferSize(1024 * 1024);
- } else {
- throw new DatafileTaskException("Unable to connect to xNF. " + fileServerData.serverAddress()
- + " xNF reply code: " + realFtpsClient.getReplyCode());
- }
-
- logger.trace("setUpConnection successfully!");
- }
-
- private TrustManager createTrustManager(Path trustedCAPath, String trustedCAPassword)
- throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException {
- logger.trace("Creating trust manager from file: {}", trustedCAPath);
- try (InputStream fis = createInputStream(trustedCAPath)) {
- KeyStore keyStore = KeyStore.getInstance("JKS");
- keyStore.load(fis, trustedCAPassword.toCharArray());
- TrustManagerFactory factory = TrustManagerFactory.getInstance("SunX509");
- factory.init(keyStore);
- return factory.getTrustManagers()[0];
- }
- }
-
- protected InputStream createInputStream(Path localFileName) throws IOException {
- FileSystemResource realResource = new FileSystemResource(localFileName);
- return realResource.getInputStream();
- }
-
- protected OutputStream createOutputStream(Path localFileName) throws IOException {
- File localFile = localFileName.toFile();
- if (localFile.createNewFile()) {
- logger.warn("Local file {} already created", localFileName);
- }
- OutputStream output = new FileOutputStream(localFile);
- logger.debug("File {} opened xNF", localFileName);
- return output;
- }
-
- protected TrustManager getTrustManager(Path trustedCAPath, String trustedCAPassword)
- throws KeyStoreException, NoSuchAlgorithmException, IOException, CertificateException {
- synchronized (FtpsClient.class) {
- if (theTrustManager == null) {
- theTrustManager = createTrustManager(trustedCAPath, trustedCAPassword);
- }
- return theTrustManager;
- }
- }
-
- protected KeyManager createKeyManager(String keyCertPath, String keyCertPassword)
- throws IOException, GeneralSecurityException {
- return KeyManagerUtils.createClientKeyManager(new File(keyCertPath), keyCertPassword);
- }
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/Scheme.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/Scheme.java
deleted file mode 100644
index d469da66..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/Scheme.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.ftp;
-
-import org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException;
-
-/**
- * Enum specifying the schemes that DFC support for downloading files.
- *
- * @author <a href="mailto:henrik.b.andersson@est.tech">Henrik Andersson</a>
- *
- */
-public enum Scheme {
- FTPS, SFTP;
-
- /**
- * Get a <code>Scheme</code> from a string.
- *
- * @param schemeString the string to convert to <code>Scheme</code>.
- * @return The corresponding <code>Scheme</code>
- * @throws Exception if the value of the string doesn't match any defined scheme.
- */
- public static Scheme getSchemeFromString(String schemeString) throws DatafileTaskException {
- Scheme result;
- if ("FTPS".equalsIgnoreCase(schemeString) || "FTPES".equalsIgnoreCase(schemeString)) {
- result = Scheme.FTPS;
- } else if ("SFTP".equalsIgnoreCase(schemeString)) {
- result = Scheme.SFTP;
- } else {
- throw new DatafileTaskException("DFC does not support protocol " + schemeString
- + ". Supported protocols are FTPES , FTPS, and SFTP");
- }
- return result;
- }
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/SftpClient.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/SftpClient.java
deleted file mode 100644
index 4517a755..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/ftp/SftpClient.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018-2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.ftp;
-
-import com.jcraft.jsch.Channel;
-import com.jcraft.jsch.ChannelSftp;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-
-import java.nio.file.Path;
-import java.util.Optional;
-
-import org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Gets file from xNF with SFTP protocol.
- *
- * @author <a href="mailto:martin.c.yan@est.tech">Martin Yan</a>
- *
- */
-public class SftpClient implements FileCollectClient {
- private static final Logger logger = LoggerFactory.getLogger(SftpClient.class);
- private final FileServerData fileServerData;
- private Session session = null;
- private ChannelSftp sftpChannel = null;
-
- public SftpClient(FileServerData fileServerData) {
- this.fileServerData = fileServerData;
- }
-
- @Override
- public void collectFile(String remoteFile, Path localFile) throws DatafileTaskException {
- logger.trace("collectFile {}", localFile);
-
- try {
- sftpChannel.get(remoteFile, localFile.toString());
- logger.debug("File {} Download Successfull from xNF", localFile.getFileName());
- } catch (Exception e) {
- throw new DatafileTaskException("Unable to get file from xNF. Data: " + fileServerData, e);
- }
-
- logger.trace("collectFile OK");
- }
-
- @Override
- public void close() {
- logger.trace("closing sftp session");
- if (sftpChannel != null) {
- sftpChannel.exit();
- sftpChannel = null;
- }
- if (session != null) {
- session.disconnect();
- session = null;
- }
- }
-
- @Override
- public void open() throws DatafileTaskException {
- try {
- if (session == null) {
- session = setUpSession(fileServerData);
- sftpChannel = getChannel(session);
- }
- } catch (JSchException e) {
- throw new DatafileTaskException("Could not open Sftp client" + e, e);
- }
- }
-
- private int getPort(Optional<Integer> port) {
- final int FTPS_DEFAULT_PORT = 22;
- return port.isPresent() ? port.get() : FTPS_DEFAULT_PORT;
- }
-
- private Session setUpSession(FileServerData fileServerData) throws JSchException {
- JSch jsch = new JSch();
-
- Session newSession = jsch.getSession(fileServerData.userId(), fileServerData.serverAddress(),
- getPort(fileServerData.port()));
- newSession.setConfig("StrictHostKeyChecking", "no");
- newSession.setPassword(fileServerData.password());
- newSession.connect();
- return newSession;
- }
-
- private ChannelSftp getChannel(Session session) throws JSchException {
- Channel channel = session.openChannel("sftp");
- channel.connect();
- return (ChannelSftp) channel;
- }
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpAsyncClientBuilderWrapper.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpAsyncClientBuilderWrapper.java
deleted file mode 100644
index e01a941b..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpAsyncClientBuilderWrapper.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.dcaegen2.collectors.datafile.http;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.SSLContext;
-
-import org.apache.http.client.RedirectStrategy;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
-import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
-import org.apache.http.impl.nio.client.HttpAsyncClients;
-
-/**
- * @author <a href="mailto:henrik.b.andersson@est.tech">Henrik Andersson</a>
- */
-public class HttpAsyncClientBuilderWrapper implements IHttpAsyncClientBuilder {
- HttpAsyncClientBuilder builder = HttpAsyncClients.custom();
-
- @Override
- public IHttpAsyncClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy) {
- builder.setRedirectStrategy(redirectStrategy);
- return this;
- }
-
- @Override
- public IHttpAsyncClientBuilder setSSLContext(SSLContext sslcontext) {
- builder.setSSLContext(sslcontext);
- return this;
- }
-
- @Override
- public IHttpAsyncClientBuilder setSSLHostnameVerifier(HostnameVerifier hostnameVerifier) {
- builder.setSSLHostnameVerifier(hostnameVerifier);
- return this;
- }
-
- @Override
- public IHttpAsyncClientBuilder setDefaultRequestConfig(RequestConfig config) {
- builder.setDefaultRequestConfig(config);
- return this;
- }
-
- @Override
- public CloseableHttpAsyncClient build() {
- return builder.build();
- }
-
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/IHttpAsyncClientBuilder.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/IHttpAsyncClientBuilder.java
deleted file mode 100644
index e0a51a80..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/http/IHttpAsyncClientBuilder.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.dcaegen2.collectors.datafile.http;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.SSLContext;
-
-import org.apache.http.client.RedirectStrategy;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
-
-/**
- * @author <a href="mailto:henrik.b.andersson@est.tech">Henrik Andersson</a>
- */
-public interface IHttpAsyncClientBuilder {
- public IHttpAsyncClientBuilder setRedirectStrategy(final RedirectStrategy redirectStrategy);
-
- public IHttpAsyncClientBuilder setSSLContext(final SSLContext sslcontext);
-
- public IHttpAsyncClientBuilder setSSLHostnameVerifier(final HostnameVerifier hostnameVerifier);
-
- public IHttpAsyncClientBuilder setDefaultRequestConfig(final RequestConfig config);
-
- public CloseableHttpAsyncClient build();
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/DmaapReactiveWebClient.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/DmaapReactiveWebClient.java
deleted file mode 100644
index 23fd0bc7..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/DmaapReactiveWebClient.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property, 2018-2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.service;
-
-import static org.onap.dcaegen2.collectors.datafile.model.logging.MappedDiagnosticContext.RESPONSE_CODE;
-import static org.onap.dcaegen2.collectors.datafile.model.logging.MappedDiagnosticContext.SERVICE_NAME;
-import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.basicAuthentication;
-
-import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapCustomConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.http.HttpHeaders;
-import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
-import org.springframework.web.reactive.function.client.WebClient;
-import org.springframework.web.reactive.function.client.WebClient.Builder;
-
-import reactor.core.publisher.Mono;
-
-/**
- * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 7/4/18
- */
-public class DmaapReactiveWebClient {
-
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- private String dmaaPContentType;
- private String dmaaPUserName;
- private String dmaaPUserPassword;
-
- /**
- * Creating DmaapReactiveWebClient passing to them basic DmaapConfig.
- *
- * @param dmaapCustomConfig - configuration object
- * @return DmaapReactiveWebClient
- */
- public DmaapReactiveWebClient fromConfiguration(DmaapCustomConfig dmaapCustomConfig) {
- this.dmaaPContentType = dmaapCustomConfig.dmaapContentType();
- return this;
- }
-
- /**
- * Construct Reactive WebClient with appropriate settings.
- *
- * @return WebClient
- */
- public WebClient build() {
- Builder webClientBuilder = WebClient.builder()
- .defaultHeader(HttpHeaders.CONTENT_TYPE, dmaaPContentType) //
- .filter(logRequest()) //
- .filter(logResponse());
- if (dmaaPUserName != null && !dmaaPUserName.isEmpty() && dmaaPUserPassword != null
- && !dmaaPUserPassword.isEmpty()) {
- webClientBuilder.filter(basicAuthentication(dmaaPUserName, dmaaPUserPassword));
- }
- return webClientBuilder.build();
- }
-
- private ExchangeFilterFunction logResponse() {
- return ExchangeFilterFunction.ofResponseProcessor(clientResponse -> {
- MDC.put(RESPONSE_CODE, String.valueOf(clientResponse.statusCode()));
- logger.trace("Response Status {}", clientResponse.statusCode());
- MDC.remove(RESPONSE_CODE);
- return Mono.just(clientResponse);
- });
- }
-
- private ExchangeFilterFunction logRequest() {
- return ExchangeFilterFunction.ofRequestProcessor(clientRequest -> {
- MDC.put(SERVICE_NAME, String.valueOf(clientRequest.url()));
- logger.trace("Request: {} {}", clientRequest.method(), clientRequest.url());
- clientRequest.headers()
- .forEach((name, values) -> values.forEach(value -> logger.trace("{}={}", name, value)));
- logger.trace("HTTP request headers: {}", clientRequest.headers());
- MDC.remove(SERVICE_NAME);
- return Mono.just(clientRequest);
- });
- }
-
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/HttpUtils.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/HttpUtils.java
deleted file mode 100644
index 1e1187ac..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/HttpUtils.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018-2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.service;
-
-import org.apache.http.HttpStatus;
-
-public final class HttpUtils implements HttpStatus {
-
- private HttpUtils() {}
-
- public static boolean isSuccessfulResponseCode(Integer statusCode) {
- return statusCode >= 200 && statusCode < 300;
- }
-}
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/producer/DmaapProducerHttpClient.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/producer/DmaapProducerHttpClient.java
deleted file mode 100644
index b0904b29..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/service/producer/DmaapProducerHttpClient.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property, 2018-2019 Nordix Foundation. 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.dcaegen2.collectors.datafile.service.producer;
-
-import java.nio.charset.StandardCharsets;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.time.Duration;
-import java.util.Map;
-import java.util.concurrent.Future;
-
-import javax.net.ssl.SSLContext;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
-import org.apache.http.ssl.SSLContextBuilder;
-import org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException;
-import org.onap.dcaegen2.collectors.datafile.http.HttpAsyncClientBuilderWrapper;
-import org.onap.dcaegen2.collectors.datafile.http.IHttpAsyncClientBuilder;
-import org.onap.dcaegen2.collectors.datafile.web.PublishRedirectStrategy;
-import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapPublisherConfiguration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.slf4j.Marker;
-import org.slf4j.MarkerFactory;
-import org.springframework.web.util.DefaultUriBuilderFactory;
-import org.springframework.web.util.UriBuilder;
-
-/**
- * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 7/4/18
- * @author <a href="mailto:henrik.b.andersson@est.tech">Henrik Andersson</a>
- */
-public class DmaapProducerHttpClient {
-
- private static final Duration DEFAULT_REQUEST_TIMEOUT = Duration.ofMinutes(2);
- private static final Marker INVOKE = MarkerFactory.getMarker("INVOKE");
- private static final Marker INVOKE_RETURN = MarkerFactory.getMarker("INVOKE_RETURN");
-
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- private final DmaapPublisherConfiguration configuration;
-
- /**
- * Constructor DmaapProducerReactiveHttpClient.
- *
- * @param dmaapPublisherConfiguration - DMaaP producer configuration object
- */
- public DmaapProducerHttpClient(DmaapPublisherConfiguration dmaapPublisherConfiguration) {
- this.configuration = dmaapPublisherConfiguration;
- }
-
- public HttpResponse getDmaapProducerResponseWithRedirect(HttpUriRequest request, Map<String, String> contextMap)
- throws DatafileTaskException {
- MDC.setContextMap(contextMap);
- try (CloseableHttpAsyncClient webClient = createWebClient(true, DEFAULT_REQUEST_TIMEOUT)) {
- webClient.start();
-
- logger.trace(INVOKE, "Starting to produce to DR {}", request);
- Future<HttpResponse> future = webClient.execute(request, null);
- HttpResponse response = future.get();
- logger.trace(INVOKE_RETURN, "Response from DR {}", response);
- return response;
- } catch (Exception e) {
- throw new DatafileTaskException("Unable to create web client.", e);
- }
- }
-
- public HttpResponse getDmaapProducerResponseWithCustomTimeout(HttpUriRequest request, Duration requestTimeout,
- Map<String, String> contextMap) throws DatafileTaskException {
- MDC.setContextMap(contextMap);
- try (CloseableHttpAsyncClient webClient = createWebClient(false, requestTimeout)) {
- webClient.start();
-
- logger.trace(INVOKE, "Starting to produce to DR {}", request);
- Future<HttpResponse> future = webClient.execute(request, null);
- HttpResponse response = future.get();
- logger.trace(INVOKE_RETURN, "Response from DR {}", response);
- return response;
- } catch (Exception e) {
- throw new DatafileTaskException("Unable to create web client.", e);
- }
- }
-
- public void addUserCredentialsToHead(HttpUriRequest request) {
- String plainCreds = configuration.dmaapUserName() + ":" + configuration.dmaapUserPassword();
- byte[] plainCredsBytes = plainCreds.getBytes(StandardCharsets.ISO_8859_1);
- byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
- String base64Creds = new String(base64CredsBytes);
- logger.trace("base64Creds...: {}", base64Creds);
- request.addHeader("Authorization", "Basic " + base64Creds);
- }
-
- public UriBuilder getBaseUri() {
- return new DefaultUriBuilderFactory().builder() //
- .scheme(configuration.dmaapProtocol()) //
- .host(configuration.dmaapHostName()) //
- .port(configuration.dmaapPortNumber());
- }
-
- private CloseableHttpAsyncClient createWebClient(boolean expectRedirect, Duration requestTimeout)
- throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException {
- SSLContext sslContext =
- new SSLContextBuilder().loadTrustMaterial(null, (certificate, authType) -> true).build();
-
- IHttpAsyncClientBuilder clientBuilder = getHttpClientBuilder();
- clientBuilder.setSSLContext(sslContext) //
- .setSSLHostnameVerifier(new NoopHostnameVerifier());
-
- if (expectRedirect) {
- clientBuilder.setRedirectStrategy(PublishRedirectStrategy.INSTANCE);
- }
-
- if (requestTimeout.toMillis() > 0) {
- int millis = (int)requestTimeout.toMillis();
- RequestConfig requestConfig = RequestConfig.custom() //
- .setSocketTimeout(millis) //
- .setConnectTimeout(millis) //
- .setConnectionRequestTimeout(millis) //
- .build();
-
- clientBuilder.setDefaultRequestConfig(requestConfig);
- } else {
- logger.error("WEB client without timeout created {}", requestTimeout);
- }
-
- return clientBuilder.build();
- }
-
- IHttpAsyncClientBuilder getHttpClientBuilder() {
- return new HttpAsyncClientBuilderWrapper();
- }
-} \ No newline at end of file
diff --git a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/web/PublishRedirectStrategy.java b/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/web/PublishRedirectStrategy.java
deleted file mode 100644
index e002c284..00000000
--- a/datafile-dmaap-client/src/main/java/org/onap/dcaegen2/collectors/datafile/web/PublishRedirectStrategy.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * ============LICENSE_START======================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property, 2018 Nordix Foundation. 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.dcaegen2.collectors.datafile.web;
-
-import java.net.URI;
-
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.ProtocolException;
-import org.apache.http.annotation.Contract;
-import org.apache.http.annotation.ThreadingBehavior;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpHead;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.methods.RequestBuilder;
-import org.apache.http.impl.client.DefaultRedirectStrategy;
-import org.apache.http.protocol.HttpContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * PublishRedirectStrategy implementation
- * that automatically redirects all HEAD, GET, POST, PUT, and DELETE requests.
- * This strategy relaxes restrictions on automatic redirection of
- * POST methods imposed by the HTTP specification.
- *
- */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
-public class PublishRedirectStrategy extends DefaultRedirectStrategy {
-
- public static final PublishRedirectStrategy INSTANCE = new PublishRedirectStrategy();
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- /**
- * Redirectable methods.
- */
- private static final String[] REDIRECT_METHODS = new String[] {
- HttpPut.METHOD_NAME,
- HttpGet.METHOD_NAME,
- HttpPost.METHOD_NAME,
- HttpHead.METHOD_NAME,
- HttpDelete.METHOD_NAME
- };
-
- @Override
- protected boolean isRedirectable(final String method) {
- for (final String m: REDIRECT_METHODS) {
- if (m.equalsIgnoreCase(method)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public HttpUriRequest getRedirect(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws ProtocolException {
- final URI uri = getLocationURI(request, response, context);
- logger.trace("getRedirect...: {}", request);
- return RequestBuilder.copy(request).setUri(uri).build();
- }
-
-}