2014-07-09 09:35:42 -04:00
|
|
|
# Awesome Java
|
2014-07-09 06:12:44 -04:00
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
A curated list of awesome Java frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python).
|
|
|
|
|
|
|
|
- [Awesome Java](#awesome-java)
|
2014-07-10 04:13:02 -04:00
|
|
|
- [Application Server](#application-server)
|
2014-07-10 06:10:22 -04:00
|
|
|
- [Build Tool](#build-tool)
|
2014-07-10 04:31:54 -04:00
|
|
|
- [Code Analysis](#code-analysis)
|
2014-07-10 04:13:02 -04:00
|
|
|
- [Continuous Integration](#continuous-integration)
|
2014-07-09 09:35:42 -04:00
|
|
|
- [Date and Time](#date-and-time)
|
2014-07-10 04:31:54 -04:00
|
|
|
- [Dependency Injection](#dependency-injection)
|
2014-07-09 09:35:42 -04:00
|
|
|
- [Game Development](#game-development)
|
2014-07-10 04:31:54 -04:00
|
|
|
- [IDE](#ide)
|
2014-07-09 09:35:42 -04:00
|
|
|
- [Logging](#logging)
|
|
|
|
- [Machine Learning](#machine-learning)
|
|
|
|
- [MapReduce](#mapreduce)
|
|
|
|
- [Messaging](#messaging)
|
|
|
|
- [Miscellaneous](#miscellaneous)
|
|
|
|
- [Natural Language Processing](#natural-language-processing)
|
|
|
|
- [Permissions](#permissions)
|
|
|
|
- [Template Engine](#template-engine)
|
|
|
|
- [Testing](#testing)
|
|
|
|
- [Utility](#utility)
|
|
|
|
- [Web Crawling](#web-crawling)
|
|
|
|
- [Web Frameworks](#web-frameworks)
|
|
|
|
- [Resources](#resources)
|
|
|
|
- [Twitter](#twitter)
|
|
|
|
- [Websites](#websites)
|
|
|
|
- [Contributing](#contributing)
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
## Application Server
|
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Servers which are specifically used to deploy applications and provide extensive functionality for messaging and other Java specific features*
|
2014-07-10 04:13:02 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
* [GlassFish](https://glassfish.java.net/) - Open source reference implementation for Java EE sponsored by Oracle with a limited lifetime
|
|
|
|
* [WildFly](http://www.wildfly.org/) - Formerly known as JBoss and developed by Red Hat
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
|
|
|
|
## Build Tool
|
|
|
|
|
|
|
|
*Tools which handle the build lifecycle of an application*
|
|
|
|
|
|
|
|
* [Apache Ant](http://ant.apache.org/) - Procedural build configuration via XML files
|
|
|
|
* [Apache Maven](http://maven.apache.org/) - Declarative lifecycle and dependency managment which favors convention over configuration
|
|
|
|
* [Gradle](http://www.gradle.org/) - Incremental build configuration which is programmed via Groovy
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 04:31:54 -04:00
|
|
|
## Code Analysis
|
2014-07-10 04:13:02 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Tools that provide metrics and quality measurements about static code*
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
* [SonarQube](http://www.sonarqube.org/)
|
|
|
|
|
|
|
|
## Continuous Integration
|
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Tools which support continuously building, testing and releasing applications*
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
* [Jenkins](http://jenkins-ci.org/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Date and Time
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
*Libraries related to date and time.*
|
|
|
|
|
|
|
|
* [Java 8 SE: Date and Time API](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html)
|
2014-07-09 10:08:42 -04:00
|
|
|
* [Joda-Time](http://joda-time.sourceforge.net/)
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
## Dependency Injection
|
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Libraries that help to reliaze the [Inversion Of Control](http://en.wikipedia.org/wiki/Inversion_of_control) paradigma*
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
* [Google Guice](http://de.wikipedia.org/wiki/Google_Guice)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Game Development
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Frameworks that support the development of games*
|
|
|
|
|
2014-07-09 10:08:42 -04:00
|
|
|
* [LWJGL](http://lwjgl.org/)
|
|
|
|
* [libGDX](http://libgdx.badlogicgames.com/)
|
|
|
|
|
2014-07-10 04:31:54 -04:00
|
|
|
## IDE
|
2014-07-09 16:56:32 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Integrated development environments that try to simplify several aspects of development*
|
|
|
|
|
2014-07-09 16:56:32 -04:00
|
|
|
* [NetBeans](https://netbeans.org/)
|
|
|
|
* [Eclipse](http://www.eclipse.org/)
|
|
|
|
* [IntelliJ](http://www.jetbrains.com/idea/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Logging
|
2014-07-09 16:56:32 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Libraries that log the behavior of an application*
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
* [SLF4J](http://www.slf4j.org/) - An abstraction layer which is to be used with an implementation
|
2014-07-09 16:56:32 -04:00
|
|
|
* [Log4j](http://logging.apache.org/log4j/)
|
|
|
|
* [Logback](http://logback.qos.ch/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Machine Learning
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Tools that allow to learn from data via a set of specific algorithms*
|
|
|
|
|
2014-07-09 10:08:42 -04:00
|
|
|
* [Apache Mahout](https://mahout.apache.org/)
|
|
|
|
* [Apache Spark](http://spark.apache.org/)
|
|
|
|
* [Mallet](http://mallet.cs.umass.edu/)
|
|
|
|
* [Weka](http://www.cs.waikato.ac.nz/ml/weka/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## MapReduce
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Libraries that provide access to the MapReduce model*
|
|
|
|
|
2014-07-09 10:08:42 -04:00
|
|
|
* [Apache Hadoop](http://hadoop.apache.org/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Messaging
|
2014-07-10 04:31:54 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Tools that help sending messages between clients to ensure protocol independency*
|
|
|
|
|
2014-07-10 04:31:54 -04:00
|
|
|
* [Apache ActiveMQ](http://activemq.apache.org/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Miscellaneous
|
2014-07-10 04:13:02 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Everything else*
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
* [Lombok](http://projectlombok.org/) - Code-generator which aims to reduce the verbosity of Java
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Natural Language Processing
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Libraries that are specialized on processing text*
|
|
|
|
|
2014-07-09 10:08:42 -04:00
|
|
|
* [Apache OpenNLP](https://opennlp.apache.org/)
|
|
|
|
* [LingPipe](http://alias-i.com/lingpipe/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Permissions
|
2014-07-09 16:56:32 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Libraries that handle role/rights with associated permissions*
|
|
|
|
|
2014-07-09 16:56:32 -04:00
|
|
|
* [Apache Shiro](http://shiro.apache.org/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Template Engine
|
2014-07-09 16:56:32 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Tools which substitute expressions in a template*
|
|
|
|
|
|
|
|
* JSP
|
2014-07-09 16:56:32 -04:00
|
|
|
* [Apache Tapestry](http://tapestry.apache.org/)
|
|
|
|
* [Apache Velocity](http://velocity.apache.org/)
|
|
|
|
* [Thymeleaf](http://www.thymeleaf.org/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Testing
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Tools that test from object to interface level*
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
* [Apache JMeter](http://jmeter.apache.org/) * Functional testing and performance measurements *
|
2014-07-09 10:08:42 -04:00
|
|
|
* [Mockito](http://code.google.com/p/mockito/)
|
2014-07-10 04:13:02 -04:00
|
|
|
* [Arquillian](http://arquillian.org/)
|
|
|
|
* [Selenium](http://docs.seleniumhq.org/)
|
|
|
|
* [VisualVM](http://visualvm.java.net/)
|
|
|
|
* [Eclipse Memory Analyzer Tool](http://www.eclipse.org/mat/)
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Utility
|
2014-07-10 04:13:02 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Libraries which provide unspecific functionality, e.g. optimized datastructures*
|
|
|
|
|
2014-07-10 04:13:02 -04:00
|
|
|
* [Apache Commons](http://commons.apache.org/)
|
|
|
|
* [Google Guava](http://code.google.com/p/guava-libraries/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Web Crawling
|
2014-07-09 16:56:32 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Libraries that analyze the content of websites*
|
|
|
|
|
2014-07-09 16:56:32 -04:00
|
|
|
* [Apache Nutch](http://nutch.apache.org/)
|
|
|
|
* [Crawler4j](https://code.google.com/p/crawler4j/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Web Frameworks
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Frameworks that handle the communication between the layers of an web application*
|
|
|
|
|
2014-07-09 10:08:42 -04:00
|
|
|
* [Spring](http://spring.io/)
|
|
|
|
* [Grails](https://grails.org/)
|
|
|
|
* [Vaadin](https://vaadin.com/)
|
|
|
|
* [GWT](http://www.gwtproject.org/)
|
|
|
|
* [Apache Wicket](http://wicket.apache.org/)
|
|
|
|
* [Play](http://www.playframework.com/)
|
|
|
|
* [Apache Struts](http://struts.apache.org/)
|
2014-07-09 16:56:32 -04:00
|
|
|
* [PrimeFaces](http://primefaces.org/)
|
2014-07-09 10:08:42 -04:00
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Twitter
|
2014-07-09 15:47:53 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*People to follow*
|
|
|
|
|
2014-07-09 15:47:53 -04:00
|
|
|
* [Adam Bien](https://twitter.com/AdamBien/)
|
|
|
|
* [Antonio Goncalves](https://twitter.com/agoncal/)
|
|
|
|
* [Arun Gupta](https://twitter.com/arungupta/)
|
|
|
|
* [Java](https://twitter.com/java/)
|
|
|
|
* [Java EE](https://twitter.com/Java_EE/)
|
|
|
|
* [Java.net](https://twitter.com/javanetbuzz/)
|
|
|
|
* [Joshua Bloch](https://twitter.com/joshbloch/)
|
|
|
|
* [Pete Muir](https://twitter.com/plmuir/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
## Websites
|
2014-07-09 15:47:53 -04:00
|
|
|
|
2014-07-10 06:10:22 -04:00
|
|
|
*Important websites*
|
|
|
|
|
2014-07-09 15:47:53 -04:00
|
|
|
* [Java.net](http://java.net/)
|
|
|
|
|
2014-07-09 09:35:42 -04:00
|
|
|
# Contributing
|
|
|
|
|
|
|
|
Contributions are very welcome. Just mind the general style.
|