keycloak
クラス | 公開メンバ関数 | 限定公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider クラス
org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider の継承関係図
Inheritance graph
org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider 連携図
Collaboration graph

クラス

class  LogWrapper
 

公開メンバ関数

LiquibaseConnectionProvider create (KeycloakSession session)
 
void init (Config.Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
void close ()
 
String getId ()
 
Liquibase getLiquibase (Connection connection, String defaultSchema) throws LiquibaseException
 
Liquibase getLiquibaseForCustomUpdate (Connection connection, String defaultSchema, String changelogLocation, ClassLoader classloader, String changelogTableName) throws LiquibaseException
 
default int order ()
 

限定公開メンバ関数

void baseLiquibaseInitialization ()
 

非公開変数類

volatile boolean initialized = false
 

静的非公開変数類

static final Logger logger = Logger.getLogger(DefaultLiquibaseConnectionProvider.class)
 

詳解

著者
Marek Posolda

関数詳解

◆ baseLiquibaseInitialization()

void org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.baseLiquibaseInitialization ( )
inlineprotected
68  {
69  ServiceLocator sl = ServiceLocator.getInstance();
70  sl.setResourceAccessor(new ClassLoaderResourceAccessor(getClass().getClassLoader()));
71 
72  if (!System.getProperties().containsKey("liquibase.scan.packages")) {
73  if (sl.getPackages().remove("liquibase.core")) {
74  sl.addPackageToScan("liquibase.core.xml");
75  }
76 
77  if (sl.getPackages().remove("liquibase.parser")) {
78  sl.addPackageToScan("liquibase.parser.core.xml");
79  }
80 
81  if (sl.getPackages().remove("liquibase.serializer")) {
82  sl.addPackageToScan("liquibase.serializer.core.xml");
83  }
84 
85  sl.getPackages().remove("liquibase.ext");
86  sl.getPackages().remove("liquibase.sdk");
87 
88  String lockPackageName = DummyLockService.class.getPackage().getName();
89  logger.debugf("Added package %s to liquibase", lockPackageName);
90  sl.addPackageToScan(lockPackageName);
91  }
92 
93  LogFactory.setInstance(new LogWrapper());
94 
95  // Adding PostgresPlus support to liquibase
96  DatabaseFactory.getInstance().register(new PostgresPlusDatabase());
97  // Adding newer version of MySQL/MariaDB support to liquibase
98  DatabaseFactory.getInstance().register(new UpdatedMySqlDatabase());
99 
100  // Change command for creating lock and drop DELETE lock record from it
101  SqlGeneratorFactory.getInstance().register(new CustomInsertLockRecordGenerator());
102 
103  // Use "SELECT FOR UPDATE" for locking database
104  SqlGeneratorFactory.getInstance().register(new CustomLockDatabaseChangeLogGenerator());
105  }
static final Logger logger
Definition: DefaultLiquibaseConnectionProvider.java:51

◆ close()

void org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.close ( )
inline

org.keycloak.provider.Providerを実装しています。

119  {
120  }

◆ create()

LiquibaseConnectionProvider org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.create ( KeycloakSession  session)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

56  {
57  if (!initialized) {
58  synchronized (this) {
59  if (!initialized) {
61  initialized = true;
62  }
63  }
64  }
65  return this;
66  }
void baseLiquibaseInitialization()
Definition: DefaultLiquibaseConnectionProvider.java:68
volatile boolean initialized
Definition: DefaultLiquibaseConnectionProvider.java:53

◆ getId()

String org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.getId ( )
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

123  {
124  return "default";
125  }

◆ getLiquibase()

Liquibase org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.getLiquibase ( Connection  connection,
String  defaultSchema 
) throws LiquibaseException
inline

org.keycloak.connections.jpa.updater.liquibase.conn.LiquibaseConnectionProviderを実装しています。

128  {
129  Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(connection));
130  if (defaultSchema != null) {
131  database.setDefaultSchemaName(defaultSchema);
132  }
133 
134  String changelog = LiquibaseJpaUpdaterProvider.CHANGELOG;
135  ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor(getClass().getClassLoader());
136 
137  logger.debugf("Using changelog file %s and changelogTableName %s", changelog, database.getDatabaseChangeLogTableName());
138 
139  return new Liquibase(changelog, resourceAccessor, database);
140  }
static final Logger logger
Definition: DefaultLiquibaseConnectionProvider.java:51

◆ getLiquibaseForCustomUpdate()

Liquibase org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.getLiquibaseForCustomUpdate ( Connection  connection,
String  defaultSchema,
String  changelogLocation,
ClassLoader  classloader,
String  changelogTableName 
) throws LiquibaseException
inline

org.keycloak.connections.jpa.updater.liquibase.conn.LiquibaseConnectionProviderを実装しています。

143  {
144  Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(connection));
145  if (defaultSchema != null) {
146  database.setDefaultSchemaName(defaultSchema);
147  }
148 
149  ResourceAccessor resourceAccessor = new ClassLoaderResourceAccessor(classloader);
150  database.setDatabaseChangeLogTableName(changelogTableName);
151 
152  logger.debugf("Using changelog file %s and changelogTableName %s", changelogLocation, database.getDatabaseChangeLogTableName());
153 
154  return new Liquibase(changelogLocation, resourceAccessor, database);
155  }
static final Logger logger
Definition: DefaultLiquibaseConnectionProvider.java:51

◆ init()

void org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.init ( Config.Scope  config)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

109  {
110 
111  }

◆ order()

default int org.keycloak.provider.ProviderFactory< T extends Provider >.order ( )
inlineinherited

◆ postInit()

void org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.postInit ( KeycloakSessionFactory  factory)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

114  {
115 
116  }

メンバ詳解

◆ initialized

volatile boolean org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.initialized = false
private

◆ logger

final Logger org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider.logger = Logger.getLogger(DefaultLiquibaseConnectionProvider.class)
staticprivate

このクラス詳解は次のファイルから抽出されました: