package io.ebeaninternal.api;

import io.ebean.annotation.Platform;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Helper to indicate that an EbeanServer should come up offline typically for DDL generation purposes.
/** * Helper to indicate that an EbeanServer should come up offline * typically for DDL generation purposes. */
public class DbOffline { private static final Logger logger = LoggerFactory.getLogger(DbOffline.class); private static final String KEY = "ebean.dboffline"; private static boolean generateMigration;
Set the platform to use when creating the next EbeanServer instance.
/** * Set the platform to use when creating the next EbeanServer instance. */
public static void setPlatform(Platform dbPlatform) { System.setProperty(KEY, dbPlatform.name()); }
Set the platform to use when creating the next EbeanServer instance.
/** * Set the platform to use when creating the next EbeanServer instance. */
public static void setPlatform(String platformName) { System.setProperty(KEY, platformName); }
Return the platform to use when creating the next EbeanServer instance.
/** * Return the platform to use when creating the next EbeanServer instance. */
public static String getPlatform() { return System.getProperty(KEY); }
Bring up the next EbeanServer instance using the H2 platform.
/** * Bring up the next EbeanServer instance using the H2 platform. */
public static void asH2() { setPlatform(Platform.H2); }
Return true if the offline platform has been set.
/** * Return true if the offline platform has been set. */
public static boolean isSet() { return getPlatform() != null; }
Return true if the migration is running. This typically means don't run the plugins like full DDL generation.
/** * Return true if the migration is running. This typically means don't run the * plugins like full DDL generation. */
public static boolean isGenerateMigration() { return generateMigration; }
Called when the migration is running is order to stop other plugins like the full DDL generation from executing.
/** * Called when the migration is running is order to stop other plugins * like the full DDL generation from executing. */
public static void setGenerateMigration() { generateMigration = true; }
Reset the offline platform and runningMigration flag.
/** * Reset the offline platform and runningMigration flag. */
public static void reset() { generateMigration = false; System.clearProperty(KEY); logger.debug("reset"); } }