/** * Test for ZIP/GZIP stream signature. Wraps the input stream in a * BufferedInputStream. If ZIP/GZIP test is true wraps again in ZipInputStream/GZIPInputStream. * * @param in the InputStream. * @return the wrapped InputStream. * @throws IOException if operation failed. */ public static InputStream wrapAndCheckCompressionFormat( InputStream in ) throws IOException { BufferedInputStream bufferedIn = new BufferedInputStream( in ); if ( isZip( bufferedIn ) ) { ZipInputStream zipIn = new ZipInputStream( bufferedIn ); zipIn.getNextEntry(); return zipIn; } else if ( isGZip( bufferedIn ) ) { GZIPInputStream gzipIn = new GZIPInputStream( bufferedIn ); return gzipIn; } return bufferedIn; }
@Override @Transactional public ImportSummary saveDataValueSet( InputStream in, ImportOptions importOptions, JobConfiguration id ) { try { in = StreamUtils.wrapAndCheckCompressionFormat( in ); return saveDataValueSetInternal( in, importOptions, id ); } catch ( IOException ex ) { log.warn( "Import failed: " + DebugUtils.getStackTrace( ex ) ); return new ImportSummary( ImportStatus.ERROR, "ADX import failed" ); } }
@Override public ImportSummary saveCompleteDataSetRegistrationsJson( InputStream in, ImportOptions importOptions, JobConfiguration jobId ) { try { in = StreamUtils.wrapAndCheckCompressionFormat( in ); CompleteDataSetRegistrations completeDataSetRegistrations = DefaultRenderService.getJsonMapper() .readValue( in, CompleteDataSetRegistrations.class ); return saveCompleteDataSetRegistrations( importOptions, jobId, completeDataSetRegistrations ); } catch ( Exception ex ) { return handleImportError( jobId, ex ); } }
@Override public ImportSummary saveDataValueSetJson( InputStream in, ImportOptions importOptions, JobConfiguration id ) { try { in = StreamUtils.wrapAndCheckCompressionFormat( in ); DataValueSet dataValueSet = DefaultRenderService.getJsonMapper().readValue( in, DataValueSet.class ); return saveDataValueSet( importOptions, id, dataValueSet ); } catch ( Exception ex ) { log.error( DebugUtils.getStackTrace( ex ) ); notifier.notify( id, ERROR, "Process failed: " + ex.getMessage(), true ); return new ImportSummary( ImportStatus.ERROR, "The import process failed: " + ex.getMessage() ); } }
@Override public ImportSummary saveDataValueSet( InputStream in, ImportOptions importOptions, JobConfiguration id ) { try { in = StreamUtils.wrapAndCheckCompressionFormat( in ); DataValueSet dataValueSet = new StreamingXmlDataValueSet( XMLFactory.getXMLReader( in ) ); return saveDataValueSet( importOptions, id, dataValueSet ); } catch ( Exception ex ) { log.error( DebugUtils.getStackTrace( ex ) ); notifier.notify( id, ERROR, "Process failed: " + ex.getMessage(), true ); return new ImportSummary( ImportStatus.ERROR, "The import process failed: " + ex.getMessage() ); } }
@Override public ImportSummary saveDataValueSetCsv( InputStream in, ImportOptions importOptions, JobConfiguration id ) { try { in = StreamUtils.wrapAndCheckCompressionFormat( in ); DataValueSet dataValueSet = new StreamingCsvDataValueSet( new CsvReader( in, Charset.forName( "UTF-8" ) ) ); return saveDataValueSet( importOptions, id, dataValueSet ); } catch ( Exception ex ) { log.error( DebugUtils.getStackTrace( ex ) ); notifier.clear( id ).notify( id, ERROR, "Process failed: " + ex.getMessage(), true ); return new ImportSummary( ImportStatus.ERROR, "The import process failed: " + ex.getMessage() ); } }
@Override public ImportSummary saveCompleteDataSetRegistrationsXml( InputStream in, ImportOptions importOptions, JobConfiguration jobId ) { try { in = StreamUtils.wrapAndCheckCompressionFormat( in ); CompleteDataSetRegistrations completeDataSetRegistrations = new StreamingXmlCompleteDataSetRegistrations( XMLFactory.getXMLReader( in ) ); return saveCompleteDataSetRegistrations( importOptions, jobId, completeDataSetRegistrations ); } catch ( Exception ex ) { return handleImportError( jobId, ex ); } }