Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public abstract class AbstractDataSource {
public abstract class AbstractDataSourceFactory {

public static final String TOKENS_TABLE_CREATE_SQL_FILE_NAME = "createKnoxTokenDatabaseTable.sql";
public static final String TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME = "createKnoxTokenMetadataDatabaseTable.sql";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,19 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public class DataSourceFactory {
public class DataSourceProvider {

@SuppressWarnings("PMD.ExhaustiveSwitchHasDefault")
public static DataSource getDataSource(GatewayConfig gatewayConfig, AliasService aliasService) throws AliasServiceException, SQLException {
DatabaseType dbType = DatabaseType.fromString(gatewayConfig.getDatabaseType());
AbstractDataSource dsFactory;

switch (dbType) {
case POSTGRESQL -> dsFactory = new PostgresDataSource();
case MYSQL -> dsFactory = new MysqlDataSource();
case MARIADB -> dsFactory = new MariaDBDataSource();
case DERBY -> dsFactory = new DerbyDataSource();
case HSQL -> dsFactory = new HsqlDataSource();
case ORACLE -> dsFactory = new OracleDataSource();
default -> throw new IllegalArgumentException("Invalid database type: " + gatewayConfig.getDatabaseType());
}
AbstractDataSourceFactory dsFactory = switch (dbType) {
case POSTGRESQL -> new PostgresDataSourceFactory();
case MYSQL -> new MysqlDataSourceFactory();
case MARIADB -> new MariaDBDataSourceFactory();
case DERBY -> new DerbyDataSourceFactory();
case HSQL -> new HsqlDataSourceFactory();
case ORACLE -> new OracleDataSourceFactory();
};

return dsFactory.createDataSource(gatewayConfig, aliasService);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,40 +19,40 @@

public enum DatabaseType {
POSTGRESQL("postgresql",
AbstractDataSource.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
AbstractDataSourceFactory.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
),
MYSQL("mysql",
AbstractDataSource.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
AbstractDataSourceFactory.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
),
MARIADB("mariadb",
AbstractDataSource.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
AbstractDataSourceFactory.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
),
HSQL("hsql",
AbstractDataSource.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
AbstractDataSourceFactory.TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
),
DERBY("derbydb",
AbstractDataSource.DERBY_TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.DERBY_TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.DERBY_KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.DERBY_KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
AbstractDataSourceFactory.DERBY_TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.DERBY_TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.DERBY_KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.DERBY_KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
),
ORACLE("oracle",
AbstractDataSource.ORACLE_TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.ORACLE_TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.ORACLE_KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSource.ORACLE_KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
AbstractDataSourceFactory.ORACLE_TOKENS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.ORACLE_TOKEN_METADATA_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.ORACLE_KNOX_PROVIDERS_TABLE_CREATE_SQL_FILE_NAME,
AbstractDataSourceFactory.ORACLE_KNOX_DESCRIPTORS_TABLE_CREATE_SQL_FILE_NAME
);

private final String type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public class DerbyDataSource extends AbstractDataSource {
public class DerbyDataSourceFactory extends AbstractDataSourceFactory {

@Override
public DataSource createDataSource(GatewayConfig gatewayConfig, AliasService aliasService) throws AliasServiceException, SQLException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public class HsqlDataSource extends AbstractDataSource {
public class HsqlDataSourceFactory extends AbstractDataSourceFactory {

@Override
public DataSource createDataSource(GatewayConfig gatewayConfig, AliasService aliasService) throws AliasServiceException, SQLException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public class MariaDBDataSource extends AbstractDataSource {
public class MariaDBDataSourceFactory extends AbstractDataSourceFactory {

@Override
public DataSource createDataSource(GatewayConfig gatewayConfig, AliasService aliasService) throws AliasServiceException, SQLException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public class MysqlDataSource extends AbstractDataSource {
public class MysqlDataSourceFactory extends AbstractDataSourceFactory {

@Override
public DataSource createDataSource(GatewayConfig gatewayConfig, AliasService aliasService) throws AliasServiceException, SQLException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public class OracleDataSource extends AbstractDataSource {
public class OracleDataSourceFactory extends AbstractDataSourceFactory {

private static final String THIN_DRIVER = "thin";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import javax.sql.DataSource;
import java.sql.SQLException;

public class PostgresDataSource extends AbstractDataSource {
public class PostgresDataSourceFactory extends AbstractDataSourceFactory {

@Override
public DataSource createDataSource(GatewayConfig gatewayConfig, AliasService aliasService) throws AliasServiceException, SQLException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import static org.apache.knox.gateway.config.impl.GatewayConfigImpl.GATEWAY_DATABASE_NAME;
import static org.apache.knox.gateway.config.impl.GatewayConfigImpl.GATEWAY_DATABASE_TYPE;
import static org.apache.knox.gateway.services.security.AliasService.NO_CLUSTER_NAME;
import static org.apache.knox.gateway.database.AbstractDataSource.DATABASE_PASSWORD_ALIAS_NAME;
import static org.apache.knox.gateway.database.AbstractDataSource.DATABASE_USER_ALIAS_NAME;
import static org.apache.knox.gateway.database.AbstractDataSourceFactory.DATABASE_PASSWORD_ALIAS_NAME;
import static org.apache.knox.gateway.database.AbstractDataSourceFactory.DATABASE_USER_ALIAS_NAME;
import static org.apache.knox.gateway.database.DatabaseType.DERBY;

import java.nio.file.Files;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import org.apache.commons.lang3.StringUtils;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.database.DataSourceFactory;
import org.apache.knox.gateway.database.DataSourceProvider;
import org.apache.knox.gateway.services.ServiceLifecycleException;
import org.apache.knox.gateway.services.security.AliasService;
import org.apache.knox.gateway.services.security.token.KnoxToken;
Expand Down Expand Up @@ -72,7 +72,7 @@ public void init(GatewayConfig config, Map<String, String> options) throws Servi
throw new ServiceLifecycleException("The required AliasService reference has not been set.");
}
try {
this.tokenDatabase = new TokenStateDatabase(DataSourceFactory.getDataSource(config, aliasService), config.getDatabaseType());
this.tokenDatabase = new TokenStateDatabase(DataSourceProvider.getDataSource(config, aliasService), config.getDatabaseType());
initialized.set(true);
} catch (Exception e) {
throw new ServiceLifecycleException("Error while initiating JDBCTokenStateService: " + e, e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import org.apache.commons.lang3.StringUtils;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.database.DataSourceFactory;
import org.apache.knox.gateway.database.DataSourceProvider;
import org.apache.knox.gateway.services.GatewayServices;
import org.apache.knox.gateway.services.ServiceLifecycleException;
import org.apache.knox.gateway.services.ServiceType;
Expand Down Expand Up @@ -59,7 +59,7 @@ protected RemoteConfigurationMonitor createService(GatewayServices gatewayServic

private DbRemoteConfigurationMonitorService createDbBasedMonitor(GatewayConfig config, AliasService aliasService) throws ServiceLifecycleException {
try {
RemoteConfigDatabase db = new RemoteConfigDatabase(DataSourceFactory.getDataSource(config, aliasService), config.getDatabaseType());
RemoteConfigDatabase db = new RemoteConfigDatabase(DataSourceProvider.getDataSource(config, aliasService), config.getDatabaseType());
LocalDirectory descriptorDir = new LocalDirectory(new File(config.getGatewayDescriptorsDir()));
LocalDirectory providerDir = new LocalDirectory(new File(config.getGatewayProvidersConfigDir()));
return new DbRemoteConfigurationMonitorService(
Expand Down
Loading
Loading