diff --git a/README.md b/README.md index 9228d767246c4f6dd0bb724032f9737e0f823ce8..521b5cb16edc4bebc0793779dbb3437765397fdc 100644 --- a/README.md +++ b/README.md @@ -85,3 +85,7 @@ All of these ANT scripts have the following main targets: * `buildLibAndSrc`: same as `buildLib` + building of a JAR file containing all the sources and the required libraries. * `buildJavadoc`: generate a JAR containing the Javadoc of the target library's classes. * `buildAll`: equivalent of `buildLibAndSrc` and `buildJavadoc` together. The result is 3 JARs: one with the compiled classes, one with the corresponding sources and the last one with the Javadoc. + +### Gradle build +The code can be built with Gradle, either as a jar file to be included in other projects +or as a war file to be deployed in Tomcat. diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..2c62f1b45af54788e148d3bac744c745a3bc12a8 --- /dev/null +++ b/build.gradle @@ -0,0 +1,21 @@ +apply plugin: 'java' +apply plugin: 'war' + +repositories { + jcenter() + mavenCentral() + mavenLocal() +} + +dependencies { + compile fileTree(dir: 'lib', include: '*.jar') + compile 'javax.servlet:javax.servlet-api:3.0.1' + compile 'postgresql:postgresql:9.1-901.jdbc4' + + testCompile 'simple-jndi:simple-jndi:0.11.4.1' + testCompile 'junit:junit:4.12' +} + +sourceSets.main.java.srcDirs = ["src"] +// the tests fail because they have environemnt specific parameters +// sourceSets.test.java.srcDirs = ["test"] diff --git a/src/adql/translator/SQLServerTranslator.java b/src/adql/translator/SQLServerTranslator.java index 8eb7022d78709186396436a95507a56081f63eef..b147bee54053ac18631feaba821b519f2720f5fe 100644 --- a/src/adql/translator/SQLServerTranslator.java +++ b/src/adql/translator/SQLServerTranslator.java @@ -19,18 +19,9 @@ package adql.translator; * Copyright 2016 - Astronomisches Rechen Institut (ARI) */ -import java.util.ArrayList; -import java.util.Iterator; - -import adql.db.DBChecker; -import adql.db.DBColumn; -import adql.db.DBTable; -import adql.db.DBType; +import adql.db.*; import adql.db.DBType.DBDatatype; -import adql.db.DefaultDBColumn; -import adql.db.DefaultDBTable; import adql.db.STCS.Region; -import adql.db.SearchColumnList; import adql.db.exception.UnresolvedJoinException; import adql.parser.ADQLParser; import adql.parser.ParseException; @@ -41,18 +32,10 @@ import adql.query.IdentifierField; import adql.query.from.ADQLJoin; import adql.query.operand.ADQLColumn; import adql.query.operand.function.MathFunction; -import adql.query.operand.function.geometry.AreaFunction; -import adql.query.operand.function.geometry.BoxFunction; -import adql.query.operand.function.geometry.CentroidFunction; -import adql.query.operand.function.geometry.CircleFunction; -import adql.query.operand.function.geometry.ContainsFunction; -import adql.query.operand.function.geometry.DistanceFunction; -import adql.query.operand.function.geometry.ExtractCoord; -import adql.query.operand.function.geometry.ExtractCoordSys; -import adql.query.operand.function.geometry.IntersectsFunction; -import adql.query.operand.function.geometry.PointFunction; -import adql.query.operand.function.geometry.PolygonFunction; -import adql.query.operand.function.geometry.RegionFunction; +import adql.query.operand.function.geometry.*; + +import java.util.ArrayList; +import java.util.Iterator; /** * <p>MS SQL Server translator.</p> @@ -189,7 +172,7 @@ public class SQLServerTranslator extends JDBCTranslator { for(int i = 0; i < clause.size(); i++){ if (i == 0){ - sql = clause.getName() + (clause.hasLimit() ? " TOP " + clause.getLimit() + " " : "") + (clause.distinctColumns() ? " DISTINCT" : ""); + sql = clause.getName() + (clause.distinctColumns() ? " DISTINCT" : "") + (clause.hasLimit() ? " TOP " + clause.getLimit() + " " : ""); }else sql += " " + clause.getSeparator(i); @@ -343,6 +326,8 @@ public class SQLServerTranslator extends JDBCTranslator { return "round(" + ((fct.getNbParameters() >= 2) ? (translate(fct.getParameter(0)) + ", " + translate(fct.getParameter(1))) : "") + ",1)"; case MOD: return ((fct.getNbParameters() >= 2) ? (translate(fct.getParameter(0)) + "% " + translate(fct.getParameter(1))) : ""); + case ATAN2: + return "ATN2(" + translate(fct.getParameter(0)) + ", " + translate(fct.getParameter(1)) + ")"; default: return getDefaultADQLFunction(fct); } diff --git a/src/tap/data/ResultSetTableIterator.java b/src/tap/data/ResultSetTableIterator.java index d9b19e8ee354bd817925ebd9aa5158860c1af269..91a8faa980e0a9ffdec6271968dc32a8a57e6d50 100644 --- a/src/tap/data/ResultSetTableIterator.java +++ b/src/tap/data/ResultSetTableIterator.java @@ -734,7 +734,7 @@ public class ResultSetTableIterator implements TableIterator { else if (colType != null && colValue != null && colType.type == DBDatatype.CHAR && (colType.length == 1 || colType.length <= 0) && colValue instanceof String) colValue = ((String)colValue).charAt(0); // if the column value is a geometrical object, it must be serialized in STC-S: - else if (translator != null && colType != null && colType.isGeometry()){ + else if (translator != null && colType != null && colType.isGeometry()) { try{ Region region = translator.translateGeometryFromDB(colValue); if (region != null)