This is an automated email from the git hooks/post-receive script. New commit to branch feature/2892 in repository topia. See http://git.nuiton.org/topia.git commit e9195ebcd86a220360230878f2eaf5edb89a46a0 Author: Brendan Le Ny <bleny@codelutin.com> Date: Fri Dec 19 17:12:28 2014 +0100 Introduce HibernateAvailableSettings --- .../persistence/HibernateAvailableSettings.java | 14 ++++++ .../topia/persistence/TopiaConfiguration.java | 21 ++++++-- .../persistence/TopiaConfigurationConstants.java | 57 ++++++++++++++++------ 3 files changed, 75 insertions(+), 17 deletions(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/HibernateAvailableSettings.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/HibernateAvailableSettings.java new file mode 100644 index 0000000..9be6d96 --- /dev/null +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/HibernateAvailableSettings.java @@ -0,0 +1,14 @@ +package org.nuiton.topia.persistence; + +import org.hibernate.cfg.AvailableSettings; + +/** + * It's just a shortcut that allows you to use {@link org.hibernate.cfg.AvailableSettings} + * constants without adding Hibernate to your dependencies so one can fill the + * {@link TopiaConfiguration#getHibernateExtraConfiguration()}. + * + * @since 3.0 + */ +public interface HibernateAvailableSettings extends AvailableSettings { + +} diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java index 5005c0d..fb1f48a 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java @@ -15,13 +15,14 @@ public interface TopiaConfiguration extends JdbcConfiguration { * You can set it to false if you don't want Topia to deal with the schema (you keep it * up to date with your own sql file). * + * @return true by default * @since 3.0 */ boolean isInitSchema(); /** * Configuration directive to change topia Ids generation strategy. - * <p/> + * * Expected value is an FQN to a class which implements {@link org.nuiton.topia.persistence.TopiaIdFactory} * * @since 3.0 @@ -30,6 +31,20 @@ public interface TopiaConfiguration extends JdbcConfiguration { String getSchemaName(); + /** + * Topia will automatically generate an Hibernate configuration for you based + * on the different element of this TopiaConfiguration. However, you can tune Hibernate + * by adding Hibernate configuration directive to this Map. + * + * We highly recommend you to use constants in {@link org.nuiton.topia.persistence.HibernateAvailableSettings} + * as keys of the map. + * + * You <strong>MUST NOT</strong> pass {@link HibernateAvailableSettings#HBM2DDL_AUTO} since + * ToPIA will use validate. If you want use it, have a look at {@link org.nuiton.topia.persistence.HibernateTopiaMigrationService} + * + * @return a map containing hibernate configuration directives that ToPIA will use when it + * will instantiate Hibernate. + */ Map<String, String> getHibernateExtraConfiguration(); boolean isConnectionPoolingEnabled(); @@ -38,8 +53,8 @@ public interface TopiaConfiguration extends JdbcConfiguration { Integer getConnectionPoolMaxSize(); - Map<String,Class<? extends TopiaService>> getDeclaredServices(); + Map<String, Class<? extends TopiaService>> getDeclaredServices(); - Map<String,Map<String,String>> getDeclaredServicesConfiguration(); + Map<String, Map<String,String>> getDeclaredServicesConfiguration(); } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationConstants.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationConstants.java index 6217f48..473ed2f 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationConstants.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationConstants.java @@ -24,9 +24,6 @@ package org.nuiton.topia.persistence; * #L% */ -import org.hibernate.cfg.AvailableSettings; -import org.hibernate.cfg.Environment; - /** * This class lists the configuration variables that ToPIA expects * <p/> @@ -35,7 +32,7 @@ import org.hibernate.cfg.Environment; * @author Tony Chemit - chemit@codelutin.com * @since 3.0 * @deprecated if you want to dynamically create configuration through Java, use {@link org.nuiton.topia.persistence.TopiaConfigurationBuilder}, - * if you need Hibernate constants, use {@link org.hibernate.cfg.AvailableSettings} + * if you need Hibernate constants, use {@link org.nuiton.topia.persistence.HibernateAvailableSettings} */ @Deprecated public interface TopiaConfigurationConstants { @@ -66,26 +63,58 @@ public interface TopiaConfigurationConstants { /** * @deprecated dialect is now guessed by Topia, you may use {@link TopiaConfiguration#getHibernateExtraConfiguration()} - * and add a key using constant {@link Environment#DIALECT}. + * and add a key using constant {@link HibernateAvailableSettings#DIALECT}. */ @Deprecated - String CONFIG_DIALECT = AvailableSettings.DIALECT; + String CONFIG_DIALECT = HibernateAvailableSettings.DIALECT; - String CONFIG_CONNECTION_PROVIDER = AvailableSettings.CONNECTION_PROVIDER; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_CONNECTION_PROVIDER = HibernateAvailableSettings.CONNECTION_PROVIDER; - String CONFIG_BYTECODE_PROVIDER = AvailableSettings.BYTECODE_PROVIDER; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_BYTECODE_PROVIDER = HibernateAvailableSettings.BYTECODE_PROVIDER; - String CONFIG_CURRENT_SESSION_CONTEXT_CLASS = AvailableSettings.CURRENT_SESSION_CONTEXT_CLASS; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_CURRENT_SESSION_CONTEXT_CLASS = HibernateAvailableSettings.CURRENT_SESSION_CONTEXT_CLASS; - String CONFIG_GENERATE_STATISTICS = AvailableSettings.GENERATE_STATISTICS; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_GENERATE_STATISTICS = HibernateAvailableSettings.GENERATE_STATISTICS; - String CONFIG_FORMAT_SQL = AvailableSettings.FORMAT_SQL; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_FORMAT_SQL = HibernateAvailableSettings.FORMAT_SQL; - String CONFIG_HBM2DDL_AUTO = AvailableSettings.HBM2DDL_AUTO; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_HBM2DDL_AUTO = HibernateAvailableSettings.HBM2DDL_AUTO; - String CONFIG_POOL_SIZE = AvailableSettings.POOL_SIZE; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_POOL_SIZE = HibernateAvailableSettings.POOL_SIZE; - String CONFIG_SHOW_SQL = AvailableSettings.SHOW_SQL; + /** + * @deprecated use same constant in {@link HibernateAvailableSettings} + */ + @Deprecated + String CONFIG_SHOW_SQL = HibernateAvailableSettings.SHOW_SQL; /** * @deprecated use {@link org.nuiton.topia.persistence.TopiaConfiguration#getJdbcConnectionUrl()} -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.