/** * Returns JTX transaction manager once when component is started. */ public JtxTransactionManager getJtxManager() { return requireStarted(jtxManager); }
@Override public JoyPetite disableAutoConfiguration() { requireNotStarted(petiteContainer); autoConfiguration = false; return this; }
/** * Defines custom {@link PetiteWebApp} implementation. */ public JoddJoy useWebApp(final Supplier<PetiteWebApp> webAppSupplier) { joyMadvoc.setWebAppSupplier(webAppSupplier); return this; }
protected void runJoyInitBeans() { final PetiteContainer pc = joyPetite.getPetiteContainer(); pc.forEachBeanType(JoyInit.class, beanName -> { final JoyInit joyInit = pc.getBean(beanName); if (joyInit != null) { joyInit.onJoy(); } }); }
@Override public JoyDb withConnectionProvider(final Supplier<ConnectionProvider> connectionProviderSupplier) { requireNotStarted(connectionProvider); this.connectionProviderSupplier = connectionProviderSupplier; return this; }
protected void requireNotStarted(final Object object) { if (object != null) { throw new JoyException("Configuration is modified after component is started."); } } protected <T> T requireStarted(final T object) {
/** * Returns class scanner. */ public ClassScanner getClassScanner() { return requireStarted(classScanner); }
public synchronized static JoddJoy get() { if (joddJoy == null) { joddJoy = new JoddJoy(); } return joddJoy; }
/** * Returns proxetta once it is created. */ public Proxetta getProxetta() { return requireStarted(proxetta); }
@Override public JoyScanner setIgnoreExceptions(final boolean ignoreExceptions) { requireNotStarted(classScanner); this.ignoreExceptions = ignoreExceptions; return this; }
/** * Returns application Props. */ public Props getProps() { return requireStarted(props); }
/** * Starts the Joy without the web application. */ public JoddJoyRuntime startOnlyBackend() { return start(null); }
/** * Returns PetiteContainer once when it is created. */ public PetiteContainer getPetiteContainer() { return requireStarted(petiteContainer); }
/** * Returns resolved app dir. */ public String getAppDir() { return requireStarted(appDir); }
@Override public JoyDb disableDatabase() { requireNotStarted(connectionProvider); databaseEnabled = false; return this; }
/** * Returns connection provider once when component is started. */ public ConnectionProvider getConnectionProvider() { return requireStarted(connectionProvider); }
@Override public JoyPetite disableExternalsCache() { requireNotStarted(petiteContainer); externalsCache = true; return this; }
protected <T> T requireStarted(final T object) { if (object == null) { throw new JoyException("Component is not started yet and can not be used."); } return object; }
@Override public JoyDb disableAutoConfiguration() { requireNotStarted(connectionProvider); autoConfiguration = false; return this; }