Skip to content
Open
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 @@ -18,22 +18,17 @@
package org.keycloak.models.utils;

import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.provider.AbstractLifecycleEvent;
import org.keycloak.provider.ProviderEvent;

/**
* Executed at startup after model migration is finished
*
* @author <a href="mailto:[email protected]">Marek Posolda</a>
*/
public class PostMigrationEvent implements ProviderEvent {

private final KeycloakSessionFactory factory;
public class PostMigrationEvent extends AbstractLifecycleEvent {

public PostMigrationEvent(KeycloakSessionFactory factory) {
this.factory = factory;
}

public KeycloakSessionFactory getFactory() {
return this.factory;
super(factory);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.keycloak.provider;

import org.keycloak.models.KeycloakSessionFactory;

public abstract class AbstractLifecycleEvent implements ProviderEvent {

protected final KeycloakSessionFactory sessionFactory;

public AbstractLifecycleEvent(KeycloakSessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

public KeycloakSessionFactory getFactory() {
return sessionFactory;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.keycloak.provider;

import org.keycloak.models.KeycloakSessionFactory;

/**
* Signals that the infrastructure initialization has completed.
*/
public class KeycloakInitializedEvent extends AbstractLifecycleEvent {

public KeycloakInitializedEvent(KeycloakSessionFactory factory) {
super(factory);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.keycloak.provider;

import org.keycloak.models.KeycloakSessionFactory;

/**
* Signals that Keycloak is about to shutdown.
*/
public class KeycloakShutdownEvent extends AbstractLifecycleEvent {

public KeycloakShutdownEvent(KeycloakSessionFactory factory) {
super(factory);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@
import org.keycloak.models.utils.PostMigrationEvent;
import org.keycloak.platform.Platform;
import org.keycloak.platform.PlatformProvider;
import org.keycloak.provider.KeycloakInitializedEvent;
import org.keycloak.provider.KeycloakShutdownEvent;
import org.keycloak.services.managers.ApplianceBootstrap;
import org.keycloak.transaction.JtaTransactionManagerLookup;

Expand Down Expand Up @@ -97,10 +99,12 @@ public void run(KeycloakSession session) {
}

sessionFactory.publish(new PostMigrationEvent(sessionFactory));
sessionFactory.publish(new KeycloakInitializedEvent(sessionFactory));
}

protected void shutdown() {
if (sessionFactory != null) {
sessionFactory.publish(new KeycloakShutdownEvent(sessionFactory));
sessionFactory.close();
}
}
Expand Down
Loading