Apache FOP is a print formatter driven by XSL formatting objects

Related tags

Miscellaneous fop
Overview
$Id$

==============================================================================
  APACHE FOP  -  README
==============================================================================

Contents of this file:
 - What is FOP?
 - Legal Information
 - Where to get help?
 - How do I build FOP?
 - How do I run FOP?
 - Release Notes

==============================================================================


What is FOP?
------------

Apache FOP is a print formatter driven by XSL formatting objects. It is a Java
application that reads a formatting object tree conforming to the XSL 1.1
Recommendation (05 December 2006) and then turns it into a PDF document,
certain other output formats or allows you to preview it directly on screen.
Note that not all parts of the XSL 1.1 specification have yet been
implemented.

Apache FOP is part of Apache's XML Graphics project. The homepage of Apache 
FOP is http://xmlgraphics.apache.org/fop/.
    
    
Legal Information
-----------------

Apache FOP is published under the Apache License version 2.0. For the license
text, please see the following files:
- LICENSE
- NOTICE

Legal information on libraries used by Apache FOP can be found in the 
"lib/README.txt" file.

Here is a list of files included in Apache FOP but not published under Apache
License version 2.0:
- K3 3 of 9 barcode font (TrueType)
  File: examples/fo/advanced/K3.TTF
  Info: examples/fo/advanced/K3.README
- DejaVu LGC Serif font (TrueType)
  File: test/resources/fonts/DejaVuLGCSerif.ttf
  Info: test/resources/fonts/DejaVuLGCSerif.LICENSE

    
Where to get help?
------------------
    
http://xmlgraphics.apache.org/fop/gethelp.html
    
A mailing list where you can get all your questions about FOP answered is at 
[email protected]. You can subscribe by sending an empty mail 
to [email protected].

Before you post any questions, please have a look at the FAQ at 
http://xmlgraphics.apache.org/fop/faq.html and FO help page at 
http://xmlgraphics.apache.org/fop/fo.html.

Please report bugs to bugzilla at http://issues.apache.org/bugzilla/


How do I build FOP?
-------------------

If you've downloaded a binary distribution, you don't need to build
FOP.

Otherwise, please follow the instructions found here:
http://xmlgraphics.apache.org/fop/stable/compiling.html

[TEMPORARY]

Until the above referenced instructions are updated, one of the following
may be used to build FOP:

Building with Maven (preferred)

% mvn clean install

Building with Ant (deprecated)

% ant -f fop/build.xml clean all

How do I run FOP?
-----------------

Simply by typing "fop" on the command-line. Without any parameters you
will receive a screen with instruction on how to call FOP from the
command-line.

For more details, see:
http://xmlgraphics.apache.org/fop/stable/running.html

[TEMPORARY]

Note that FOP command line scripts and build results from ant will be found
under the ./fop sub-directory.

==============================================================================
  RELEASE NOTES
==============================================================================

Version 2.6
===========

Major Changes in Version 2.6
----------------------------

* Support OTF/TTF SVG fonts
* Allow overpaint of PDF border

This release also contains a number of bug fixes.

Version 2.5
===========

Major Changes in Version 2.5
----------------------------

* Allow to hide empty blocks from structure tree

This release also contains a number of bug fixes.

Version 2.4
===========

Major Changes in Version 2.4
----------------------------

* Require Java 7 or later
* Drop dependency on Avalon-Framework
* Add change bar generation
* Add support for Khmer complex script

This release also contains a number of bug fixes.

Version 2.3
===========

Major Changes in Version 2.3
----------------------------

* Support for unicode Surrogate pairs
* OTF fonts not working on Mac Preview

This release also contains a number of bug fixes.

Version 2.2
===========

Major Changes in Version 2.2
----------------------------

* PCL Color support
* Allow generation of bold/italic versions of fonts for PDF
* Allow to convert OTF fonts to Type 1 for Postscript
* Deduplicate PDF content streams
* Update to PDFBox 2
* Transition from Ant to Maven Build Process

This release also contains a number of bug fixes.

Version 2.1
===========

Major Changes in Version 2.1
----------------------------

* Add PreloaderRawPNG to handle images ImageIO cant
* Support Barcode4J page number
* Support CMYK JPEG in AFP
* Support IPD change on last page
* Support PDF/UA
* Support TrueType fonts in PCL
* Support Truetype for AFP
* Support for PDF/A-3

This release also contains a number of bug fixes.

Version 2.0
===========

Java 6 or later is the minimum runtime environment needed.

Because of changes to the API, the version number has been bumped to 2.0.

Major Changes in Version 2.0
----------------------------

* Side float support
* Whitespace Management Extension
* fo:inline-container partial support
* Improved support for complex scripts
* PDF Linearization
* Support OpenType CFF fonts
* Subset support for Type 1 fonts
* Support for AES 256 PDF encryption
* SVG graphics can use FOP custom fonts

This release also contains a number of bug fixes.

Version 1.1
===========

This release of Apache FOP primarily addresses bug fixes and also adds a number
of new features. See below for details.

Compliance
----------

This release implements the XSL 1.0 and 1.1 recommendations to a relatively
high degree of compliance. See the compliance page
http://xmlgraphics.apache.org/fop/compliance.html for further details.

Known issues
------------

A detailed list of known issues in this release is available at
http://xmlgraphics.apache.org/fop/1.1/knownissues_overview.html.

Major Changes in Version 1.1
----------------------------

* Adds support for complex scripts.
* Adds support for TTF fonts in PostScript.
* Adds support for PDF Object Streams.
* Adds support for PDF 128-bit encryption.

A more detailed list of changes in this release is available at
http://xmlgraphics.apache.org/fop/1.1/changes_1.1.html.

A more detailed list of changes in this and earlier releases is available at
http://xmlgraphics.apache.org/fop/changes.html.

Version 1.0
===========

This is a production grade release of Apache FOP.
It contains many bug fixes and new features. See below for details.

Compliance
----------

This release implements the XSL 1.0 and 1.1 recommendations to a high
degree of compliance. See the compliance page
http://xmlgraphics.apache.org/fop/compliance.html for a detailed
overview.

Known issues
------------

The known issues of this release are listed at
http://xmlgraphics.apache.org/fop/1.0/knownissues_overview.html.

Major Changes in Version 1.0
----------------------------

* Added support for addressing all glyphs available in a Type 1 font
* Added support for auto-configuring TrueType Collections. XML font
  metrics files for *.ttc fonts are not required anymore.
* Added support for rendering pages using Java Printing System.
* Support character-by-character font-selection strategy on
  fo:character element.
* Implemented word-by-ford font-selection strategy on text.
* AFP Output: Various enhancements
* FOP now creates ToUnicode CMaps for single-byte fonts that don't use
  built-in encodings
* Introduced a new, additional intermediate format optimized for
  performance. See the intermediate format documentation for details.
* Added an initial set of extensions for prepress support.
* Added limited support for different page widths within a page-sequence.
* Added support for TrueType fonts with symbol character maps (like
  "Wingdings" and "Symbol").
* Added an event handling framework which allows to get better feedback
  from within FOP with the ability to customize problem management.

The long list of changes in this release is available at
http://xmlgraphics.apache.org/fop/1.0/changes_1.0.html.

The long list of changes in this and earlier releases is available at
http://xmlgraphics.apache.org/fop/changes.html.

Version 0.95
============

This is a production grade release of Apache FOP.
It contains many bug fixes and new features. See below for details.

Compliance
----------

This release implements the XSL 1.0 and 1.1 recommendations to a high
degree of compliance. See the compliance page
http://xmlgraphics.apache.org/fop/compliance.html for a detailed
overview.

Known issues
------------

The known issues of this release are listed at
http://xmlgraphics.apache.org/fop/0.95/knownissues_overview.html.

Major Changes in Version 0.95
-----------------------------

* Add new fox:external-document extension element that allows to insert whole
  documents into a page-sequence (JM)
* Add support for background on fo:table-column and fo:table-header/footer/body
  elements (VH)
* Add support for conditional borders in tables (VH)
* Add support for scale-down-to-fit and scale-up-to-fit (JM)
* Fix various bugs and performance problems with external graphics by
  introducing a new image loading framework (JM)

The long list of changes in this release is available at
http://xmlgraphics.apache.org/fop/0.95/changes_0.95.html.

The long list of changes in this and earlier releases is available at
http://xmlgraphics.apache.org/fop/changes.html.

Changes since Version 0.95beta
------------------------------
Please refer to the list of changes on the web:
http://xmlgraphics.apache.org/fop/changes.html


Version 0.94
============

This is the second production grade release of the new FOP codebase.
It contains many bug fixes and new features. See below for details.

Compliance
----------

This release implements the XSL 1.0 and 1.1 recommendations to a high
degree of compliance. See the compliance page
http://xmlgraphics.apache.org/fop/compliance.html for a detailed
overview.

Known issues
------------

The known issues of this release are listed at
http://xmlgraphics.apache.org/fop/0.94/knownissues_overview.html.

Major Changes in Version 0.94
-----------------------------

* Add support for font auto-detection (JM) Thanks to Adrian Cumiskey
* Add support for the border-collapsing model in tables (VH, JM)
* Add support for named destinations in PDF (JB)
* Add support for UAX#14 type line breaking (MM)

The long list of changes in this release is available at
http://xmlgraphics.apache.org/fop/0.94/changes_0.94.html.

The long list of changes in this and earlier releases is available at
http://xmlgraphics.apache.org/fop/changes.html.


Version 0.93
============

This is the first production grade release of the new FOP codebase.

* It contains the new API first introduced in release 0.92
  beta. The preceding API has been removed.
* This release again contains many bug fixes and new features. See
  below for details.

Compliance
----------

This release implements the XSL 1.0 and 1.1 recommendations to a high
degree of compliance. See the compliance page
http://xmlgraphics.apache.org/fop/compliance.html for a detailed
overview.

Known issues
------------

The known issues of this release are listed at
http://xmlgraphics.apache.org/fop/knownissues.html.

Upgrading
---------

You may experience different behaviour compared to version
0.20.5. Please consult the "Upgrading" page
(http://xmlgraphics.apache.org/fop/stable/upgrading.html) for
details.

Major Changes in Version 0.93
-----------------------------

* Added support for the use of Open Type fonts (BD)
* Support for the rgb-icc() function and for a proprietary cmyk()
  function (for device CMYK colors only through the PDF renderer so
  far). (JM) Thanks to Peter Coppens. Fixes 40729.
* Enabled Copy/Paste from PDF content in Acrobat Reader for
  text using embedded TrueType fonts. (BD) Thanks to Adam Strzelecki,
  Victor Mote. Fixes 5535.
* Added support for PDF/A-1b and PDF/X-3:2003. (Note: this may still
  be a bit incomplete. Feedback is welcome!)
* The Java2DRenderer (and therefore the print and bitmap renderers) is
  now offering the same quality as the PDF and PS renderers. Note:
  There can still be little differences between PDF and Print/PNG/TIFF
  because the latter uses a different font metrics source.
* Automatic support for all fonts available to the Java2D subsystem
  for all Java2D-descendant renderers (TIFF, PNG, print, AWT).

The long list of changes in this release is available at
http://xmlgraphics.apache.org/fop/0.93/changes_0.93.html.

The long list of changes in this and earlier releases is available at
http://xmlgraphics.apache.org/fop/changes.html.

The Apache FOP team asks you for your continued feedback on the
software.  We're also interested in success stories with the new
release. So if the latest version works fine for you, please tell us!
And if it doesn't, you may tell us as well, of course. ;-)

Release notes for older FOP versions can be found on:
http://xmlgraphics.apache.org/fop/relnotes.html
Comments
  • Allow the FOUserAgent class to be extended by applications.

    Allow the FOUserAgent class to be extended by applications.

    It used to be possible to provide default page dimensions on a per-UA basis. This was useful because the needed page dimensions may change for different runs (Fop instances) in the same application (same FopFactory instance). An application of mine needs this: the page dimensions are set to whatever the user previously entered in the Page Setup dialog.

    Since FOP 2.0, however, this is no longer possible, because there is no public or protected constructor to the FOUserAgent class. In my use case, that means there is no way to override the getPageWidth and getPageHeight methods.

    This PR makes FOUserAgent's constructor protected and take only a FopFactory parameter (so the resolver is still taken from the FopFactory). Applications needing to customize FOUserAgent's behavior can now do so.

    This is the same as the patch attached to FOP-2729.

    opened by argv-minus-one 3
  • Use URIResolver when loading XSLT source

    Use URIResolver when loading XSLT source

    The XSL processor attempts to reach out to the internet to resolve URIs in XSLT source files. This happens because the URIResolver is not registered on the TransformerFactory when it creates a Transformer instance for a given XSLT source.

    This fix assigns the URIResolver to the TransformerFactory (which then gets assigned to any Transformer created from that factory) rather than on the Transformer. This change allows the processor to resolve URIs in the XSLT source when the source is being loaded.

    This patch also registers the InputHandler as an ErrorListener for the TransformerFactory so that any errors that occur while loading the XSLT are logged consistently.

    opened by mojavelinux 2
  • FOP-2704: Make Google Roboto font (and probably others) usable

    FOP-2704: Make Google Roboto font (and probably others) usable

    This applies the patch brought forward by Neil Smeby in https://issues.apache.org/jira/browse/FOP-2704. In short, it works around the UnsupportedOperationException: coverage set class table not yet supported exception when trying to use Google's Roboto font (updated 2017).

    Maven ${version} placeholders are replaced with plain versions to work around a potential issue in Jitpack.io.

    See https://jitpack.io/#webfactory/fop/da392ffca how you can easily give this patch a try with your preferred build system.

    opened by mpdude 1
  • FOP-2847: fix PNGs with index color model did not render SMask

    FOP-2847: fix PNGs with index color model did not render SMask

    java.awt.image.BufferedImage.getAlphRaster() return null if an IndexColorModel is used. This resulted in those PNGs missing the SMask and had broken transparency effects.

    opened by 7obywankenobi 1
  • FOP-2847: fix Mask for PNG with IndexColorModel and transparent color

    FOP-2847: fix Mask for PNG with IndexColorModel and transparent color

    PNG images with indexed color palette featuring tRNS transparency encoding had potentially wrong PDF Mask. If image contained transparency but no fully transparent pixel, then the default implementation of PDFImageXObject still generates a Mask entry with three color components. PDF Specification expects the index when using a palette based color model. Thus Acrobat Reader does not process this image and shows error message. In general ImageRenderedAdapter would overwrite this Mask, but since AbstractImageAdapter.getIndexOfFirstTransparentColorInPalette() does return null if image does not contain fully transparent pixels the more general implementation of PDFImageXObject leaks to the output.

    opened by 7obywankenobi 1
  • FOP-2733: remove avalon

    FOP-2733: remove avalon

    I removed avalon (a project that is dead for over a decade now) from the code base. For this to happen, I've written a clean-room (i.e. I didn't looked at the avalon code) implementation of the few bits of avalon that are still in use by FOP. After that I fixed the tests.

    Apart from some minor stuff that is only used for testing, the main thing of avalon that was still in use was the Configuration stuff.

    I also renamed the packages name of the (now embeded) avalon stuff like this:

    • org.apache.avalon.framework.configuration moved to org.apache.fop.configuration
    • org.apache.avalon.framework.activity moved to org.apache.fop.activity
    • org.apache.avalon.framework.containeralso moved to org.apache.fop.activity

    This rename is completely optional, i.e. if there are concerns against it, I will update my change request and keep the original package names.

    I would be glad if you could consider my patch for merge into the trunk branch.

    Kind regards,

    aanno

    opened by aanno 1
  • [FOP-2815] Replace SimpleLog with LogFactory

    [FOP-2815] Replace SimpleLog with LogFactory

    References https://issues.apache.org/jira/browse/FOP-2815.

    • Replaces deprecated SimpleLog with LogFactory. The LogFactory gets set when the logger is null. The logging level is also set to INFO (value: 800).
    • Bumped the parent pom to 2.4.1-SNAPSHOT.
    opened by spiritualops 1
  • Change the method modifier

    Change the method modifier "build" to "getParams".

    The method just returns one field "params" of the current class, thus method name "getParams" should be better than "build".

    opened by Kui-Liu 1
  • FOP-1969: Surrogate pairs not treated as single unicode codepoint for…

    FOP-1969: Surrogate pairs not treated as single unicode codepoint for…

    ApacheFOP treats surrogates pairs as 2 different codepoints. Most of the methods accepts/returns a single char (Eg Typeface.mapChar(char c)) which mean they can deal only with BMP characters (<= 0xFFFF).

    In order to correctly handle the non-BMP characters (Eg: Emoji, Mathematical symbols, ancient scripts, CJK extensions) ApacheFOP should deal with int rather then char. It is possible to represent the whole Unicode range using a single int while it is not possible with a single UTF-16 char.

    These are the 3 main aspects of this modification:

    1. Read the non-BMP glyphs from the font
    2. Make the API to use int instead of char
    3. Convert surrogate pairs to a single int
    4. Adapt the renderer

    Read the non-BMP glyphs from the font

    The glyph information are stored in one of the font CMAPs tables. The implemented one is:

    • PlatformID: 3 (Microsoft)
    • EncodingID: 10 (Unicode UCS-4)
    • CMAP format: 12 (Formats 8, 10, and 12, 13, and 14 are used for mixed 16/32-bit and pure 32-bit mappings. This supports text encoded with surrogates in Unicode 2.0 and later)

    Apple TrueType Reference Manual: (https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html)

    Make the API to use int instead of char

    Such modification would mainly affects the Font classes hierarchy. The Typeface class is one of the base classes of the Font Hierarchy and is one of the classes that should be modified. It has though (as of September 2016) approximately 27 subclasses/implementations which would make the scope of the modification pretty huge.

    Since not all the font classes are supposed to deal with non-BMP codepoints it is possible to narrow down the the scope of the modification to a lower number of classes. This is supposed to be just a step that allow to have at least a working path to handle surrogate pairs.

    The class identified as good point to start is CIDFont as a CID Fonts has been designed to handle huge character sets. From Adobe documentation: "CID fonts are a new format of composite (multibyte) Type 1 fonts that better address the requirements of Far East markets. Adobe developed the CID-keyed font file format to support large character set fonts..." (src: http://www.adobe.com/products/postscript/pdfs/cid.pdf).

    FontMetrics
        Typeface
            SystemFontMetricsMapper
            LazyFont
            AFPFont
                RasterFont
                AbstractOutlineFont
                    DoubleByteFont
                    OutlineFont
                        AFPTrueTypeFont in AFPFontConfig
            Base14Font
                Helvetica
                Symbol
                HelveticaBoldOblique
                HelveticaOblique
                HelveticaBold
                ZapfDingbats
                Courier
                CourierBold
                TimesBold
                TimesBoldItalic
                TimesItalic
                TimesRoman
                CourierOblique
                CourierBoldOblique
            CustomFontMetricsMapper
            CustomFont
                SingleByteFont                + hasCodePoint(int):boolean
                CIDFont   <------------------ + mapCodePoint(int):int
                    MultiByteFont
    
                                             ~ getUnicode(int):char -> getUnicode(int):int
    CIDSet (Used by CIDFont) <-------------- + mapCodePoint(int, int):int
        CIDSubset
        CIDFull
                                              + hasCodePoint(int):boolean
    Font <----------------------------------- + mapCodePoint(int):int
    

    getUnicode(): is defined in CIDSet (is not a property of the Typeface class or one of its subclasses). I changed the firm of this method to handle int instead of char because it is semantically incorrect to represent unicode with a single UTF-16 char. As you can see from the CIDSet hierarchy the change affect only 3 classes.

    getUnicodeFromGID(): this method is defined in CustomFont and CIDSet. It never get called from the MultiByteFont path, probably because getUnicode is used instead. That is why I'm down casting the return value from int to char in CIDFull and CIDSubset. Probably the best thing to do would be to get rid of this method or make it handle int, but again the change would affect more classes then the ones in the scope.

    Convert surrogate pairs to a single int

    The data arrives as String and non-BMP characters are represented as surrogate pairs. Every time some operation is performed on the data (eg. Font.mapCodePoint(int)) surrogate pairs should be converted to the corresponding code point.

    The current implementation make this conversion inside the for loops used to deal with the data:

    for (int i = 0, i < text.length(); i++) {
        int cp = text.charAt(i);
    
        if (CharUtilities.containsSurrogatePairAt(text, i)) { // Throw an exception if it is an ill-formed surrogate pair
            c = Character.toCodePoint((char) c, text.charAt(++i));
        }
        [...]
    }
    

    or

    for (int i = 0, i < text.length(); i++) {
        int cp = text.codePointAt(i); // Java API, do NOT throw error if it is an ill-formed surrogate pair
    
        i += CharUtilities.incrementIfNonBMP(orgChar);
        [...]
    }
    

    The best thing to do in future is implement something like the Java8 API String.codepoints() which allow you to directly iterate through a stream/array of codepoints avoiding boilerplate code.

    Adapt the Renderer

    Every ApacheFOIP output format has it's own way to represent data which means that each renderer need to be adapted to handle non-BMP codepoints.

    The adapted Renderer/Painters are:

    PDFPainter PSPainter Java2DPainter Java2DRenderer

    opened by monejava 1
  • FOP-2847: Support palette-based transparency via tRNS chunk of PNG im…

    FOP-2847: Support palette-based transparency via tRNS chunk of PNG im…

    …ages in PDF export

    java.awt.image.BufferedImage.getAlphRaster() return null if an IndexColorModel is used. This resulted in those PNGs missing the SMask and had broken transparency effects.

    PNG images with indexed color palette featuring tRNS transparency encoding had potentially wrong PDF Mask. If image contained transparency but no fully transparent pixel, then the default implementation of PDFImageXObject still generates a Mask entry with three color components. PDF Specification expects the index when using a palette based color model. Thus Acrobat Reader does not process this image and shows an error message. In general ImageRenderedAdapter would overwrite this Mask, but since AbstractImageAdapter.getIndexOfFirstTransparentColorInPalette() does return null if image does not contain fully transparent pixels the more general implementation of PDFImageXObject leaks to the output. This has been fixed.

    opened by 7obywankenobi 0
  • [FEATURE] Adds Configurator to AbstractSVGDocumentHandler.

    [FEATURE] Adds Configurator to AbstractSVGDocumentHandler.

    Beforehand, the SVGDocumentHandler could not be used directly and had to be overwritten in the way, how the getConfigurator() method is over- written. Also fonts could not be embedded without the configurator.

    The foUserAgent can now be modified in the way: foUserAgent.setRendererOverride(new SVGRenderer(foUserAgent)); foUserAgent.setDocumentHandlerOverride(new SVGDocumentHandler(IFContext context);

    After that, the FopFactory.newFop(..) can be called and the transformation can be done.

    opened by schowave 0
  • Include xmlapis*.jar when creating fop.war

    Include xmlapis*.jar when creating fop.war

    This prevents

    <4>Batik not in class path
    <4>java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
    <4>    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    <4>    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    <4>    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    
    opened by frederikbosch 0
  • Change the method name

    Change the method name "make" to "getNameId".

    This method seems to find a "Property" related to the fo.getNameId(). Hence, the new name "getNameId" should be better than "make".

    opened by ShangwenWang 1
  • FOP-2854: Allow to override CreationDate

    FOP-2854: Allow to override CreationDate

    Allow to override build date with SOURCE_DATE_EPOCH in order to make builds reproducible. See https://reproducible-builds.org/ for why this is good and https://reproducible-builds.org/specs/source-date-epoch/ for the definition of this variable.

    This patch was done while working on reproducible builds for openSUSE.

    Note: probably only a partial fix towards reproducible pdf output / https://issues.apache.org/jira/browse/FOP-2854

    opened by bmwiedemann 6
  • FOP-2858 java.awt.Font.getName() returns localized name

    FOP-2858 java.awt.Font.getName() returns localized name

    As described here https://issues.apache.org/jira/browse/FOP-2858?filter=-2, this patch fixes the font name localization problem, which prevents guessWeight/Style methods from working as they are based on english keywords.

    opened by infosuitemka 0
  • FOP-2704: Make Google Roboto font (and probably others) usable

    FOP-2704: Make Google Roboto font (and probably others) usable

    This is a re-post of #59 which was apparently closed by an automatic process and/or due to a force-push on the fop-2_3 branch?

    It applies the patch brought forward by Neil Smeby in https://issues.apache.org/jira/browse/FOP-2704. In short, it works around the UnsupportedOperationException: coverage set class table not yet supported exception when trying to use Google's Roboto font (updated 2017).

    See https://jitpack.io/#webfactory/fop/48e0a1567 how you can easily give this patch a try with your preferred build system.

    opened by mpdude 8
Owner
The Apache Software Foundation
The Apache Software Foundation
Support alternative markup for Apache Maven POM files

Overview Polyglot for Maven is a set of extensions for Maven 3.3.1+ that allows the POM model to be written in dialects other than XML. Several of the

null 828 Dec 17, 2022
Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text

Welcome to Apache OpenNLP! The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text. This toolkit is

The Apache Software Foundation 1.2k Dec 29, 2022
Cluster manager for Apache Doris

Apache Doris (incubating) Manager The repository contains Manager for Apache Doris (incubating) License Apache License, Version 2.0 Report issues or s

The Apache Software Foundation 96 Jan 4, 2023
Flink/Spark Connectors for Apache Doris

Flink/Spark Connectors for Apache Doris

The Apache Software Foundation 30 Dec 7, 2022
Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.

json-io Perfect Java serialization to and from JSON format (available on Maven Central). To include in your project: <dependency> <groupId>com.cedar

John DeRegnaucourt 303 Dec 30, 2022
Calef - CalEF (Calendar Entry Formatter) : Select an entry in Android-Kalender and send/share the entry's content as human readable text.

CalEF (Calendar Entry Formatter) Select an entry in Android-Kalender and send/share the entry's content as human readable text. Usually calendar entri

k3b 6 Aug 17, 2022
For Energy to InfluxDB Formatting, Tranformation and Routing

For Energy to InfluxDB Formatting, Tranformation and Routing

Timothy Spann 2 Feb 14, 2022
Object-Oriented and Immutable Java Chain of XSL Transformations

It's a chain of XSL transformations in Java. You add this to your pom.xml: <dependency> <groupId>com.yegor256</groupId> <artifactId>xsline</artifa

Yegor Bugayenko 12 Dec 15, 2022
Annotation processor to create immutable objects and builders. Feels like Guava's immutable collections but for regular value objects. JSON, Jackson, Gson, JAX-RS integrations included

Read full documentation at http://immutables.org // Define abstract value type using interface, abstract class or annotation @Value.Immutable public i

Immutables 3.2k Dec 31, 2022
cglib - Byte Code Generation Library is high level API to generate and transform Java byte code. It is used by AOP, testing, data access frameworks to generate dynamic proxy objects and intercept field access.

cglib Byte Code Generation Library is high level API to generate and transform JAVA byte code. It is used by AOP, testing, data access frameworks to g

Code Generation Library 4.5k Jan 8, 2023
sql2o is a small library, which makes it easy to convert the result of your sql-statements into objects. No resultset hacking required. Kind of like an orm, but without the sql-generation capabilities. Supports named parameters.

sql2o Sql2o is a small java library, with the purpose of making database interaction easy. When fetching data from the database, the ResultSet will au

Lars Aaberg 1.1k Dec 28, 2022
A Java serialization/deserialization library to convert Java Objects into JSON and back

Gson Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to a

Google 21.7k Jan 8, 2023
Powerful event-bus optimized for high throughput in multi-threaded applications. Features: Sync and Async event publication, weak/strong references, event filtering, annotation driven

MBassador MBassador is a light-weight, high-performance event bus implementing the publish subscribe pattern. It is designed for ease of use and aims

Benjamin Diedrichsen 930 Jan 6, 2023
A Java library for serializing objects as PHP serialization format.

Java PHP Serializer Latest release: A Java library for serializing objects as PHP serialization format. The library fully implements the PHP serializa

Marcos Passos 14 Jun 13, 2022
Java 8 optimized, memory efficient, speedy template engine producing statically typed, plain java objects

Rocker Templates by Fizzed Fizzed, Inc. (Follow on Twitter: @fizzed_inc) Sponsored by Rocker is proudly sponsored by Greenback. We love the service an

Fizzed, Inc. 669 Dec 29, 2022
A library for setting up Java objects as test data.

Beanmother Beanmother helps to create various objects, simple and complex, super easily with fixtures for testing. It encourages developers to write m

Jaehyun Shin 113 Nov 7, 2022
Generator fake objects from a template

Fixture Factory is a tool to help developers quickly build and organize fake objects for unit tests. The key idea is to create specification limits of

six2six 423 Dec 15, 2022
JVM version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.

pact-jvm JVM implementation of the consumer driven contract library pact. From the Ruby Pact website: Define a pact between service consumers and prov

Pact Foundation 962 Dec 31, 2022