// Path: maven-car-deploy-plugin/src/main/java/org/wso2/maven/car/artifact/api/CAppMgtApiHelperService.java
// public interface CAppMgtApiHelperService {
// 
//     JSONObject doAuthenticate(String serverUrl, String username, String password)
//             throws CAppMgtServiceStubException;
// 
//     boolean deployCApp(File capp, String accessToken, String serverUrl) throws CAppMgtServiceStubException;
// 
//     boolean unDeployCApp(String accessToken, String serverUrl, String cAppName)
//             throws CAppMgtServiceStubException;
// }
// 
// Path: maven-car-deploy-plugin/src/main/java/org/wso2/maven/car/artifact/exception/CAppMgtServiceStubException.java
// public class CAppMgtServiceStubException extends Exception {
// 
//     public CAppMgtServiceStubException(String message) {
//         super(message);
//     }
// 
//     public CAppMgtServiceStubException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// Path: maven-car-deploy-plugin/src/main/java/org/wso2/maven/car/artifact/util/HTTPSClientUtil.java
// public class HTTPSClientUtil {
// 
//     /**
//      * Avoids Instantiation.
//      */
//     private HTTPSClientUtil() {
// 
//     }
// 
//     public static Response doAuthenticate(String serverUrl, String username, String password) throws
//             CAppMgtServiceStubException{
//         return CAppMgtHandlerFactory.getCAppMgtHttpsClient(serverUrl, username, password).doAuthenticate();
//     }
// 
//     public static Response deployCApp(File capp, String accessToken, String serverUrl) throws
//             CAppMgtServiceStubException{
//         return CAppMgtHandlerFactory.getCAppMgtHttpsClient2(serverUrl, accessToken).deployCApp(capp);
//     }
// 
//     public static Response unDeployCApp(String accessToken, String serverUrl, String cAppName) throws
//             CAppMgtServiceStubException{
//         return CAppMgtHandlerFactory.getCAppMgtHttpsClient3(serverUrl, accessToken).
//                 unDeployCApp(cAppName);
//     }
// 
// 
// }


import java.io.InputStream;
import feign.Response;
import feign.RetryableException;
import org.apache.commons.io.IOUtils;
import org.json.JSONObject;
import org.wso2.maven.car.artifact.api.CAppMgtApiHelperService;
import org.wso2.maven.car.artifact.exception.CAppMgtServiceStubException;
import org.wso2.maven.car.artifact.util.HTTPSClientUtil;
import java.io.File;
import java.io.IOException;
/*
 *
 *  Copyright (c) 2021, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
 *
 *  WSO2 Inc. licenses this file to you 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.
 *
 */

package org.wso2.maven.car.artifact.impl;



public class CAppMgtApiHelperServiceImpl implements CAppMgtApiHelperService {

    private String getAsString(InputStream inputStream) throws IOException {
        return IOUtils.toString(inputStream);
    }

    @Override
    public JSONObject doAuthenticate(String serverUrl, String username, String password)
            throws CAppMgtServiceStubException {
        try {
// Path: maven-car-deploy-plugin/src/main/java/org/wso2/maven/car/artifact/api/CAppMgtApiHelperService.java
// public interface CAppMgtApiHelperService {
// 
//     JSONObject doAuthenticate(String serverUrl, String username, String password)
//             throws CAppMgtServiceStubException;
// 
//     boolean deployCApp(File capp, String accessToken, String serverUrl) throws CAppMgtServiceStubException;
// 
//     boolean unDeployCApp(String accessToken, String serverUrl, String cAppName)
//             throws CAppMgtServiceStubException;
// }
// 
// Path: maven-car-deploy-plugin/src/main/java/org/wso2/maven/car/artifact/exception/CAppMgtServiceStubException.java
// public class CAppMgtServiceStubException extends Exception {
// 
//     public CAppMgtServiceStubException(String message) {
//         super(message);
//     }
// 
//     public CAppMgtServiceStubException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// Path: maven-car-deploy-plugin/src/main/java/org/wso2/maven/car/artifact/util/HTTPSClientUtil.java
// public class HTTPSClientUtil {
// 
//     /**
//      * Avoids Instantiation.
//      */
//     private HTTPSClientUtil() {
// 
//     }
// 
//     public static Response doAuthenticate(String serverUrl, String username, String password) throws
//             CAppMgtServiceStubException{
//         return CAppMgtHandlerFactory.getCAppMgtHttpsClient(serverUrl, username, password).doAuthenticate();
//     }
// 
//     public static Response deployCApp(File capp, String accessToken, String serverUrl) throws
//             CAppMgtServiceStubException{
//         return CAppMgtHandlerFactory.getCAppMgtHttpsClient2(serverUrl, accessToken).deployCApp(capp);
//     }
// 
//     public static Response unDeployCApp(String accessToken, String serverUrl, String cAppName) throws
//             CAppMgtServiceStubException{
//         return CAppMgtHandlerFactory.getCAppMgtHttpsClient3(serverUrl, accessToken).
//                 unDeployCApp(cAppName);
//     }
// 
// 
// }


// Path: maven-car-deploy-plugin/src/main/java/org/wso2/maven/car/artifact/impl/CAppMgtApiHelperServiceImpl.java
import java.io.InputStream;
import feign.Response;
import feign.RetryableException;
import org.apache.commons.io.IOUtils;
import org.json.JSONObject;
import org.wso2.maven.car.artifact.api.CAppMgtApiHelperService;
import org.wso2.maven.car.artifact.exception.CAppMgtServiceStubException;
import org.wso2.maven.car.artifact.util.HTTPSClientUtil;
import java.io.File;
import java.io.IOException;

/*
 *
 *  Copyright (c) 2021, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
 *
 *  WSO2 Inc. licenses this file to you 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.
 *
 */

package org.wso2.maven.car.artifact.impl;



public class CAppMgtApiHelperServiceImpl implements CAppMgtApiHelperService {

    private String getAsString(InputStream inputStream) throws IOException {
        return IOUtils.toString(inputStream);
    }

    @Override
    public JSONObject doAuthenticate(String serverUrl, String username, String password)
            throws CAppMgtServiceStubException {
        try {
            Response response = HTTPSClientUtil.doAuthenticate(serverUrl, username, password);