public static JobMetaData readUtf8MetaDataFile(final File file, final int fileOffset, final int length) throws IOException { final byte[] buffer = new byte[length]; final FileInputStream fileStream = new FileInputStream(file); final long skipped = fileStream.skip(fileOffset); if (skipped < fileOffset) { fileStream.close(); return new JobMetaData(fileOffset, 0, ""); } BufferedInputStream inputStream = null; int read = 0; try { inputStream = new BufferedInputStream(fileStream); read = inputStream.read(buffer); } finally { IOUtils.closeQuietly(inputStream); } if (read <= 0) { return new JobMetaData(fileOffset, 0, ""); } final Pair<Integer, Integer> utf8Range = getUtf8Range(buffer, 0, read); final String outputString = new String(buffer, utf8Range.getFirst(), utf8Range.getSecond(), StandardCharsets.UTF_8); return new JobMetaData(fileOffset + utf8Range.getFirst(), utf8Range.getSecond(), outputString); }
public static JobMetaData readUtf8MetaDataFile(final File file, final int fileOffset, final int length) throws IOException { final byte[] buffer = new byte[length]; final FileInputStream fileStream = new FileInputStream(file); final long skipped = fileStream.skip(fileOffset); if (skipped < fileOffset) { fileStream.close(); return new JobMetaData(fileOffset, 0, ""); } BufferedInputStream inputStream = null; int read = 0; try { inputStream = new BufferedInputStream(fileStream); read = inputStream.read(buffer); } finally { IOUtils.closeQuietly(inputStream); } if (read <= 0) { return new JobMetaData(fileOffset, 0, ""); } final Pair<Integer, Integer> utf8Range = getUtf8Range(buffer, 0, read); final String outputString = new String(buffer, utf8Range.getFirst(), utf8Range.getSecond(), StandardCharsets.UTF_8); return new JobMetaData(fileOffset + utf8Range.getFirst(), utf8Range.getSecond(), outputString); }
public static JobMetaData readUtf8MetaDataFile(File file, int fileOffset, int length) throws IOException { byte[] buffer = new byte[length]; FileInputStream fileStream = new FileInputStream(file); long skipped = fileStream.skip(fileOffset); if (skipped < fileOffset) { fileStream.close(); return new JobMetaData(fileOffset, 0, ""); } BufferedInputStream inputStream = null; int read = 0; try { inputStream = new BufferedInputStream(fileStream); read = inputStream.read(buffer); } finally { IOUtils.closeQuietly(inputStream); } if (read <= 0) { return new JobMetaData(fileOffset, 0, ""); } Pair<Integer, Integer> utf8Range = getUtf8Range(buffer, 0, read); String outputString = new String(buffer, utf8Range.getFirst(), utf8Range.getSecond()); return new JobMetaData(fileOffset + utf8Range.getFirst(), utf8Range.getSecond(), outputString); }
@Override public JobMetaData getExecutionJobMetaData(final ExecutableFlow exFlow, final String jobId, final int offset, final int length, final int attempt) throws ExecutorManagerException { final Pair<ExecutionReference, ExecutableFlow> pair = this.runningFlows.get(exFlow.getExecutionId()); if (pair != null) { final Pair<String, String> typeParam = new Pair<>("type", "job"); final Pair<String, String> jobIdParam = new Pair<>("jobId", jobId); final Pair<String, String> offsetParam = new Pair<>("offset", String.valueOf(offset)); final Pair<String, String> lengthParam = new Pair<>("length", String.valueOf(length)); final Pair<String, String> attemptParam = new Pair<>("attempt", String.valueOf(attempt)); @SuppressWarnings("unchecked") final Map<String, Object> result = this.apiGateway.callWithReference(pair.getFirst(), ConnectorParams.METADATA_ACTION, typeParam, jobIdParam, offsetParam, lengthParam, attemptParam); return JobMetaData.createJobMetaDataFromObject(result); } else { return null; } }
@Override public JobMetaData getExecutionJobMetaData(ExecutableFlow exFlow, String jobId, int offset, int length, int attempt) throws ExecutorManagerException { Pair<ExecutionReference, ExecutableFlow> pair = runningFlows.get(exFlow.getExecutionId()); if (pair != null) { Pair<String,String> typeParam = new Pair<String,String>("type", "job"); Pair<String,String> jobIdParam = new Pair<String,String>("jobId", jobId); Pair<String,String> offsetParam = new Pair<String,String>("offset", String.valueOf(offset)); Pair<String,String> lengthParam = new Pair<String,String>("length", String.valueOf(length)); Pair<String,String> attemptParam = new Pair<String,String>("attempt", String.valueOf(attempt)); @SuppressWarnings("unchecked") Map<String, Object> result = callExecutorServer(pair.getFirst(), ConnectorParams.METADATA_ACTION, typeParam, jobIdParam, offsetParam, lengthParam, attemptParam); return JobMetaData.createJobMetaDataFromObject(result); } else { return null; } }
private void handleFetchMetaDataEvent(int execId, HttpServletRequest req, HttpServletResponse resp, Map<String, Object> respMap) throws ServletException { int startByte = getIntParam(req, "offset"); int length = getIntParam(req, "length"); resp.setContentType("text/plain"); resp.setCharacterEncoding("utf-8"); int attempt = getIntParam(req, "attempt", 0); String jobId = getParam(req, "jobId"); try { JobMetaData result = flowRunnerManager.readJobMetaData(execId, jobId, attempt, startByte, length); respMap.putAll(result.toObject()); } catch (Exception e) { logger.error(e); respMap.put("error", e.getMessage()); } }
public static JobMetaData createJobMetaDataFromObject( final Map<String, Object> map) { final int offset = (Integer) map.get("offset"); final int length = (Integer) map.get("length"); final String data = (String) map.get("data"); return new JobMetaData(offset, length, data); }
public static JobMetaData createJobMetaDataFromObject(Map<String,Object> map) { int offset = (Integer)map.get("offset"); int length = (Integer)map.get("length"); String data = (String)map.get("data"); return new JobMetaData(offset,length, data); }
public static JobMetaData createJobMetaDataFromObject( final Map<String, Object> map) { final int offset = (Integer) map.get("offset"); final int length = (Integer) map.get("length"); final String data = (String) map.get("data"); return new JobMetaData(offset, length, data); }