@Override public void postInit(KeycloakSessionFactory factory) { this.factory = factory; checkJtaEnabled(factory); }
@Override public JpaConnectionProvider create(KeycloakSession session) { lazyInit(session); EntityManager em = emf.createEntityManager(); em = PersistenceExceptionConverter.create(em); session.getTransaction().enlist(new JpaKeycloakTransaction(em)); return new DefaultJpaConnectionProvider(em); }
@Override public Throwable convert(Throwable e) { if (!(e instanceof PersistenceException)) return null; return PersistenceExceptionConverter.convert(e.getCause() != null ? e.getCause() : e); }
private EntityManager getEntityManager(KeycloakSession session) { return session.getProvider(JpaConnectionProvider.class).getEntityManager(); } }
public static EntityManager create(EntityManager em) { return (EntityManager) Proxy.newProxyInstance(EntityManager.class.getClassLoader(), new Class[]{EntityManager.class}, new PersistenceExceptionConverter(em)); }
private MigrationStrategy getMigrationStrategy() { String migrationStrategy = config.get("migrationStrategy"); if (migrationStrategy == null) { // Support 'databaseSchema' for backwards compatibility migrationStrategy = config.get("databaseSchema"); } if (migrationStrategy != null) { return MigrationStrategy.valueOf(migrationStrategy.toUpperCase()); } else { return MigrationStrategy.UPDATE; } }
@Override public void run(KeycloakSession session) { SessionFactory sessionFactory = ((SessionFactoryImpl) emf); Statistics stats = sessionFactory.getStatistics(); logStats(stats); stats.clear(); // For now, clear stats after each iteration }
private EntityManager getEntityManager() { return session.getProvider(JpaConnectionProvider.class).getEntityManager(); }
@Override public JpaConnectionProvider create(KeycloakSession session) { logger.trace("Create JpaConnectionProvider"); lazyInit(session); EntityManager em; if (!jtaEnabled) { logger.trace("enlisting EntityManager in JpaKeycloakTransaction"); em = emf.createEntityManager(); } else { em = emf.createEntityManager(SynchronizationType.SYNCHRONIZED); } em = PersistenceExceptionConverter.create(em); if (!jtaEnabled) session.getTransactionManager().enlist(new JpaKeycloakTransaction(em)); return new DefaultJpaConnectionProvider(em); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { return method.invoke(em, args); } catch (InvocationTargetException e) { throw convert(e.getCause()); } }
@Override public UserFederatedStorageProvider create(KeycloakSession session) { EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager(); return new JpaUserFederatedStorageProvider(session, em); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { return method.invoke(em, args); } catch (InvocationTargetException e) { throw convert(e.getCause()); } }
@Override public EventStoreProvider create(KeycloakSession session) { JpaConnectionProvider connection = session.getProvider(JpaConnectionProvider.class); return new JpaEventStoreProvider(connection.getEntityManager()); }
@Override public UserSessionPersisterProvider create(KeycloakSession session) { EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager(); return new JpaUserSessionPersisterProvider(session, em); }
@Override public UserProvider create(KeycloakSession session) { EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager(); return new JpaUserProvider(session, em); }
@Override public UserSessionProvider create(KeycloakSession session) { EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager(); return new JpaUserSessionProvider(session, em); }
@Override public EventStoreProvider create(KeycloakSession session) { JpaConnectionProvider connection = session.getProvider(JpaConnectionProvider.class); return new JpaEventStoreProvider(connection.getEntityManager()); }
@Override public RealmProvider create(KeycloakSession session) { EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager(); return new JpaRealmProvider(session, em); }
@Override public UserCredentialStore create(KeycloakSession session) { EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager(); return new JpaUserCredentialStore(session, em); }
public BeerManager(KeycloakSession session) { this.session = session; this.em = session.getProvider(JpaConnectionProvider.class).getEntityManager(); realm = session.getContext().getRealm(); }