public static MasterReport loadMasterReport( String sourceFilename ) throws Exception { ResourceManager manager = new ResourceManager(); manager.registerDefaults(); FileObject fileObject = KettleVFS.getFileObject( sourceFilename ); URL url = new URL( fileObject.getName().getURI() ); Resource resource = manager.createDirectly( url, MasterReport.class ); MasterReport report = (MasterReport) resource.getResource(); return report; }
public static DocumentBundle getBundle( final File file ) throws ResourceException { if ( file == null ) { throw new NullPointerException(); } final ResourceManager resManager = new ResourceManager(); final Resource directly = resManager.createDirectly( file, DocumentBundle.class ); return (DocumentBundle) directly.getResource(); }
public void registerFromXml( final URL metaDataSource ) throws IOException { if ( metaDataSource == null ) { throw new NullPointerException( "Error: Could not find the element meta-data description file" ); } try { final Resource resource = resourceManager.createDirectly( metaDataSource, ElementTypeCollection.class ); final ElementTypeCollection typeCollection = (ElementTypeCollection) resource.getResource(); final ElementMetaData[] types = typeCollection.getElementTypes(); for ( int i = 0; i < types.length; i++ ) { final ElementMetaData metaData = types[i]; registerElement( metaData ); } } catch ( Exception e ) { logger.debug( "Error: Could not parse the element meta-data description file: " + metaDataSource, e ); throw new IOException( "Error: Could not parse the element meta-data description file: " + metaDataSource ); } }
public void registerFromXml( final URL dataFactoryMetaSource ) throws IOException { if ( dataFactoryMetaSource == null ) { throw new NullPointerException( "Error: Could not find the data-factory meta-data description file" ); } try { final Resource resource = resourceManager.createDirectly( dataFactoryMetaSource, DataFactoryMetaDataCollection.class ); final DataFactoryMetaDataCollection typeCollection = (DataFactoryMetaDataCollection) resource.getResource(); final DataFactoryMetaData[] types = typeCollection.getFactoryMetaData(); for ( int i = 0; i < types.length; i++ ) { final DataFactoryMetaData metaData = types[i]; if ( metaData != null ) { register( metaData ); } } } catch ( Exception e ) { DataFactoryRegistry.logger.error( "Failed:", e ); throw new IOException( "Error: Could not parse the element meta-data description file" ); } }
public void registerFromXml( final URL expressionMetaSource ) throws IOException { if ( expressionMetaSource == null ) { throw new NullPointerException( "Error: Could not find the expression meta-data description file" ); } try { final Resource resource = resourceManager.createDirectly( expressionMetaSource, ExpressionMetaDataCollection.class ); final ExpressionMetaDataCollection typeCollection = (ExpressionMetaDataCollection) resource.getResource(); final ExpressionMetaData[] types = typeCollection.getExpressionMetaData(); for ( int i = 0; i < types.length; i++ ) { final ExpressionMetaData metaData = types[i]; if ( metaData != null ) { registerExpression( metaData ); } } } catch ( Exception e ) { throw new IOException( "Error: Could not parse the element meta-data description file", e ); } }
public void registerFromXml( final URL expressionMetaSource ) throws IOException { if ( expressionMetaSource == null ) { throw new NullPointerException( "Error: Could not find the report-preprocessor meta-data description file" ); } try { final Resource resource = resourceManager.createDirectly( expressionMetaSource, ReportProcessTaskMetaDataCollection.class ); final ReportProcessTaskMetaDataCollection typeCollection = (ReportProcessTaskMetaDataCollection) resource.getResource(); final ReportProcessTaskMetaData[] types = typeCollection.getMetaData(); for ( int i = 0; i < types.length; i++ ) { final ReportProcessTaskMetaData metaData = types[i]; if ( metaData != null ) { registerExportType( metaData ); } } } catch ( Exception e ) { throw new IOException( "Error: Could not parse the element meta-data description file", e ); } }
public void initialize() { try { final ResourceManager resourceManager = new ResourceManager(); resourceManager.registerDefaults(); final Resource resource = resourceManager.createDirectly( "res://fonts.xml", FontMetricsCollection.class ); this.fontMetricsCollection = (FontMetricsCollection) resource.getResource(); } catch ( ResourceException e ) { throw new IllegalStateException( e ); } }
public static MasterReport parseLocalReport( final String name, Class<?> context ) throws ResourceException { final URL file = context.getResource( name ); if ( file == null ) { throw new ResourceException( "Unable to locate report '" + name + "' near class " + context ); } final ResourceManager mgr = new ResourceManager(); mgr.registerDefaults(); return (MasterReport) mgr.createDirectly( file, MasterReport.class ).getResource(); }
@Test public void testHTML() throws ResourceException, IOException { URL url = getClass().getResource( "BACKLOG-6818.prpt" ); MasterReport report = (MasterReport) new ResourceManager().createDirectly( url, MasterReport.class ).getResource(); try ( ByteArrayOutputStream stream = new ByteArrayOutputStream() ) { HtmlReportUtil.createStreamHTML( report, stream ); final String html = new String( stream.toByteArray(), "UTF-8" ); int k = 1; for ( int i = 1; i < 5; i++, k = -k ) { final Pattern pattern = Pattern.compile( "(.*id=\"test" + i + "\".*style=\")(.*)(\".*)" ); final Matcher matcher = pattern.matcher( html ); if ( matcher.find() ) { final String group = matcher.group( 2 ); assertTrue( group.contains( k > 0 ? TextRotation.D_90.getCss() : TextRotation.D_270.getCss() ) ); } } } catch ( final IOException | ReportProcessingException e ) { fail(); } }
@Test public void testTxt() throws ResourceException { URL url = getClass().getResource( "BACKLOG-6818.prpt" ); MasterReport report = (MasterReport) new ResourceManager().createDirectly( url, MasterReport.class ).getResource(); try ( ByteArrayOutputStream stream = new ByteArrayOutputStream() ) { PlainTextReportUtil.createPlainText( report, stream ); final byte[] bytes = stream.toByteArray(); assertNotNull( bytes ); assertTrue( bytes.length > 0 ); assertTrue( StringUtils.isNotBlank( new String( bytes, "UTF-8" ) ) ); } catch ( final IOException | ReportProcessingException e ) { fail(); } }
@Test public void testCSV() throws ResourceException { URL url = getClass().getResource( "BACKLOG-6818.prpt" ); MasterReport report = (MasterReport) new ResourceManager().createDirectly( url, MasterReport.class ).getResource(); try ( ByteArrayOutputStream stream = new ByteArrayOutputStream() ) { CSVReportUtil.createCSV( report, stream, "UTF-8" ); final byte[] bytes = stream.toByteArray(); assertNotNull( bytes ); assertTrue( bytes.length > 0 ); assertTrue( StringUtils.isNotBlank( new String( bytes, "UTF-8" ).replaceAll( ",", "" ) ) ); } catch ( final IOException | ReportProcessingException e ) { fail(); } }
public static MasterReport parseReport( final Object file ) throws ResourceException { final ResourceManager manager = new ResourceManager(); manager.registerDefaults(); final Resource resource = manager.createDirectly( file, MasterReport.class ); return (MasterReport) resource.getResource(); }
static List<LogicalPageBox> loadPages( String file, int expectedPages ) throws Exception { ResourceManager resourceManager = new ResourceManager(); resourceManager.registerDefaults(); Resource resource = resourceManager .createDirectly( LayoutValidationUtils.class.getResource( "pagination/" + file ), MasterReport.class ); MasterReport report = (MasterReport) resource.getResource(); int[] pages = new int[ expectedPages ]; for ( int i = 0; i < expectedPages; i++ ) { pages[ i ] = i; } return DebugReportRunner.layoutPagesStrict( report, expectedPages, pages ); }
private MasterReport saveAndLoad( final MasterReport originalReport ) throws Exception { final MemoryByteArrayOutputStream bout = new MemoryByteArrayOutputStream(); BundleWriter.writeReportToZipStream( originalReport, bout ); assertTrue( bout.getLength() > 0 ); /* * final File f = File.createTempFile("test-output-", ".prpt", new File ("test-output")); final FileOutputStream * outputStream = new FileOutputStream(f); outputStream.write(bout.toByteArray()); outputStream.close(); */ final ResourceManager mgr = new ResourceManager(); final Resource reportRes = mgr.createDirectly( bout.toByteArray(), MasterReport.class ); return (MasterReport) reportRes.getResource(); }
public static MasterReport parseGoldenSampleReport( final String name ) throws ResourceException { final File file = GoldTestBase.locateGoldenSampleReport( name ); if ( file == null ) { throw new ResourceException( "Unable to locate report '" + name + "' in the golden samples." ); } final ResourceManager mgr = new ResourceManager(); mgr.registerDefaults(); return (MasterReport) mgr.createDirectly( file, MasterReport.class ).getResource(); }
@Test public void testIsLimitNotReachedForNumberOfRowsEqualQueryLimit() throws Exception { //When data source enforce limit itself // report with 148 rows final URL url = getClass().getResource( "report1.prpt" ); assertNotNull( url ); final ResourceManager resourceManager = new ResourceManager(); resourceManager.registerDefaults(); final Resource directly = resourceManager.createDirectly( url, MasterReport.class ); final MasterReport report = (MasterReport) directly.getResource(); report.setQueryLimit( 148 ); final AbstractReportProcessor reportProcessor = new DummyReportProcessor( report ); reportProcessor.prepareReportProcessing(); assertEquals( reportProcessor.isQueryLimitReached(), false ); }
public static MasterReport saveAndLoad( MasterReport report ) throws Exception { final MemoryByteArrayOutputStream bout = new MemoryByteArrayOutputStream(); BundleWriter.writeReportToZipStream( report, bout ); final ResourceManager mgr = new ResourceManager(); mgr.registerDefaults(); final Resource resource = mgr.createDirectly( bout.toByteArray(), MasterReport.class ); return (MasterReport) resource.getResource(); } }
@Test public void testIsLimitReachedForNumberOfRowsGreaterQueryLimit() throws Exception { //When data source enforce limit itself // report with 148 rows final URL url = getClass().getResource( "report1.prpt" ); assertNotNull( url ); final ResourceManager resourceManager = new ResourceManager(); resourceManager.registerDefaults(); final Resource directly = resourceManager.createDirectly( url, MasterReport.class ); final MasterReport report = (MasterReport) directly.getResource(); report.setQueryLimit( 147 ); final AbstractReportProcessor reportProcessor = new DummyReportProcessor( report ); reportProcessor.prepareReportProcessing(); assertEquals( reportProcessor.isQueryLimitReached(), true ); }
@Test public void testIsLimitNotReachedForNumberOfRowsLessQueryLimit() throws Exception { //When data source enforce limit itself // report with 148 rows final URL url = getClass().getResource( "report1.prpt" ); assertNotNull( url ); final ResourceManager resourceManager = new ResourceManager(); resourceManager.registerDefaults(); final Resource directly = resourceManager.createDirectly( url, MasterReport.class ); final MasterReport report = (MasterReport) directly.getResource(); report.setQueryLimit( 149 ); final AbstractReportProcessor reportProcessor = new DummyReportProcessor( report ); reportProcessor.prepareReportProcessing(); assertEquals( reportProcessor.isQueryLimitReached(), false ); }
public static DataFactory loadAndSaveOnReport( final DataFactory dataFactory ) throws IOException, BundleWriterException, ContentIOException, ResourceException { final MasterReport report = new MasterReport(); report.setDataFactory( dataFactory ); final MemoryByteArrayOutputStream bout = new MemoryByteArrayOutputStream(); BundleWriter.writeReportToZipStream( report, bout ); final ResourceManager mgr = new ResourceManager(); mgr.registerDefaults(); final Resource resource = mgr.createDirectly( bout.toByteArray(), MasterReport.class ); final MasterReport r2 = (MasterReport) resource.getResource(); return r2.getDataFactory(); }