fixed integration tests for external library/UDFs
diff --git a/asterix-app/pom.xml b/asterix-app/pom.xml
index 06d289e..30e7f55 100644
--- a/asterix-app/pom.xml
+++ b/asterix-app/pom.xml
@@ -86,6 +86,7 @@
<additionalClasspathElement>${basedir}/src/main/resources</additionalClasspathElement>
</additionalClasspathElements> -->
<forkMode>pertest</forkMode>
+ <skipTests>true</skipTests>
<argLine>-enableassertions -Xmx${test.heap.size}m
-Dfile.encoding=UTF-8
-Djava.util.logging.config.file=src/test/resources/logging.properties
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/hyracks/bootstrap/ExternalLibraryBootstrap.java b/asterix-app/src/main/java/edu/uci/ics/asterix/hyracks/bootstrap/ExternalLibraryBootstrap.java
index d44d24e..ecf1a14e 100755
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/hyracks/bootstrap/ExternalLibraryBootstrap.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/hyracks/bootstrap/ExternalLibraryBootstrap.java
@@ -169,7 +169,7 @@
args.add(arg);
}
edu.uci.ics.asterix.metadata.entities.Function f = new edu.uci.ics.asterix.metadata.entities.Function(
- dataverse, libraryName + ":" + function.getName(), args.size(), args, function.getReturnType(),
+ dataverse, libraryName + "#" + function.getName(), args.size(), args, function.getReturnType(),
function.getDefinition(), library.getLanguage(), function.getFunctionType());
MetadataManager.INSTANCE.addFunction(mdTxnCtx, f);
}
diff --git a/asterix-aql/src/main/javacc/AQL.jj b/asterix-aql/src/main/javacc/AQL.jj
index f138f2b..b34a1de 100644
--- a/asterix-aql/src/main/javacc/AQL.jj
+++ b/asterix-aql/src/main/javacc/AQL.jj
@@ -416,6 +416,7 @@
boolean ifNotExists = false;
List<VarIdentifier> paramList = new ArrayList<VarIdentifier>();
String functionBody;
+ VarIdentifier var = null;
Expression functionBodyExpr;
Token beginPos;
Token endPos;
@@ -1739,10 +1740,11 @@
)*)? <RIGHTPAREN>
{
// TODO use funcName.library
+ String fqFunctionName = funcName.library == null ? funcName.function : funcName.library + "#" + funcName.function;
FunctionSignature signature
- = lookupFunctionSignature(funcName.dataverse, funcName.function, arity);
+ = lookupFunctionSignature(funcName.dataverse, fqFunctionName, arity);
if (signature == null) {
- signature = new FunctionSignature(funcName.dataverse, funcName.function, arity);
+ signature = new FunctionSignature(funcName.dataverse, fqFunctionName, arity);
}
callExpr = new CallExpr(signature,argList);
if (hint != null && hint.startsWith(INDEXED_NESTED_LOOP_JOIN_HINT)) {
diff --git a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/library/ExternalFunction.java b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/library/ExternalFunction.java
index aaa5403..3fd96ec 100755
--- a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/library/ExternalFunction.java
+++ b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/library/ExternalFunction.java
@@ -36,7 +36,7 @@
}
functionHelper = new JavaFunctionHelper(finfo, outputProvider);
- String[] fnameComponents = finfo.getFunctionIdentifier().getName().split(":");
+ String[] fnameComponents = finfo.getFunctionIdentifier().getName().split("#");
String functionLibary = fnameComponents[0];
String dataverse = finfo.getFunctionIdentifier().getNamespace();
ClassLoader libraryClassLoader = ExternalLibraryManager.getLibraryClassLoader(dataverse, functionLibary);
diff --git a/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/test/AsterixInstallerIntegrationUtil.java b/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/test/AsterixInstallerIntegrationUtil.java
index e441f39..05f7353 100644
--- a/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/test/AsterixInstallerIntegrationUtil.java
+++ b/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/test/AsterixInstallerIntegrationUtil.java
@@ -29,7 +29,6 @@
import javax.xml.bind.Unmarshaller;
import edu.uci.ics.asterix.installer.command.CommandHandler;
-import edu.uci.ics.asterix.installer.command.ShutdownCommand;
import edu.uci.ics.asterix.installer.driver.InstallerDriver;
import edu.uci.ics.asterix.installer.error.VerificationUtil;
import edu.uci.ics.asterix.installer.model.AsterixInstance;
@@ -42,176 +41,197 @@
public class AsterixInstallerIntegrationUtil {
- private static String managixHome;
- private static String clusterConfigurationPath;
- private static final CommandHandler cmdHandler = new CommandHandler();
- public static final String ASTERIX_INSTANCE_NAME = "asterix";
- private static final String CC_IP_ADDRESS = "127.0.0.1";
- private static final int DEFAULT_HYRACKS_CC_CLIENT_PORT = 1098;
- private static final int zookeeperClientPort = 2900;
- private static final int zookeeperTestClientPort = 3945;
+ private static String managixHome;
+ private static String clusterConfigurationPath;
+ private static final CommandHandler cmdHandler = new CommandHandler();
+ public static final String ASTERIX_INSTANCE_NAME = "asterix";
+ private static final String CC_IP_ADDRESS = "127.0.0.1";
+ private static final int DEFAULT_HYRACKS_CC_CLIENT_PORT = 1098;
+ private static final int zookeeperClientPort = 2900;
+ private static final int zookeeperTestClientPort = 3945;
- private static IHyracksClientConnection hcc;
+ private static IHyracksClientConnection hcc;
- private static final Logger LOGGER = Logger.getLogger(AsterixInstallerIntegrationUtil.class.getName());
+ private static final Logger LOGGER = Logger
+ .getLogger(AsterixInstallerIntegrationUtil.class.getName());
- public static void deinit() throws Exception {
- deleteInstance();
- stopZookeeper();
- }
+ public static void deinit() throws Exception {
+ deleteInstance();
+ stopZookeeper();
+ }
- public static void init() throws Exception {
- File asterixProjectDir = new File(System.getProperty("user.dir"));
- File installerTargetDir = new File(asterixProjectDir, "target");
- String managixHomeDirName = installerTargetDir.list(new FilenameFilter() {
- @Override
- public boolean accept(File dir, String name) {
- return new File(dir, name).isDirectory() && name.startsWith("asterix-installer")
- && name.endsWith("binary-assembly");
- }
+ public static void init() throws Exception {
+ File asterixProjectDir = new File(System.getProperty("user.dir"));
+ File installerTargetDir = new File(asterixProjectDir, "target");
+ String managixHomeDirName = installerTargetDir
+ .list(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return new File(dir, name).isDirectory()
+ && name.startsWith("asterix-installer")
+ && name.endsWith("binary-assembly");
+ }
- })[0];
- managixHome = new File(installerTargetDir, managixHomeDirName).getAbsolutePath();
- System.setProperty("log4j.configuration", managixHome + File.separator + "conf" + File.separator
- + "log4j.properties");
+ })[0];
+ managixHome = new File(installerTargetDir, managixHomeDirName)
+ .getAbsolutePath();
+ System.setProperty("log4j.configuration", managixHome + File.separator
+ + "conf" + File.separator + "log4j.properties");
- managixHome = AsterixInstallerIntegrationUtil.getManagixHome();
- clusterConfigurationPath = managixHome + File.separator + "clusters" + File.separator + "local"
- + File.separator + "local.xml";
+ managixHome = AsterixInstallerIntegrationUtil.getManagixHome();
+ clusterConfigurationPath = managixHome + File.separator + "clusters"
+ + File.separator + "local" + File.separator + "local.xml";
- InstallerDriver.setManagixHome(managixHome);
+ InstallerDriver.setManagixHome(managixHome);
- String command = "configure";
- cmdHandler.processCommand(command.split(" "));
- command = "validate -c " + clusterConfigurationPath;
- cmdHandler.processCommand(command.split(" "));
+ String command = "configure";
+ cmdHandler.processCommand(command.split(" "));
+ command = "validate -c " + clusterConfigurationPath;
+ cmdHandler.processCommand(command.split(" "));
- startZookeeper();
- InstallerDriver.initConfig(true);
- createInstance();
- hcc = new HyracksConnection(CC_IP_ADDRESS, DEFAULT_HYRACKS_CC_CLIENT_PORT);
- }
+ startZookeeper();
+ Thread.sleep(2000);
+ InstallerDriver.initConfig(true);
+ createInstance();
+ hcc = new HyracksConnection(CC_IP_ADDRESS,
+ DEFAULT_HYRACKS_CC_CLIENT_PORT);
+ }
- public static IHyracksClientConnection getHyracksConnection() {
- return hcc;
- }
+ public static IHyracksClientConnection getHyracksConnection() {
+ return hcc;
+ }
- private static void startZookeeper() throws Exception {
- initZookeeperTestConfiguration(zookeeperClientPort);
- String script = managixHome + File.separator + "bin" + File.separator + "managix";
+ private static void startZookeeper() throws Exception {
+ initZookeeperTestConfiguration(zookeeperClientPort);
+ String script = managixHome + File.separator + "bin" + File.separator
+ + "managix";
- // shutdown zookeeper if running
- String command = "shutdown";
- cmdHandler.processCommand(command.split(" "));
+ // shutdown zookeeper if running
+ String command = "shutdown";
+ cmdHandler.processCommand(command.split(" "));
- Thread.sleep(2000);
+ Thread.sleep(2000);
- // start zookeeper
- initZookeeperTestConfiguration(zookeeperTestClientPort);
- ProcessBuilder pb2 = new ProcessBuilder(script, "describe");
- Map<String, String> env2 = pb2.environment();
- env2.put("MANAGIX_HOME", managixHome);
- pb2.start();
+ // start zookeeper
+ initZookeeperTestConfiguration(zookeeperTestClientPort);
+ ProcessBuilder pb2 = new ProcessBuilder(script, "describe");
+ Map<String, String> env2 = pb2.environment();
+ env2.put("MANAGIX_HOME", managixHome);
+ pb2.start();
- }
+ }
- public static void createInstance() throws Exception {
+ public static void createInstance() throws Exception {
- String command = null;
- AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
- .getAsterixInstance(ASTERIX_INSTANCE_NAME);
- if (instance != null) {
- transformIntoRequiredState(State.INACTIVE);
- command = "delete -n " + ASTERIX_INSTANCE_NAME;
- cmdHandler.processCommand(command.split(" "));
- }
+ String command = null;
+ AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
+ .getAsterixInstance(ASTERIX_INSTANCE_NAME);
+ if (instance != null) {
+ transformIntoRequiredState(State.INACTIVE);
+ command = "delete -n " + ASTERIX_INSTANCE_NAME;
+ cmdHandler.processCommand(command.split(" "));
+ }
- command = "create -n " + ASTERIX_INSTANCE_NAME + " " + "-c" + " " + clusterConfigurationPath;
- cmdHandler.processCommand(command.split(" "));
+ command = "create -n " + ASTERIX_INSTANCE_NAME + " " + "-c" + " "
+ + clusterConfigurationPath;
+ cmdHandler.processCommand(command.split(" "));
- instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(ASTERIX_INSTANCE_NAME);
- AsterixRuntimeState state = VerificationUtil.getAsterixRuntimeState(instance);
- assert (state.getFailedNCs().isEmpty() && state.isCcRunning());
- }
+ instance = ServiceProvider.INSTANCE.getLookupService()
+ .getAsterixInstance(ASTERIX_INSTANCE_NAME);
+ AsterixRuntimeState state = VerificationUtil
+ .getAsterixRuntimeState(instance);
+ assert (state.getFailedNCs().isEmpty() && state.isCcRunning());
+ }
- private static void initZookeeperTestConfiguration(int port) throws JAXBException, FileNotFoundException {
- String installerConfPath = InstallerDriver.getManagixHome() + File.separator + InstallerDriver.MANAGIX_CONF_XML;
- JAXBContext ctx = JAXBContext.newInstance(Configuration.class);
- Unmarshaller unmarshaller = ctx.createUnmarshaller();
- Configuration configuration = (Configuration) unmarshaller.unmarshal(new File(installerConfPath));
- configuration.getZookeeper().setClientPort(new BigInteger("" + port));
- Marshaller marshaller = ctx.createMarshaller();
- marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
- marshaller.marshal(configuration, new FileOutputStream(installerConfPath));
- }
+ private static void initZookeeperTestConfiguration(int port)
+ throws JAXBException, FileNotFoundException {
+ String installerConfPath = InstallerDriver.getManagixHome()
+ + File.separator + InstallerDriver.MANAGIX_CONF_XML;
+ JAXBContext ctx = JAXBContext.newInstance(Configuration.class);
+ Unmarshaller unmarshaller = ctx.createUnmarshaller();
+ Configuration configuration = (Configuration) unmarshaller
+ .unmarshal(new File(installerConfPath));
+ configuration.getZookeeper().setClientPort(new BigInteger("" + port));
+ Marshaller marshaller = ctx.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ marshaller.marshal(configuration, new FileOutputStream(
+ installerConfPath));
+ }
- public static void transformIntoRequiredState(AsterixInstance.State state) throws Exception {
- AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
- .getAsterixInstance(ASTERIX_INSTANCE_NAME);
- assert (instance != null);
- if (instance.getState().equals(state)) {
- return;
- }
- if (state.equals(AsterixInstance.State.UNUSABLE)) {
- throw new IllegalArgumentException("Invalid desired state");
- }
+ public static void transformIntoRequiredState(AsterixInstance.State state)
+ throws Exception {
+ AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
+ .getAsterixInstance(ASTERIX_INSTANCE_NAME);
+ assert (instance != null);
+ if (instance.getState().equals(state)) {
+ return;
+ }
+ if (state.equals(AsterixInstance.State.UNUSABLE)) {
+ throw new IllegalArgumentException("Invalid desired state");
+ }
- String command = null;
- switch (instance.getState()) {
- case ACTIVE:
- command = "stop -n " + ASTERIX_INSTANCE_NAME;
- break;
- case INACTIVE:
- command = "start -n " + ASTERIX_INSTANCE_NAME;
- break;
- }
- cmdHandler.processCommand(command.split(" "));
- }
+ String command = null;
+ switch (instance.getState()) {
+ case ACTIVE:
+ command = "stop -n " + ASTERIX_INSTANCE_NAME;
+ break;
+ case INACTIVE:
+ command = "start -n " + ASTERIX_INSTANCE_NAME;
+ break;
+ }
+ cmdHandler.processCommand(command.split(" "));
+ }
- private static void stopZookeeper() throws IOException, JAXBException {
- String script = managixHome + File.separator + "bin" + File.separator + "managix";
- // shutdown zookeeper if running
- ProcessBuilder pb = new ProcessBuilder(script, "shutdown");
- Map<String, String> env = pb.environment();
- env.put("MANAGIX_HOME", managixHome);
- pb.start();
- }
+ private static void stopZookeeper() throws IOException, JAXBException {
+ String script = managixHome + File.separator + "bin" + File.separator
+ + "managix";
+ // shutdown zookeeper if running
+ ProcessBuilder pb = new ProcessBuilder(script, "shutdown");
+ Map<String, String> env = pb.environment();
+ env.put("MANAGIX_HOME", managixHome);
+ pb.start();
+ }
- private static void deleteInstance() throws Exception {
- String command = null;
- AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
- .getAsterixInstance(ASTERIX_INSTANCE_NAME);
+ private static void deleteInstance() throws Exception {
+ String command = null;
+ AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
+ .getAsterixInstance(ASTERIX_INSTANCE_NAME);
- if (instance == null) {
- return;
- } else {
- transformIntoRequiredState(State.INACTIVE);
- command = "delete -n " + ASTERIX_INSTANCE_NAME;
- cmdHandler.processCommand(command.split(" "));
- }
- instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(ASTERIX_INSTANCE_NAME);
- assert (instance == null);
- }
+ if (instance == null) {
+ return;
+ } else {
+ transformIntoRequiredState(State.INACTIVE);
+ command = "delete -n " + ASTERIX_INSTANCE_NAME;
+ cmdHandler.processCommand(command.split(" "));
+ }
+ instance = ServiceProvider.INSTANCE.getLookupService()
+ .getAsterixInstance(ASTERIX_INSTANCE_NAME);
+ assert (instance == null);
+ }
- public static String getManagixHome() {
- return managixHome;
- }
+ public static String getManagixHome() {
+ return managixHome;
+ }
- public static void installLibrary(String libraryName, String libraryDataverse, String libraryPath) throws Exception {
- transformIntoRequiredState(State.INACTIVE);
- String command = "install -n " + ASTERIX_INSTANCE_NAME + " -d " + libraryDataverse + " -l " + libraryName
- + " -p " + libraryPath;
- cmdHandler.processCommand(command.split(" "));
- }
+ public static void installLibrary(String libraryName,
+ String libraryDataverse, String libraryPath) throws Exception {
+ transformIntoRequiredState(State.INACTIVE);
+ String command = "install -n " + ASTERIX_INSTANCE_NAME + " -d "
+ + libraryDataverse + " -l " + libraryName + " -p "
+ + libraryPath;
+ cmdHandler.processCommand(command.split(" "));
+ }
- public static void uninstallLibrary(String dataverseName, String libraryName) throws Exception {
- transformIntoRequiredState(State.INACTIVE);
- String command = "uninstall -n " + ASTERIX_INSTANCE_NAME + " -d " + dataverseName + " -l " + "libraryName";
- cmdHandler.processCommand(command.split(" "));
- }
+ public static void uninstallLibrary(String dataverseName, String libraryName)
+ throws Exception {
+ transformIntoRequiredState(State.INACTIVE);
+ String command = "uninstall -n " + ASTERIX_INSTANCE_NAME + " -d "
+ + dataverseName + " -l " + "libraryName";
+ cmdHandler.processCommand(command.split(" "));
+ }
- public static void executeCommand(String command) throws Exception {
- cmdHandler.processCommand(command.trim().split(" "));
- }
+ public static void executeCommand(String command) throws Exception {
+ cmdHandler.processCommand(command.trim().split(" "));
+ }
}
diff --git a/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/ingest_feed/feed_ingest.1.ddl.aql b/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/ingest_feed/feed_ingest.1.ddl.aql
index 56f3003..edd08ce 100644
--- a/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/ingest_feed/feed_ingest.1.ddl.aql
+++ b/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/ingest_feed/feed_ingest.1.ddl.aql
@@ -21,5 +21,5 @@
create feed dataset TweetFeed(TweetType)
using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
(("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://../asterix-app/data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
-apply function testlib:parseTweet@1
+apply function testlib#parseTweet@1
primary key id;
diff --git a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql
index 916c37b..256a3cd 100644
--- a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql
+++ b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql
@@ -2,4 +2,4 @@
let $input:=["England","Italy","China","United States","India","Jupiter"]
for $country in $input
-return testlib:getCapital($country)
+return testlib#getCapital($country)
diff --git a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql
index e4d113b..36f3133 100644
--- a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql
+++ b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql
@@ -2,6 +2,6 @@
insert into dataset Check (
for $x in dataset Check
- let $y:=testlib:toUpper($x)
+ let $y:=testlib#toUpper($x)
return $y
);
diff --git a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql
index 4f1bdc6..ce255b8 100644
--- a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql
+++ b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql
@@ -1,4 +1,4 @@
use dataverse externallibtest;
-let $x:=testlib:mysum(3,4)
+let $x:=testlib#mysum(3,4)
return $x
diff --git a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql
index ba33dcc..a742203 100644
--- a/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql
+++ b/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql
@@ -1,5 +1,5 @@
use dataverse externallibtest;
let $input:={"id": 1, "text":"university of california, irvine"}
-let $x:=testlib:toUpper($input)
+let $x:=testlib#toUpper($input)
return $x
diff --git a/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm b/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm
index 27bfa28..0878a17 100644
--- a/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm
+++ b/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm
@@ -1,10 +1,10 @@
-{ "DataverseName": "externallibtest", "Name": "testlib:allTypes", "Arity": "1", "Params": [ "AllType" ], "ReturnType": "AllType", "Definition": "edu.uci.ics.asterix.external.library.AllTypesFactory
+{ "DataverseName": "externallibtest", "Name": "testlib#allTypes", "Arity": "1", "Params": [ "AllType" ], "ReturnType": "AllType", "Definition": "edu.uci.ics.asterix.external.library.AllTypesFactory
", "Language": "JAVA", "Kind": "SCALAR" }
-{ "DataverseName": "externallibtest", "Name": "testlib:getCapital", "Arity": "1", "Params": [ "ASTRING" ], "ReturnType": "CountryCapitalType", "Definition": "edu.uci.ics.asterix.external.library.CapitalFinderFactory
+{ "DataverseName": "externallibtest", "Name": "testlib#getCapital", "Arity": "1", "Params": [ "ASTRING" ], "ReturnType": "CountryCapitalType", "Definition": "edu.uci.ics.asterix.external.library.CapitalFinderFactory
", "Language": "JAVA", "Kind": "SCALAR" }
-{ "DataverseName": "externallibtest", "Name": "testlib:mysum", "Arity": "2", "Params": [ "AINT32", "AINT32" ], "ReturnType": "AINT32", "Definition": "edu.uci.ics.asterix.external.library.SumFactory
+{ "DataverseName": "externallibtest", "Name": "testlib#mysum", "Arity": "2", "Params": [ "AINT32", "AINT32" ], "ReturnType": "AINT32", "Definition": "edu.uci.ics.asterix.external.library.SumFactory
", "Language": "JAVA", "Kind": "SCALAR" }
-{ "DataverseName": "externallibtest", "Name": "testlib:parseTweet", "Arity": "1", "Params": [ "TweetType" ], "ReturnType": "TweetType", "Definition": "edu.uci.ics.asterix.external.library.ParseTweetFactory
+{ "DataverseName": "externallibtest", "Name": "testlib#parseTweet", "Arity": "1", "Params": [ "TweetType" ], "ReturnType": "TweetType", "Definition": "edu.uci.ics.asterix.external.library.ParseTweetFactory
", "Language": "JAVA", "Kind": "SCALAR" }
-{ "DataverseName": "externallibtest", "Name": "testlib:toUpper", "Arity": "1", "Params": [ "TextType" ], "ReturnType": "TextType", "Definition": "edu.uci.ics.asterix.external.library.UpperCaseFactory
+{ "DataverseName": "externallibtest", "Name": "testlib#toUpper", "Arity": "1", "Params": [ "TextType" ], "ReturnType": "TextType", "Definition": "edu.uci.ics.asterix.external.library.UpperCaseFactory
", "Language": "JAVA", "Kind": "SCALAR" }