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

公開メンバ関数

ValidationErrors validate (Database database)
 
void setFileOpener (ResourceAccessor resourceAccessor)
 
String getConfirmationMessage ()
 
void setUp () throws SetupException
 
SqlStatement [] generateStatements (Database database) throws CustomChangeException
 

限定公開メンバ関数

boolean isApplicable () throws CustomChangeException
 
abstract void generateStatementsImpl () throws CustomChangeException
 
abstract String getTaskId ()
 
String getTableName (String tableName)
 

限定公開変数類

KeycloakSession kcSession
 
Database database
 
JdbcConnection jdbcConnection
 
Connection connection
 
StringBuilder confirmationMessage = new StringBuilder()
 
List< SqlStatement > statements = new ArrayList<SqlStatement>()
 

非公開変数類

final Logger logger = Logger.getLogger(getClass())
 

詳解

著者
Marek Posolda

関数詳解

◆ generateStatements()

SqlStatement [] org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.generateStatements ( Database  database) throws CustomChangeException
inline
91  {
92  this.database = database;
93  jdbcConnection = (JdbcConnection) database.getConnection();
94  connection = jdbcConnection.getWrappedConnection();
95 
96  if (isApplicable()) {
97  confirmationMessage.append(getTaskId() + ": ");
99  } else {
100  confirmationMessage.append(getTaskId() + ": no update applicable for this task");
101  }
102 
103  return statements.toArray(new SqlStatement[statements.size()]);
104  }
JdbcConnection jdbcConnection
Definition: CustomKeycloakTask.java:52
List< SqlStatement > statements
Definition: CustomKeycloakTask.java:55
boolean isApplicable()
Definition: CustomKeycloakTask.java:106
Database database
Definition: CustomKeycloakTask.java:51
Connection connection
Definition: CustomKeycloakTask.java:53
StringBuilder confirmationMessage
Definition: CustomKeycloakTask.java:54

◆ generateStatementsImpl()

abstract void org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.generateStatementsImpl ( ) throws CustomChangeException
abstractprotected

It's supposed to fill SQL statements to the "statements" variable and fill "confirmationMessage"

◆ getConfirmationMessage()

String org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.getConfirmationMessage ( )
inline
68  {
69  return confirmationMessage.toString();
70  }
StringBuilder confirmationMessage
Definition: CustomKeycloakTask.java:54

◆ getTableName()

String org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.getTableName ( String  tableName)
inlineprotected
132  {
133  String correctedSchemaName = database.escapeObjectName(database.getDefaultSchemaName(), Schema.class);
134  return LiquibaseJpaUpdaterProvider.getTable(tableName, correctedSchemaName);
135  }
Database database
Definition: CustomKeycloakTask.java:51

◆ getTaskId()

abstract String org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.getTaskId ( )
abstractprotected

◆ isApplicable()

boolean org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.isApplicable ( ) throws CustomChangeException
inlineprotected
106  {
107  try {
108  String correctedTableName = database.correctObjectName("REALM", Table.class);
109  if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) {
110  ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + getTableName(correctedTableName));
111  try {
112  return (resultSet.next());
113  } finally {
114  resultSet.close();
115  }
116  } else {
117  return false;
118  }
119  } catch (Exception e) {
120  throw new CustomChangeException("Failed to check database availability", e);
121  }
122  }
String getTableName(String tableName)
Definition: CustomKeycloakTask.java:132
Database database
Definition: CustomKeycloakTask.java:51
Connection connection
Definition: CustomKeycloakTask.java:53

◆ setFileOpener()

void org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.setFileOpener ( ResourceAccessor  resourceAccessor)
inline
63  {
64 
65  }

◆ setUp()

void org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.setUp ( ) throws SetupException
inline
73  {
74  this.kcSession = ThreadLocalSessionContext.getCurrentSession();
75 
76  if (this.kcSession == null) {
77  // Probably running Liquibase from maven plugin. Try to create kcSession programmatically
78  logger.info("No KeycloakSession provided in ThreadLocal. Initializing KeycloakSessionFactory");
79 
80  try {
81  DefaultKeycloakSessionFactory factory = new DefaultKeycloakSessionFactory();
82  factory.init();
83  this.kcSession = factory.create();
84  } catch (Exception e) {
85  throw new SetupException("Exception when initializing factory", e);
86  }
87  }
88  }
KeycloakSession kcSession
Definition: CustomKeycloakTask.java:49
final Logger logger
Definition: CustomKeycloakTask.java:47

◆ validate()

ValidationErrors org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.validate ( Database  database)
inline
58  {
59  return null;
60  }

メンバ詳解

◆ confirmationMessage

StringBuilder org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.confirmationMessage = new StringBuilder()
protected

◆ connection

Connection org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.connection
protected

◆ database

Database org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.database
protected

◆ jdbcConnection

JdbcConnection org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.jdbcConnection
protected

◆ kcSession

KeycloakSession org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.kcSession
protected

◆ logger

final Logger org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.logger = Logger.getLogger(getClass())
private

◆ statements

List<SqlStatement> org.keycloak.connections.jpa.updater.liquibase.custom.CustomKeycloakTask.statements = new ArrayList<SqlStatement>()
protected

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