public static void dumpJacoco() throws IOException { ExecutionDataFiles executionDataFiles = new ExecutionDataFiles(); // final FileOutputStream localFile = new FileOutputStream(DESTFILE); // final ExecutionDataWriter localWriter = new ExecutionDataWriter( // localFile); int port = TomcatLauncherPlugin.getDefault() .getPreferenceStore() .getInt(TomcatLauncherPlugin.JacocoAgentPort); // Open a socket to the coverage agent: final Socket socket = new Socket(InetAddress.getByName(ADDRESS), port); final RemoteControlWriter writer = new RemoteControlWriter(socket.getOutputStream()); final RemoteControlReader reader = new RemoteControlReader(socket.getInputStream()); MemoryExecutionDataSource memoryExecutionDataSource = new MemoryExecutionDataSource(); reader.setSessionInfoVisitor(memoryExecutionDataSource); reader.setExecutionDataVisitor(memoryExecutionDataSource); // reader.setSessionInfoVisitor(localWriter); // reader.setExecutionDataVisitor(localWriter); // Send a dump command and read the response: writer.visitDumpCommand(true, false); reader.read(); socket.close(); try { IExecutionDataSource source = executionDataFiles.newFile(memoryExecutionDataSource); ISessionManager sessionManager = CoverageTools.getSessionManager(); ILaunchConfiguration launchconfig = null; CoverageSession Coveragesession = new CoverageSession( "tomcat coverage" + getNow(), TomcatBootstrap.getSrcRoots(), source, launchconfig); // SessionImporter importer=new // SessionImporter(sessionManager,executionDataFiles); // importer.importSession(s); // ICoverageSession session= ILaunch launch = null; // setIjavaProject sessionManager.addSession(Coveragesession, true, launch); } catch (CoreException e) { TomcatLauncherPlugin.log(e); } // localFile.close(); }
@Override protected IStatus run(IProgressMonitor monitor) { try { final Socket socket = serverSocket.accept(); writer = new RemoteControlWriter(socket.getOutputStream()); final RemoteControlReader reader = new RemoteControlReader(socket.getInputStream()); while (true) { final MemoryExecutionDataSource memory = new MemoryExecutionDataSource(); memory.readFrom(reader); if (memory.isEmpty()) { return Status.OK_STATUS; } dataReceived = true; final CoverageSession session = new CoverageSession( createDescription(), launch.getScope(), files.newFile(memory), launch.getLaunchConfiguration()); sessionManager.addSession(session, preferences.getActivateNewSessions(), launch); } } catch (IOException e) { return EclEmmaStatus.EXECDATA_DUMP_ERROR.getStatus(e); } catch (CoreException e) { return e.getStatus(); } }