abdullah alamoudi has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/797
Change subject: Remove Installed Libraries before Unit Tests
......................................................................
Remove Installed Libraries before Unit Tests
Change-Id: I9dea8c8fc46a717acd0b86ac7b07e0276bb5e95c
---
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/FeedWorkCollection.java
M
asterixdb/asterix-app/src/test/java/org/apache/asterix/app/external/TestLibrarian.java
M
asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTest.java
M
asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/ITestLibrarian.java
M
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
M
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/ClassAdParser.java
6 files changed, 45 insertions(+), 6 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/97/797/1
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/FeedWorkCollection.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/FeedWorkCollection.java
index 53b9792..b5c59e6 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/FeedWorkCollection.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/FeedWorkCollection.java
@@ -99,7 +99,7 @@
if (LOGGER.isLoggable(Level.SEVERE)) {
LOGGER.severe("Exception in executing " + request);
}
- throw new RuntimeException(e);
+ e.printStackTrace();
}
}
}
diff --git
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/external/TestLibrarian.java
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/external/TestLibrarian.java
index 4f8fa6f..3416a77 100644
---
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/external/TestLibrarian.java
+++
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/external/TestLibrarian.java
@@ -22,12 +22,15 @@
import java.io.IOException;
import java.rmi.RemoteException;
import java.util.HashMap;
+import java.util.List;
import org.apache.asterix.common.exceptions.ACIDException;
import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.external.library.ExternalLibraryManager;
import org.apache.asterix.test.aql.ITestLibrarian;
import org.apache.commons.io.FileUtils;
+import org.apache.hyracks.algebricks.common.utils.Pair;
import org.apache.hyracks.api.exceptions.HyracksDataException;
public class TestLibrarian implements ITestLibrarian {
@@ -64,6 +67,7 @@
@Override
public void uninstall(String dvName, String libName) throws
RemoteException, AsterixException, ACIDException {
ExternalLibraryUtils.uninstallLibrary(dvName, libName);
+ ExternalLibraryManager.deregisterLibraryClassLoader(dvName, libName);
}
public static void removeLibraryDir() throws IOException {
@@ -73,4 +77,12 @@
}
FileUtils.deleteQuietly(installLibDir);
}
+
+ public static void cleanup() throws AsterixException, RemoteException,
ACIDException {
+ List<Pair<String, String>> libs =
ExternalLibraryManager.getAllLibraries();
+ for (Pair<String, String> dvAndLib : libs) {
+ ExternalLibraryUtils.uninstallLibrary(dvAndLib.first,
dvAndLib.second);
+
ExternalLibraryManager.deregisterLibraryClassLoader(dvAndLib.first,
dvAndLib.second);
+ }
+ }
}
diff --git
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTest.java
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTest.java
index e372d31..dfb61c2 100644
---
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTest.java
+++
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTest.java
@@ -102,6 +102,7 @@
@Test
public void test() throws Exception {
+ TestLibrarian.cleanup();
testExecutor.executeTest(PATH_ACTUAL, tcCtx, null, false,
ExecutionTestUtil.FailedGroup);
}
}
diff --git
a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/ITestLibrarian.java
b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/ITestLibrarian.java
index bbbd14e..c3740b1 100644
---
a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/ITestLibrarian.java
+++
b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/aql/ITestLibrarian.java
@@ -25,6 +25,7 @@
import org.apache.asterix.common.exceptions.AsterixException;
public interface ITestLibrarian {
+
public void install(String dvName, String libName, String libPath) throws
IOException, Exception;
public void uninstall(String dvName, String libName) throws
RemoteException, AsterixException, ACIDException;
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
index db85e2f..0283bf2 100755
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
@@ -18,8 +18,13 @@
*/
package org.apache.asterix.external.library;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.hyracks.algebricks.common.utils.Pair;
public class ExternalLibraryManager {
@@ -34,17 +39,27 @@
public static void registerLibraryClassLoader(String dataverseName, String
libraryName, ClassLoader classLoader) {
String key = getKey(dataverseName, libraryName);
synchronized (libraryClassLoaders) {
- if (libraryClassLoaders.get(dataverseName) != null) {
+ if (libraryClassLoaders.get(key) != null) {
throw new IllegalStateException("Library class loader already
registered!");
}
libraryClassLoaders.put(key, classLoader);
}
}
+ public static List<Pair<String, String>> getAllLibraries() {
+ ArrayList<Pair<String, String>> libs = new ArrayList<>();
+ synchronized (libraryClassLoaders) {
+ for (Entry<String, ClassLoader> entry :
libraryClassLoaders.entrySet()) {
+ libs.add(getDataverseAndLibararyName(entry.getKey()));;
+ }
+ }
+ return libs;
+ }
+
public static void deregisterLibraryClassLoader(String dataverseName,
String libraryName) {
String key = getKey(dataverseName, libraryName);
synchronized (libraryClassLoaders) {
- if (libraryClassLoaders.get(dataverseName) != null) {
+ if (libraryClassLoaders.get(key) != null) {
libraryClassLoaders.remove(key);
}
}
@@ -52,13 +67,18 @@
public static ClassLoader getLibraryClassLoader(String dataverseName,
String libraryName) {
String key = getKey(dataverseName, libraryName);
- synchronized (libraryClassLoaders) {
- return libraryClassLoaders.get(key);
- }
+ return libraryClassLoaders.get(key);
}
private static String getKey(String dataverseName, String libraryName) {
return dataverseName + "." + libraryName;
}
+ private static Pair<String, String> getDataverseAndLibararyName(String
key) {
+ int index = key.indexOf(".");
+ String dataverse = key.substring(0, index);
+ String library = key.substring(index + 1);
+ return new Pair<String, String>(dataverse, library);
+ }
+
}
diff --git
a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/ClassAdParser.java
b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/ClassAdParser.java
index 93b31ca..3c22241 100644
---
a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/ClassAdParser.java
+++
b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/ClassAdParser.java
@@ -385,6 +385,11 @@
throw new HyracksDataException("Unknown Expression type
detected: " + tree.getKind());
}
+ if (fieldType != null) {
+ if (NonTaggedFormatUtil.isOptional(fieldType)) {
+ fieldType = ((AUnionType) fieldType).getNullableType();
+ }
+ }
switch (val.getValueType()) {
case ABSOLUTE_TIME_VALUE:
if (checkType(ATypeTag.DATETIME, fieldType)) {
--
To view, visit https://asterix-gerrit.ics.uci.edu/797
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9dea8c8fc46a717acd0b86ac7b07e0276bb5e95c
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>