parent
dcf2a85d20
commit
04491e6775
|
@ -19,7 +19,7 @@ dependencies {
|
||||||
|
|
||||||
compile( libraries.postgresql )
|
compile( libraries.postgresql )
|
||||||
|
|
||||||
testCompile(libraries.junit)
|
|
||||||
testCompile(project(':hibernate-testing'))
|
testCompile(project(':hibernate-testing'))
|
||||||
testCompile( project( path: ':hibernate-core', configuration: 'tests' ) )
|
testCompile( project( path: ':hibernate-core', configuration: 'tests' ) )
|
||||||
testCompile(libraries.validation)
|
testCompile(libraries.validation)
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.type;
|
||||||
|
|
||||||
|
import org.hibernate.boot.model.TypeContributions;
|
||||||
|
import org.hibernate.spatial.GeolatteGeometryJavaTypeDescriptor;
|
||||||
|
import org.hibernate.spatial.GeolatteGeometryType;
|
||||||
|
import org.hibernate.spatial.JTSGeometryJavaTypeDescriptor;
|
||||||
|
import org.hibernate.spatial.JTSGeometryType;
|
||||||
|
import org.hibernate.spatial.dialect.postgis.PGGeometryTypeDescriptor;
|
||||||
|
|
||||||
|
public class PostgisTypeContributor implements SpatialTypeContributorImplementor{
|
||||||
|
|
||||||
|
public void contribute(TypeContributions typeContributions) {
|
||||||
|
typeContributions.contributeType( new GeolatteGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) );
|
||||||
|
typeContributions.contributeType( new JTSGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) );
|
||||||
|
|
||||||
|
//Isn't this redundant?
|
||||||
|
typeContributions.contributeJavaTypeDescriptor( GeolatteGeometryJavaTypeDescriptor.INSTANCE );
|
||||||
|
typeContributions.contributeJavaTypeDescriptor( JTSGeometryJavaTypeDescriptor.INSTANCE );
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.type;
|
||||||
|
|
||||||
|
import org.hibernate.boot.model.TypeContributions;
|
||||||
|
import org.hibernate.boot.model.TypeContributor;
|
||||||
|
import org.hibernate.dialect.Dialect;
|
||||||
|
import org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator;
|
||||||
|
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||||
|
import org.hibernate.service.ServiceRegistry;
|
||||||
|
import org.hibernate.spatial.GeolatteGeometryJavaTypeDescriptor;
|
||||||
|
import org.hibernate.spatial.GeolatteGeometryType;
|
||||||
|
import org.hibernate.spatial.JTSGeometryJavaTypeDescriptor;
|
||||||
|
import org.hibernate.spatial.JTSGeometryType;
|
||||||
|
import org.hibernate.spatial.dialect.postgis.PGGeometryTypeDescriptor;
|
||||||
|
|
||||||
|
public class SpatialTypeContributor implements TypeContributor {
|
||||||
|
@Override
|
||||||
|
public void contribute(
|
||||||
|
TypeContributions typeContributions, ServiceRegistry serviceRegistry) {
|
||||||
|
|
||||||
|
typeContributions.contributeType( new GeolatteGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) );
|
||||||
|
typeContributions.contributeType( new JTSGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) );
|
||||||
|
|
||||||
|
typeContributions.contributeJavaTypeDescriptor( GeolatteGeometryJavaTypeDescriptor.INSTANCE );
|
||||||
|
typeContributions.contributeJavaTypeDescriptor( JTSGeometryJavaTypeDescriptor.INSTANCE );
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.type;
|
||||||
|
|
||||||
|
public interface SpatialTypeContributorImplementor {
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.type;
|
||||||
|
|
||||||
|
public class TypeContributorResolver {
|
||||||
|
}
|
|
@ -10,39 +10,29 @@ package org.hibernate.spatial.integration;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import javax.persistence.Query;
|
||||||
|
|
||||||
import org.hibernate.Session;
|
|
||||||
import org.hibernate.Transaction;
|
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.query.Query;
|
import org.hibernate.engine.spi.SessionImplementor;
|
||||||
import org.hibernate.query.criteria.JpaCriteriaQuery;
|
|
||||||
import org.hibernate.spatial.integration.geolatte.GeomEntity;
|
|
||||||
import org.hibernate.spatial.testing.GeometryEquality;
|
import org.hibernate.spatial.testing.GeometryEquality;
|
||||||
import org.hibernate.spatial.testing.SpatialFunctionalTestCase;
|
|
||||||
import org.hibernate.spatial.testing.datareader.TestDataElement;
|
import org.hibernate.spatial.testing.datareader.TestDataElement;
|
||||||
|
import org.hibernate.spatial.testing.domain.SpatialDomainModel;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.hibernate.testing.orm.junit.DomainModel;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import org.geolatte.geom.codec.WktDecodeException;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
import static junit.framework.Assert.assertEquals;
|
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
//import org.geolatte.geom.C3DM;
|
|
||||||
//import org.geolatte.geom.Geometry;
|
|
||||||
//import org.geolatte.geom.GeometryEquality;
|
|
||||||
//import org.geolatte.geom.GeometryPointEquality;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Karel Maesen, Geovise BVBA on 15/02/2018.
|
* Created by Karel Maesen, Geovise BVBA on 15/02/2018.
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractTestStoreRetrieve<G, E extends GeomEntityLike<G>> extends SpatialFunctionalTestCase {
|
@DomainModel(modelDescriptorClasses = SpatialDomainModel.class)
|
||||||
|
@SessionFactory
|
||||||
|
public abstract class AbstractTestStoreRetrieve<G, E extends GeomEntityLike<G>>
|
||||||
public void prepareTest() {
|
extends SpatialTestDataProvider {
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract GeometryEquality<G> getGeometryEquality();
|
protected abstract GeometryEquality<G> getGeometryEquality();
|
||||||
|
|
||||||
|
@ -50,12 +40,26 @@ public abstract class AbstractTestStoreRetrieve<G, E extends GeomEntityLike<G>>
|
||||||
|
|
||||||
protected abstract E createFrom(TestDataElement element, Dialect dialect);
|
protected abstract E createFrom(TestDataElement element, Dialect dialect);
|
||||||
|
|
||||||
|
private Map<Integer, E> stored = new HashMap<>();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAfterStoreRetrievingEqualObject() throws WktDecodeException {
|
public void testStoringGeomEntity(SessionFactoryScope scope) {
|
||||||
Map<Integer, E> stored = new HashMap<>();
|
|
||||||
//check whether we retrieve exactly what we store
|
//check whether we retrieve exactly what we store
|
||||||
storeTestObjects( stored );
|
scope.inTransaction( this::storeTestObjects );
|
||||||
retrieveAndCompare( stored );
|
scope.inTransaction( this::retrieveAndCompare );
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private void retrieveAndCompare(SessionImplementor session) {
|
||||||
|
Query query = session.createQuery( "from " + this.getGeomEntityClass().getCanonicalName() );
|
||||||
|
List<E> results = (List<E>) query.getResultList();
|
||||||
|
results.stream().forEach( this::isInStored );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void isInStored(E entity) {
|
||||||
|
E input = stored.get( entity.getId() );
|
||||||
|
assertEquals( entity, input );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -64,36 +68,6 @@ public abstract class AbstractTestStoreRetrieve<G, E extends GeomEntityLike<G>>
|
||||||
retrieveNullGeometry();
|
retrieveNullGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void retrieveAndCompare(Map<Integer, E> stored) {
|
|
||||||
int id = -1;
|
|
||||||
Transaction tx = null;
|
|
||||||
Session session = null;
|
|
||||||
GeometryEquality<G> geomEq = getGeometryEquality();
|
|
||||||
try {
|
|
||||||
session = openSession();
|
|
||||||
tx = session.beginTransaction();
|
|
||||||
for ( E storedEntity : stored.values() ) {
|
|
||||||
id = storedEntity.getId();
|
|
||||||
E retrievedEntity = session.get( getGeomEntityClass(), id );
|
|
||||||
G retrievedGeometry = retrievedEntity.getGeom();
|
|
||||||
G storedGeometry = storedEntity.getGeom();
|
|
||||||
String msg = createFailureMessage( storedEntity.getId(), storedGeometry, retrievedGeometry );
|
|
||||||
assertTrue( msg, geomEq.test( storedGeometry, retrievedGeometry ) );
|
|
||||||
}
|
|
||||||
tx.commit();
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
if ( tx != null ) {
|
|
||||||
tx.rollback();
|
|
||||||
}
|
|
||||||
throw new RuntimeException( String.format( "Failure on case: %d", id ), e );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( session != null ) {
|
|
||||||
session.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String createFailureMessage(int id, G storedGeometry, G retrievedGeometry) {
|
private String createFailureMessage(int id, G storedGeometry, G retrievedGeometry) {
|
||||||
String expectedText = ( storedGeometry != null ? storedGeometry.toString() : "NULL" );
|
String expectedText = ( storedGeometry != null ? storedGeometry.toString() : "NULL" );
|
||||||
|
@ -106,88 +80,21 @@ public abstract class AbstractTestStoreRetrieve<G, E extends GeomEntityLike<G>>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void storeTestObjects(Map<Integer, E> stored) {
|
private void storeTestObjects(SessionImplementor session) {
|
||||||
Session session = null;
|
// Every testsuite-suite instance is committed seperately
|
||||||
Transaction tx = null;
|
// to improve feedback in case of failure
|
||||||
int id = -1;
|
for ( TestDataElement element : testData ) {
|
||||||
try {
|
E entity = createFrom( element, session.getJdbcServices().getDialect() );
|
||||||
session = openSession();
|
stored.put( entity.getId(), entity );
|
||||||
Dialect dialect = sessionFactory().getJdbcServices().getDialect();
|
session.save( entity );
|
||||||
// Every testsuite-suite instance is committed seperately
|
|
||||||
// to improve feedback in case of failure
|
|
||||||
for ( TestDataElement element : testData ) {
|
|
||||||
id = element.id;
|
|
||||||
tx = session.beginTransaction();
|
|
||||||
E entity = createFrom( element, dialect );
|
|
||||||
stored.put( entity.getId(), entity );
|
|
||||||
session.save( entity );
|
|
||||||
tx.commit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
if ( tx != null ) {
|
|
||||||
tx.rollback();
|
|
||||||
}
|
|
||||||
throw new RuntimeException( "Failed storing testsuite-suite object with id:" + id, e );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( session != null ) {
|
|
||||||
session.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void storeNullGeometry() {
|
private void storeNullGeometry() {
|
||||||
GeomEntity entity = null;
|
|
||||||
Session session = null;
|
|
||||||
Transaction tx = null;
|
|
||||||
try {
|
|
||||||
session = openSession();
|
|
||||||
tx = session.beginTransaction();
|
|
||||||
entity = new GeomEntity();
|
|
||||||
entity.setId( 1 );
|
|
||||||
entity.setType( "NULL OBJECT" );
|
|
||||||
session.save( entity );
|
|
||||||
tx.commit();
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
if ( tx != null ) {
|
|
||||||
tx.rollback();
|
|
||||||
}
|
|
||||||
Integer id = entity != null ? entity.getId() : -1;
|
|
||||||
throw new RuntimeException( "Failed storing testsuite-suite object with id:" + id, e );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( session != null ) {
|
|
||||||
session.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void retrieveNullGeometry() {
|
private void retrieveNullGeometry() {
|
||||||
Transaction tx = null;
|
|
||||||
Session session = null;
|
|
||||||
try {
|
|
||||||
session = openSession();
|
|
||||||
tx = session.beginTransaction();
|
|
||||||
JpaCriteriaQuery<GeomEntity> criteria = session.getCriteriaBuilder().createQuery( GeomEntity.class );
|
|
||||||
Query<GeomEntity> query = session.createQuery( criteria );
|
|
||||||
List<GeomEntity> retrieved = query.list();
|
|
||||||
assertEquals( "Expected exactly one result", 1, retrieved.size() );
|
|
||||||
GeomEntity entity = retrieved.get( 0 );
|
|
||||||
assertNull( entity.getGeom() );
|
|
||||||
tx.commit();
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
if ( tx != null ) {
|
|
||||||
tx.rollback();
|
|
||||||
}
|
|
||||||
throw new RuntimeException( e );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( session != null ) {
|
|
||||||
session.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
package org.hibernate.spatial.integration;
|
package org.hibernate.spatial.integration;
|
||||||
|
|
||||||
import org.hibernate.dialect.AbstractHANADialect;
|
import org.hibernate.dialect.AbstractHANADialect;
|
||||||
|
import org.hibernate.dialect.DB2Dialect;
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.spatial.dialect.db2.DB2SpatialDialect;
|
import org.hibernate.spatial.dialect.db2.DB2SpatialDialect;
|
||||||
|
|
||||||
|
@ -24,7 +25,7 @@ public class DecodeUtil {
|
||||||
if ( dialect instanceof AbstractHANADialect ) {
|
if ( dialect instanceof AbstractHANADialect ) {
|
||||||
decoder = Wkt.newDecoder( Wkt.Dialect.HANA_EWKT );
|
decoder = Wkt.newDecoder( Wkt.Dialect.HANA_EWKT );
|
||||||
}
|
}
|
||||||
else if ( dialect instanceof DB2SpatialDialect ) {
|
else if ( dialect instanceof DB2Dialect ) {
|
||||||
decoder = Wkt.newDecoder( Wkt.Dialect.DB2_WKT );
|
decoder = Wkt.newDecoder( Wkt.Dialect.DB2_WKT );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.integration;
|
||||||
|
|
||||||
|
import java.sql.BatchUpdateException;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import javax.persistence.Query;
|
||||||
|
|
||||||
|
import org.hibernate.cfg.NotYetImplementedException;
|
||||||
|
import org.hibernate.engine.spi.SessionImplementor;
|
||||||
|
import org.hibernate.spatial.testing.AbstractExpectationsFactory;
|
||||||
|
import org.hibernate.spatial.testing.DataSourceUtils;
|
||||||
|
import org.hibernate.spatial.testing.JTSGeometryEquality;
|
||||||
|
import org.hibernate.spatial.testing.TestSupportFactories;
|
||||||
|
import org.hibernate.spatial.testing.datareader.TestData;
|
||||||
|
import org.hibernate.spatial.testing.datareader.TestSupport;
|
||||||
|
|
||||||
|
import org.hibernate.testing.orm.junit.DialectContext;
|
||||||
|
|
||||||
|
public class SpatialTestDataProvider {
|
||||||
|
protected final static String JTS = "jts";
|
||||||
|
|
||||||
|
protected TestData testData;
|
||||||
|
protected JTSGeometryEquality geometryEquality;
|
||||||
|
protected AbstractExpectationsFactory expectationsFactory;
|
||||||
|
|
||||||
|
|
||||||
|
public SpatialTestDataProvider() {
|
||||||
|
try {
|
||||||
|
TestSupport support = TestSupportFactories.instance().getTestSupportFactory( DialectContext.getDialect() );
|
||||||
|
testData = support.createTestData( TestSupport.TestDataPurpose.StoreRetrieveData );
|
||||||
|
geometryEquality = support.createGeometryEquality();
|
||||||
|
}
|
||||||
|
catch (InstantiationException | IllegalAccessException e) {
|
||||||
|
throw new RuntimeException( e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts the test data via a direct route (JDBC).
|
||||||
|
*/
|
||||||
|
public void prepareTest(SessionImplementor session) {
|
||||||
|
throw new NotYetImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected String entityName(String pckg) {
|
||||||
|
if ( JTS.equalsIgnoreCase( pckg ) ) {
|
||||||
|
return "org.hibernate.spatial.testing.domain.JtsGeomEntity";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "org.hibernate.spatial.testing.domain.GeomEntity";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,7 +20,7 @@ import org.hibernate.Transaction;
|
||||||
import org.hibernate.spatial.HSMessageLogger;
|
import org.hibernate.spatial.HSMessageLogger;
|
||||||
import org.hibernate.spatial.SpatialFunction;
|
import org.hibernate.spatial.SpatialFunction;
|
||||||
import org.hibernate.spatial.dialect.hana.HANASpatialDialect;
|
import org.hibernate.spatial.dialect.hana.HANASpatialDialect;
|
||||||
import org.hibernate.spatial.integration.geolatte.GeomEntity;
|
import org.hibernate.spatial.testing.domain.GeomEntity;
|
||||||
import org.hibernate.spatial.predicate.GeolatteSpatialPredicates;
|
import org.hibernate.spatial.predicate.GeolatteSpatialPredicates;
|
||||||
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
||||||
import org.hibernate.spatial.testing.SpatialFunctionalTestCase;
|
import org.hibernate.spatial.testing.SpatialFunctionalTestCase;
|
||||||
|
|
|
@ -20,7 +20,7 @@ import org.hibernate.Transaction;
|
||||||
import org.hibernate.spatial.HSMessageLogger;
|
import org.hibernate.spatial.HSMessageLogger;
|
||||||
import org.hibernate.spatial.SpatialFunction;
|
import org.hibernate.spatial.SpatialFunction;
|
||||||
import org.hibernate.spatial.dialect.hana.HANASpatialDialect;
|
import org.hibernate.spatial.dialect.hana.HANASpatialDialect;
|
||||||
import org.hibernate.spatial.integration.jts.JtsGeomEntity;
|
import org.hibernate.spatial.testing.domain.JtsGeomEntity;
|
||||||
import org.hibernate.spatial.predicate.JTSSpatialPredicates;
|
import org.hibernate.spatial.predicate.JTSSpatialPredicates;
|
||||||
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
||||||
import org.hibernate.spatial.testing.SpatialFunctionalTestCase;
|
import org.hibernate.spatial.testing.SpatialFunctionalTestCase;
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.integration;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.hibernate.boot.spi.MetadataImplementor;
|
||||||
|
import org.hibernate.spatial.testing.domain.SpatialDomainModel;
|
||||||
|
import org.hibernate.tool.hbm2ddl.SchemaExport;
|
||||||
|
import org.hibernate.tool.hbm2ddl.SchemaUpdate;
|
||||||
|
import org.hibernate.tool.schema.TargetType;
|
||||||
|
|
||||||
|
import org.hibernate.testing.orm.junit.DomainModel;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.hamcrest.Matchers.stringContainsInOrder;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
|
||||||
|
@DomainModel(modelDescriptorClasses = SpatialDomainModel.class)
|
||||||
|
@SessionFactory
|
||||||
|
public class TestSpatialSchemaGeneration {
|
||||||
|
|
||||||
|
File output;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
public void setup() throws IOException {
|
||||||
|
output = File.createTempFile( "update_script", ".sql" );
|
||||||
|
output.deleteOnExit();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreatedSchemaHasGeometryField(SessionFactoryScope scope) throws IOException {
|
||||||
|
|
||||||
|
MetadataImplementor metadata = scope.getMetadataImplementor();
|
||||||
|
new SchemaExport()
|
||||||
|
.setOverrideOutputFileContent()
|
||||||
|
.setOutputFile( output.getAbsolutePath() )
|
||||||
|
.setFormat( false )
|
||||||
|
.execute( EnumSet.of( TargetType.SCRIPT ), SchemaExport.Action.BOTH, metadata );
|
||||||
|
final List<String> sqlLines = Files.readAllLines( output.toPath(), Charset.defaultCharset() );
|
||||||
|
String result = sqlLines.stream().collect( Collectors.joining( " " ) ).toLowerCase( Locale.ROOT );
|
||||||
|
assertThat( result, stringContainsInOrder( List.of( "geometry", "geom" ) ) );
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,6 +13,7 @@ import org.hibernate.spatial.testing.GeolatteGeometryEquality;
|
||||||
import org.hibernate.spatial.testing.GeometryEquality;
|
import org.hibernate.spatial.testing.GeometryEquality;
|
||||||
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
||||||
import org.hibernate.spatial.testing.datareader.TestDataElement;
|
import org.hibernate.spatial.testing.datareader.TestDataElement;
|
||||||
|
import org.hibernate.spatial.testing.domain.GeomEntity;
|
||||||
|
|
||||||
import org.hibernate.testing.Skip;
|
import org.hibernate.testing.Skip;
|
||||||
|
|
||||||
|
@ -25,7 +26,7 @@ import org.geolatte.geom.codec.WktDecodeException;
|
||||||
* This testsuite-suite class verifies whether the <code>Geometry</code>s retrieved
|
* This testsuite-suite class verifies whether the <code>Geometry</code>s retrieved
|
||||||
* are equal to the <code>Geometry</code>s stored.
|
* are equal to the <code>Geometry</code>s stored.
|
||||||
*/
|
*/
|
||||||
@Skip(condition = SpatialDialectMatcher.class, message = "No Spatial Dialect")
|
|
||||||
public class TestStoreRetrieveUsingGeolatte extends AbstractTestStoreRetrieve<Geometry, GeomEntity> {
|
public class TestStoreRetrieveUsingGeolatte extends AbstractTestStoreRetrieve<Geometry, GeomEntity> {
|
||||||
|
|
||||||
private static final HSMessageLogger LOG = Logger.getMessageLogger(
|
private static final HSMessageLogger LOG = Logger.getMessageLogger(
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.hibernate.spatial.testing.GeometryEquality;
|
||||||
import org.hibernate.spatial.testing.JTSGeometryEquality;
|
import org.hibernate.spatial.testing.JTSGeometryEquality;
|
||||||
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
import org.hibernate.spatial.testing.SpatialDialectMatcher;
|
||||||
import org.hibernate.spatial.testing.datareader.TestDataElement;
|
import org.hibernate.spatial.testing.datareader.TestDataElement;
|
||||||
|
import org.hibernate.spatial.testing.domain.JtsGeomEntity;
|
||||||
|
|
||||||
import org.hibernate.testing.Skip;
|
import org.hibernate.testing.Skip;
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,9 @@ import org.hibernate.cfg.NotYetImplementedException;
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.service.ServiceRegistry;
|
import org.hibernate.service.ServiceRegistry;
|
||||||
import org.hibernate.spatial.HSMessageLogger;
|
import org.hibernate.spatial.HSMessageLogger;
|
||||||
import org.hibernate.spatial.SpatialDialect;
|
|
||||||
import org.hibernate.spatial.SpatialFunction;
|
import org.hibernate.spatial.SpatialFunction;
|
||||||
import org.hibernate.spatial.integration.jts.JtsGeomEntity;
|
import org.hibernate.spatial.testing.domain.GeomEntity;
|
||||||
|
import org.hibernate.spatial.testing.domain.JtsGeomEntity;
|
||||||
import org.hibernate.spatial.testing.datareader.TestData;
|
import org.hibernate.spatial.testing.datareader.TestData;
|
||||||
import org.hibernate.spatial.testing.datareader.TestSupport;
|
import org.hibernate.spatial.testing.datareader.TestSupport;
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ public abstract class SpatialFunctionalTestCase extends BaseCoreFunctionalTestCa
|
||||||
TestSupport support = TestSupportFactories.instance().getTestSupportFactory( getDialect() );
|
TestSupport support = TestSupportFactories.instance().getTestSupportFactory( getDialect() );
|
||||||
dataSourceUtils = support.createDataSourceUtil( serviceRegistry );
|
dataSourceUtils = support.createDataSourceUtil( serviceRegistry );
|
||||||
expectationsFactory = support.createExpectationsFactory( dataSourceUtils );
|
expectationsFactory = support.createExpectationsFactory( dataSourceUtils );
|
||||||
testData = support.createTestData( this );
|
testData = support.createTestData( TestSupport.TestDataPurpose.StoreRetrieveData );
|
||||||
geometryEquality = support.createGeometryEquality();
|
geometryEquality = support.createGeometryEquality();
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
|
@ -151,7 +151,7 @@ public abstract class SpatialFunctionalTestCase extends BaseCoreFunctionalTestCa
|
||||||
@Override
|
@Override
|
||||||
protected Class<?>[] getAnnotatedClasses() {
|
protected Class<?>[] getAnnotatedClasses() {
|
||||||
return new Class<?>[] {
|
return new Class<?>[] {
|
||||||
org.hibernate.spatial.integration.geolatte.GeomEntity.class,
|
GeomEntity.class,
|
||||||
JtsGeomEntity.class
|
JtsGeomEntity.class
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -252,10 +252,10 @@ public abstract class SpatialFunctionalTestCase extends BaseCoreFunctionalTestCa
|
||||||
|
|
||||||
protected String entityName(String pckg) {
|
protected String entityName(String pckg) {
|
||||||
if ( JTS.equalsIgnoreCase( pckg ) ) {
|
if ( JTS.equalsIgnoreCase( pckg ) ) {
|
||||||
return "org.hibernate.spatial.integration.jts.JtsGeomEntity";
|
return "org.hibernate.spatial.testing.domain.JtsGeomEntity";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return "org.hibernate.spatial.integration.geolatte.GeomEntity";
|
return "org.hibernate.spatial.testing.domain.GeomEntity";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ import org.hibernate.dialect.CockroachDialect;
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.dialect.MariaDBDialect;
|
import org.hibernate.dialect.MariaDBDialect;
|
||||||
import org.hibernate.dialect.PostgreSQL82Dialect;
|
import org.hibernate.dialect.PostgreSQL82Dialect;
|
||||||
|
import org.hibernate.dialect.PostgreSQLDialect;
|
||||||
import org.hibernate.spatial.SpatialDialect;
|
import org.hibernate.spatial.SpatialDialect;
|
||||||
import org.hibernate.spatial.testing.datareader.TestSupport;
|
import org.hibernate.spatial.testing.datareader.TestSupport;
|
||||||
import org.hibernate.spatial.testing.dialects.cockroachdb.CockroachDBTestSupport;
|
import org.hibernate.spatial.testing.dialects.cockroachdb.CockroachDBTestSupport;
|
||||||
|
@ -43,7 +44,7 @@ public class TestSupportFactories {
|
||||||
|
|
||||||
private static Class<? extends TestSupport> getSupportFactoryClass(Dialect dialect) {
|
private static Class<? extends TestSupport> getSupportFactoryClass(Dialect dialect) {
|
||||||
String canonicalName = dialect.getClass().getCanonicalName();
|
String canonicalName = dialect.getClass().getCanonicalName();
|
||||||
if ( ( dialect instanceof SpatialDialect ) && PostgreSQL82Dialect.class.isAssignableFrom( dialect.getClass() ) ) {
|
if ( PostgreSQLDialect.class.isAssignableFrom( dialect.getClass() ) ) {
|
||||||
//this test works because all postgis dialects ultimately derive of the Postgresql82Dialect
|
//this test works because all postgis dialects ultimately derive of the Postgresql82Dialect
|
||||||
return PostgisTestSupport.class;
|
return PostgisTestSupport.class;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,14 +23,21 @@ import org.hibernate.spatial.testing.JTSGeometryEquality;
|
||||||
import org.hibernate.spatial.testing.SQLExpressionTemplate;
|
import org.hibernate.spatial.testing.SQLExpressionTemplate;
|
||||||
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Karel Maesen, Geovise BVBA
|
* @author Karel Maesen, Geovise BVBA
|
||||||
* creation-date: Sep 30, 2010
|
* creation-date: Sep 30, 2010
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public abstract class TestSupport {
|
public abstract class TestSupport {
|
||||||
|
|
||||||
|
public enum TestDataPurpose {
|
||||||
|
SpatialFunctionsData,
|
||||||
|
StoreRetrieveData
|
||||||
|
}
|
||||||
|
|
||||||
protected ConfigurationService configurationService;
|
protected ConfigurationService configurationService;
|
||||||
|
|
||||||
public DataSourceUtils createDataSourceUtil(ServiceRegistry serviceRegistry) {
|
public DataSourceUtils createDataSourceUtil(ServiceRegistry serviceRegistry) {
|
||||||
|
@ -42,7 +49,7 @@ public abstract class TestSupport {
|
||||||
return new JTSGeometryEquality();
|
return new JTSGeometryEquality();
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract TestData createTestData(BaseCoreFunctionalTestCase testcase);
|
public abstract TestData createTestData(TestDataPurpose purpose);
|
||||||
|
|
||||||
public abstract AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils);
|
public abstract AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils);
|
||||||
|
|
||||||
|
|
|
@ -18,17 +18,18 @@ import org.hibernate.spatial.testing.datareader.TestSupport;
|
||||||
import org.hibernate.spatial.testing.dialects.postgis.PostgisExpressionTemplate;
|
import org.hibernate.spatial.testing.dialects.postgis.PostgisExpressionTemplate;
|
||||||
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
public class CockroachDBTestSupport extends TestSupport {
|
public class CockroachDBTestSupport extends TestSupport {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
Class<? extends BaseCoreFunctionalTestCase> testcaseClass = testcase.getClass();
|
switch ( purpose ) {
|
||||||
if ( ( testcaseClass == TestSpatialFunctions.class ) ||
|
case SpatialFunctionsData:
|
||||||
( testcaseClass == TestJTSSpatialPredicates.class ) ||
|
return TestData.fromFile( "cockroachdb/functions-test.xml" );
|
||||||
( testcaseClass == TestGeolatteSpatialPredicates.class ) ) {
|
default:
|
||||||
return TestData.fromFile( "cockroachdb/functions-test.xml" );
|
return TestData.fromFile( "cockroachdb/test-data-set.xml" );
|
||||||
}
|
}
|
||||||
return TestData.fromFile( "cockroachdb/test-data-set.xml" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -20,14 +20,16 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
*/
|
*/
|
||||||
public class DB2TestSupport extends TestSupport {
|
public class DB2TestSupport extends TestSupport {
|
||||||
|
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
if ( "org.hibernate.spatial.integration.TestSpatialFunctions".equals(
|
switch ( purpose ) {
|
||||||
testcase.getClass().getCanonicalName() ) ) {
|
case SpatialFunctionsData:
|
||||||
return TestData.fromFile( "db2/test-db2nozm-only-polygon.xml" );
|
return TestData.fromFile( "db2/test-db2nozm-only-polygon.xml" );
|
||||||
|
default:
|
||||||
|
return TestData.fromFile( "db2/test-db2nozm-data-set.xml" );
|
||||||
}
|
}
|
||||||
return TestData.fromFile( "db2/test-db2nozm-data-set.xml" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public DB2ExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) {
|
public DB2ExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) {
|
||||||
return new DB2ExpectationsFactory( dataSourceUtils );
|
return new DB2ExpectationsFactory( dataSourceUtils );
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,8 @@ public class GeoDBTestSupport extends TestSupport {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
@Override
|
||||||
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
return TestData.fromFile( "h2geodb/test-geodb-data-set.xml" );
|
return TestData.fromFile( "h2geodb/test-geodb-data-set.xml" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,9 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
|
||||||
public class HANATestSupport extends TestSupport {
|
public class HANATestSupport extends TestSupport {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
return TestData.fromFile( "hana/test-hana-data-set.xml" );
|
return TestData.fromFile( "hana/test-hana-data-set.xml" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,10 @@ import org.hibernate.spatial.testing.datareader.TestSupport;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
|
||||||
public class MariaDBTestSupport extends TestSupport {
|
public class MariaDBTestSupport extends TestSupport {
|
||||||
@Override
|
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
|
||||||
return TestData.fromFile( "mariadb/test-mariadb-functions-data-set.xml" );
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
|
return TestData.fromFile( "mariadb/test-mariadb-functions-data-set.xml" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -19,10 +19,11 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
public class MySQL8TestSupport extends MySQLTestSupport {
|
public class MySQL8TestSupport extends MySQLTestSupport {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
return TestData.fromFile( "mysql/test-mysql8-functions-data-set.xml" );
|
return TestData.fromFile( "mysql/test-mysql8-functions-data-set.xml" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SQLExpressionTemplate getSQLExpressionTemplate() {
|
public SQLExpressionTemplate getSQLExpressionTemplate() {
|
||||||
return new MySQL8ExpressionTemplate();
|
return new MySQL8ExpressionTemplate();
|
||||||
|
|
|
@ -16,6 +16,7 @@ import org.hibernate.spatial.testing.datareader.TestData;
|
||||||
import org.hibernate.spatial.testing.datareader.TestSupport;
|
import org.hibernate.spatial.testing.datareader.TestSupport;
|
||||||
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Karel Maesen, Geovise BVBA
|
* @author Karel Maesen, Geovise BVBA
|
||||||
|
@ -23,11 +24,7 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
*/
|
*/
|
||||||
public class MySQLTestSupport extends TestSupport {
|
public class MySQLTestSupport extends TestSupport {
|
||||||
|
|
||||||
@Override
|
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
|
||||||
return TestData.fromFile( "mysql/test-mysql-functions-data-set.xml" );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) {
|
public AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) {
|
||||||
|
@ -39,6 +36,11 @@ public class MySQLTestSupport extends TestSupport {
|
||||||
return new MySQLGeometryEquality();
|
return new MySQLGeometryEquality();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
|
return TestData.fromFile( "mysql/test-mysql-functions-data-set.xml" );
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SQLExpressionTemplate getSQLExpressionTemplate() {
|
public SQLExpressionTemplate getSQLExpressionTemplate() {
|
||||||
return new MySQLExpressionTemplate();
|
return new MySQLExpressionTemplate();
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
public class OracleSDOTestSupport extends TestSupport {
|
public class OracleSDOTestSupport extends TestSupport {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
return TestData.fromFile( "oracle10g/test-sdo-geometry-data-set-2D.xml", new SDOTestDataReader() );
|
return TestData.fromFile( "oracle10g/test-sdo-geometry-data-set-2D.xml", new SDOTestDataReader() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,14 +26,14 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
public class PostgisTestSupport extends TestSupport {
|
public class PostgisTestSupport extends TestSupport {
|
||||||
|
|
||||||
|
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
@Override
|
||||||
Class<? extends BaseCoreFunctionalTestCase> testcaseClass = testcase.getClass();
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
if ( testcaseClass == TestSpatialFunctions.class ||
|
switch ( purpose ) {
|
||||||
testcaseClass == TestJTSSpatialPredicates.class ||
|
case SpatialFunctionsData:
|
||||||
testcaseClass == TestGeolatteSpatialPredicates.class ) {
|
return TestData.fromFile( "postgis-functions-test.xml" );
|
||||||
return TestData.fromFile( "postgis-functions-test.xml" );
|
default:
|
||||||
|
return TestData.fromFile( "test-data-set.xml" );
|
||||||
}
|
}
|
||||||
return TestData.fromFile( "test-data-set.xml" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) {
|
public AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) {
|
||||||
|
|
|
@ -20,8 +20,8 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
*/
|
*/
|
||||||
public class SQLServerTestSupport extends TestSupport {
|
public class SQLServerTestSupport extends TestSupport {
|
||||||
|
|
||||||
|
@Override
|
||||||
public TestData createTestData(BaseCoreFunctionalTestCase testcase) {
|
public TestData createTestData(TestDataPurpose purpose) {
|
||||||
return TestData.fromFile( "test-data-set.xml" );
|
return TestData.fromFile( "test-data-set.xml" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,14 @@
|
||||||
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.hibernate.spatial.integration.geolatte;
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.testing.domain;
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
@ -36,7 +43,7 @@ public class GeomEntity implements GeomEntityLike<Geometry> {
|
||||||
private String type;
|
private String type;
|
||||||
private Geometry geom;
|
private Geometry geom;
|
||||||
|
|
||||||
static GeomEntity createFrom(TestDataElement element, Dialect dialect) throws WktDecodeException {
|
public static GeomEntity createFrom(TestDataElement element, Dialect dialect) throws WktDecodeException {
|
||||||
WktDecoder decoder = getWktDecoder( dialect );
|
WktDecoder decoder = getWktDecoder( dialect );
|
||||||
Geometry geom = decoder.decode( element.wkt );
|
Geometry geom = decoder.decode( element.wkt );
|
||||||
GeomEntity result = new GeomEntity();
|
GeomEntity result = new GeomEntity();
|
|
@ -5,7 +5,14 @@
|
||||||
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.hibernate.spatial.integration.jts;
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.testing.domain;
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.hibernate.spatial.testing.domain;
|
||||||
|
|
||||||
|
import org.hibernate.testing.orm.domain.AbstractDomainModelDescriptor;
|
||||||
|
|
||||||
|
public class SpatialDomainModel extends AbstractDomainModelDescriptor {
|
||||||
|
public SpatialDomainModel() {
|
||||||
|
super(
|
||||||
|
GeomEntity.class,
|
||||||
|
JtsGeomEntity.class
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hibernate, Relational Persistence for Idiomatic Java
|
# Hibernate, Relational Persistence for Idiomatic Java
|
||||||
#
|
#
|
||||||
|
@ -20,11 +21,11 @@ hibernate.connection.init_sql @connection.init_sql@
|
||||||
#hibernate.jdbc.batch_versioned_data true
|
#hibernate.jdbc.batch_versioned_data true
|
||||||
## Configs for spatial databases (used during testing on local dev environment).
|
## Configs for spatial databases (used during testing on local dev environment).
|
||||||
#
|
#
|
||||||
#hibernate.dialect org.hibernate.spatial.dialect.postgis.PostgisPG95Dialect
|
#hibernate.dialect org.hibernate.dialect.PostgreSQLDialect
|
||||||
#hibernate.connection.driver_class org.postgresql.Driver
|
#hibernate.connection.driver_class org.postgresql.Driver
|
||||||
#hibernate.connection.url jdbc:postgresql://localhost:9432/
|
#hibernate.connection.url jdbc:postgresql://localhost:5432/hibernate_orm_test?preparedStatementCacheQueries=0
|
||||||
#hibernate.connection.username hibern8
|
#hibernate.connection.username hibernate_orm_test
|
||||||
#hibernate.connection.password hibern8
|
#hibernate.connection.password hibernate_orm_test
|
||||||
##
|
##
|
||||||
## GeoDb (H2 spatial extension)
|
## GeoDb (H2 spatial extension)
|
||||||
##
|
##
|
||||||
|
|
Loading…
Reference in New Issue