Coder Social home page Coder Social logo

java-chartjs's People

Contributors

damienhollis avatar haster avatar nielsvanzon avatar papegaaij avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

java-chartjs's Issues

Upgrade to java 11 and make java module system (jigsaw) compliant

Based upon what I've gathered during the research for #18, this is what I want to do:

  • This library will be java 11 based (not sure yet about further upgrade path).
  • This library will be at the least usable in a jigsaw environment without breakage in the future (Automatic-Module-Name). The preferable situation would be to use module-info for all modules.

To do that, we will:

  1. Update to java 9 so we can set release parameters for the compiler and check for module usage (crashdata-parent 1.22)
  2. Set Automatic-Module-Name entries in manifests via maven-jar-plugin
  3. Check for module-system-compliancy in dependencies. If every dependency at last declares an automatic module name, that module can go full module and create a module descriptor (module-info). If not, it will stay as is for now.
  4. Update to java 11.
  5. Optionally, move the nl.crashdata.chartjs.colors package in java-chartjs-data to nl.crashdata.chartjs.data.colors so all packages of the data module have the same nl.crashdata.chartjs.data prefix. This also enables us to make the module name compliant with Stephen Colebourne's recommendations
    Move the nl.crashdata.chartjs.components.* packages in java-chartjs-wicket to nl.crashdata.chartjs.wicket.components.*
  6. Release all this as version 2.0.0 as these are pretty significant changes and point 5 is an API break.

(Non-test) Dependencies and modularity:

dependency modularity module
java-chartjs-data
jackson-annotations automatic module name in manifest com.fasterxml.jackson.annotation
java-chartjs-serialization
jackson-annotations automatic module name in manifest com.fasterxml.jackson.annotation
jackson-core automatic module name in manifest com.fasterxml.jackson.core
jackson-databind automatic module name in manifest com.fasterxml.jackson.databind
jackson-datatype-jsr310 automatic module name in manifest com.fasterxml.jackson.datatype.jsr310
java-chartjs-wicket
jackson-annotations automatic module name in manifest com.fasterxml.jackson.annotation
jackson-core automatic module name in manifest com.fasterxml.jackson.core
jackson-databind automatic module name in manifest com.fasterxml.jackson.databind
jackson-datatype-jsr310 automatic module name in manifest com.fasterxml.jackson.datatype.jsr310
java-chartjs-data module-info nl.crashdata.chartjs.data
java-chartjs-serialization module-info nl.crashdata.chartjs.serialization
wicket-core none (see WICKET-6585)
wicket-request none (see WICKET-6585)
wicket-util none (see WICKET-6585)
jdk-serializable-functional module-info org.danekja.jdk.serializable.functional
openjson none (see openjson/openjson#15)
commons-fileupload none
commons-io none
commons-collections4 none
slf4j-api none

Add a default ObjectMapper with sane defaults

We have two locations where an objectmapper gets configured (SimpleGraphPanel and ChartJsDataTest) with the exact same settings. If users want to use the jackson-annotated classes from data but don't want to use any of the provided wicket panels, they might still want to use an objectmapper with the settings we recommend, which is hard to keep up to date.

Makes sense to have some kind of static 'getDefaultObjectMapper' method, maybe with a boolean flag for pretty print or not.

Add tests for wicket module

Add some tests to ensure correct rendering/functioning under wicket, preferably some wicket tester things. To make sure it doesn't break when two panels are added to a page or when wicket upgrades.

Rename the project to java-chartjs or something

Wicket is only really used to provide the panel for wicket-chartjs-wicket. Most of the work in this project concerns filling the objects/data from Java and serializing to JSON. This is usable in every Java based web framework, not just Apache Wicket.

Add tests for data

Add a set of test. Some simple serialisation tests should suffice, to ensure there is no crash for incorrectly configured builder for example.

Add test module that actually renders graph and tests via selenium

It would probably need to be it's own module, but it might fit in the wicket-module.

It would start a simple wicket application with one or a few pages with graphs and use selenium to test these graphs a bit more. This would also enable us to test integration with front-end stuff such as the callback hooks from #20

Make java-chartjs java 11 / java module system compliant

  • At the minimum, java-chartjs should be usable in a JDK 11 / JMS-using application.

  • Ideally, java-chartjs would be fully java 11 built and JMS compliant. This would however probably break potential users who are still on java 8 or still not using JMS(correctly). (Do we even have such users?)

  • Would going full JMS be a major or minor version bump?

  • Would we want to maintain a java 8 (or at least non-JMS) branch for a while? How long?

Add ability to register callback hooks from java/wicket

Chartjs offers the ability to hook into callbacks upon clicking a point on the graph and such. It would be nice if you could register callbacks from the wicketpanel, especially if the callback would automatically call the serverside through Wicket ajax and you could handle the event in Java.

Add a better readme

The readme should explain what this does, how to use it, and what to expect from each module.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.