/dynamicreports

Java reporting library for creating dynamic report designs at runtime

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

Master

Build Status codecov

Development

Build Status codecov

Dynamic Reports

DynamicReports is an open source Java reporting library based on JasperReports. It allows to create dynamic report designs and it doesn't need a visual report designer. You can very quickly create reports and produce documents that can be displayed, printed or exported into many popular formats such as PDF, Excel, Word and others.

The original source code was first hosted on sourceforge and interactions were carried out through [dynamicreports.org]. After using this project and libraries, we the maintainers felt compelled to support the development for it has been a great tool. However the source code has not been easily accessible and the original hosting website on which this project was first created is no longer responsive and we do not want to see a great project go down and disappear like that.

Project Goals

This project aims to maintain the original source code of the same using familiar tools, like maven in a way that is accessible to allow contributions. It is based on version 5.1.0 of dynamic reports and Jasper Reports version 6.5.1. We are not trying to rewrite the whole thing, but rather to enhance that which is a already a great work.

These are the main goals of the project

  • Make the source code easily accessible and assessable
  • Enhance the build tools. Not to replace maven, but to make it possible to rebuild the project and all artifacts from a local machine
  • Upgrade dependencies. The project works, but could still have more features, one was to include latest open source tools available
  • In order to support the former, we need to first increase out test coverage to make sure nothing breaks
  • Create a wiki with comprehensive explanations and illustrations on the usage of the library
  • Enhance the documentation in the source code that would make the user clear on what the library is trying to do

Documentation

DynamicReprots documentation available at Readthedocs

Project API documentation

Project Dependencies

A few tools merit to be mentioned:

  • Java version 8
  • Versioning : git
  • Build Tool : maven
  • CI : Travis (yet to fully setup)
  • Code style: google. Enforced by checkstyle. (Setting that up too)
  • Documentation Hosting: readthedocs.org

Usage or Build

DynamicReports is synchronized with a Maven central repository. For Maven projects you just add dependency to your maven configuration. In case you would like to use a development version, add a Sonatype Nexus snapshot repository to your maven configuration.

Maven

Core module

<dependency>
    <groupId>net.sourceforge.dynamicreports</groupId>
    <artifactId>dynamicreports-core</artifactId>
    <version>6.12.0</version>
</dependency>

AdHoc module

<dependency>
    <groupId>net.sourceforge.dynamicreports</groupId>
    <artifactId>dynamicreports-adhoc</artifactId>
    <version>6.12.0</version>
</dependency>

Google Chart addon module

<dependency>
    <groupId>net.sourceforge.dynamicreports</groupId>
    <artifactId>dynamicreports-googlecharts</artifactId>
    <version>6.12.0</version>
</dependency>

For non Maven projects you can to download jar file from maven repository

Build from source

Check release page to download source release files.

Unzip the souces, execute mvnw clean install from project root directory. This compile project sources and create project jar files.

Contributing

See CONTRIBUTING

Raising Issues or bug reports

Before submitting a bug report see this checklist and be sure to follow this approach with as many details as possible. and fill out the issue template

Rules for Mergeable PRs

This is a young project and we would like it to continue to grow, and because of that, kindly be gentle and understanding when it seems like the maintainers are just making stuff up as they go:

  • The travis build must run successfully.
  • The PR must have test cases and must not reduce the code coverage (That needs to be setup)
  • The PR adheres to the template provided
  • Watch this space :)