/** Constructor for testing purposes. Takes a repository as a parameter. */ public OlapServiceImpl(IUnifiedRepository repo, final MondrianServer server) { this.repository = repo; this.filters = new CopyOnWriteArrayList<IOlapConnectionFilter>(); this.server = server; try { DefaultFileSystemManager dfsm = (DefaultFileSystemManager) VFS.getManager(); if (dfsm.hasProvider("mondrian") == false) { dfsm.addProvider("mondrian", new MondrianVfs()); } } catch (FileSystemException e) { throw new RuntimeException(e); } }
@Test public void test() throws FileSystemException, URISyntaxException { DefaultFileSystemManager fsm = new DefaultFileSystemManager(); fsm.setDefaultProvider(new UrlFileProvider()); fsm.addProvider("file", new DefaultLocalFileProvider()); fsm.addProvider("jar", new FastJarFileProvider()); fsm.init(); String jarUri = getClass().getResource("/jarfiletest.jar").toURI().toString(); FileObject object = fsm.resolveFile("jar:" + jarUri + "!/r/"); assertThat(object.exists(), equalTo(true)); assertThat(object.getType(), equalTo(FileType.FOLDER)); FileObject[] children = object.getChildren(); assertThat(children.length, equalTo(1)); assertThat(children[0].getName().getBaseName(), equalTo("library")); assertThat(children[0].getType(), equalTo(FileType.FOLDER)); object = fsm.resolveFile("jar:" + jarUri + "!/r/library/survey"); assertThat(object.getType(), equalTo(FileType.FOLDER)); assertThat(object.getChildren().length, equalTo(4)); }
/** Prepares the file system manager. This implementation does nothing. */ @Override public void prepare(final DefaultFileSystemManager manager) throws Exception { manager.addProvider("http", new UrlFileProvider()); }