diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5bd5b91..e454a30 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,6 +10,12 @@ Unfortunately, not every library/tool/framework can be considered. This list aim (d) a niche product that fills a gap +There are two required criteria for a pull request: + +1. If an entry has a similar scope as other entries in the same category, the description must state the unique features that distinguishes it from the other entries. + +2. If an entry does not meet conditions *(a)* to *(d)* there has to be an explanation either in the description or the pull request why it should be added to the list. + Self-promotion is frowned upon and viewed critically, but your suggestion will of course be approved if the criteria match. If your entry isn't accepted, please check the [Issues](https://github.com/akullpp/awesome-java/issues) for items marked with the "question" tag to see if it had been previously discussed. If nothing comes up, feel free to create a new issue, adding the "question" tag. diff --git a/README.md b/README.md index 84691b7..ade7c7a 100644 --- a/README.md +++ b/README.md @@ -315,11 +315,14 @@ A curated list of awesome Java frameworks, libraries and software. * [Atomix](http://atomix.io/atomix/) - Fault-tolerant distributed coordination framework. * [Axon Framework](http://www.axonframework.org/) - Framework for creating CQRS applications. * [Copycat](http://atomix.io/copycat/) - Fault-tolerant state machine replication framework. +* [Dropwizard Circuit Breaker](https://github.com/mtakaki/dropwizard-circuitbreaker) - Circuit breaker design pattern for dropwizard. * [Hazelcast ![c]](http://hazelcast.org/) - Highly scalable in-memory datagrid with a free open-source version. * [Hystrix](https://github.com/Netflix/Hystrix) - Provides latency and fault tolerance. * [JGroups](http://www.jgroups.org/) - Toolkit for reliable messaging and creating clusters. +* [Ribbon](https://github.com/Netflix/ribbon) - Client side IPC library that is battle-tested in cloud. * [Orbit](http://www.orbit.cloud/) - Virtual Actors, adding another level of abstraction to traditional actors. * [Quasar](http://www.paralleluniverse.co/quasar/) - Lightweight threads and actors for the JVM. +* [Zuul](https://github.com/Netflix/zuul) - A gateway service that provides dynamic routing, monitoring, resiliency, security, and more. ## Distributed Databases @@ -555,13 +558,13 @@ A curated list of awesome Java frameworks, libraries and software. * [Eureka](https://github.com/Netflix/eureka) - REST based service registry for resilient load balancing and failover. * [Lagom](https://www.lightbend.com/lagom) - Framework for creating microservice-based systems. * [restQL-core](https://github.com/B2W-BIT/restQL-core) - Microservice query language that fetches information from multiple services. -* [SnopEE](https://github.com/ivargrimstad/snoop) - Discovery service for Java EE microservices. ## Monitoring *Tools that monitor applications in production.* * [AppDynamics ![c]](https://www.appdynamics.com/) - Performance monitor. +* [Automon](https://github.com/stevensouza/automon) - Combines the power of AOP with monitoring and/or logging tools. * [Glowroot](https://glowroot.org/) - Open source Java APM. * [Instrumental ![c]](https://instrumentalapp.com) - Real-time Java application performance monitoring. A commercial service with free development accounts. * [JavaMelody](https://github.com/javamelody/javamelody) - Performance monitoring and profiling. @@ -576,6 +579,7 @@ A curated list of awesome Java frameworks, libraries and software. * [Prometheus](https://prometheus.io/) - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more. * [SPM ![c]](https://sematext.com/spm/) - Performance monitor with distributing transaction tracing for JVM apps. * [Stagemonitor](https://github.com/stagemonitor/stagemonitor) - Open source performance monitoring and transaction tracing for JVM apps. +* [Sysmon](https://github.com/palantir/Sysmon) - Lightweight platform monitoring tool for Java VMs. ## Native *For working with platform-specific native libraries.* @@ -639,7 +643,7 @@ A curated list of awesome Java frameworks, libraries and software. * [Dynamic Jasper](http://dynamicjasper.com/) - Abstraction layer to JasperReports. * [DynamicReports](http://dynamicreports.org/) - Simplifies JasperReports. * [flyingsaucer](https://github.com/flyingsaucerproject/flyingsaucer) - XML/XHTML and CSS 2.1 renderer. -* [iText](http://itextpdf.com/) - Creates PDF files programmatically but requires a license for commercial purposes. +* [iText ![c]](http://itextpdf.com/) - Creates PDF files programmatically. * [JasperReports](http://community.jaspersoft.com/project/jasperreports-library) - Complex reporting engine. ## Performance analysis @@ -684,7 +688,6 @@ A curated list of awesome Java frameworks, libraries and software. * [Feign](https://github.com/Netflix/feign) - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket. * [Jersey](https://jersey.java.net/) - JAX-RS reference implementation. * [Microserver](https://github.com/aol/micro-server) — A convenient extensible Microservices plugin system for Spring & Spring Boot, with over 30 plugins and growing, that supports both micro-monolith and pure microservices styles. -* [RAML](http://raml.org/) - Modeling language to generate REST APIs with contract first. * [Rapidoid](http://www.rapidoid.org/) - A simple, secure and extremely fast framework consisting of embedded HTTP server, GUI components and dependency injection. * [rest.li](https://github.com/linkedin/rest.li) - Framework for building robust, scalable RESTful architectures using type-safe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling. * [RESTEasy](http://resteasy.jboss.org/) - Fully certified and portable implementation of the JAX-RS specification. @@ -692,7 +695,6 @@ A curated list of awesome Java frameworks, libraries and software. * [Restlet Framework](https://github.com/restlet/restlet-framework-java/) - Pioneering framework with powerful routing and filtering capabilities, unified client and server API. * [Retrofit](http://square.github.io/retrofit/) - Type-safe REST client. * [Spark](http://sparkjava.com/) - Sinatra inspired framework. -* [Swagger](http://swagger.io/) - Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services. ## Science @@ -761,6 +763,7 @@ A curated list of awesome Java frameworks, libraries and software. *Tools that test from model to the view.* * [Apache JMeter](http://jmeter.apache.org/) - Functional testing and performance measurements. +* [ArchUnit](https://github.com/TNG/ArchUnit) - Architecture test library, to specify and assert architecture rules. * [Arquillian](http://arquillian.org/) - Integration and functional testing platform for Java EE containers. * [AssertJ](http://joel-costigliola.github.io/assertj/) - Fluent assertions that improve readability. * [Awaitility](https://github.com/jayway/awaitility) - DSL for synchronizing asynchronous operations. @@ -834,7 +837,6 @@ A curated list of awesome Java frameworks, libraries and software. * [Apache Tapestry](http://tapestry.apache.org/) - Component-oriented framework for creating dynamic, robust, highly scalable web applications. * [Apache Wicket](http://wicket.apache.org/) - Component-based web application framework similar to Tapestry with a stateful GUI. -* [Baratine](http://baratine.io) - Toolkit for building distributed and reactive applications for multiple environments, either standalone or embedded. * [Blade](https://github.com/biezhi/blade) - Lightweight, modular framework which aims to be elegant and simple. * [Bootique](http://bootique.io/) - Minimally opinionated framework for runnable apps. * [Grails](https://grails.org/) - Groovy framework with the aim to provide a highly productive environment by favoring convention over configuration, no XML and support for mixins.