/* * Deploy all jars in the supplied jarList * @param admin the Admin instance * @param jarList the colon-separated list of jar path locations */ private void deployJars(Admin admin, String jarList) { // Path Entries are colon separated String[] jarPathStrs = jarList.split("[:]"); // $NON-NLS-1$ // Attempt to deploy each jar for (String jarPathStr : jarPathStrs) { File theFile = new File(jarPathStr); if (theFile.exists()) { if (theFile.canRead()) { String fileName = theFile.getName(); InputStream iStream = null; try { iStream = new FileInputStream(theFile); } catch (FileNotFoundException ex) { LogManager.logError( getClass().getSimpleName(), ex, NLS.bind(Messages.JarDeploymentJarNotFound, theFile.getPath())); continue; } try { admin.deployVDB(fileName, iStream); } catch (Exception ex) { // Jar deployment failed LogManager.logError( getClass().getSimpleName(), ex, NLS.bind(Messages.JarDeploymentFailed, theFile.getPath())); } } else { // Could not read the file LogManager.logError( getClass().getSimpleName(), NLS.bind(Messages.JarDeploymentJarNotReadable, theFile.getPath())); } } else { // The file was not found LogManager.logError( getClass().getSimpleName(), NLS.bind(Messages.JarDeploymentJarNotFound, theFile.getPath())); } } }
private IStatus pingJdbc() { String host = teiidServer.getHost(); ITeiidJdbcInfo teiidJdbcInfo = teiidServer.getTeiidJdbcInfo(); Connection teiidJdbcConnection = null; String url = "jdbc:teiid:ping@mm://" + host + ':' + teiidJdbcInfo.getPort(); // $NON-NLS-1$ try { admin.deployVDB( "ping-vdb.xml", (InputStream) new ByteArrayInputStream(TEST_VDB.getBytes())); // $NON-NLS-1$ try { String urlAndCredentials = url + ";user="******";password="******"ping", 1); // $NON-NLS-1$ if (teiidJdbcConnection != null) { teiidJdbcConnection.close(); } } } catch (Exception ex) { String msg = NLS.bind(Messages.serverDeployUndeployProblemPingingTeiidJdbc, url); return new Status(IStatus.ERROR, PLUGIN_ID, msg, ex); } return Status.OK_STATUS; }
@Override public void deployVdb(IFile vdbFile) throws Exception { ArgCheck.isNotNull(vdbFile, "vdbFile"); // $NON-NLS-1$ String vdbName = vdbFile.getFullPath().lastSegment(); String vdbNameNoExt = vdbFile.getFullPath().removeFileExtension().lastSegment(); admin.deployVDB(vdbName, vdbFile.getContents()); // Refresh VDBs list refreshVDBs(); // TODO should get version from vdbFile VDB vdb = admin.getVDB(vdbNameNoExt, 1); // If the VDB is still loading, refresh again and potentially start refresh job if (!vdb.getStatus().equals(VDB.Status.ACTIVE) && vdb.getValidityErrors().isEmpty()) { // Give a 0.5 sec pause for the VDB to finish loading metadata. try { Thread.sleep(500); } catch (InterruptedException e) { } // Refresh again to update vdb states refreshVDBs(); vdb = admin.getVDB(vdbNameNoExt, 1); // Determine if still loading, if so start refresh job. User will get dialog that the // vdb is still loading - and try again in a few seconds if (!vdb.getStatus().equals(VDB.Status.ACTIVE) && vdb.getValidityErrors().isEmpty()) { final Job refreshVDBsJob = new RefreshVDBsJob(vdbNameNoExt); refreshVDBsJob.schedule(); } } this.eventManager.notifyListeners( ExecutionConfigurationEvent.createDeployVDBEvent(vdb.getName())); }