[ https://issues.apache.org/jira/browse/FOP-2495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14615370#comment-14615370 ]
simon steiner edited comment on FOP-2495 at 7/6/15 5:44 PM: ------------------------------------------------------------ You can use a resource resolver to return a inputstream to any files to avoid these issues: {code} static class MyResourceResolver implements ResourceResolver { public Resource getResource(URI uri) throws IOException { return new Resource(xxx); } public OutputStream getOutputStream(URI uri) throws IOException { throw new RuntimeException(uri.toString()); } } public static void main(String[] args) throws TransformerException, SAXException, IOException { String fopxconf = "<fop version=\"1.0\"></fop>"; ResourceResolver cloudResourceResolver = new MyResourceResolver(); FopFactoryBuilder confBuilder = new FopConfParser(new ByteArrayInputStream(fopxconf.getBytes()), EnvironmentalProfileFactory.createRestrictedIO(new File(".").toURI(), cloudResourceResolver)).getFopFactoryBuilder(); FopFactory fopFactory = confBuilder.build(); FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); FileOutputStream fos = new FileOutputStream("out.png"); Fop fop = fopFactory.newFop("image/png", foUserAgent, fos); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); Source src = new StreamSource(new ByteArrayInputStream(fo.getBytes())); Result res = new SAXResult(fop.getDefaultHandler()); transformer.transform(src, res); fos.close(); } {code} was (Author: ssteiner1): You can use a resource resolver to return a inputstream to any files to avoid these issues: static class MyResourceResolver implements ResourceResolver { public Resource getResource(URI uri) throws IOException { return new Resource(xxx); } public OutputStream getOutputStream(URI uri) throws IOException { throw new RuntimeException(uri.toString()); } } public static void main(String[] args) throws TransformerException, SAXException, IOException { String fopxconf = "<fop version=\"1.0\"></fop>"; ResourceResolver cloudResourceResolver = new MyResourceResolver(); FopFactoryBuilder confBuilder = new FopConfParser(new ByteArrayInputStream(fopxconf.getBytes()), EnvironmentalProfileFactory.createRestrictedIO(new File(".").toURI(), cloudResourceResolver)).getFopFactoryBuilder(); FopFactory fopFactory = confBuilder.build(); FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); FileOutputStream fos = new FileOutputStream("out.png"); Fop fop = fopFactory.newFop("image/png", foUserAgent, fos); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); Source src = new StreamSource(new ByteArrayInputStream(fo.getBytes())); Result res = new SAXResult(fop.getDefaultHandler()); transformer.transform(src, res); fos.close(); } > Embedding: missing migration documentation from FOP 1.x > ------------------------------------------------------- > > Key: FOP-2495 > URL: https://issues.apache.org/jira/browse/FOP-2495 > Project: FOP > Issue Type: Bug > Components: documentation > Affects Versions: 2.0 > Environment: WIndows, Java 8, FOP 1.0 > Reporter: MH > Priority: Blocker > Labels: documentation > > Because of bug FOP-2177 we couldn't upgrade form FOP 1.0 to FOP 1.1. FOP 2.0 > has solved this bug (tested with standalone FOP scripts). > Now we would like to upgrade our Java code from FOP 1.0 to FOP 2.0. The > Upgrading page (https://xmlgraphics.apache.org/fop/2.0/upgrading.html) says > "You should encounter very few issues in upgrading from FOP 1.0, except as > noted in the following: ...". The truth is completely different: starting by > replacing fop.jar, our code gets dozens of compiler errors! Many methods are > simply gone: > FopFactory.newInstance() > FoUserAgent.setBaseURL(String); > FopFactory.getFontManager().setFontBaseURL(String) > FopFactory.setURIResolver(URIResolver); > etc. > The javadocs from 1.1 to 2.0 simple changed - no deprecated methods, no hints > how to replace old methods. > The FOP 2.0 embedding page > (https://xmlgraphics.apache.org/fop/2.0/embedding.html) just shows simple > examples to start from the ground. I can't find any migration help how to > replace old code. > E.g. how can I set the font base? > FopFactory.getFontManager().setFontBaseURL(String) is gone and I can't find > any equivalent code for FOP 2.0! > This is a major bug in FOP 2.0 as API changes are not documented to upgrade > from FOP 1.x Java API to FOP 2.0! > Now I just can search and try and experiment if I get our old code somehow > running with all those undocumented API changes. Can you please state a > migration documentation for all methods (method signatures) that don't exist > anymore? We can't start coding all over again from scratch. Thank you very > much! -- This message was sent by Atlassian JIRA (v6.3.4#6332)