You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/04/17 18:45:53 UTC
[06/50] [abbrv] zest-qi4j git commit: Updates,
Cleanup and preparation for a pull request.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
index c45fb2a..8a4a0fd 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
@@ -11,8 +11,10 @@ import org.qi4j.api.query.Query;
import org.qi4j.api.unitofwork.UnitOfWork;
import org.qi4j.bootstrap.AssemblyException;
import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.entitystore.riak.RiakHttpMapEntityStoreAssembler;
import org.qi4j.entitystore.sql.assembly.DerbySQLEntityStoreAssembler;
import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
import org.qi4j.index.elasticsearch.extension.spatial.utils.RandomPoint;
import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
@@ -47,50 +49,6 @@ public class ElasticSearchSpatialBench
assumeNoIbmJdk();
}
- protected boolean isExpressionSupported(Query<?> expression)
- {
- return true;
- }
-
-/**
- protected boolean isExpressionSupported(Query<?> expression)
- {
- QueryImpl queryImpl = (QueryImpl)expression;
- System.out.println("### " + expression.getClass());
-
- System.out.println(queryImpl.resultType());
-
- System.out.println("getWhereClause " + queryImpl.getWhereClause().getClass().getSimpleName());
-
- System.out.println(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value());
-
- boolean hasOrderBySegments = false;
- if (queryImpl.getOrderBySegments() != null && queryImpl.getOrderBySegments().iterator().hasNext())
- {
- hasOrderBySegments = true;
- }
- // public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty,Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, INDEXING_METHOD Type )
-
- Class geometryOfProperty = InternalUtils.classOfPropertyType(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).property());
- TGeometry geometryOfFilter = ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value();
-
- // System.out.println("Operator " + ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).operator().getClass());
-
- System.out.println("geometryOfProperty " + geometryOfProperty);
- System.out.println("geometryOfFilter " + InternalUtils.classOfGeometry(geometryOfFilter));
-
- System.out.println("Exression " + expression.getClass());
-
- return SpatialFunctionsSupportMatrix.isSupported
- (
- queryImpl.getWhereClause().getClass(),
- geometryOfProperty,
- InternalUtils.classOfGeometry(geometryOfFilter),
- hasOrderBySegments,
- SpatialFunctionsSupportMatrix.INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOPOINT
- );
- }
- */
@Override
public void assemble( ModuleAssembly module )
@@ -104,69 +62,44 @@ public class ElasticSearchSpatialBench
// Config module
- ModuleAssembly configIndex = module.layer().module( "configIndex" );
- new EntityTestAssembler().assemble( configIndex );
+ ModuleAssembly config = module.layer().module( "config" );
+ new EntityTestAssembler().assemble( config );
- configIndex.values(SpatialConfiguration.Configuration.class,
+ config.values(SpatialConfiguration.Configuration.class,
SpatialConfiguration.FinderConfiguration.class,
SpatialConfiguration.IndexerConfiguration.class,
SpatialConfiguration.IndexingMethod.class,
SpatialConfiguration.ProjectionSupport.class).
visibleIn(Visibility.application);
+
// Index/Query
- new ESFilesystemIndexQueryAssembler().
- withConfig(configIndex,Visibility.layer ).
- identifiedBy("ElasticSearchConfigurationVariant2").
+ new ESClusterIndexQueryAssembler().
+ withConfig(config, Visibility.layer).
+ identifiedBy("ElasticSearchGeoShapeIndexing").
assemble(module);
-
- ElasticSearchConfiguration esConfig = configIndex.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
- esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
- esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
-
+ ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
+ esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
// FileConfig
FileConfigurationOverride override = new FileConfigurationOverride().
- withData( new File( DATA_DIR, "qi4j-data" ) ).
- withLog( new File( DATA_DIR, "qi4j-logs" ) ).
- withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
- module.services( FileConfigurationService.class ).
- setMetaInfo( override );
+ withData(new File(DATA_DIR, "qi4j-data")).
+ withLog(new File(DATA_DIR, "qi4j-logs")).
+ withTemporary(new File(DATA_DIR, "qi4j-temp"));
+ module.services(FileConfigurationService.class).
+ setMetaInfo(override);
+ // In-Memory Entity Store
+ // new EntityTestAssembler().assemble( module );
- configIndex.services(FileConfigurationService.class)
- // .identifiedBy("ElasticSearchConfigurationVariant1")
- .setMetaInfo(override)
- .visibleIn(Visibility.application);
- // clear index mapping caches during junit testcases
- // SpatialIndexMapper.IndexMappingCache.clear();
-
- ModuleAssembly configStore = module.layer().module( "configStore" );
- new EntityTestAssembler().assemble( configStore );
+ /** RIAK */
+ ModuleAssembly configRiak = module.layer().module( "configRiak" );
+ new EntityTestAssembler().assemble( configRiak );
new OrgJsonValueSerializationAssembler().assemble( module );
-
// START SNIPPET: assembly
- // DataSourceService
- new DBCPDataSourceServiceAssembler().
- identifiedBy( "derby-datasource-service" ).
- visibleIn( Visibility.module ).
- withConfig( configStore, Visibility.layer ).
- assemble( module );
-
- // DataSource
- new DataSourceAssembler().
- withDataSourceServiceIdentity( "derby-datasource-service" ).
- identifiedBy( "derby-datasource" ).
- visibleIn( Visibility.module ).
- withCircuitBreaker().
- assemble( module );
-
- // SQL EntityStore
- new DerbySQLEntityStoreAssembler().
- visibleIn( Visibility.application ).
- withConfig( configStore, Visibility.layer ).
- assemble( module );
+ new RiakHttpMapEntityStoreAssembler().withConfig( configRiak, Visibility.layer ).assemble( module );
+ /** +++ */
}
@Test
@@ -217,12 +150,12 @@ public class ElasticSearchSpatialBench
UnitOfWork unitOfWork = module.newUnitOfWork();
- for (int i = 0; i < 5000; i++) {
+ for (int i = 0; i < 10000; i++) {
double[] xy = nextSpherePt2D();
//System.out.println("Degrees " + DistanceUtils.toDegrees(xy[0]) + "," + DistanceUtils.toDegrees(xy[1]));
TPoint point = TPoint(module).lat(DistanceUtils.toDegrees(xy[0])).lon(DistanceUtils.toDegrees(xy[1])).geometry();
- EntityBuilder<SpatialRegressionEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class);
+ EntityBuilder<SpatialAEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class);
pointBuilder.instance().point().set(point);
pointBuilder.newInstance();
}
@@ -241,7 +174,6 @@ public class ElasticSearchSpatialBench
public double[] nextSpherePt2D()
{
- // return new RandomPoint(seed++).nextSpherePt(2);
return randomPoint.nextSpherePt(2);
}
}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java
deleted file mode 100644
index 33474a5..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java
+++ /dev/null
@@ -1,640 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TGeometryRoot;
-import org.qi4j.api.query.Query;
-import org.qi4j.api.query.QueryBuilder;
-import org.qi4j.api.query.QueryExpressions;
-import org.qi4j.api.query.grammar.OrderBy;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extension.spatial.model.VerifyStatialTypes;
-import org.qi4j.index.elasticsearch.extension.spatial.model.entity.SpatialEntity;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.spi.query.EntityFinderException;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialQueryTest;
-import org.qi4j.test.indexing.model.Domain;
-import org.qi4j.test.indexing.model.Nameable;
-import org.qi4j.test.util.DelTreeAfter;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-
-import java.io.File;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.api.query.QueryExpressions.ge;
-import static org.qi4j.api.query.QueryExpressions.gt;
-import static org.qi4j.api.query.QueryExpressions.lt;
-import static org.qi4j.api.query.QueryExpressions.templateFor;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.*;
-import static org.qi4j.test.indexing.NameableAssert.verifyUnorderedResults;
-import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
-
-/**
- * Created by jakes on 2/8/14.
- */
-public class ElasticSearchSpatialExtensionClusterQueryTest
- extends AbstractSpatialQueryTest {
- private static final File DATA_DIR = new File("build/tmp/es-money-query-test");
- @Rule
- public final DelTreeAfter delTreeAfter = new DelTreeAfter(DATA_DIR);
-
- @BeforeClass
- public static void beforeClass_IBMJDK() {
- assumeNoIbmJdk();
- }
-
- // Types definition of later comparison
- private TPoint _tPoint;
- private TMultiPoint _tMultiPoint;
- private TLineString _tLineString;
- private TPolygon _tPolygon;
-
-
- @Override
- public void assemble(ModuleAssembly module)
- throws AssemblyException {
- super.assemble(module);
-
- module.entities(SpatialEntity.class);
-
- // Config module
- ModuleAssembly config = module.layer().module("config");
- new EntityTestAssembler().assemble(config);
-
- // Index/Query
- new ESClusterIndexQueryAssembler().
- withConfig(config, Visibility.layer).
- assemble(module);
- ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
- esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-
- // FileConfig
- FileConfigurationOverride override = new FileConfigurationOverride().
- withData(new File(DATA_DIR, "qi4j-data")).
- withLog(new File(DATA_DIR, "qi4j-logs")).
- withTemporary(new File(DATA_DIR, "qi4j-temp"));
- module.services(FileConfigurationService.class).
- setMetaInfo(override);
- }
-
- // @Override
- public void setUp()
- throws Exception {
- super.setUp();
-
- _tPoint = TPoint(module).x(11.57958984375).y(48.13905780942574).geometry();
-
- _tMultiPoint = TMultiPoint(module).points(new double[][]
- {
- {11.57958984375, 48.13905780942574},
- {11.599502563476562, 48.14913756559802},
- }).geometry();
- _tLineString = TlineString(module).points(new double[][]
- {
- {11.550750732421875, 48.109035906197036},
- {11.552810668945312, 48.16608541901253},
- }).geometry();
-
- _tPolygon = TPolygon(module)
-
- .shell
- (
- TLinearRing(module).ring(new double[][]
- {
- {11.475906372070312, 48.14478518644042},
- {11.572723388671875, 48.18760570101003},
- {11.692886352539062, 48.140432438188135},
- {11.679153442382812, 48.08243697630599},
- {11.581306457519531, 48.07211472138644},
- {11.522941589355469, 48.10124109364004},
- {11.470069885253906, 48.10949438777014},
- {11.475906372070312, 48.14478518644042},
-
- }).geometry()
- )
-
- .withHoles
- (
- TLinearRing(module).ring(new double[][]
- {
- {11.53839111328125, 48.13837048124154},
- {11.614952087402344, 48.15028286718964},
- {11.640357971191406, 48.10513864768105},
- {11.558303833007812, 48.103304541415994},
- {11.53839111328125, 48.13837048124154}
-
- }).geometry()
- )
- .geometry();
-
-
- try (UnitOfWork unitOfWork = module.newUnitOfWork()) {
-
-
- // TPoint
- {
- EntityBuilder<SpatialEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "Point");
- pointBuilder.instance().point().set(_tPoint);
- pointBuilder.newInstance();
- }
-
- // TMultiPoint
- {
- EntityBuilder<SpatialEntity> mPointBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "MultiPoint");
- mPointBuilder.instance().mPoint().set(_tMultiPoint);
- mPointBuilder.newInstance();
- }
-
- // TLineString
- {
- EntityBuilder<SpatialEntity> tlineStringBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "LineString");
- tlineStringBuilder.instance().line().set(_tLineString);
- tlineStringBuilder.newInstance();
- }
-
- // TPolygon
- {
- EntityBuilder<SpatialEntity> tPolygonBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "Polygon");
- tPolygonBuilder.instance().polygon().set(_tPolygon);
- tPolygonBuilder.newInstance();
- }
-
- unitOfWork.complete();
-
- } catch (Exception _ex) {
- _ex.printStackTrace();
- }
-
- }
-
- @Test
- public void nothing()
- {
-
- }
-
-
- @Test
- public void WhenQueryForAPointThenCompareResults()
- {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
- 999,
- TUnit.METER
- )
- ));
-
-
- query.find();
- assertEquals(1, query.count());
- TPoint tPoint = query.iterator().next().point().get();
- assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-
-
- @Test
- public void WhenQueryWithUnsupportedProjectionForAPointThenCompareResults() throws Exception {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPoint(module).x(1286436.5975464052).y(2389280.7514562616).geometry("EPSG:27572"),
- 999,
- TUnit.METER
- )
- ));
-
-
- query.find();
- assertEquals(query.count(), 1);
- TPoint tPoint = query.iterator().next().point().get();
- assertTrue(tPoint.compareTo(_tPoint) == 0);
-
- // Transform(module).from(tPoint).to("EPSG:27572");
-
- System.out.println(tPoint);
- }
-
- @Test
- public void WhenQueryForAPointThenOrderAndCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(),
- 999,
- TUnit.METER
- )
- ))
-
-
- .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- assertEquals(query.count(), 1);
- TPoint tPoint = query.iterator().next().point().get();
- assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-
-
- @Test
- public void script02()
- throws EntityFinderException
- {
- final QueryBuilder<Domain> qb = this.module.newQueryBuilder( Domain.class );
- final Nameable nameable = templateFor( Nameable.class );
- final Query<Domain> query = unitOfWork.newQuery( qb.where( eq( nameable.name(), "Gaming" ) ) );
- System.out.println( "*** script02: " + query );
- verifyUnorderedResults( query, "Gaming" );
- }
-
-
- @Test
- public void WhenST_DisjointForAPointThenOrderAndCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(// and(
- ST_Disjoint
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPoint(module).x(10.57958981111).y(47.13905780941111).geometry(),
- 1,
- TUnit.METER
- )
- // eq( templateFor(VerifyStatialTypes.class).point().get(), "Gaming" )
- // ,QueryExpressions.eq(templateFor(VerifyStatialTypes.class).foo(), "foo")
- // )
- ))
-
-
- .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- assertEquals(3, query.count());
- // TGeometry tGeometry = query.iterator().next().point().get();
-
- VerifyStatialTypes result = query.iterator().next();
-
-/**
- if (tGeometry.getType() == TGeometry.TGEOMETRY_TYPE.POLYGON)
- {
- System.out.println("is polygon");
- }
- */
- // assertTrue(tPoint.compareTo(_tPoint) == 0);
-
- }
-
-
- @Test
- public void WhenST_IntersectsForAPointThenOrderAndCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Intersects
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(),
- 999,
- TUnit.METER
- )
- ))
-
-
- .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- assertEquals(3, query.count());
- // TGeometry tGeometry = query.iterator().next().point().get();
-
- VerifyStatialTypes result = query.iterator().next();
-
-/**
- if (tGeometry.getType() == TGeometry.TGEOMETRY_TYPE.POLYGON)
- {
- System.out.println("is polygon");
- }
- */
- // assertTrue(tPoint.compareTo(_tPoint) == 0);
-
- }
-
- @Test
- public void WhenST_DisjointForAPointUsingPolygonAreaThenOrderAndCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Disjoint
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPolygon(module)
- .shell
- (
- new double[][]
- {
- {11.32965087890625, 48.122101028190805},
- {11.394195556640625, 48.28593438872724},
- {11.9366455078125, 48.232906106325146},
- {11.852874755859375, 47.95038564051011},
- {11.36810302734375, 47.94486657921015},
- {11.32965087890625, 48.122101028190805}
- }
- ).geometry()
- )
- ))
-
- .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- // assertEquals(query.count(), 1);
- // TPoint tPoint = query.iterator().next().point().get();
- VerifyStatialTypes types = query.iterator().next();
- System.out.println("Result " + types.polygon().get());
- // assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-
-
- @Test
- public void WhenQueryForAPointUsingPolygonAreaThenOrderAndCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPolygon(module)
- .shell
- (
- new double[][]
- {
- {11.32965087890625, 48.122101028190805},
- {11.394195556640625, 48.28593438872724},
- {11.9366455078125, 48.232906106325146},
- {11.852874755859375, 47.95038564051011},
- {11.36810302734375, 47.94486657921015},
- {11.32965087890625, 48.122101028190805}
- }
- ).geometry()
- )
- ))
-
- .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- assertEquals(query.count(), 1);
- TPoint tPoint = query.iterator().next().point().get();
- assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-
- @Test
- public void WhenQueryForALineUsingPolygonAreaThenOrderAndCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).line(),
- TPolygon(module)
- .shell
- (
- new double[][]
- {
- {11.32965087890625, 48.122101028190805},
- {11.394195556640625, 48.28593438872724},
- {11.9366455078125, 48.232906106325146},
- {11.852874755859375, 47.95038564051011},
- {11.36810302734375, 47.94486657921015},
- {11.32965087890625, 48.122101028190805}
- }
- ).geometry()
- )
- ));
-
- // .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- assertEquals(1, query.count());
- TLineString tLineString = query.iterator().next().line().get();
- System.out.println(tLineString);
- // TPoint tPoint = query.iterator().next().point().get();
- // assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-
-
- @Test
- public void WhenQueryForALineUsingPolygonAreaThenOrderAndCompareResultsV2() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPolygon(module)
- .shell
- (
- new double[][]
- {
- {11.32965087890625, 48.122101028190805},
- {11.394195556640625, 48.28593438872724},
- {11.9366455078125, 48.232906106325146},
- {11.852874755859375, 47.95038564051011},
- {11.36810302734375, 47.94486657921015},
- {11.32965087890625, 48.122101028190805}
- }
- ).geometry()
- )
- )).orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- assertEquals(1, query.count());
- TLineString tLineString = query.iterator().next().line().get();
- System.out.println(tLineString);
- // TPoint tPoint = query.iterator().next().point().get();
- // assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-
-
- @Test
- public void WhenST_Intersects_ForALineUsingPolygonAreaThenOrderAndCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Intersects
- (
- templateFor(VerifyStatialTypes.class).point(),
- TPolygon(module)
- .shell
- (
- new double[][]
- {
- {11.32965087890625, 48.122101028190805},
- {11.394195556640625, 48.28593438872724},
- {11.9366455078125, 48.232906106325146},
- {11.852874755859375, 47.95038564051011},
- {11.36810302734375, 47.94486657921015},
- {11.32965087890625, 48.122101028190805}
- }
- ).geometry()
- )
- ));
-
- // .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
- query.find();
- assertEquals(1, query.count());
- TLineString tLineString = query.iterator().next().line().get();
- System.out.println(tLineString);
- // TPoint tPoint = query.iterator().next().point().get();
- // assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-
-
- @Test
- public void When_QueryForAWKTPointThenCompareResults()
- {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).point(),
- ST_GeometryFromText("POINT(11.57958981111 48.13905780941111 )"),
- 999,
- TUnit.METER
- )
- ))
- .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
- query.find();
- assertEquals(query.count(), 1);
- TPoint tPoint = query.iterator().next().point().get();
- assertTrue(tPoint.compareTo(_tPoint) == 0);
-
- }
-
- /**
- @Test
- public void WhenQueryForAMultiPointThenCompareResults() {
-
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).mPoint(),
- TPOINT(module).x(11.57958981111).y(48.13905780941111).geometry()
- )
- ));
- query.find();
- assertEquals(query.count(), 1);
- TPoint tPoint = query.iterator().next().point().get();
- assertTrue(tPoint.compareTo(_tPoint) == 0);
- }
-*/
-
- @Test
- public void WhenQueryForAPolygonThenCompareResults() {
- QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
- Query<VerifyStatialTypes> query = unitOfWork.newQuery(
- qb
- .where(
- ST_Within
- (
- templateFor(VerifyStatialTypes.class).polygon(),
-
- TPolygon(module)
- .shell
- (
- new double[][]
- {
- {11.32965087890625, 48.122101028190805},
- {11.394195556640625, 48.28593438872724},
- {11.9366455078125, 48.232906106325146},
- {11.852874755859375, 47.95038564051011},
- {11.36810302734375, 47.94486657921015},
- {11.32965087890625, 48.122101028190805}
- }
- ).geometry()
- )
- ));
-
-
- query.find();
-
- assertEquals(query.count(), 1);
- TPolygon tPolygon = query.iterator().next().polygon().get();
- assertTrue(tPolygon.holes().get().size() == 1);
- assertTrue(tPolygon.shell().get().compareTo(_tPolygon.shell().get()) == 0);
- assertFalse(tPolygon.holes().get().get(0).compareTo(_tPolygon.shell().get()) == 0);
- assertTrue(tPolygon.holes().get().get(0).compareTo(_tPolygon.holes().get().get(0)) == 0);
- }
-
-
- // @Test
- public void fooPerf() {
- long start = System.currentTimeMillis();
- for (int i = 0; i < 1000; i++) {
- WhenQueryForAPolygonThenCompareResults();
- }
- long end = System.currentTimeMillis();
-
- System.out.println("Duration " + (end - start) + " ms");
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
new file mode 100644
index 0000000..6200b68
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.Query;
+import org.qi4j.api.query.QueryExecutionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.spi.query.EntityFinderException;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.*;
+
+
+public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
+ extends AbstractSpatialRegressionTest
+{
+ private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+ @Rule
+ public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+ @BeforeClass
+ public static void beforeClass_IBMJDK()
+ {
+ assumeNoIbmJdk();
+ }
+
+
+ @Override
+ public void assemble( ModuleAssembly module )
+ throws AssemblyException
+ {
+ super.assemble( module );
+
+ // Geometry support
+ new TGeometryAssembler().assemble(module);
+
+ // Config module
+ ModuleAssembly config = module.layer().module( "config" );
+ new EntityTestAssembler().assemble( config );
+
+ config.values(SpatialConfiguration.Configuration.class,
+ SpatialConfiguration.FinderConfiguration.class,
+ SpatialConfiguration.IndexerConfiguration.class,
+ SpatialConfiguration.IndexingMethod.class,
+ SpatialConfiguration.ProjectionSupport.class).
+ visibleIn(Visibility.application);
+
+ // Index/Query
+ new ESFilesystemIndexQueryAssembler().
+ withConfig(config,Visibility.layer ).
+ identifiedBy("ElasticSearchGeoPointIndexing").
+ assemble(module);
+
+ ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
+ esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
+
+
+ // FileConfig
+ FileConfigurationOverride override = new FileConfigurationOverride().
+ withData( new File( DATA_DIR, "qi4j-data" ) ).
+ withLog( new File( DATA_DIR, "qi4j-logs" ) ).
+ withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
+ module.services( FileConfigurationService.class ).
+ setMetaInfo( override );
+
+
+ config.services(FileConfigurationService.class)
+ .setMetaInfo(override)
+ .visibleIn(Visibility.application);
+ }
+
+
+
+ @Test (expected=QueryExecutionException.class)
+ @Override
+ public void script02a()
+ throws EntityFinderException
+ {
+ super.script02a();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ @Override
+ public void script02b()
+ throws EntityFinderException
+ {
+ super.script02b();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ @Override
+ public void script02c()
+ throws EntityFinderException
+ {
+ super.script02c();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ @Override
+ public void script02d()
+ throws EntityFinderException
+ {
+ super.script02d();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ @Override
+ public void script02e()
+ throws EntityFinderException
+ {
+ super.script02e();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ @Override
+ public void script02f()
+ throws EntityFinderException
+ {
+ super.script02f();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ @Override
+ public void script03a()
+ throws EntityFinderException
+ {
+ super.script03a();
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
new file mode 100644
index 0000000..6f227f1
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.Query;
+import org.qi4j.api.query.QueryExecutionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.spi.query.EntityFinderException;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.*;
+
+
+public class ElasticSearchSpatialQueryTestUsingGeoShapeIndexing
+ extends AbstractSpatialRegressionTest
+{
+ private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+ @Rule
+ public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+ @BeforeClass
+ public static void beforeClass_IBMJDK()
+ {
+ assumeNoIbmJdk();
+ }
+
+
+ @Override
+ public void assemble( ModuleAssembly module )
+ throws AssemblyException
+ {
+ super.assemble( module );
+
+ // Geometry support
+ new TGeometryAssembler().assemble(module);
+
+ // Config module
+ ModuleAssembly config = module.layer().module( "config" );
+ new EntityTestAssembler().assemble( config );
+
+ config.values(SpatialConfiguration.Configuration.class,
+ SpatialConfiguration.FinderConfiguration.class,
+ SpatialConfiguration.IndexerConfiguration.class,
+ SpatialConfiguration.IndexingMethod.class,
+ SpatialConfiguration.ProjectionSupport.class).
+ visibleIn(Visibility.application);
+
+ // Index/Query
+ new ESFilesystemIndexQueryAssembler().
+ withConfig(config,Visibility.layer ).
+ identifiedBy("ElasticSearchGeoShapeIndexing").
+ assemble(module);
+
+ ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
+ esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
+
+
+ // FileConfig
+ FileConfigurationOverride override = new FileConfigurationOverride().
+ withData( new File( DATA_DIR, "qi4j-data" ) ).
+ withLog( new File( DATA_DIR, "qi4j-logs" ) ).
+ withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
+ module.services( FileConfigurationService.class ).
+ setMetaInfo( override );
+
+
+ config.services(FileConfigurationService.class)
+ .setMetaInfo(override)
+ .visibleIn(Visibility.application);
+ }
+
+
+ @Test(expected=QueryExecutionException.class)
+ @Override
+ public void script01c()
+ throws EntityFinderException
+ {
+ super.script01c(); // <- no orderBy() support for GeoShapes
+ }
+
+ @Test(expected=QueryExecutionException.class)
+ @Override
+ public void script01d()
+ throws EntityFinderException
+ {
+ super.script01d(); // <- no orderBy() support for GeoShapes
+ }
+
+ @Test(expected=QueryExecutionException.class)
+ @Override
+ public void script01e()
+ throws EntityFinderException
+ {
+ super.script01e(); // <- no orderBy() support for GeoShapes
+ }
+
+ @Test(expected=QueryExecutionException.class)
+ @Override
+ public void script01f()
+ throws EntityFinderException
+ {
+ super.script01f(); // <- no orderBy() support for GeoShapes
+ }
+
+ @Test(expected=QueryExecutionException.class)
+ @Override
+ public void script03c()
+ throws EntityFinderException
+ {
+ super.script03c(); // <- no orderBy() support for GeoShapes
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
new file mode 100644
index 0000000..f5a8337
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.QueryExecutionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.spi.query.EntityFinderException;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
+
+/**
+ * Created by jj on 21.12.14.
+ */
+public class ElasticSearchSpatialQueryTestUsingUsingDefaults
+ extends AbstractSpatialRegressionTest
+{
+ private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+ @Rule
+ public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+ @BeforeClass
+ public static void beforeClass_IBMJDK()
+ {
+ assumeNoIbmJdk();
+ }
+
+
+ @Override
+ public void assemble( ModuleAssembly module )
+ throws AssemblyException
+ {
+ super.assemble( module );
+
+ // Geometry support
+ new TGeometryAssembler().assemble(module);
+
+
+
+ // Config module
+ ModuleAssembly config = module.layer().module( "config" );
+ new EntityTestAssembler().assemble( config );
+
+ config.values(SpatialConfiguration.Configuration.class,
+ SpatialConfiguration.FinderConfiguration.class,
+ SpatialConfiguration.IndexerConfiguration.class,
+ SpatialConfiguration.IndexingMethod.class,
+ SpatialConfiguration.ProjectionSupport.class).
+ visibleIn(Visibility.application);
+
+ // Index/Query
+ new ESFilesystemIndexQueryAssembler().
+ withConfig(config,Visibility.layer ).
+ assemble(module);
+
+ ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
+ esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
+
+
+ // FileConfig
+ FileConfigurationOverride override = new FileConfigurationOverride().
+ withData( new File( DATA_DIR, "qi4j-data" ) ).
+ withLog( new File( DATA_DIR, "qi4j-logs" ) ).
+ withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
+ module.services( FileConfigurationService.class ).
+ setMetaInfo( override );
+
+
+ config.services(FileConfigurationService.class)
+ .setMetaInfo(override)
+ .visibleIn(Visibility.application);
+ }
+
+
+
+ @Test (expected=QueryExecutionException.class)
+ public void script02a()
+ throws EntityFinderException
+ {
+ super.script02a();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ public void script02b()
+ throws EntityFinderException
+ {
+ super.script02b();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ public void script02c()
+ throws EntityFinderException
+ {
+ super.script02c();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ public void script02d()
+ throws EntityFinderException
+ {
+ super.script02d();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ public void script02e()
+ throws EntityFinderException
+ {
+ super.script02e();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ public void script02f()
+ throws EntityFinderException
+ {
+ super.script02f();
+ }
+
+ @Test (expected=QueryExecutionException.class)
+ public void script03a()
+ throws EntityFinderException
+ {
+ super.script03a();
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
index 0ad7c1c..d4ec9fe 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
@@ -72,7 +72,6 @@ public class ElasticSearchSpatialRegressionQueryClusterTest
assemble(module);
ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
- esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
// FileConfig
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
deleted file mode 100644
index 66cdc73..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.Query;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-
-import static org.qi4j.test.util.Assume.*;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialRegressionQueryVariant1Test
- extends AbstractSpatialRegressionTest
-{
- private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
- @Rule
- public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
- @BeforeClass
- public static void beforeClass_IBMJDK()
- {
- assumeNoIbmJdk();
- }
-
- protected boolean isExpressionSupported(Query<?> expression)
- {
- return true;
- }
-
-/**
- protected boolean isExpressionSupported(Query<?> expression)
- {
- QueryImpl queryImpl = (QueryImpl)expression;
- System.out.println("### " + expression.getClass());
-
- System.out.println(queryImpl.resultType());
-
- System.out.println("getWhereClause " + queryImpl.getWhereClause().getClass().getSimpleName());
-
- System.out.println(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value());
-
- boolean hasOrderBySegments = false;
- if (queryImpl.getOrderBySegments() != null && queryImpl.getOrderBySegments().iterator().hasNext())
- {
- hasOrderBySegments = true;
- }
- // public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty,Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, INDEXING_METHOD Type )
-
- Class geometryOfProperty = InternalUtils.classOfPropertyType(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).property());
- TGeometry geometryOfFilter = ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value();
-
- // System.out.println("Operator " + ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).operator().getClass());
-
- System.out.println("geometryOfProperty " + geometryOfProperty);
- System.out.println("geometryOfFilter " + InternalUtils.classOfGeometry(geometryOfFilter));
-
- System.out.println("Exression " + expression.getClass());
-
- return SpatialFunctionsSupportMatrix.isSupported
- (
- queryImpl.getWhereClause().getClass(),
- geometryOfProperty,
- InternalUtils.classOfGeometry(geometryOfFilter),
- hasOrderBySegments,
- SpatialFunctionsSupportMatrix.INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOPOINT
- );
- }
- */
-
- @Override
- public void assemble( ModuleAssembly module )
- throws AssemblyException
- {
- super.assemble( module );
-
- // Geometry support
- new TGeometryAssembler().assemble(module);
-
-
-
- // Config module
- ModuleAssembly config = module.layer().module( "config" );
- new EntityTestAssembler().assemble( config );
-
- config.values(SpatialConfiguration.Configuration.class,
- SpatialConfiguration.FinderConfiguration.class,
- SpatialConfiguration.IndexerConfiguration.class,
- SpatialConfiguration.IndexingMethod.class,
- SpatialConfiguration.ProjectionSupport.class).
- visibleIn(Visibility.application);
-
- // Index/Query
- new ESFilesystemIndexQueryAssembler().
- withConfig(config,Visibility.layer ).
- identifiedBy("ElasticSearchConfigurationVariant1").
- assemble(module);
-
- ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
- esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
- esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
-
-
- // FileConfig
- FileConfigurationOverride override = new FileConfigurationOverride().
- withData( new File( DATA_DIR, "qi4j-data" ) ).
- withLog( new File( DATA_DIR, "qi4j-logs" ) ).
- withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
- module.services( FileConfigurationService.class ).
- setMetaInfo( override );
-
-
- config.services(FileConfigurationService.class)
- // .identifiedBy("ElasticSearchConfigurationVariant1")
- .setMetaInfo(override)
- .visibleIn(Visibility.application);
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
deleted file mode 100644
index 322defa..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.Query;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-
-import static org.qi4j.test.util.Assume.*;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialRegressionQueryVariant2Test
- extends AbstractSpatialRegressionTest
-{
- private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
- @Rule
- public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
- @BeforeClass
- public static void beforeClass_IBMJDK()
- {
- assumeNoIbmJdk();
- }
-
- protected boolean isExpressionSupported(Query<?> expression)
- {
- return true;
- }
-
-/**
- protected boolean isExpressionSupported(Query<?> expression)
- {
- QueryImpl queryImpl = (QueryImpl)expression;
- System.out.println("### " + expression.getClass());
-
- System.out.println(queryImpl.resultType());
-
- System.out.println("getWhereClause " + queryImpl.getWhereClause().getClass().getSimpleName());
-
- System.out.println(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value());
-
- boolean hasOrderBySegments = false;
- if (queryImpl.getOrderBySegments() != null && queryImpl.getOrderBySegments().iterator().hasNext())
- {
- hasOrderBySegments = true;
- }
- // public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty,Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, INDEXING_METHOD Type )
-
- Class geometryOfProperty = InternalUtils.classOfPropertyType(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).property());
- TGeometry geometryOfFilter = ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value();
-
- // System.out.println("Operator " + ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).operator().getClass());
-
- System.out.println("geometryOfProperty " + geometryOfProperty);
- System.out.println("geometryOfFilter " + InternalUtils.classOfGeometry(geometryOfFilter));
-
- System.out.println("Exression " + expression.getClass());
-
- return SpatialFunctionsSupportMatrix.isSupported
- (
- queryImpl.getWhereClause().getClass(),
- geometryOfProperty,
- InternalUtils.classOfGeometry(geometryOfFilter),
- hasOrderBySegments,
- SpatialFunctionsSupportMatrix.INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOPOINT
- );
- }
- */
-
- @Override
- public void assemble( ModuleAssembly module )
- throws AssemblyException
- {
- super.assemble( module );
-
- // Geometry support
- new TGeometryAssembler().assemble(module);
-
-
-
- // Config module
- ModuleAssembly config = module.layer().module( "config" );
- new EntityTestAssembler().assemble( config );
-
- config.values(SpatialConfiguration.Configuration.class,
- SpatialConfiguration.FinderConfiguration.class,
- SpatialConfiguration.IndexerConfiguration.class,
- SpatialConfiguration.IndexingMethod.class,
- SpatialConfiguration.ProjectionSupport.class).
- visibleIn(Visibility.application);
-
- // Index/Query
- new ESFilesystemIndexQueryAssembler().
- withConfig(config,Visibility.layer ).
- identifiedBy("ElasticSearchConfigurationVariant2").
- assemble(module);
-
- ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
- esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
- esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
-
-
- // FileConfig
- FileConfigurationOverride override = new FileConfigurationOverride().
- withData( new File( DATA_DIR, "qi4j-data" ) ).
- withLog( new File( DATA_DIR, "qi4j-logs" ) ).
- withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
- module.services( FileConfigurationService.class ).
- setMetaInfo( override );
-
-
- config.services(FileConfigurationService.class)
- // .identifiedBy("ElasticSearchConfigurationVariant1")
- .setMetaInfo(override)
- .visibleIn(Visibility.application);
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties
deleted file mode 100644
index 583a96f..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
- \
- Enabled : true, \
- \
- Indexer=\
- { \
- Method=\
- { \
- Type = "GEO_POINT", \
- Precision = 1m, \
- }, \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- }, \
- }, \
- \
- \
- Finder=\
- { \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- } \
- } \
- }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties
deleted file mode 100644
index 3837000..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
- \
- Enabled : true, \
- \
- Indexer=\
- { \
- Method=\
- { \
- Type = "GEO_SHAPE", \
- Precision = 1m, \
- }, \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- }, \
- }, \
- \
- \
- Finder=\
- { \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- } \
- } \
- }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
deleted file mode 100644
index 3837000..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
- \
- Enabled : true, \
- \
- Indexer=\
- { \
- Method=\
- { \
- Type = "GEO_SHAPE", \
- Precision = 1m, \
- }, \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- }, \
- }, \
- \
- \
- Finder=\
- { \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- } \
- } \
- }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
deleted file mode 100644
index 3837000..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
- \
- Enabled : true, \
- \
- Indexer=\
- { \
- Method=\
- { \
- Type = "GEO_SHAPE", \
- Precision = 1m, \
- }, \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- }, \
- }, \
- \
- \
- Finder=\
- { \
- Projection=\
- { \
- ConversionEnabled = true, \
- ConversionAccuracy = 1m, \
- } \
- } \
- }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties
new file mode 100644
index 0000000..67b6774
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties
@@ -0,0 +1,28 @@
+spatial = { \
+ \
+ Enabled : true, \
+ \
+ Indexer=\
+ { \
+ Method=\
+ { \
+ Type = "GEO_POINT", \
+ Precision = 1m, \
+ }, \
+ Projection=\
+ { \
+ ConversionEnabled = true, \
+ ConversionAccuracy = 2m, \
+ }, \
+ }, \
+ \
+ \
+ Finder=\
+ { \
+ Projection=\
+ { \
+ ConversionEnabled = true, \
+ ConversionAccuracy = 2m, \
+ } \
+ } \
+ }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
new file mode 100644
index 0000000..3837000
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
@@ -0,0 +1,28 @@
+spatial = { \
+ \
+ Enabled : true, \
+ \
+ Indexer=\
+ { \
+ Method=\
+ { \
+ Type = "GEO_SHAPE", \
+ Precision = 1m, \
+ }, \
+ Projection=\
+ { \
+ ConversionEnabled = true, \
+ ConversionAccuracy = 1m, \
+ }, \
+ }, \
+ \
+ \
+ Finder=\
+ { \
+ Projection=\
+ { \
+ ConversionEnabled = true, \
+ ConversionAccuracy = 1m, \
+ } \
+ } \
+ }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
index 1be42f9..ab7f559 100644
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
@@ -61,9 +61,9 @@ public class TransformationBuilder {
LineString lineString = (LineString)geojson;
- TLineString tLineString = TlineString(module).of().geometry();
+ TLineString tLineString = TLineString(module).of().geometry();
for (LngLatAlt xyz : lineString.getCoordinates() ) {
- tLineString = TlineString(module).of(
+ tLineString = TLineString(module).of(
TPoint(module)
.x(xyz.getLatitude())
.y(xyz.getLongitude())
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
index b6373ab..f427128 100644
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
@@ -39,6 +39,7 @@ public class TGeometryAssembler
TPoint.class,
TMultiPoint.class,
TLineString.class,
+ TMultiLineString.class,
TPolygon.class,
TMultiPolygon.class,
TFeature.class,
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
index d80b3da..217d80e 100644
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
@@ -58,7 +58,7 @@ public class GeoJsonFromConverter {
LineString lineString = (LineString)geojson;
- TLineString tLineString = TlineString(module).of().geometry();
+ TLineString tLineString = TLineString(module).of().geometry();
for (LngLatAlt xyz : lineString.getCoordinates() ) {
tLineString.of(