use of org.apache.hadoop.hive.ql.session.SessionState.ResourceType in project hive by apache.
the class FunctionLocalizer method localizeFunctionResources.
private void localizeFunctionResources(String fqfn, List<ResourceUri> resources, String className, FnResources result, boolean doRefreshClassloader) throws URISyntaxException, IOException {
// are no collisions within the same fn). That doesn't mean we download for every fn.
if (LOG.isInfoEnabled()) {
LOG.info("Localizing " + resources.size() + " resources for " + fqfn);
}
for (ResourceUri resource : resources) {
URI srcUri = ResourceDownloader.createURI(resource.getUri());
ResourceType rt = FunctionUtils.getResourceType(resource.getResourceType());
localizeOneResource(fqfn, srcUri, rt, result);
}
recentlyLocalizedClasses.add(className);
if (doRefreshClassloader) {
refreshClassloader();
}
}
use of org.apache.hadoop.hive.ql.session.SessionState.ResourceType in project hive by apache.
the class TestAddResource method testUnion.
// test when two jars with shared dependencies are added, the classloader contains union of the dependencies
@Test
public void testUnion() throws URISyntaxException, IOException {
HiveConf conf = new HiveConf();
SessionState ss = Mockito.spy(SessionState.start(conf).get());
ResourceType t = ResourceType.JAR;
String query1 = "testQuery1";
String query2 = "testQuery2";
List<String> addList = new LinkedList<String>();
// add dependencies for the jars
List<URI> list1 = new LinkedList<URI>();
List<URI> list2 = new LinkedList<URI>();
list1.add(createURI(TEST_JAR_DIR + "testjar1.jar"));
list1.add(createURI(TEST_JAR_DIR + "testjar2.jar"));
list1.add(createURI(TEST_JAR_DIR + "testjar3.jar"));
list1.add(createURI(TEST_JAR_DIR + "testjar4.jar"));
list2.add(createURI(TEST_JAR_DIR + "testjar5.jar"));
list2.add(createURI(TEST_JAR_DIR + "testjar3.jar"));
list2.add(createURI(TEST_JAR_DIR + "testjar4.jar"));
Mockito.when(ss.resolveAndDownload(t, query1, false)).thenReturn(list1);
Mockito.when(ss.resolveAndDownload(t, query2, false)).thenReturn(list2);
addList.add(query1);
addList.add(query2);
ss.add_resources(t, addList);
Set<String> dependencies = ss.list_resource(t, null);
LinkedList<URI> actual = new LinkedList<URI>();
for (String dependency : dependencies) {
actual.add(createURI(dependency));
}
List<URI> expected = union(list1, list2);
Collections.sort(expected);
Collections.sort(actual);
assertEquals(expected, actual);
ss.close();
}
Aggregations