work around parser issues with ints/doubles; validate tablename in azure adapter
diff --git a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureFeedClient.java b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureFeedClient.java
index 666c5e5..ee1f56e 100644
--- a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureFeedClient.java
+++ b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureFeedClient.java
@@ -33,6 +33,7 @@
private final Pattern arrayPattern = Pattern.compile("\\[(?<vals>.*)\\]");
private final Pattern int32Pattern = Pattern.compile(":(?<int>\\d+)(,|})");
+ private final Pattern doubleWithEndingZeroPattern = Pattern.compile("\\d+\\.(?<zero>0)(,|})");
private final ResettableByteArrayOutputStream rbaos;
private final DataOutputStream dos;
@@ -124,6 +125,10 @@
while (m.find()) {
locStr = locStr.replace(m.group("int"), m.group("int") + ".01");
}
+ m = doubleWithEndingZeroPattern.matcher(locStr);
+ while (m.find()) {
+ locStr = locStr.replace(m.group("zero"), "01");
+ }
tmdjo.put("location", new JSONObject(locStr));
}
if (tweetMD.getSentiment() != null) {
diff --git a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureTwitterAdapter.java b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureTwitterAdapter.java
index a2c9b2c..c96fe7f 100644
--- a/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureTwitterAdapter.java
+++ b/asterix-external-data/src/main/java/edu/uci/ics/asterix/external/dataset/adapter/PullBasedAzureTwitterAdapter.java
@@ -30,6 +30,9 @@
ARecordType outputType) throws AsterixException {
super(configuration, ctx);
String tableName = configuration.get(TABLE_NAME_KEY);
+ if (tableName == null) {
+ throw new IllegalArgumentException("You must specify a valid table name");
+ }
azureAccountName = configuration.get(ACCOUNT_NAME_KEY);
azureAccountKey = configuration.get(ACCOUNT_KEY_KEY);
if (azureAccountName == null || azureAccountKey == null) {