Search in sources :

Example 1 with CacheResetEvent

use of com.manydesigns.portofino.cache.CacheResetEvent in project Portofino by ManyDesigns.

the class Persistence method initModel.

public synchronized void initModel() {
    logger.info("Cleaning up old setups");
    closeSessions();
    for (Map.Entry<String, HibernateDatabaseSetup> current : setups.entrySet()) {
        String databaseName = current.getKey();
        logger.debug("Cleaning up old setup for: {}", databaseName);
        HibernateDatabaseSetup setup = current.getValue();
        try {
            setup.dispose();
        } catch (Throwable t) {
            logger.warn("Cannot close session factory for: " + databaseName, t);
        }
        databaseSetupEvents.onNext(new DatabaseSetupEvent(DatabaseSetupEvent.REMOVED, setup));
    }
    // TODO it would perhaps be preferable that we generated REPLACED events here rather than REMOVED followed by ADDED
    setups.clear();
    model.init(configuration.getProperties());
    for (Database database : model.getDatabases()) {
        Boolean enabled = database.getJavaAnnotation(Enabled.class).map(Enabled::value).orElse(true);
        if (enabled) {
            initConnectionProvider(database);
        } else {
            logger.info("Skipping disabled database " + database.getQualifiedName());
        }
    }
    if (cacheResetListenerRegistry != null) {
        cacheResetListenerRegistry.fireReset(new CacheResetEvent(this));
    }
}
Also used : CacheResetEvent(com.manydesigns.portofino.cache.CacheResetEvent) HibernateDatabaseSetup(com.manydesigns.portofino.persistence.hibernate.HibernateDatabaseSetup)

Aggregations

CacheResetEvent (com.manydesigns.portofino.cache.CacheResetEvent)1 HibernateDatabaseSetup (com.manydesigns.portofino.persistence.hibernate.HibernateDatabaseSetup)1