Skip to content

Package: Application

Application

nameinstructionbranchcomplexitylinemethod
lambda$main$0()
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
main(String[])
M: 54 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 19 C: 0
0%
M: 1 C: 0
0%
printConfiguration()
M: 120 C: 0
0%
M: 10 C: 0
0%
M: 6 C: 0
0%
M: 26 C: 0
0%
M: 1 C: 0
0%
static {...}
M: 7 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2022 Eurotech and/or its affiliates and others
3: *
4: * This program and the accompanying materials are made
5: * available under the terms of the Eclipse Public License 2.0
6: * which is available at https://www.eclipse.org/legal/epl-2.0/
7: *
8: * SPDX-License-Identifier: EPL-2.0
9: *
10: * Contributors:
11: * Eurotech - initial API and implementation
12: *******************************************************************************/
13: package org.eclipse.kapua.extras.migrator.encryption;
14:
15: import com.google.common.base.MoreObjects;
16: import com.google.common.base.Strings;
17: import org.eclipse.kapua.commons.jpa.JdbcConnectionUrlResolvers;
18: import org.eclipse.kapua.commons.liquibase.KapuaLiquibaseClient;
19: import org.eclipse.kapua.commons.security.KapuaSecurityUtils;
20: import org.eclipse.kapua.commons.setting.system.SystemSetting;
21: import org.eclipse.kapua.commons.setting.system.SystemSettingKey;
22: import org.eclipse.kapua.commons.util.log.ConfigurationPrinter;
23: import org.eclipse.kapua.extras.migrator.encryption.settings.EncryptionMigrationSettingKeys;
24: import org.slf4j.Logger;
25: import org.slf4j.LoggerFactory;
26:
27: public class Application {
28:
29: private static final Logger LOG = LoggerFactory.getLogger(Application.class.getName());
30:
31: private static final SystemSetting SYSTEM_SETTING = SystemSetting.getInstance();
32:
33: private Application() {
34: }
35:
36: public static void main(String[] args) {
37: LOG.info("Entity Secret Attribute Migration Tool... STARTING");
38: try {
39: LOG.info("Running Liquibase...");
40: {
41: printConfiguration();
42:
43: String dbUsername = SYSTEM_SETTING.getString(SystemSettingKey.DB_USERNAME);
44: String dbPassword = SYSTEM_SETTING.getString(SystemSettingKey.DB_PASSWORD);
45: String schema = MoreObjects.firstNonNull(
46: SYSTEM_SETTING.getString(SystemSettingKey.DB_SCHEMA_ENV),
47: SYSTEM_SETTING.getString(SystemSettingKey.DB_SCHEMA)
48: );
49:
50: new KapuaLiquibaseClient(JdbcConnectionUrlResolvers.resolveJdbcUrl(), dbUsername, dbPassword, schema).update();
51: }
52: LOG.info("Running Liquibase... DONE!");
53: LOG.info("Running Entity Attribute Migrator...");
54: {
55: KapuaSecurityUtils.doPrivileged(() -> new EntityAttributeMigrator().migrate());
56: }
57: LOG.info("Running Entity Attribute Migrator... DONE!");
58:
59: } catch (Exception e) {
60: LOG.info("Entity Secret Attribute Migration Tool... ERROR!", e);
61: return;
62: }
63:
64: LOG.info("Entity Secret Attribute Migration Tool... DONE!");
65: }
66:
67: /**
68: * Prints the JDBC and {@link EntityAttributeMigrator} configuration on startup.
69: *
70: * @since 2.0.0
71: */
72: protected static void printConfiguration() {
73: ConfigurationPrinter configurationPrinter =
74: ConfigurationPrinter.create()
75: .withLogger(LOG)
76: .withLogLevel(ConfigurationPrinter.LogLevel.INFO)
77: .withTitle("Entity Secret Attribute Migration Tool Configuration");
78:
79: configurationPrinter
80: .openSection("JDBC Configuration")
81: .addParameter("Resolver", System.getProperty(SystemSettingKey.DB_JDBC_CONNECTION_URL_RESOLVER.key()))
82: .addParameter("Driver", System.getProperty(SystemSettingKey.DB_JDBC_DRIVER.key()))
83: .addParameter("Scheme", System.getProperty(SystemSettingKey.DB_CONNECTION_SCHEME.key()))
84: .addParameter("Host", System.getProperty(SystemSettingKey.DB_CONNECTION_HOST.key()))
85: .addParameter("Port", System.getProperty(SystemSettingKey.DB_CONNECTION_PORT.key()))
86: .addParameter("Database Name", System.getProperty(SystemSettingKey.DB_NAME.key()))
87: .addParameter("Database Schema", System.getProperty(SystemSettingKey.DB_SCHEMA.key()))
88:• .addParameter("Username", Strings.isNullOrEmpty(System.getProperty(SystemSettingKey.DB_USERNAME.key())) ? "No" : "Yes")
89:• .addParameter("Password", Strings.isNullOrEmpty(System.getProperty(SystemSettingKey.DB_PASSWORD.key())) ? "No" : "Yes")
90: .addParameter("SSL Enabled", System.getProperty(SystemSettingKey.DB_CONNECTION_USE_SSL.key()))
91: .addParameter("SSL Enabled Protocols", System.getProperty(SystemSettingKey.DB_CONNECTION_ENABLED_SSL_PROTOCOL_SUITES.key()))
92: .closeSection();
93:
94: configurationPrinter
95: .openSection("Tool Configuration")
96: .addParameter("Dry Run", System.getProperty(EncryptionMigrationSettingKeys.DRY_RUN.key()))
97:• .addParameter("Old Encryption Key", Strings.isNullOrEmpty(System.getProperty(EncryptionMigrationSettingKeys.OLD_ENCRYPTION_KEY.key())) ? "No" : "Yes")
98:• .addParameter("Old MFA Encryption Key", Strings.isNullOrEmpty(System.getProperty(EncryptionMigrationSettingKeys.MFA_OLD_ENCRYPTION_KEY.key())) ? "No" : "Yes")
99:• .addParameter("New Encryption Key", Strings.isNullOrEmpty(System.getProperty(EncryptionMigrationSettingKeys.NEW_ENCRYPTION_KEY.key())) ? "No" : "Yes");
100:
101: configurationPrinter.printLog();
102: }
103: }