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:46:32 UTC

[45/50] [abbrv] zest-qi4j git commit: Final cleanup

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
index d9c37ff..7bd5300 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
@@ -18,55 +18,68 @@ import org.qi4j.api.common.Optional;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.value.ValueComposite;
 
-/**
- * Created by jj on 22.12.14.
- */
-public class SpatialConfiguration {
 
-    public static boolean isEnabled(Configuration config) {
+public class SpatialConfiguration
+{
+
+    public static boolean isEnabled(Configuration config)
+    {
         return config.Enabled().get().booleanValue();
     }
 
-    public static INDEXING_METHOD getMethod(Configuration config) {
+    public static INDEXING_METHOD getMethod(Configuration config)
+    {
         return config.Indexer().get().Method().get().Type().get();
     }
 
-    public static boolean isMethodGeoPoint(Configuration config) {
+    public static boolean isMethodGeoPoint(Configuration config)
+    {
         return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_POINT ? true : false;
     }
 
-    public static boolean isMethodGeoShape(Configuration config) {
+    public static boolean isMethodGeoShape(Configuration config)
+    {
         return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_SHAPE ? true : false;
     }
 
-    public static boolean isIndexerProjectionConversionEnabled(Configuration config) {
+    public static boolean isIndexerProjectionConversionEnabled(Configuration config)
+    {
         return config.Indexer().get().Projection().get().ConversionEnabled().get().booleanValue();
     }
 
-    public static double getIndexerProjectionConversionAccuracy(Configuration config) {
+    public static double getIndexerProjectionConversionAccuracy(Configuration config)
+    {
         // return config.Indexer().get().Projection().get().
         return 2;
     }
 
-    public static String getIndexerPrecision(Configuration config) {
+    public static String getIndexerPrecision(Configuration config)
+    {
         return config.Indexer().get().Method().get().Precision().get();
     }
 
-    public static boolean isFinderProjectionConversionEnabled(Configuration config) {
+    public static boolean isFinderProjectionConversionEnabled(Configuration config)
+    {
         return config.Finder().get().Projection().get().ConversionEnabled().get().booleanValue();
     }
 
-    public static double getFinderProjectionConversionAccuracy(Configuration config) {
+    public static double getFinderProjectionConversionAccuracy(Configuration config)
+    {
         return 2;
     }
 
-    public String getMethodAccuracy(Configuration config) {
+    public String getMethodAccuracy(Configuration config)
+    {
         return config.Indexer().get().Method().get().Precision().get();
     }
 
-    public static enum INDEXING_METHOD {GEO_POINT, GEO_SHAPE}
+    public static enum INDEXING_METHOD
+    {
+        GEO_POINT, GEO_SHAPE
+    }
 
-    public interface Configuration extends ValueComposite {
+    public interface Configuration extends ValueComposite
+    {
         @Optional
         Property<Boolean> Enabled();
 
@@ -77,7 +90,8 @@ public class SpatialConfiguration {
         Property<FinderConfiguration> Finder();
     }
 
-    public interface IndexerConfiguration extends ValueComposite {
+    public interface IndexerConfiguration extends ValueComposite
+    {
         @Optional
         Property<IndexingMethod> Method();
 
@@ -85,12 +99,14 @@ public class SpatialConfiguration {
         Property<ProjectionSupport> Projection();
     }
 
-    public interface FinderConfiguration extends ValueComposite {
+    public interface FinderConfiguration extends ValueComposite
+    {
         @Optional
         Property<ProjectionSupport> Projection();
     }
 
-    public interface IndexingMethod extends ValueComposite {
+    public interface IndexingMethod extends ValueComposite
+    {
         @Optional
         Property<INDEXING_METHOD> Type();
 
@@ -98,7 +114,8 @@ public class SpatialConfiguration {
         Property<String> Precision();
     }
 
-    public interface ProjectionSupport extends ValueComposite {
+    public interface ProjectionSupport extends ValueComposite
+    {
         @Optional
         Property<Boolean> ConversionEnabled();
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
index fdc29ba..90810f3 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
@@ -28,13 +28,11 @@ import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
-/**
- * Created by jj on 22.12.14.
- */
-public class SpatialFunctionsSupportMatrix {
+public class SpatialFunctionsSupportMatrix
+{
+    private static final Table<String, SpatialConfiguration.INDEXING_METHOD, ConfigurationEntry> SPATIAL_SUPPORT_MATRIX = HashBasedTable.create();
     private static Boolean OrderBy = true;
     private static Class<? extends TGeometry> AnyGeometry = TGeometry.class;
-    private static final Table<String, SpatialConfiguration.INDEXING_METHOD, ConfigurationEntry> SPATIAL_SUPPORT_MATRIX = HashBasedTable.create();
 
     static
     {
@@ -53,22 +51,22 @@ public class SpatialFunctionsSupportMatrix {
     }
 
 
-    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method, Boolean verifyOrderBy) {
-        System.out.println(SPATIAL_SUPPORT_MATRIX.toString());
+    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method, Boolean verifyOrderBy)
+    {
 
-        System.out.println("isSupported " + expression + " " + geometryOfProperty + " " + geometryOfFilter + " Type " + method);
-        System.out.println("Contains " + SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method));
         if (SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method))
             return SPATIAL_SUPPORT_MATRIX.get(expression.getName(), method).isSupported(geometryOfProperty, geometryOfFilter, orderBy, verifyOrderBy);
         else
             return false;
     }
 
-    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, SpatialConfiguration.INDEXING_METHOD method) {
+    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, SpatialConfiguration.INDEXING_METHOD method)
+    {
         return isSupported(expression, geometryOfProperty, geometryOfFilter, false, method, false);
     }
 
-    private static void supports(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+    private static void supports(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
+    {
         supports
                 (
                         expression,
@@ -78,54 +76,63 @@ public class SpatialFunctionsSupportMatrix {
                 );
     }
 
-    private static void supports(Class expression, Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+    private static void supports(Class expression, Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
+    {
         SPATIAL_SUPPORT_MATRIX.put(expression.getName(), method, new ConfigurationEntry(geometriesOfProperty, geometriesOfFilter, orderBy, method));
     }
 
-    private static Class disable(Class clazz) {
+    private static Class disable(Class clazz)
+    {
         return Object.class;
     }
 
-    private static Class enable(Class clazz) {
+    private static Class enable(Class clazz)
+    {
         return clazz;
     }
 
-    private static Boolean disable(Boolean bool) {
+    private static Boolean disable(Boolean bool)
+    {
         return false;
     }
 
-    private static Boolean enable(Boolean bool) {
+    private static Boolean enable(Boolean bool)
+    {
         return true;
     }
 
-    private static Class<? extends TGeometry>[] filterOf(Class<? extends TGeometry>... geometryOfFilters) {
+    private static Class<? extends TGeometry>[] filterOf(Class<? extends TGeometry>... geometryOfFilters)
+    {
         return geometryOfFilters;
     }
 
-    private static Class<? extends TGeometry>[] propertyOf(Class<? extends TGeometry>... geometryOfProperty) {
+    private static Class<? extends TGeometry>[] propertyOf(Class<? extends TGeometry>... geometryOfProperty)
+    {
         return geometryOfProperty;
     }
 
-    private static class ConfigurationEntry {
+    private static class ConfigurationEntry
+    {
         private SpatialConfiguration.INDEXING_METHOD method;
         private Boolean orderBy;
         private List<Class<? extends TGeometry>> supportedPropertyGeometries = new LinkedList<>();
         private List<Class<? extends TGeometry>> supportedFilterGeometries = new LinkedList<>();
 
-        public ConfigurationEntry(Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+        public ConfigurationEntry(Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
+        {
             this.supportedPropertyGeometries = Arrays.asList(geometriesOfProperty);
             this.supportedFilterGeometries = Arrays.asList(geometriesOfFilter);
             this.orderBy = orderBy;
             this.method = method;
         }
 
-        public boolean isSupported(Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, Boolean verifyOrderBy) {
-            System.out.println("geometryOfProperty " + geometryOfProperty);
-            System.out.println("geometryOfFilter " + geometryOfFilter);
-            System.out.println("OrderBy " + orderBy);
+        public boolean isSupported(Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, Boolean verifyOrderBy)
+        {
 
-            if (supportsProperty(geometryOfProperty) && supportsFilter(geometryOfFilter)) {
-                if (verifyOrderBy) {
+            if (supportsProperty(geometryOfProperty) && supportsFilter(geometryOfFilter))
+            {
+                if (verifyOrderBy)
+                {
                     if (this.orderBy && orderBy) return true;
                     if (this.orderBy && !orderBy) return true;
                     if (!this.orderBy && !orderBy) return true;
@@ -135,7 +142,8 @@ public class SpatialFunctionsSupportMatrix {
             return false;
         }
 
-        private boolean supportsProperty(Class<? extends TGeometry> geometryOfProperty) {
+        private boolean supportsProperty(Class<? extends TGeometry> geometryOfProperty)
+        {
             if (supportedPropertyGeometries.contains(TGeometry.class))
                 return true;
             else if (supportedPropertyGeometries.contains(geometryOfProperty))
@@ -144,7 +152,8 @@ public class SpatialFunctionsSupportMatrix {
                 return false;
         }
 
-        private boolean supportsFilter(Class<? extends TGeometry> geometryOfFilter) {
+        private boolean supportsFilter(Class<? extends TGeometry> geometryOfFilter)
+        {
             if (supportedFilterGeometries.contains(TGeometry.class))
                 return true;
             else if (supportedFilterGeometries.contains(geometryOfFilter))

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
index bd8fe6c..4ec3adc 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
@@ -23,20 +23,24 @@ import org.qi4j.spi.query.EntityFinderException;
 
 import java.util.Map;
 
-import static org.qi4j.library.spatial.conversions.TConversions.Convert;
+import static org.qi4j.library.spatial.formats.conversions.TConversions.Convert;
 
 
-public class ST_GeometryFromText extends AbstractElasticSearchSpatialFunction implements ConvertFinderSupport.ConvertSpecification {
-    public void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException {
+public class ST_GeometryFromText extends AbstractElasticSearchSpatialFunction implements ConvertFinderSupport.ConvertSpecification
+{
+    public void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException
+    {
         try
         {
             spec.setGeometry(Convert(module).from(spec.property()).toTGeometry());
-        } catch (Exception _ex) {
+        } catch (Exception _ex)
+        {
             throw new EntityFinderException(_ex);
         }
     }
 
-    public ConvertFinderSupport.ConvertSpecification support(Module module, ElasticSearchSupport support) {
+    public ConvertFinderSupport.ConvertSpecification support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
         return this;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
index b0164b4..5603bb5 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
@@ -33,11 +33,13 @@ import java.util.Map;
 import static org.elasticsearch.index.query.FilterBuilders.notFilter;
 
 
-public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
+public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
+{
     public void processSpecification(FilterBuilder filterBuilder,
                                      SpatialPredicatesSpecification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException {
+            throws EntityFinderException
+    {
         TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
 
         if (!isValid(spec))
@@ -50,8 +52,10 @@ public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements
             throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
 
 
-        if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property())) {
-            if (geomOfFilterProperty instanceof TPolygon) {
+        if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property()))
+        {
+            if (geomOfFilterProperty instanceof TPolygon)
+            {
 
                 if (((ST_DisjointSpecification) spec).getDistance() > 0)
                     throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
@@ -61,24 +65,28 @@ public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements
 
                 GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
 
-                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
+                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++)
+                {
                     TPoint point = polygonFilter.shell().get().getPointN(i);
                     geoPolygonFilterBuilder.addPoint(point.x(), point.y());
                 }
                 addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder);
-            } else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification) spec).getDistance() > 0) {
+            } else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification) spec).getDistance() > 0)
+            {
                 double radiusInMeters = convertDistanceToMeters(((ST_DisjointSpecification) spec).getDistance(), ((ST_DisjointSpecification) spec).getUnit());
                 TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
                 addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.DISJOINT), filterBuilder);
             }
-        } else {
+        } else
+        {
             addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.DISJOINT), filterBuilder);
         }
 
 
     }
 
-    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
index a85c66e..a13f1b4 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
@@ -34,16 +34,16 @@ import java.util.Map;
 import static org.elasticsearch.index.query.FilterBuilders.notFilter;
 
 
-public class ST_Intersects extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
+public class ST_Intersects extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
+{
 
     public void processSpecification(FilterBuilder filterBuilder,
                                      SpatialPredicatesSpecification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException {
+            throws EntityFinderException
+    {
         TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
 
-        System.out.println("Spec " + spec);
-
         if (!isValid(spec))
             throw new EntityFinderException(spec.getClass() + " expression invalid.");
 
@@ -54,8 +54,10 @@ public class ST_Intersects extends AbstractElasticSearchSpatialFunction implemen
             throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
 
 
-        if (isPropertyOfType(TPoint.class, spec.property())) {
-            if (geomOfFilterProperty instanceof TPolygon) {
+        if (isPropertyOfType(TPoint.class, spec.property()))
+        {
+            if (geomOfFilterProperty instanceof TPolygon)
+            {
 
                 if (((ST_DisjointSpecification) spec).getDistance() > 0)
                     throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
@@ -65,24 +67,28 @@ public class ST_Intersects extends AbstractElasticSearchSpatialFunction implemen
 
                 GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
 
-                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
+                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++)
+                {
                     TPoint point = polygonFilter.shell().get().getPointN(i);
                     geoPolygonFilterBuilder.addPoint(point.x(), point.y());
                 }
                 addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder);
-            } else if (geomOfFilterProperty instanceof TPoint && ((ST_IntersectsSpecification) spec).getDistance() > 0) {
+            } else if (geomOfFilterProperty instanceof TPoint && ((ST_IntersectsSpecification) spec).getDistance() > 0)
+            {
                 double radiusInMeters = convertDistanceToMeters(((ST_IntersectsSpecification) spec).getDistance(), ((ST_IntersectsSpecification) spec).getUnit());
                 TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
                 addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.INTERSECTS), filterBuilder);
             }
-        } else {
+        } else
+        {
 
             addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.INTERSECTS), filterBuilder);
         }
 
     }
 
-    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
index c653283..54d6104 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
@@ -25,13 +25,15 @@ import java.util.StringTokenizer;
 /**
  * Created by jj on 19.12.14.
  */
-public class GeoPointBuilder extends AbstractBuilder {
+public class GeoPointBuilder extends AbstractBuilder
+{
 
-    public GeoPointBuilder(ElasticSearchSupport support) {
+    public GeoPointBuilder(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 
-    private  String createGeoPointMapping(String field) throws IOException
+    private String createGeoPointMapping(String field) throws IOException
     {
         XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject(support.entitiesType());
         StringTokenizer t1 = new StringTokenizer(field, ".");
@@ -41,10 +43,10 @@ public class GeoPointBuilder extends AbstractBuilder {
             propertyLevel1 = t1.nextToken();
             qi4jRootType.startObject("properties").startObject(propertyLevel1);
         }
-                qi4jRootType
-                        .field("type", "geo_point") // geo_point
-                        .field("precision", SpatialConfiguration.getIndexerPrecision(support.spatialConfiguration()))
-                        .field("lat_lon", true);
+        qi4jRootType
+                .field("type", "geo_point")
+                .field("precision", SpatialConfiguration.getIndexerPrecision(support.spatialConfiguration()))
+                .field("lat_lon", true);
 
         StringTokenizer t2 = new StringTokenizer(field, ".");
         while (t2.hasMoreTokens())
@@ -57,13 +59,14 @@ public class GeoPointBuilder extends AbstractBuilder {
         return qi4jRootType.string();
     }
 
-    public boolean create(String field) {
-        try {
+    public boolean create(String field)
+    {
+        try
+        {
             return put(field, createGeoPointMapping(field));
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
+        } catch (IOException _ex)
+        {
+            throw new RuntimeException(_ex);
         }
-        return false;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
index fb739fb..2bcc0d7 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
@@ -25,13 +25,16 @@ import java.util.StringTokenizer;
 /**
  * Created by jj on 19.12.14.
  */
-public class GeoShapeBuilder extends AbstractBuilder {
+public class GeoShapeBuilder extends AbstractBuilder
+{
 
-    public GeoShapeBuilder(ElasticSearchSupport support) {
+    public GeoShapeBuilder(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 
-    private  String createESGeoShapeMapping(String property) throws IOException {
+    private String createESGeoShapeMapping(String property) throws IOException
+    {
 
         XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject(support.entitiesType());
 
@@ -60,13 +63,15 @@ public class GeoShapeBuilder extends AbstractBuilder {
         return qi4jRootType.string();
     }
 
-    public boolean create(String field) {
-        try {
+    public boolean create(String field)
+    {
+        try
+        {
             return put(field, createESGeoShapeMapping(field));
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
+        } catch (IOException _ex)
+        {
+             throw new RuntimeException(_ex);
         }
-        return false;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
index d70ae1c..bd4ee08 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
@@ -19,9 +19,11 @@ import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 /**
  * Created by jj on 19.12.14.
  */
-public class MappingQueryBuilder extends AbstractBuilder {
+public class MappingQueryBuilder extends AbstractBuilder
+{
 
-    public MappingQueryBuilder(ElasticSearchSupport support) {
+    public MappingQueryBuilder(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
index 1d13756..e6b68cb 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
@@ -19,17 +19,21 @@ import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 /**
  * Created by jj on 19.12.14.
  */
-public class SpatialMappingFactory {
+public class SpatialMappingFactory
+{
 
-    public static GeoPointBuilder GeoPointMapping(ElasticSearchSupport support) {
+    public static GeoPointBuilder GeoPointMapping(ElasticSearchSupport support)
+    {
         return new GeoPointBuilder(support);
     }
 
-    public static GeoShapeBuilder GeoShapeMapping(ElasticSearchSupport support) {
+    public static GeoShapeBuilder GeoShapeMapping(ElasticSearchSupport support)
+    {
         return new GeoShapeBuilder(support);
     }
 
-    public static MappingQueryBuilder MappingQuery(ElasticSearchSupport support) {
+    public static MappingQueryBuilder MappingQuery(ElasticSearchSupport support)
+    {
         return new MappingQueryBuilder(support);
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
index 3128092..3829019 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
@@ -23,10 +23,9 @@ import java.util.concurrent.TimeUnit;
 
 import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders.SpatialMappingFactory.MappingQuery;
 
-/**
- * Created by jj on 19.12.14.
- */
-public class MappingsCache {
+
+public class MappingsCache
+{
 
     private static final int TTL_SECONDS = 1 * 60; // <- JJ TODO make it configurable
     private static final int CONCURENCY_LEVEL = 50;
@@ -42,54 +41,59 @@ public class MappingsCache {
                         .expireAfterAccess(TTL_SECONDS, TimeUnit.SECONDS)
                         .concurrencyLevel(CONCURENCY_LEVEL) // valid ?
                         .build(
-                                new CacheLoader<String, String>() {
-                                    public String load(String key) {
-                                        if (valid()) {
+                                new CacheLoader<String, String>()
+                                {
+                                    public String load(String key)
+                                    {
+                                        if (valid())
+                                        {
                                             return reloadStrategy(key);
                                         } else
                                             return "";
                                     }
                                 }
                         );
-
     }
 
 
-    public MappingsCache(ElasticSearchSupport support) {
+    public MappingsCache(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 
-    private String reloadStrategy(String key) {
-
-        System.out.println("Reload Cache for " + key);
-
+    private String reloadStrategy(String key)
+    {
         String result = MappingQuery(support).get(key);
-        System.out.println("Reload Result " + result);
         return (result == null || result.length() == 0) ? "" : result;
     }
 
-    private boolean valid() {
+    private boolean valid()
+    {
         return (support != null) && (support.index() != null) && (support.entitiesType() != null) ? true : false;
     }
 
 
-    public boolean exists(String key) {
+    public boolean exists(String key)
+    {
         return (ES_MAPPINGS_CACHE.getUnchecked(key) == null) || ES_MAPPINGS_CACHE.getUnchecked(key).length() == 0 ? false : true;
     }
 
-    public String get(String key) {
+    public String get(String key)
+    {
         return ES_MAPPINGS_CACHE.getUnchecked(key);
     }
 
 
-    public void put(String key, String mappings) {
-        System.out.println("Cache PUT key " + key + " mappings " + mappings);
+    public void put(String key, String mappings)
+    {
         if (mappings != null)
             ES_MAPPINGS_CACHE.put(key, mappings);
     }
 
-    public boolean putIfNotExist(String key, String mappings) {
-        if (!exists(key)) {
+    public boolean putIfNotExist(String key, String mappings)
+    {
+        if (!exists(key))
+        {
             put(key, mappings);
             return false;
         } else

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java
deleted file mode 100644
index 154ffd1..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java
+++ /dev/null
@@ -1,484 +0,0 @@
-package org.qi4j.index.elasticsearch;
-
-import org.joda.time.LocalDateTime;
-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.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.query.Query;
-import org.qi4j.api.query.QueryBuilder;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.value.ValueBuilder;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialQueryTest;
-import org.qi4j.test.indexing.NameableAssert;
-import org.qi4j.test.indexing.model.City;
-import org.qi4j.test.indexing.model.Female;
-import org.qi4j.test.indexing.model.Person;
-import org.qi4j.test.indexing.model.entities.FemaleEntity;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-import java.util.Iterator;
-
-import static org.joda.time.DateTimeZone.UTC;
-import static org.junit.Assert.assertNotNull;
-import static org.qi4j.api.query.QueryExpressions.*;
-import static org.qi4j.api.query.QueryExpressions.lt;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Disjoint;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Within;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_GeometryFromText;
-import static org.qi4j.test.indexing.NameableAssert.verifyUnorderedResults;
-import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-
-/**
- * Created by jakes on 2/8/14.
- */
-public class ElasticSearchSpatialClusterQueryTest
-        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();
-    }
-
-    @Override
-    public void assemble(ModuleAssembly module)
-            throws AssemblyException {
-        super.assemble(module);
-
-        // 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();
-
-        try (UnitOfWork unitOfWork = module.newUnitOfWork()) {
-
-            // Kuala Lumpur
-
-            // Latitude    3.139003
-            // Longitude 101.686854
-
-            ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
-
-            TPolygon area = builder.prototype().of
-                    (
-                            // shell
-                            (TLinearRing)module.newValueBuilder(TLinearRing.class).prototype().of
-                                    (
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.56797785892715).y(10.62652587890625),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.5835615987737).y(10.748062133789062),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.533230478523684).y(10.78857421875),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.484185749507716).y(10.72265625),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.49310663031507).y(10.578460693359375),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.5416968611641).y(10.583267211914062),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.555507284155276).y(10.605239868164062),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.56797785892715).y(10.62652587890625)
-                                    )
-                    );
-
-
-            System.out.println("Area " + area);
-
-            City Emskirchen;
-            {
-                EntityBuilder<City> cityBuilder = unitOfWork.newEntityBuilder(City.class);
-                Emskirchen = cityBuilder.instance();
-                Emskirchen.name().set("Emskirchen");
-                Emskirchen.country().set("Germany");
-                Emskirchen.county().set("Bavaria");
-                Emskirchen.location().set(TPoint(module).x (49.550881).y(10.712809).geometry());
-                Emskirchen = cityBuilder.newInstance();
-                // NameableAssert.trace( kualaLumpur );
-                Emskirchen.area().set(area);
-
-            }
-
-
-            Female annDoe;
-            {
-                EntityBuilder<FemaleEntity> femaleBuilder = unitOfWork.newEntityBuilder(FemaleEntity.class, "anndoe2");
-                annDoe = femaleBuilder.instance();
-                annDoe.name().set("Ann Doe 2");
-                annDoe.title().set(Person.Title.MRS);
-                annDoe.placeOfBirth().set(Emskirchen);
-                annDoe.favoritePlaces().put("Emskirchen", Emskirchen);
-                annDoe.yearOfBirth().set(1975);
-                annDoe.password().set("passwordOfAnnDoe");
-
-                annDoe = femaleBuilder.newInstance();
-                NameableAssert.trace(annDoe);
-            }
-
-            unitOfWork.complete();
-
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
-        }
-
-    }
-
-    @Test
-    public void whenQueryUseConversion() throws Exception {
-        // lat, long
-        ST_GeometryFromText("POINT(49.550881 10.712809)");
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).location(),
-                                                ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                                100,
-                                                TUnit.METER
-                                        )
-                        ));
-
-
-        // System.out.println( "*** script01: " + query );
-        query.find();
-
-
-        System.out.println("Found Cities " + query.count());
-
-
-//        QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class );
-//        Person personTemplate = templateFor( Person.class );
-//        City placeOfBirth = personTemplate.placeOfBirth().get();
-//        Query<Person> query = unitOfWork.newQuery( qb.where( eq( placeOfBirth.name(), "Kuala Lumpur" ) ) );
-//        System.out.println( "*** script04: " + query );
-//       //  verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
-    }
-
-    @Test
-    public void whenQueryUsePolygon() throws Exception {
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).area(),
-
-                                                ST_GeometryFromText(
-                                                        "POLYGON((" +
-                                                                "49.56797785892715 10.62652587890625," +
-                                                                "49.5835615987737 10.748062133789062," +
-                                                                "49.533230478523684 10.78857421875," +
-                                                                "49.484185749507716 10.72265625," +
-                                                                "49.49310663031507 10.578460693359375," +
-                                                                "49.5416968611641 10.583267211914062," +
-                                                                "49.555507284155276 10.605239868164062," +
-                                                                "49.56797785892715 10.62652587890625))")
-                                        )
-                        ));
-
-
-        // System.out.println( "*** script01: " + query );
-        query.find();
-
-
-        System.out.println("Found Cities " + query.count());
-
-
-//        QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class );
-//        Person personTemplate = templateFor( Person.class );
-//        City placeOfBirth = personTemplate.placeOfBirth().get();
-//        Query<Person> query = unitOfWork.newQuery( qb.where( eq( placeOfBirth.name(), "Kuala Lumpur" ) ) );
-//        System.out.println( "*** script04: " + query );
-//       //  verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
-    }
-
-
-    @Test
-    public void whenQueryUsePolygonDSL() throws Exception {
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).area(),
-
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {49.56797785892715, 10.62652587890625},
-                                                                                        {49.5835615987737, 10.748062133789062},
-                                                                                        {49.533230478523684, 10.78857421875},
-                                                                                        {49.484185749507716, 10.72265625},
-                                                                                        {49.49310663031507, 10.578460693359375},
-                                                                                        {49.5416968611641, 10.583267211914062},
-                                                                                        {49.555507284155276, 10.605239868164062},
-                                                                                        {49.56797785892715, 10.62652587890625}
-
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-    }
-
-
-    @Test
-    public void directQuery() {
-
-        ValueBuilder<TPolygon> tPolygonShapeBuilder = module.newValueBuilder(TPolygon.class);
-        TPolygon tPolygonShape = tPolygonShapeBuilder.prototype().of
-                (
-                        // shell
-                        (TLinearRing)module.newValueBuilder(TLinearRing.class).prototype().of
-                                (
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.56797785892715),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.62652587890625)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.5835615987737),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.748062133789062)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.533230478523684),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.78857421875)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.484185749507716),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.72265625)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.49310663031507),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.578460693359375)   //y
-                                                )
-
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.5416968611641),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.583267211914062)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.555507284155276),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.605239868164062)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.56797785892715),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.62652587890625)   //y
-                                                )
-
-
-                                        // ,
-                                        // no holes
-                                        // null
-                                ));
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-/**
- Query<City> query = unitOfWork.newQuery(
- qb
-
- .where(
- ST_Within(templateFor(City.class).location(),
-
- tPolygonShape
- )));
-
-
- // System.out.println( "*** script01: " + query );
- query.find();
-
-
-
- System.out.println("Found Cities 123 " + query.count());
- */
-
-    }
-
-
-    @Test
-    public void whenQueryUseConversion2() throws Exception {
-        // lat, long
-        ST_GeometryFromText("POINT(49.550881 10.712809)");
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).location(),
-                                                ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                                100,
-                                                TUnit.METER
-                                        )
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-
-        Iterator<City> cities = query.iterator();
-
-        while (cities.hasNext()) {
-            System.out.println("Cities " + cities.next().name());
-        }
-
-    }
-
-
-    @Test
-    public void whenSpatialQueryWithNot() throws Exception {
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(not(
-                                        ST_Within
-                                                (
-                                                        templateFor(City.class).location(),
-                                                        ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                                        100,
-                                                        TUnit.METER
-                                                )
-                                )
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-
-        Iterator<City> cities = query.iterator();
-
-        while (cities.hasNext()) {
-            System.out.println("Cities " + cities.next().name());
-        }
-    }
-
-
-    @Test
-    public void whenST_DisjoinThen() throws Exception {
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Disjoint(
-                                        (
-                                                templateFor(City.class).area()),
-                                        ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                        100
-                                )
-
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-
-        Iterator<City> cities = query.iterator();
-
-        while (cities.hasNext()) {
-            System.out.println("Cities " + cities.next().name());
-        }
-    }
-
-    /**
-     * QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class );
-     * Person person = templateFor( Person.class );
-     * Query<Person> query = unitOfWork.newQuery( qb.where( ge( person.yearOfBirth(), 1973 ) ) );
-     * System.out.println( "*** script06: " + query );
-     * verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
-     *
-     * @throws Exception
-     */
-
-    //                         .where(ge(templateFor(City.class).location(), "123")));
-
-
-
-    @Test
-    public void script43_LocalDateTime() {
-        QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
-        Person person = templateFor(Person.class);
-        Query<Person> query = unitOfWork.newQuery(qb.where(
-                and(gt(person.localDateTimeValue(), new LocalDateTime("2005-03-04T13:24:35", UTC)),
-                        lt(person.localDateTimeValue(), new LocalDateTime("2015-03-04T13:24:35", UTC)))));
-        System.out.println("*** script43_LocalDateTime: " + query);
-
-        verifyUnorderedResults(query, "Jack Doe");
-    }
-
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/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
deleted file mode 100644
index 67a9623..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import com.spatial4j.core.distance.DistanceUtils;
-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.TPoint;
-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.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extension.spatial.utils.RandomPoint;
-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.assembly.TGeometryAssembler;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractAnyQueryTest;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
-
-import java.io.File;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.test.util.Assume.*;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialBench
-        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 ESClusterIndexQueryAssembler().
-                withConfig(config, Visibility.layer).
-                identifiedBy("ElasticSearchBenchmark").
-                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);
-
-        // In-Memory Entity Store
-        // new EntityTestAssembler().assemble( module );
-
-
-        /** RIAK */
-        ModuleAssembly configRiak = module.layer().module( "configRiak" );
-        new EntityTestAssembler().assemble( configRiak );
-        new OrgJsonValueSerializationAssembler().assemble( module );
-        // START SNIPPET: assembly
-        new RiakHttpMapEntityStoreAssembler().identifiedBy("RIAKBenchmark").withConfig(configRiak, Visibility.layer ).assemble( module );
-        /** +++ */
-    }
-
-    // @Test
-    public void test() throws Exception
-    {
-
-        try (UnitOfWork unitOfWork = module.newUnitOfWork())
-        {
-            unitOfWork.complete();
-
-        }
-        // double[] xy = nextSpherePt2D();
-
-        // System.out.println("spherical " + xy[0] + " " + xy[1] );
-        long start = System.currentTimeMillis();
-
-        module.newUnitOfWork();
-        for (int i = 0; i < 10000; i++) {
-
-            double[] xy = nextSpherePt2D();
-            System.out.println("Degrees " + DistanceUtils.toDegrees(xy[0]) + "," + DistanceUtils.toDegrees(xy[1]));
-
-            TPoint(module).lat(xy[0]).lon(xy[1]).geometry();
-        }
-        module.currentUnitOfWork().complete();
-
-        long end = System.currentTimeMillis();
-
-        System.out.println("Duration  " + (end - start));
-    }
-
-    @Test
-    public void test1() throws Exception
-    {
-
-        try (UnitOfWork unitOfWork = module.newUnitOfWork())
-        {
-            unitOfWork.complete();
-
-        }
-        // double[] xy = nextSpherePt2D();
-
-        // System.out.println("spherical " + xy[0] + " " + xy[1] );
-        long start = System.currentTimeMillis();
-        for (int j = 0; j < 10000; j++)
-        {
-            System.out.println("--> " + j);
-            UnitOfWork unitOfWork = module.newUnitOfWork();
-
-
-            for (int i = 0; i < 1000; 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<SpatialAEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class);
-                pointBuilder.instance().point().set(point);
-                pointBuilder.newInstance();
-            }
-
-            unitOfWork.complete();
-        }
-        long end = System.currentTimeMillis();
-
-        System.out.println("Duration  " + (end - start));
-    }
-
-     static long seed = 1;
-    static RandomPoint randomPoint = new RandomPoint();
-
-    public double[] nextSpherePt2D()
-    {
-        return randomPoint.nextSpherePt(2);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/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
index 1904139..b96f845 100644
--- 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
@@ -36,9 +36,7 @@ import java.io.File;
 
 import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
 
-/**
- * Created by jj on 21.12.14.
- */
+
 public class ElasticSearchSpatialQueryTestUsingUsingDefaults
         extends AbstractSpatialRegressionTest
 {
@@ -62,8 +60,6 @@ public class ElasticSearchSpatialQueryTestUsingUsingDefaults
         // Geometry support
         new TGeometryAssembler().assemble(module);
 
-
-
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java
deleted file mode 100644
index 1835104..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial.utils;
-
-import java.io.Serializable;
-
-
-public class RandomPoint extends RandomUtils implements Serializable {
-
-    /**
-     * 	auto generated
-     */
-    private static final long serialVersionUID = -1772453101010620003L;
-
-    /**
-     *  for the case d = 2
-     */
-    private static final double twopi = 8*Math.atan(1);
-
-
-
-    /**
-     * Generates the next pseudorandom double value vector, with
-     * equal probability of picking any vector on the unit
-     * d-dimensional hypersphere.
-     *
-     * The algorithm is based on the work of Marsaglia in
-     * Marsaglia, G. "Choosing a Point from the Surface of a Sphere."
-     * Ann. Math. Stat. 43, 645-646, 1972
-     *
-     * and Muller in
-     * Muller, M. E. "A Note on a Type for Generating Points Uniformly on N-Dimensional Spheres."
-     * Comm. Assoc. Comput. Mach. 2, 19-20, Apr. 1959.
-     *
-     * See also:
-     * Weisstein, Eric W. "Sphere Point Picking."
-     * From MathWorld--A Wolfram Web Resource.
-     * http://mathworld.wolfram.com/SpherePointPicking.html and
-     * http://mathworld.wolfram.com/HyperspherePointPicking.html
-     *
-     * @return the next pseudorandom vector on the d-dimensional unit hypersphere
-     */
-
-    public RandomPoint(){
-        this(System.currentTimeMillis());
-    }
-
-    public RandomPoint(long seed){
-        setSeed(seed);
-    }
-
-    public double[] nextSpherePt(int d){
-
-        double ret[] = new double[d];
-
-        if (d == 1){
-            ret[0] = -1;
-            if(nextDouble() > 0.5)
-                ret[0] = 1;
-        }
-        else if (d == 2){
-            ret = new double[2];
-            double theta = nextDouble()*twopi;
-            ret[0] = Math.cos(theta);
-            ret[1] = Math.sin(theta);
-            return ret;
-        }
-        else if (d == 3){
-            double x, y, z;
-            ret = new double[3];
-            x = 2*(nextDouble() - 0.5);
-            y = 2*(nextDouble() - 0.5);
-            while ((x*x + y*y) >= 1)
-                y = 2*(nextDouble() - 0.5);
-            z = 1 - 2*(x*x+y*y);
-            ret[0] = x;
-            ret[1] = y;
-            ret[2] = z;
-        }
-        else{
-            ret = new double[d];
-            double nrm = 0;
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = nextGaussian();
-                nrm += ret[jj]+ret[jj];
-            }
-            nrm = Math.sqrt(nrm);
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = ret[jj] / nrm;
-            }
-        }
-
-        return ret;
-    }
-
-    /**
-     * Generates the next pseudorandom double value vector, with
-     * equal probability of picking any vector on the  d-dimensional
-     * hypersphere of radius RR.
-     *
-     * The algorithm is based on the work of Marsaglia in
-     * Marsaglia, G. "Choosing a Point from the Surface of a Sphere."
-     * Ann. Math. Stat. 43, 645-646, 1972
-     *
-     * and Muller in
-     * Muller, M. E. "A Note on a Type for Generating Points Uniformly on N-Dimensional Spheres."
-     * Comm. Assoc. Comput. Mach. 2, 19-20, Apr. 1959.
-     *
-     * See also:
-     * Weisstein, Eric W. "Sphere Point Picking."
-     * From MathWorld--A Wolfram Web Resource.
-     * http://mathworld.wolfram.com/SpherePointPicking.html and
-     * http://mathworld.wolfram.com/HyperspherePointPicking.html
-     *
-     * @return the next pseudorandom vector on the d-dimensional hypersphere of radius RR.
-     */
-
-    public double[] nextSpherePt(int d, double RR){
-
-        double ret[] = new double[d];
-
-        if (d == 1){
-            ret[0] = -1*RR;
-            if(nextDouble() > 0.5)
-                ret[0] = RR;
-        }
-        else if (d == 2){
-            ret = new double[2];
-            double theta = nextDouble()*twopi;
-            ret[0] = RR*Math.cos(theta);
-            ret[1] = RR*Math.sin(theta);
-            return ret;
-        }
-        else{
-            ret = new double[d];
-            double nrm = 0;
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = nextGaussian();
-                nrm += ret[jj]*ret[jj];
-            }
-            nrm = Math.sqrt(nrm);
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = RR*(ret[jj] / nrm);
-            }
-        }
-
-        return ret;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties b/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
deleted file mode 100644
index 94d160c..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
+++ /dev/null
@@ -1 +0,0 @@
-urls=http://localhost:8098/riak
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/spatial/build.gradle b/libraries/spatial/build.gradle
index 9d6bed3..49bd90a 100644
--- a/libraries/spatial/build.gradle
+++ b/libraries/spatial/build.gradle
@@ -1,14 +1,14 @@
 description = "Qi4j Spatial Library contains various spatial related services and tools."
 
-jar { manifest { name = "Qi4j Library - Spatial" }}
+jar { manifest { name = "Qi4j Library - Spatial" } }
 
 dependencies {
-  compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
-  compile libraries.geojackson
-  compile libraries.ctsVersion
+    compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
+    compile libraries.geojackson
+    compile libraries.ctsVersion
 
-  testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
+    testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
 
-  testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
-  testRuntime(libraries.logback)
+    testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
+    testRuntime(libraries.logback)
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/spatial/dev-status.xml b/libraries/spatial/dev-status.xml
index 91abd4f..93a3d5a 100644
--- a/libraries/spatial/dev-status.xml
+++ b/libraries/spatial/dev-status.xml
@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xmlns="http://www.qi4j.org/schemas/2008/dev-status/1"
         xsi:schemaLocation="http://www.qi4j.org/schemas/2008/dev-status/1
         http://www.qi4j.org/schemas/2008/dev-status/1/dev-status.xsd">
-  <status>
-    <!--none,early,beta,stable,mature-->
-    <codebase>none</codebase>
+    <status>
+        <!--none,early,beta,stable,mature-->
+        <codebase>none</codebase>
 
-    <!-- none, brief, good, complete -->
-    <documentation>none</documentation>
+        <!-- none, brief, good, complete -->
+        <documentation>none</documentation>
 
-    <!-- none, some, good, complete -->
-    <unittests>none</unittests>
-  </status>
-  <licenses>
-    <license>ALv2</license>
-  </licenses>
+        <!-- none, some, good, complete -->
+        <unittests>none</unittests>
+    </status>
+    <licenses>
+        <license>ALv2</license>
+    </licenses>
 </module>

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
deleted file mode 100644
index a75f9e1..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * 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.library.spatial.conversions.from;
-
-import org.geojson.*;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.api.geometry.TGeometryFactory.TLinearRing;
-
-
-public class GeoJsonFromConverter {
-
-    private Module module;
-
-    public GeoJsonFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(GeoJsonObject geojson)
-
-    {
-        return transform(geojson);
-    }
-
-    private TGeometry transform(GeoJsonObject geojson)
-    {
-        if (geojson instanceof Point)
-        {
-            return createTPoint((Point) geojson);
-        }
-        else if ( (geojson instanceof MultiPoint) && !(geojson instanceof LineString) )
-        {
-            return createTMultiPoint((MultiPoint)geojson);
-        }
-        else if (geojson instanceof LineString)
-        {
-            return createTLineString((LineString)geojson);
-        }
-        else if (geojson instanceof MultiLineString)
-        {
-            return createTMultiLineString((MultiLineString)geojson);
-        }
-        else if (geojson instanceof Polygon)
-        {
-            return createTPolygon((Polygon) geojson);
-        }
-        else if (geojson instanceof MultiPolygon)
-        {
-            return createTMultiPolygon((MultiPolygon) geojson);
-        }
-        else if (geojson instanceof Feature)
-        {
-            return createTFeature((Feature)geojson);
-        }
-        else if (geojson instanceof FeatureCollection)
-        {
-            return createTFeatureCollection((FeatureCollection)geojson);
-        }
-        else throw new RuntimeException("Unknown GeoJSON type - " + geojson);
-    }
-
-
-    private TGeometry createTPoint(Point point)
-    {
-        return TPoint(module)
-                .x(point.getCoordinates().getLatitude())
-                .y(point.getCoordinates().getLongitude())
-                .z(point.getCoordinates().getAltitude())
-                .geometry();
-    }
-    private TGeometry createTMultiPoint(MultiPoint multiPoint)
-    {
-        TMultiPoint tMultiPoint = TMultiPoint(module).geometry();
-        for (LngLatAlt xyz : multiPoint.getCoordinates() )
-        {
-            tMultiPoint.of
-                    (
-                            TPoint(module)
-                                    .x(xyz.getLatitude())
-                                    .y(xyz.getLongitude())
-                                    .z(xyz.getAltitude())
-                                    .geometry()
-                    );
-        }
-        return tMultiPoint;
-    }
-
-    private TGeometry createTLineString(LineString lineString)
-    {
-        TLineString tLineString = TLineString(module).of().geometry();
-
-        for (LngLatAlt xyz : lineString.getCoordinates() ) {
-            tLineString.of(
-                    TPoint(module)
-                            .x(xyz.getLatitude())
-                            .y(xyz.getLongitude())
-                            .z(xyz.getAltitude())
-                            .geometry()
-            );
-        }
-        return tLineString;
-    }
-
-    private TGeometry createTMultiLineString(MultiLineString multiLineString)
-    {
-        TMultiLineString tMultiLineString = TMultiLineString(module).of().geometry();
-        for (List<LngLatAlt> coordinates : multiLineString. getCoordinates())
-        {
-            tMultiLineString.of(getLine(coordinates));
-        }
-        return tMultiLineString;
-    }
-
-    private TGeometry createTPolygon(Polygon polygon)
-    {
-        TPolygon tPolygon;
-        TLinearRing ring = getRing((polygon).getExteriorRing());
-        if (!ring.isValid())
-            throw  new RuntimeException("Polygon shell not valid");
-        else
-            tPolygon = TPolygon(module).shell(ring).geometry();
-        for (int i = 0; i < (polygon).getInteriorRings().size(); i++)
-        {
-            tPolygon.withHoles(getRing((polygon).getInteriorRings().get(i)));
-        }
-        return tPolygon;
-    }
-
-    private TGeometry createTMultiPolygon(MultiPolygon multiPolygon)
-    {
-        TMultiPolygon tMultiPolygon = TMultiPolygon(module).of().geometry();
-        for (List<List<LngLatAlt>> polygons : multiPolygon.getCoordinates() )
-        {
-            for (List<LngLatAlt> polygon : polygons  )
-            {
-                tMultiPolygon.of(TPolygon(module).shell(getRing(polygon)).geometry());
-            }
-        }
-        return tMultiPolygon;
-    }
-
-    private TGeometry createTFeature(Feature feature)
-    {
-        return TFeature(module).of(new GeoJsonFromConverter(module).transform(feature.getGeometry())).geometry();
-    }
-
-    private TGeometry createTFeatureCollection(FeatureCollection featurecollection)
-    {
-        TFeatureCollection tFeatureCollection = TFeatureCollection(module).of().geometry();
-        for (Feature feature : featurecollection.getFeatures())
-        {
-            tFeatureCollection.of((TFeature)createTFeature(feature));
-        }
-        return tFeatureCollection;
-    }
-
-    private TLineString getLine(List<LngLatAlt> coordinates)
-    {
-        TLineString tLineString = TLineString(module).of().geometry();
-        for (LngLatAlt xyz :coordinates )
-        {
-            tLineString.yx(xyz.getLatitude(), xyz.getLongitude());
-        }
-        return tLineString;
-    }
-    private TLinearRing getRing(List<LngLatAlt> coordinates)
-    {
-
-        TLinearRing tLinearRing = TLinearRing(module).of().geometry();
-        for (LngLatAlt xyz :coordinates ) {
-            tLinearRing.yx(xyz.getLatitude(), xyz.getLongitude());
-        }
-
-        if (!tLinearRing.isClosed())
-        {
-            tLinearRing.of(tLinearRing.getStartPoint()); // hack here - we are closing the ring, of not closed.
-        }
-
-        return tLinearRing;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
deleted file mode 100644
index 2c66b42..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * 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.library.spatial.conversions.from;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-
-public class TGeometryFromConverter {
-
-    private Module module;
-
-    public TGeometryFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(TGeometry tGeometry)
-    {
-        return tGeometry;
-    }
-}