private URI getTargetUri() { try { return FileNameUtil.createPath( getConfiguration(), "target/testing/" + getClass().getSimpleName(), "dummy", "dummy") .toUri(); } catch (BulkLoaderSystemException e) { throw new AssertionError(e); } }
private void importContent( FileProtocol protocol, InputStream content, ImportBean bean, String user) throws BulkLoaderSystemException { assert protocol != null; assert content != null; assert bean != null; assert user != null; String tableName = FileNameUtil.getImportTableName(protocol.getLocation()); ImportTargetTableBean targetTableBean = bean.getTargetTable(tableName); if (targetTableBean == null) { // 対応するテーブルの定義がDSL存在しない場合異常終了する。 throw new BulkLoaderSystemException( getClass(), "TG-EXTRACTOR-02001", MessageFormat.format("エントリに対応するテーブルの定義がDSL存在しない。テーブル名:{0}", tableName)); } URI dfsFilePath = resolveLocation(bean, user, targetTableBean.getDfsFilePath()); Class<?> targetTableModel = targetTableBean.getImportTargetType(); LOG.info("TG-EXTRACTOR-02002", tableName, dfsFilePath.toString(), targetTableModel.toString()); // ファイルをジョブ入力データ領域に書き出す long recordCount = write(targetTableModel, dfsFilePath, content); LOG.info("TG-EXTRACTOR-02003", tableName, dfsFilePath.toString(), targetTableModel.toString()); LOG.info( "TG-PROFILE-01002", bean.getTargetName(), bean.getBatchId(), bean.getJobflowId(), bean.getExecutionId(), tableName, recordCount); }
/** * Resolves target location. * * @param bean importer bean * @param user current user name * @param location target location * @return the resolved location * @throws BulkLoaderSystemException if failed to resolve */ protected URI resolveLocation(ImportBean bean, String user, String location) throws BulkLoaderSystemException { Configuration conf = new Configuration(); URI dfsFilePath = FileNameUtil.createPath(conf, location, bean.getExecutionId(), user).toUri(); return dfsFilePath; }