Search in sources :

Example 1 with ConfigurationFacadeImpl

use of org.jboss.tools.hibernate.runtime.v_5_3.internal.ConfigurationFacadeImpl in project jbosstools-hibernate by jbosstools.

the class ConfigurationMetadataDescriptor method patch.

private Metadata patch(Metadata metadata) {
    try {
        if (metadata instanceof MetadataImpl) {
            MetadataImpl metadataImpl = (MetadataImpl) metadata;
            Field entityBindingMapField = metadataImpl.getClass().getDeclaredField("entityBindingMap");
            if (entityBindingMapField != null) {
                entityBindingMapField.setAccessible(true);
                Object object = entityBindingMapField.get(metadataImpl);
                if (object instanceof HashMap<?, ?>) {
                    @SuppressWarnings("unchecked") HashMap<String, PersistentClass> map = (HashMap<String, PersistentClass>) object;
                    for (IPersistentClass ipc : ((ConfigurationFacadeImpl) this.configurationFacade).getAddedClasses()) {
                        PersistentClass pc = (PersistentClass) ((IFacade) ipc).getTarget();
                        map.put(pc.getEntityName(), pc);
                    }
                }
            }
        }
        return metadata;
    } catch (Throwable t) {
        throw new RuntimeException("Problem while creating metadata", t);
    }
}
Also used : Field(java.lang.reflect.Field) MetadataImpl(org.hibernate.boot.internal.MetadataImpl) HashMap(java.util.HashMap) ConfigurationFacadeImpl(org.jboss.tools.hibernate.runtime.v_5_5.internal.ConfigurationFacadeImpl) IPersistentClass(org.jboss.tools.hibernate.runtime.spi.IPersistentClass) PersistentClass(org.hibernate.mapping.PersistentClass) IPersistentClass(org.jboss.tools.hibernate.runtime.spi.IPersistentClass)

Example 2 with ConfigurationFacadeImpl

use of org.jboss.tools.hibernate.runtime.v_5_3.internal.ConfigurationFacadeImpl in project jbosstools-hibernate by jbosstools.

the class ExporterFacadeTest method testSetConfiguration.

@Test
public void testSetConfiguration() throws Exception {
    exporterTarget = new HibernateConfigurationExporter();
    exporterFacade = new ExporterFacadeImpl(FACADE_FACTORY, exporterTarget);
    Properties properties = new Properties();
    Configuration configurationTarget = new Configuration();
    configurationTarget.setProperties(properties);
    ConfigurationFacadeImpl configurationFacade1 = new ConfigurationFacadeImpl(FACADE_FACTORY, configurationTarget);
    exporterFacade.setConfiguration(configurationFacade1);
    assertSame(properties, ((HibernateConfigurationExporter) exporterTarget).getCustomProperties());
    Field metadataDescriptorField = AbstractExporter.class.getDeclaredField("metadataDescriptor");
    metadataDescriptorField.setAccessible(true);
    ConfigurationMetadataDescriptor configurationMetadataDescriptor = (ConfigurationMetadataDescriptor) metadataDescriptorField.get(exporterTarget);
    assertNotNull(configurationMetadataDescriptor);
    Field configurationFacadeField = ConfigurationMetadataDescriptor.class.getDeclaredField("configuration");
    configurationFacadeField.setAccessible(true);
    ConfigurationFacadeImpl configurationFacade2 = (ConfigurationFacadeImpl) configurationFacadeField.get(configurationMetadataDescriptor);
    assertNotNull(configurationFacade2);
    assertSame(configurationFacade1, configurationFacade2);
}
Also used : Field(java.lang.reflect.Field) ConfigurationMetadataDescriptor(org.jboss.tools.hibernate.runtime.v_5_3.internal.util.ConfigurationMetadataDescriptor) HibernateConfigurationExporter(org.hibernate.tool.hbm2x.HibernateConfigurationExporter) Configuration(org.hibernate.cfg.Configuration) Properties(java.util.Properties) Test(org.junit.jupiter.api.Test)

Example 3 with ConfigurationFacadeImpl

use of org.jboss.tools.hibernate.runtime.v_5_3.internal.ConfigurationFacadeImpl in project jbosstools-hibernate by jbosstools.

the class ConfigurationFacadeTest method testReadFromJDBC.

@Test
public void testReadFromJDBC() throws Exception {
    Connection connection = DriverManager.getConnection("jdbc:h2:mem:test");
    Statement statement = connection.createStatement();
    statement.execute("CREATE TABLE FOO(id int primary key, bar varchar(255))");
    JdbcMetadataConfiguration jdbcMdCfg = new JdbcMetadataConfiguration();
    jdbcMdCfg.setProperty("hibernate.connection.url", "jdbc:h2:mem:test");
    configurationFacade = new ConfigurationFacadeImpl(FACADE_FACTORY, jdbcMdCfg);
    Metadata metadata = jdbcMdCfg.getMetadata();
    assertNull(metadata);
    jdbcMdCfg = new JdbcMetadataConfiguration();
    jdbcMdCfg.setProperty("hibernate.connection.url", "jdbc:h2:mem:test");
    configurationFacade = new ConfigurationFacadeImpl(FACADE_FACTORY, jdbcMdCfg);
    configurationFacade.readFromJDBC();
    metadata = jdbcMdCfg.getMetadata();
    Iterator<PersistentClass> iterator = metadata.getEntityBindings().iterator();
    PersistentClass persistentClass = iterator.next();
    assertEquals("Foo", persistentClass.getClassName());
    statement.execute("DROP TABLE FOO");
    statement.close();
    connection.close();
}
Also used : Statement(java.sql.Statement) Connection(java.sql.Connection) JdbcMetadataConfiguration(org.jboss.tools.hibernate.runtime.v_5_3.internal.util.JdbcMetadataConfiguration) Metadata(org.hibernate.boot.Metadata) PersistentClass(org.hibernate.mapping.PersistentClass) IPersistentClass(org.jboss.tools.hibernate.runtime.spi.IPersistentClass) Test(org.junit.jupiter.api.Test)

Example 4 with ConfigurationFacadeImpl

use of org.jboss.tools.hibernate.runtime.v_5_3.internal.ConfigurationFacadeImpl in project jbosstools-hibernate by jbosstools.

the class ConfigurationFacadeTest method beforeEach.

@BeforeEach
public void beforeEach() {
    configuration = new Configuration();
    configuration.setProperty(AvailableSettings.DIALECT, MockDialect.class.getName());
    configurationFacade = new ConfigurationFacadeImpl(FACADE_FACTORY, configuration);
}
Also used : JdbcMetadataConfiguration(org.jboss.tools.hibernate.runtime.v_5_3.internal.util.JdbcMetadataConfiguration) Configuration(org.hibernate.cfg.Configuration) IConfiguration(org.jboss.tools.hibernate.runtime.spi.IConfiguration) MockDialect(org.jboss.tools.hibernate.runtime.v_5_3.internal.util.MockDialect) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 5 with ConfigurationFacadeImpl

use of org.jboss.tools.hibernate.runtime.v_5_3.internal.ConfigurationFacadeImpl in project jbosstools-hibernate by jbosstools.

the class ConfigurationFacadeTest method testGetTableMappings.

@Test
public void testGetTableMappings() throws Exception {
    Connection connection = DriverManager.getConnection("jdbc:h2:mem:test");
    Statement statement = connection.createStatement();
    statement.execute("CREATE TABLE FOO(id int primary key, bar varchar(255))");
    JdbcMetadataConfiguration jdbcMdCfg = new JdbcMetadataConfiguration();
    jdbcMdCfg.setProperty("hibernate.connection.url", "jdbc:h2:mem:test");
    configurationFacade = new ConfigurationFacadeImpl(FACADE_FACTORY, jdbcMdCfg);
    Iterator<ITable> iterator = configurationFacade.getTableMappings();
    assertFalse(iterator.hasNext());
    jdbcMdCfg.readFromJDBC();
    configurationFacade = new ConfigurationFacadeImpl(FACADE_FACTORY, jdbcMdCfg);
    iterator = configurationFacade.getTableMappings();
    IFacade facade = (IFacade) iterator.next();
    Table table = (Table) facade.getTarget();
    assertEquals("FOO", table.getName());
    statement.execute("DROP TABLE FOO");
    connection.close();
}
Also used : ITable(org.jboss.tools.hibernate.runtime.spi.ITable) Table(org.hibernate.mapping.Table) Statement(java.sql.Statement) Connection(java.sql.Connection) JdbcMetadataConfiguration(org.jboss.tools.hibernate.runtime.v_5_3.internal.util.JdbcMetadataConfiguration) ITable(org.jboss.tools.hibernate.runtime.spi.ITable) IFacade(org.jboss.tools.hibernate.runtime.common.IFacade) Test(org.junit.jupiter.api.Test)

Aggregations

Configuration (org.hibernate.cfg.Configuration)13 Test (org.junit.jupiter.api.Test)12 PersistentClass (org.hibernate.mapping.PersistentClass)10 IPersistentClass (org.jboss.tools.hibernate.runtime.spi.IPersistentClass)10 Metadata (org.hibernate.boot.Metadata)7 Field (java.lang.reflect.Field)6 BeforeEach (org.junit.jupiter.api.BeforeEach)6 ByteArrayInputStream (java.io.ByteArrayInputStream)5 MetadataSources (org.hibernate.boot.MetadataSources)5 RootClass (org.hibernate.mapping.RootClass)5 JdbcMetadataConfiguration (org.jboss.tools.hibernate.runtime.v_5_3.internal.util.JdbcMetadataConfiguration)5 HashMap (java.util.HashMap)4 MetadataImpl (org.hibernate.boot.internal.MetadataImpl)4 ConfigurationFacadeImpl (org.jboss.tools.hibernate.runtime.v_5_3.internal.ConfigurationFacadeImpl)3 MockDialect (org.jboss.tools.hibernate.runtime.v_5_3.internal.util.MockDialect)3 ConfigurationFacadeImpl (org.jboss.tools.hibernate.runtime.v_5_4.internal.ConfigurationFacadeImpl)3 ConfigurationFacadeImpl (org.jboss.tools.hibernate.runtime.v_5_5.internal.ConfigurationFacadeImpl)3 ConfigurationFacadeImpl (org.jboss.tools.hibernate.runtime.v_5_6.internal.ConfigurationFacadeImpl)3 Connection (java.sql.Connection)2 Statement (java.sql.Statement)2