Skip to content

Commit

Permalink
destination-mysql: convert prod code to kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
stephane-airbyte committed Jun 26, 2024
1 parent ee1c21c commit 17caebf
Show file tree
Hide file tree
Showing 19 changed files with 613 additions and 624 deletions.
Original file line number Diff line number Diff line change
@@ -1,41 +1,37 @@
/*
* Copyright (c) 2023 Airbyte, Inc., all rights reserved.
*/

package io.airbyte.integrations.destination.mssql_strict_encrypt;

import com.fasterxml.jackson.databind.node.ArrayNode;
import io.airbyte.cdk.integrations.base.Destination;
import io.airbyte.cdk.integrations.base.IntegrationRunner;
import io.airbyte.cdk.integrations.base.spec_modification.SpecModifyingDestination;
import io.airbyte.commons.json.Jsons;
import io.airbyte.integrations.destination.mssql.MSSQLDestination;
import io.airbyte.protocol.models.v0.ConnectorSpecification;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MssqlStrictEncryptDestination extends SpecModifyingDestination implements Destination {

private static final Logger LOGGER = LoggerFactory.getLogger(MssqlStrictEncryptDestination.class);

public MssqlStrictEncryptDestination() {
super(MSSQLDestination.sshWrappedDestination());
}

public static void main(final String[] args) throws Exception {
final Destination destination = new MssqlStrictEncryptDestination();
LOGGER.info("starting destination: {}", MssqlStrictEncryptDestination.class);
new IntegrationRunner(destination).run(args);
LOGGER.info("completed destination: {}", MssqlStrictEncryptDestination.class);
}

@Override
public ConnectorSpecification modifySpec(final ConnectorSpecification originalSpec) {
final ConnectorSpecification spec = Jsons.clone(originalSpec);
// Remove the first element in the "ssl_method" array, because it allows users to choose an
// unencrypted connection.
((ArrayNode) spec.getConnectionSpecification().get("properties").get("ssl_method").get("oneOf")).remove(0);
return spec;
}

package io.airbyte.integrations.destination.mssql_strict_encrypt

import com.fasterxml.jackson.databind.node.ArrayNode
import io.airbyte.cdk.integrations.base.Destination
import io.airbyte.cdk.integrations.base.IntegrationRunner
import io.airbyte.cdk.integrations.base.spec_modification.SpecModifyingDestination
import io.airbyte.integrations.destination.mssql.MSSQLDestination
import io.airbyte.protocol.models.v0.ConnectorSpecification
import org.apache.http.client.utils.CloneUtils
import org.slf4j.Logger
import org.slf4j.LoggerFactory

class MssqlStrictEncryptDestination : SpecModifyingDestination(MSSQLDestination.sshWrappedDestination()), Destination {
override fun modifySpec(originalSpec: ConnectorSpecification): ConnectorSpecification {
val spec: ConnectorSpecification = CloneUtils.cloneObject(originalSpec)
// Remove the first element in the "ssl_method" array, because it allows users to choose an
// unencrypted connection.
(spec.connectionSpecification["properties"]["ssl_method"]["oneOf"] as ArrayNode).remove(0)
return spec
}

companion object {
private val LOGGER: Logger = LoggerFactory.getLogger(MssqlStrictEncryptDestination::class.java)

@Throws(Exception::class)
@JvmStatic
fun main(args: Array<String>) {
val destination: Destination = MssqlStrictEncryptDestination()
LOGGER.info("starting destination: {}", MssqlStrictEncryptDestination::class.java)
IntegrationRunner(destination).run(args)
LOGGER.info("completed destination: {}", MssqlStrictEncryptDestination::class.java)
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Copyright (c) 2023 Airbyte, Inc., all rights reserved.
*/
package io.airbyte.integrations.destination.mysql

import com.fasterxml.jackson.databind.node.ObjectNode
import io.airbyte.cdk.integrations.base.Destination
import io.airbyte.cdk.integrations.base.IntegrationRunner
import io.airbyte.cdk.integrations.base.spec_modification.SpecModifyingDestination
import io.airbyte.protocol.models.v0.ConnectorSpecification
import org.slf4j.Logger
import org.slf4j.LoggerFactory

class MySQLDestinationStrictEncrypt : SpecModifyingDestination(MySQLDestination.sshWrappedDestination()), Destination {
override fun modifySpec(originalSpec: ConnectorSpecification): ConnectorSpecification {
val spec: ConnectorSpecification = clone.clone<ConnectorSpecification>(originalSpec)
(spec.connectionSpecification["properties"] as ObjectNode).remove(SSL_KEY)
return spec
}

companion object {
private val LOGGER: Logger = LoggerFactory.getLogger(MySQLDestinationStrictEncrypt::class.java)

@Throws(Exception::class)
@JvmStatic
fun main(args: Array<String>) {
val destination: Destination = MySQLDestinationStrictEncrypt()
LOGGER.info("starting destination: {}", MySQLDestinationStrictEncrypt::class.java)
try {
IntegrationRunner(destination).run(args)
} catch (e: Exception) {
MySQLDestination.handleException(e)
}
LOGGER.info("completed destination: {}", MySQLDestinationStrictEncrypt::class.java)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
import io.airbyte.integrations.destination.mysql.MySQLNameTransformer;
import org.jooq.DSLContext;
import org.jooq.SQLDialect;
import org.junit.jupiter.api.Disabled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import io.airbyte.integrations.destination.mysql.MySQLNameTransformer;

public class MySqlTestDataComparator extends AdvancedTestDataComparator {

Expand Down

This file was deleted.

Loading

0 comments on commit 17caebf

Please sign in to comment.