spring tests: locate JARs from hibernate library via project configuration

If paths to JAR files are hardcoded tests will break when corresponding libraries are converted to repository libraries.
This commit is contained in:
nik
2017-10-11 13:36:09 +03:00
parent 3c19a96849
commit 32c3536f2f
@@ -265,27 +265,36 @@ public class PsiTestUtil {
}
public static void addProjectLibrary(Module module, String libName, List<String> classesRootPaths) {
List<VirtualFile> roots = ContainerUtil.map(classesRootPaths, path -> VirtualFileManager.getInstance().refreshAndFindFileByUrl(VfsUtil.getUrlForLibraryRoot(new File(path))));
List<VirtualFile> roots = getLibraryRoots(classesRootPaths);
addProjectLibrary(module, libName, roots, Collections.emptyList());
}
@NotNull
private static List<VirtualFile> getLibraryRoots(List<String> classesRootPaths) {
return ContainerUtil.map(classesRootPaths, path -> VirtualFileManager.getInstance().refreshAndFindFileByUrl(VfsUtil.getUrlForLibraryRoot(new File(path))));
}
public static void addProjectLibrary(ModifiableRootModel model, String libName, List<String> classesRootPaths) {
List<VirtualFile> roots = getLibraryRoots(classesRootPaths);
addProjectLibrary(model, libName, roots, Collections.emptyList());
}
public static void addProjectLibrary(Module module, String libName, VirtualFile... classesRoots) {
addProjectLibrary(module, libName, Arrays.asList(classesRoots), Collections.emptyList());
}
public static Library addProjectLibrary(Module module, String libName, List<VirtualFile> classesRoots, List<VirtualFile> sourceRoots) {
Ref<Library> result = Ref.create();
ModuleRootModificationUtil.updateModel(module, model -> result.set(addProjectLibrary(module, model, libName, classesRoots, sourceRoots)));
ModuleRootModificationUtil.updateModel(module, model -> result.set(addProjectLibrary(model, libName, classesRoots, sourceRoots)));
return result.get();
}
@NotNull
private static Library addProjectLibrary(Module module,
ModifiableRootModel model,
private static Library addProjectLibrary(ModifiableRootModel model,
String libName,
List<VirtualFile> classesRoots,
List<VirtualFile> sourceRoots) {
LibraryTable libraryTable = ProjectLibraryTable.getInstance(module.getProject());
LibraryTable libraryTable = ProjectLibraryTable.getInstance(model.getProject());
RunResult<Library> result = new WriteAction<Library>() {
@Override
protected void run(@NotNull Result<Library> result) {
@@ -341,7 +350,7 @@ public class PsiTestUtil {
assert root != null : "Library root folder not found: " + path + "!/";
classesRoots.add(root);
}
return addProjectLibrary(module, model, libName, classesRoots, Collections.emptyList());
return addProjectLibrary(model, libName, classesRoots, Collections.emptyList());
}
public static void addLibrary(Module module,