Loading buildTAP.xml +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ <!DOCTYPE project> <project name="tap" basedir="." default="buildLib"> <property name="version" value="2.2" /> <property name="version" value="2.3" /> <property name="srcDir" value="src" /> <property name="testDir" value="test" /> Loading src/tap/config/ConfigurableServiceConnection.java +2 −2 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ import uws.service.log.UWSLog.LogLevel; * </p> * * @author Grégory Mantelet (ARI) * @version 2.1 (02/2018) * @version 2.3 (03/2018) * @since 2.0 */ public final class ConfigurableServiceConnection implements ServiceConnection { Loading Loading @@ -1124,7 +1124,7 @@ public final class ConfigurableServiceConnection implements ServiceConnection { private final String REGEXP_CLASSPATH = "\\{[^{}]*\\}"; private final String REGEXP_DESCRIPTION = "\"((\\\"|[^\"])*)\""; private final String REGEXP_DESCRIPTION = "\"((\\\\\"|[^\"])*)\""; private final String REGEXP_UDF = "\\[\\s*(" + REGEXP_SIGNATURE + ")\\s*(,\\s*(" + REGEXP_CLASSPATH + ")?\\s*(,\\s*(" + REGEXP_DESCRIPTION + ")?\\s*)?)?\\]"; Loading test/tap/config/TestConfigurableServiceConnection.java +10 −4 Original line number Diff line number Diff line Loading @@ -308,7 +308,7 @@ public class TestConfigurableServiceConnection { udfsWithClassNameProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR, {adql.db.TestDBChecker$UDFToto}]"); udfsWithClassNameAndDescriptionProp = (Properties)validProp.clone(); udfsWithClassNameAndDescriptionProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR, {adql.db.TestDBChecker$UDFToto}, \"Bla \"bla\".\"]"); udfsWithClassNameAndDescriptionProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR, {adql.db.TestDBChecker$UDFToto}, \"Bla \\\"bla\\\".\"], [ titi(b REAL) -> double, {adql.db.TestDBChecker$UDFToto}, \"Function titi.\"]"); udfsWithEmptyOptParamsProp = (Properties)validProp.clone(); udfsWithEmptyOptParamsProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR,, ]"); Loading Loading @@ -1060,12 +1060,18 @@ public class TestConfigurableServiceConnection { try{ ServiceConnection connection = new ConfigurableServiceConnection(udfsWithClassNameAndDescriptionProp); assertNotNull(connection.getUDFs()); assertEquals(1, connection.getUDFs().size()); FunctionDef def = connection.getUDFs().iterator().next(); assertEquals(2, connection.getUDFs().size()); Iterator<FunctionDef> itUdfs = connection.getUDFs().iterator(); FunctionDef def = itUdfs.next(); assertEquals("toto(a VARCHAR) -> VARCHAR", def.toString()); assertEquals(UDFToto.class, def.getUDFClass()); assertEquals("Bla \"bla\".", def.description); assertEquals("Bla \\\"bla\\\".", def.description); def = itUdfs.next(); assertEquals("titi(b REAL) -> DOUBLE", def.toString()); assertEquals(UDFToto.class, def.getUDFClass()); assertEquals("Function titi.", def.description); }catch(Exception e){ e.printStackTrace(); fail("This MUST have succeeded because the given list of UDFs contains valid items! \nCaught exception: " + getPertinentMessage(e)); } Loading Loading
buildTAP.xml +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ <!DOCTYPE project> <project name="tap" basedir="." default="buildLib"> <property name="version" value="2.2" /> <property name="version" value="2.3" /> <property name="srcDir" value="src" /> <property name="testDir" value="test" /> Loading
src/tap/config/ConfigurableServiceConnection.java +2 −2 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ import uws.service.log.UWSLog.LogLevel; * </p> * * @author Grégory Mantelet (ARI) * @version 2.1 (02/2018) * @version 2.3 (03/2018) * @since 2.0 */ public final class ConfigurableServiceConnection implements ServiceConnection { Loading Loading @@ -1124,7 +1124,7 @@ public final class ConfigurableServiceConnection implements ServiceConnection { private final String REGEXP_CLASSPATH = "\\{[^{}]*\\}"; private final String REGEXP_DESCRIPTION = "\"((\\\"|[^\"])*)\""; private final String REGEXP_DESCRIPTION = "\"((\\\\\"|[^\"])*)\""; private final String REGEXP_UDF = "\\[\\s*(" + REGEXP_SIGNATURE + ")\\s*(,\\s*(" + REGEXP_CLASSPATH + ")?\\s*(,\\s*(" + REGEXP_DESCRIPTION + ")?\\s*)?)?\\]"; Loading
test/tap/config/TestConfigurableServiceConnection.java +10 −4 Original line number Diff line number Diff line Loading @@ -308,7 +308,7 @@ public class TestConfigurableServiceConnection { udfsWithClassNameProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR, {adql.db.TestDBChecker$UDFToto}]"); udfsWithClassNameAndDescriptionProp = (Properties)validProp.clone(); udfsWithClassNameAndDescriptionProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR, {adql.db.TestDBChecker$UDFToto}, \"Bla \"bla\".\"]"); udfsWithClassNameAndDescriptionProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR, {adql.db.TestDBChecker$UDFToto}, \"Bla \\\"bla\\\".\"], [ titi(b REAL) -> double, {adql.db.TestDBChecker$UDFToto}, \"Function titi.\"]"); udfsWithEmptyOptParamsProp = (Properties)validProp.clone(); udfsWithEmptyOptParamsProp.setProperty(KEY_UDFS, "[toto(a string)->VARCHAR,, ]"); Loading Loading @@ -1060,12 +1060,18 @@ public class TestConfigurableServiceConnection { try{ ServiceConnection connection = new ConfigurableServiceConnection(udfsWithClassNameAndDescriptionProp); assertNotNull(connection.getUDFs()); assertEquals(1, connection.getUDFs().size()); FunctionDef def = connection.getUDFs().iterator().next(); assertEquals(2, connection.getUDFs().size()); Iterator<FunctionDef> itUdfs = connection.getUDFs().iterator(); FunctionDef def = itUdfs.next(); assertEquals("toto(a VARCHAR) -> VARCHAR", def.toString()); assertEquals(UDFToto.class, def.getUDFClass()); assertEquals("Bla \"bla\".", def.description); assertEquals("Bla \\\"bla\\\".", def.description); def = itUdfs.next(); assertEquals("titi(b REAL) -> DOUBLE", def.toString()); assertEquals(UDFToto.class, def.getUDFClass()); assertEquals("Function titi.", def.description); }catch(Exception e){ e.printStackTrace(); fail("This MUST have succeeded because the given list of UDFs contains valid items! \nCaught exception: " + getPertinentMessage(e)); } Loading