FANDOM


Fundamentals

  • Intervals, Durations, Periods
    • An interval in Joda-Time represents an interval of time from one instant to another instant.
    • A duration in Joda-Time represents a duration of time measured in milliseconds. The duration is often obtained from an interval.
    • A period in Joda-Time represents a period of time defined in terms of fields, for example, 3 years 5 months 2 days and 7 hours.

API Documentation and Source

Java SE

Class Method Description Remarks
java.lang.Object
wait(long timeout)
clone()
hashCode()
finalize()
java.lang.Runtime
addShutdownHook(Thread hook)
java.util.Optional<T> Java 8+

Java EE

Common Libraries

Library Version API Source Maven Remarks Classes
JSR-305 3.0.2 FindBugs-JSR305 3.0.2 API com.google.code.findbugs » jsr305 JSR 305: Annotations for Software Defect Detection @Nonnull, @Nullable, @ParametersAreNonnullByDefault, @ThreadSafe, @NotThreadSafe, @Immutable
javax.inject 1 Package javax.inject API javax.inject » javax.inject » 1 JSR 330: Dependency Injection for Java
Bean Validation 2.0 Bean Validation API 2.0.1.Final javax.validation » validation-api » 2.0.1.Final Bean Validation 2.0 (JSR 380)
JSR 380: Bean Validation 2.0
@NotEmpty, @NotBlank, @Positive, @PositiveOrZero, @Negative, @Min, @Max, @Size, @Pattern
1.1 Bean Validation API 1.1.0.Final javax.validation » validation-api » 1.1.0.Final Bean Validation 1.1 (JSR 349)
JSR 349: Bean Validation 1.1
Hibernate Validator 6.0 Hibernate Validator 6.0.9.Final API org.hibernate » hibernate-validator Hibernate Validator 6.0.9.Final Reference Guide
5.2 Hibernate Validator 5.2.5.Final API org.hibernate » hibernate-validator » 5.2.5.Final Hibernate Validator 5.2.5.Final Reference Guide

JSRs

JSR Description Remarks
JSR 94: Java Rule Engine API Defines a Java runtime API for rule engines.
JSR 250: Common Annotations for the Java Platform Develop annotations for common semantic concepts in the J2SE and J2EE platforms that apply across a variety of individual technologies. @Resource, @Resources, @PostConstruct, @PreDestroy
JSR 303: Bean Validation Define a meta-data model and API for JavaBean validation based on annotations, with overrides and extended meta-data through the use of XML validation descriptors.
JSR 305: Annotations for Software Defect Detection Work to develop standard annotations (such as @NonNull) that can be applied to Java programs to assist tools that detect software defects. @Nonnull, @Nullable, @Immutable, @ThreadSafe, @NotThreadSafe, @WillClose
JSR 308: Annotations on Java Types Extends the Java annotation syntax to permit annotations on any occurrence of a type. Type Annotations Specification
JSR 330: Dependency Injection for Java
JSR 349: Bean Validation 1.1 Standardizes constraint definition, declaration and validation for the Java platform. Bean Validation API 1.1.0.Final
JSR 352: Batch Applications for the Java Platform
JSR 353: Java API for JSON Processing (JSON-P)
JSR 356: Java API for WebSocket
JSR 380: Bean Validation 2.0 Aims at evolving the Bean Validation specification by leveraging Java 8 language constructs for the purposes of validation.

Basic

  • Common System Properties
Property Description Values Remarks
file.encoding UTF-8
user.country KR, US
user.language ko, en
user.timezone Asia/Seoul
com.sun.management.jmxremote N/A
com.sun.management.jmxremote.port IP port number
com.sun.management.jmxremote.ssl true, false
com.sun.management.jmxremote.authenticate true, false
com.sun.management.jmxremote.local.only true, false

Data Type

String and Bytes

Temporal Data Types

Category Class Description Remarks
JDK Instant An instantaneous point on the time-line.
LocalDate A date without a time-zone in the ISO-8601 calendar system. 2007-12-03
LocalDateTime A date-time without a time-zone in the ISO-8601 calendar system. 2007-12-03T10:15:30
LocalTime A time without a time-zone in the ISO-8601 calendar system. 10:15:30
OffsetDateTime
OffsetTime
ZonedDateTime
ZoneId A time-zone ID Europe/Paris
ZoneOffset A time-zone offset from Greenwich/UTC +02:00
TimeZone Represents a time zone offset, and also figures out daylight savings.
DateTimeFormatter
SimpleDateFormat
Apache Commons FastDateFormat A fast and thread-safe version of SimpleDateFormat
FastTimeZone Faster methods to produce custom time zones.
Spring @DateTimeFormat
DateTimeFormat.ISO enum
@JsonFormat
Typical Code Samples
long epochTime = Instant.now().getEpochSecond();    // get epoch time of now in second
long epochMilli = Instant.now().toEpochMilli();     // get epoch time of now in milli-second

LocalDateTime birthday = LocalDateTime.of(2012, Month.FEBRUARY, 21, 0, 0, 0);
long birthdayEpoch = birthday.atZone(ZoneId.systemDefault()).toEpochSystem();  // `Instant.from` doesn't support `LocalDateTime` class

Concurrency

  • Valueable classes
Classes Description
java.util.concurrent.locks.Condition Condition factors out the Object monitor methods (wait, notify and notifyAll) into distinct objects to give the effect of having multiple wait-sets per object, by combining them with the use of arbitrary Lock implementations.
com.google.common.util.concurrent.Monitor A synchronization abstraction supporting waiting on arbitrary boolean conditions.
java.util.concurrent.atomic.LongAdder usually preferable to AtomicLong when multiple threads update a common sum that is used for purposes such as collecting statistics

Annotation

Annotations Description Included
java.lang.annotation package @Documented, @Inherited, @Repeatable, @Retention, @Target
Dependency Injection Annotations in Java EE 7 @Inject, @Named, @Qualifier
JSR 305 Annotations for Software Defect Detection 3.0.1 API @Nonnull, @Nullable, @Immutable, @ThreadSafe, @NotThreadSafe, @GuardedBy
Bean Validation API 1.1.0 Annotations @Min, @Max, @Size, @Pattern
Bean Validation API 2.0 Annotations @Positive, @PositiveOrZero, @Negative, @NegativeOrZero
Hibernate Validator 5.2.4.Final Annotations
Hibernate Validator 6.1 Annotations
Hibernate Validator 7.0 Annotations
Swagger 1.5 Annotations @Api, @ApiOperation, @ApiParam, @ApiModel, @ApiModelProperty

Reflection

Collection

API

Class Method Description Remarks
Arrays Contains various methods for manipulating arrays binarySearch, fill, parallelSort, sort, stream
static T> List<T> asList(T...) Returns a fixed-size list backed by the specified array.
Collections Consists exclusively of static methods that operate on or return collections. binarySearch, min, max, sort, reverse, unmodifiableList, unmodifiableMap
static <T> List<T> emptyList() Returns an empty list (immutable). This list is serializable.
static <K,V> Map<K,V> emptyMap() Returns an empty map (immutable). This map is serializable.
static <T> List<T> singletonList(T) Returns an immutable list containing only the specified object.
static <K,V> Map<K,V> singletonMap(K, V) Returns an immutable map, mapping only the specified key to the specified value.
ArrayUtils Operations on arrays, primitive arrays (like int[]) and primitive wrapper arrays (like Integer[]). contains, indexOf, insert, nullToEmpty
static Object[] nullToEmpty(Object[]) Defensive programming technique to change a null reference to an empty one.
CollectionUtils Provides utility methods and decorators for Collection instances.
ListUtils Provides utility methods and decorators for List instances.
static <T> List<T> emptyIfNull(List<T>) Returns an immutable empty list if the argument is null, or the argument itself otherwise.

https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#emptyList--

Regex

Generic

Enum

Lambda

IO and Networking

Caching

XML

JDBC

  • JDK and JDBC
JDK JDBC JSR
J2SE 1.4 JDBC 3.0 JSR 54: JDBC 3.0 Specification
Java SE 6 JDBC 4.0 JSR 221: JDBC 4.0 API Specification
Java SE 7 JDBC 4.1
Java SE 8 JDBC 4.2 JSR-000221 JDBC API Specification 4.2 Maintenance Release 2
Database Connection URL Connection Properties Drivers Remarks
Oracle Database OracleDataSource.setConnectionProperties(java.util.Properties value)
DB2 Properties for the IBM Data Server Driver for JDBC and SQLJ
Microsoft SQL Server jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]] Setting the Connection Properties - SQL Server 2008 R2
MySQL Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J from MySQL 5.0 Reference
HSQLDB Connection properties

Oracle Database

IBM DB2

Microsoft SQL Server

MySQL

HSQLDB

Access

Security

                               Java Security
                                   |  
                                   |
            +------------------ JCA/JCE ------------------+
            | Signature                Cipher             |
            | Message Digest           Key Agreement      |
            | Key Script Generator     Key Generator      |
            | Key Factory              Secret Key Factory |
            | Algorithm Parameters     MAC                |
            | Key Store                SPI                |
            +---------------------------------------------+
                                   |
                                   |
                        CSP (Cryptographic Service Provider)
                                   |
    +---------+--------+-----------+---------+--------+--------+
    |         |        |           |         |        |        |  
 SunPKCS11   SUN   SunRsaSign   SunJSSE   SunJCE  SunMSCAPI  SunEC

Sun PKCS#11

  • Sun PKCS#11 provider : enables existing applications written to the JCA and JCE APIs to access native PKCS#11 tokens.

Internationalization


Formatting

API
Class Package Description Remarks
ResourceBundle java.util
PropertyResourceBundle java.util
MessageFormat java.text
MessageSource org.springframework.context
ResourceBundleMessageSource org.springframework.context.support
ReloadableResourceBundleMessageSource org.springframework.context.support

JMX

  • Enabling built-in JMX agent using system properties
> java MyApplication -Dcom.sun.management.jmxremote.port=3333 \
                     -Dcom.sun.management.jmxremote.ssl=false \
                     -Dcom.sun.management.jmxremote.authenticate=false \
                     -Dcom.sun.management.jmxremote.authenticate=false

JNI

JavaFX

Javadoc

Diagnostics

Expression Language (EL)

JAX-RS

Batch

Logging

Testing

Debugging

AOP

misc

Frameworks

IoC

Spring Framework

Guice

Data Access

JPA

References
Annotation Description Remarks
@Id Specifies the primary key of an entity.
@Column Specifies the mapped column for a persistent property or field.
@Access Used to specify an access type to be applied to an entity class, mapped superclass, or embeddable class, or to a specific attribute of such a class. AccessType.FIELD, AccessType.PROPERTY
Readings

Hibernate

References
Hibernate Types
Type SQL Type Description Remarks
YesNoType CHAR(1), ENUM('Y','N') 'N'/'n' is false, 'Y'/'y' is true. The uppercase value is written to the database. yes_no
Readings

iBATIS

MyBatis

MyBatis-Spring

MyBatis-Spring-Boot-Starter

MyBatis Type Handlers for JSR 310: Date and Time API

MV*

Stripes

  • http://www.stripesframework.org/
  • Desc. : a presentation framework for building web applications using the latest Java technologies.
  • License : Apache License v2

Integration

Apache Camel

Spring Integration

ActiveMQ

Networking

Netty

Apache MINA

Distributed

Storm

References
Readings

Apache River

Logging

SLF4J

Logback

References
Readings

Log4j

Log4j Extra

Log4j 2

  • http://logging.apache.org/log4j/2.x/
  • Desc. : an upgrade to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides many of the improvements available in Logback while fixing some inherent problems in Logback's architecture.

log4jdbc

  • http://code.google.com/p/log4jdbc/
  • Desc. : a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system.

Meta

Bean Validation

  • http://beanvalidation.org/
  • Desc. : provide an object level constraint declaration and validation facility for the Java application developer, as well as a constraint metadata repository and query API.
Readings

Hibernate Validator

Cheker Framework

AOP

AspectJ

Templating

FreeMarker

  • http://freemarker.sourceforge.net/
  • Desc. : a "template engine"; a generic tool to generate text output (anything from HTML to autogenerated source code) based on templates.
  • License : liberal BSD-style open source license
  • Written in : Java
References
Class/Interface/Method Description Remarks
Class Configuration The main entry point into the FreeMarker API; encapsulates the configuration settings of FreeMarker, also serves as a central template-loading and caching service. thread-safe, sharable, expensive and meant to be application-level singletons.
public void Configurable.setSetting() Sets a FreeMarker setting by a name and string value.
Class Template Stores an already parsed template, ready to be processed (rendered) for unlimited times, possibly from multiple threads. thread-safe.
Settings
Setting Description Remarks
locale local codes with the usual format in Java, such as "en_US", or since 2.3.26, "JVM default" Configurable.setLocale()
time_zone With the format as TimeZone.getTimeZone(java.lang.String) defines it.
Readings

Rule Engine

Drools
  • http://www.drools.org/
  • Desc. : a Business Rules Management System (BRMS) solution
  • License :
  • Written in :
  • Sources
  • Maven artifacts

Testing

JUnit

JUnit 5

References
Classes/Packages
Class/Package Description Remarks
Annotation Type TestInstance a type-level annotation that is used to configure the lifecycle of test instances for the annotated test class or test interface TestInstance.Lifecycle PER_CLASS, TestInstance.Lifecycle PER_METHOD
Annotation Type ExtendWith a repeatable annotation that is used to register extensions for the annotated test class or test method
Annotation Type BeforeAll signal that the annotated method should be executed before all tests in the current test class
Annotation Type BeforeEach signal that the annotated method should be executed before each @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, and @TestTemplate method in the current test class
Annotation Type AfterEach signal that the annotated method should be executed after each @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, and @TestTemplate method in the current test class
Annotation Type AfterAll signal that the annotated method should be executed after all tests in the current test class
Class JUnitPlatform JUnit 4 based Runner which runs tests on the JUnit Platform in a JUnit 4 environment
Readings

TestNG

Mockito

Springockito

EasyMock

REST Assured

  • Readings
    • RequestSpecBuilder source
      • Both RequestSpecification and RequestSpecification are not immutable nor thread-safe, even worse every call of RequestSpecification.build would return same object.
      • Both RequestSpecification and RequestSpecification should be in method local scope.

Hamcrest

Web Services

Jersey

Batch

Spring Batch

JBeret

  • https://github.com/jberet/jsr352
  • Desc. : an implementation of JSR 352 (Batch Applications for the Java Platform).
  • License : Eclipse Public License 1.0
  • Readings

Security

Apache Shiro

  • http://shiro.apache.org/
  • Desc. : a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management.
  • License : Apache License, Version 2.0
  • Readings

Libraries

Fundamental

Apache Commons

Module Version API Source Maven Remarks
Lang 3.10 Commons Lang 3.10 API Commons Lang 3.10 Sources
3.3.2 Commons Lang 3.3.2 API
Collections 4.1 Commons Collections 4.4 API
4.0 Commons Collections 4.0 API
3.2.2 Commons Collections 3.2.2 API
Text 1.8 Commons Text 1.7 API
Validator 1.4.0 Commons Validator 1.4.0 API
IO 2.4 Commons IO 2.4 API
Compress 1.6-SNAPSHOT Commons Compress 1.6-SNAPSHOT API
Math 3.2 Commons Math 3.2 API Commons Math 3.2 source
2.2 Commons Math 2.2 API Commons Math 2.2 source
Configuration 2.0-alpha2 Commons Configuration 2.0-alpha2 API
1.10 Commons Configuration 1.10 API
DBCP 2.1 Apache Commons DBCP 2.1 API
1.4 Commons DBCP 1.4 API
Imaging 1.0-SNAPSHOT Apache Commons Imaging 1.0-SNAPSHOT API
Commons Lang
Class Method Description Remarks
EqualsBuilder
ReflectionToStringBuilder
Validate assists in validating arguments or states via exclusiveBetween, inclusiveBetween, isTrue, notBlank, notEmpty, or validState methods
ArrayUtils
nullToEmpty(String[])
nullToEmpty(T[], Class<T[]>)
DateUtils
parseDateStrictly
ExceptionUtils Provides utilities for manipulating and examining Throwable objects.
wrapAndThrow(Throwable throwable) Throw a checked exception without adding the exception to the throws clause of the calling method.
Commons Collections
Commons Validator
Commons Text
Class Method Description Remarks
WordUtils Operations on Strings that contain words.
capitalize(String str, char... delimiters) Capitalizes all the delimiter separated words in a String. Only the first character of each word is changed.
capitalizeFully(String str, char... delimiters) Converts all the delimiter separated words in a String into capitalized words. Camel-case
Commons IO
Commons Codec
Commons Compress
Commons Math
Commons Configuration
Commons DBCP
Commons Imaging

Commons Collections with Generics

Guava

Javolution

  • http://javolution.org/
  • Desc. : a real-time library aiming to make Java or Java-Like/C++ applications faster and more time predictable.
  • License : BSD License
  • Readings

Kryo

AssertJ

Joda Time

Typesafe Config Library

ZeroTurnaround ZIP Library

Concurrency

RxJava

  • https://github.com/ReactiveX/RxJava
  • Desc. : Apache License 2.0
  • License : a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.

Prometheus

Jetlang

  • http://code.google.com/p/jetlang/
  • Desc. : a complement to the java.util.concurrent package introduced in 1.5 and should be used for message based concurrency similar to event based actors in Scala.

Annotations

Immutables

Lombok

References
Class Description Remarks
@Getter
@Setter
@Accessors chain property
AllArgsConstructor Generates an all-args constructor
NoArgsConstructor Generates a no-args constructor.
@EqualsAndHashCode Generates implementations for the equals and hashCode methods inherited by all objects, based on relevant fields.
@ToString enerates an implementation for the toString method inherited by all objects, consisting of printing the values of relevant fields.
Readings

Reflection

BCEL

ASM

cglib

Javassist

ReflectASM

EL

OGNL (Object Graph Navigation Library)

  • http://commons.apache.org/proper/commons-ognl/
  • Desc. : an expression language for getting and setting properties of Java objects, plus other extras such as list projection and selection and lambda expressions.
  • License : Apache License, Version 2.0

Java Expression Language (JEXL)

  • http://commons.apache.org/jexl/
  • Desc. : a library intended to facilitate the implementation of dynamic and scripting features in applications and frameworks written in Java.

MVEL

Parsing

javaparser

JTidy

HtmlCleaner

jsoup

Rhino

SnakeYAML

XML

JAXP

  • https://jaxp.java.net/
  • Desc. : enables applications to parse, transform, validate and query XML documents using an API that is independent of a particular XML processor implementation.

Xerces2

Xalan

JAXB

EclipseLink MOXy

Saxon

Jaxen

PsychoPath

Woodstox

  • http://woodstox.codehaus.org/
  • Desc. : a high-performance validating namespace-aware StAX-compliant (JSR-173) Open Source XML-processor written in Java.
  • License : LGPL 2.1 and ASL 2.0

JARV

MSV

  • https://msv.java.net/
  • Desc. : a Java technology tool to validate XML documents against several kinds of XML schemas.
  • License : BSD

ph-schematron

JSON

Jackson

References
  • Deserialization Features
    • ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT (default: false)
    • ACCEPT_EMPTY_STRING_AS_NULL_OBJECT (default: false)
Category Class Type Description Remarks
Core ObjectMapper class Provides functionality for reading and writing JSON, either to and from basic POJOs (Plain Old Java Objects), or to and from a general-purpose JSON Tree Model (JsonNode), as well as related functionality for performing conversions. fully thread-safe provided that ALL configuration of the instance occurs before ANY read or write calls.
JsonParser.Feature enum Defines all on/off features for parsers.
JsonGenerator.Feature enum Defines all togglable features for generators.
SerializationFeature enum Defines simple on/off features that affect the way Java objects are serialized.
SerDe DeserializationFeature enum Defines simple on/off features that affect the way Java objects are deserialized from JSON.
MapperFeature enum Defines simple on/off features to set for ObjectMapper, and accessible (but not changeable) via ObjectReader and ObjectWriter
StdSerializer<T> class Base class used by all standard serializers, and can also be used for custom serializers (in fact, this is the recommended base class to use).
StdDeserializer<T> class Base class for common deserializers.
DateSerializer class For efficiency, we will serialize Dates as longs, instead of potentially more readable Strings.
DateDeserializers class Container class for core JDK date/time type deserializers. CalendarDeserializer, DateDeserializer, TimestampDeserializer
LocalDateSerializer class Serializer for Java 8 temporal LocalDates.
LocalDateTimeSerializer class Serializer for Java 8 temporal LocalDateTimes.
LocalDateDeserializer class Deserializer for Java 8 temporal LocalDates.
LocalDateTimeDeserializer class Deserializer for Java 8 temporal LocalDateTimes.
Annotation @JsonSerialize annotation Configuring serialization aspects, by attaching to "getter" methods or fields, or to value classes.
@JsonDeserialize annotation Configuring deserialization aspects, by attaching to "setter" methods or fields, or to value classes.
@JsonProperty annotation Define a non-static method as a "setter" or "getter" for a logical property (depending on its signature), or non-static object field to be used (serialized, deserialized) as a logical property.
@JsonAlias annotation Define one or more alternative names for a property, accepted during deserialization as alternative to the official name.
@JsonTypeInfo annotation Configuring details of if and how type information is used with JSON serialization and deserialization, to preserve information about actual class of Object instances. polymorphic types
@JsonUnwrapped annotation Indicate that a property should be serialized "unwrapped"
Jackson 2.9
Jackson 2.8
Jackson 2.6
Jackson 2.2
Jackson 1.9
Modules
Readings
Databinding
Category Annotation Description Remarks
Serialization Annotations @JsonValue Tells Jackson to use this method to generate the JSON string from the Java object. method level
@JsonSerialize Tells Jackson to use the declared custom serializer during the serialization of the field, which is marked with this annotation.
Deserialization Annotations @JsonCreator Tells Jackson that the JSON properties can be mapped to the fields of a constructor of the POJO.
@JsonDeserialize Tells Jackson to use a custom deserializer while deserializing the JSON to Java object.
General Annotations @JsonProperty Used to map property names with JSON keys during serialization and deserialization.
@JsonFormat
@JsonUnwrapped
SerDe
misc

jsonp

Jayway JsonPath

google-gson

json-schema-validator

Scheduling

Quartz

Networking

Apache HttpComponents

References
API
Class Package Description Remarks
HttpHeaders javax.ws.rs.core An injectable interface that provides access to HTTP header information.
HttpHeaders org.apache.http Constants enumerating the HTTP headers. RFC1945 (HTTP/1.0), RFC2616 (HTTP/1.1), RFC2518 (WebDAV)
MediaType javax.ws.rs.core An abstraction for a media type.
ContentType org.apache.http.entity Content type information consisting of a MIME type and an optional charset.
Readings

JSch

Connectivity

c3p0

  • http://www.mchange.com/projects/c3p0/
  • Desc. : easy-to-use library for making traditional JDBC drivers "enterprise-ready" by augmenting them with functionality defined by the jdbc3 spec and the optional extensions to jdbc2.
  • License : LGPL v.2.1 or the EPL v.1.0
  • Maven artifacts : com.mchange » c3p0
  • Readings

TransactionsEssentials

Jolokia

SAP JCo

Security

Jasypt

  • http://www.jasypt.org/
  • Desc. : a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.
  • License : Apache License 2.0
Readings

Bouncy Castle

  • http://www.bouncycastle.org/
  • Desc. : a collection of APIs used in cryptography providing APIs for both the Java and the C# programming languages.
  • License : MIT license
Readings

Java JWT

Readings

IAIK PKCS#11 Wrapper

Readings

Formatter

xqpretty

Image Processing

JavaCV

ImgLib2

JCodec

Xuggler

Humble Video

imgscalr

Marvin

vlcj

Graphics

JGraphX

JFreeChart

JGoodies

Native

JNA

JavaCPP

misc

JUNG

  • http://jung.sourceforge.net/
  • Desc. : a software library that provides a common and extensible language for the modeling, analysis, and visualization of data that can be represented as a graph or network.

GEF

  • http://gef.tigris.org/
  • Desc. : to build a graph editing library that can be used to construct many, high-quality graph editing applications.
  • License : BSD License

SIGAR

  • http://sourceforge.net/projects/sigar/
  • Desc. : a cross-platform, cross-language library and command-line tool for accessing operating system and hardware level information in Java, Perl and .NET.

SvnClientAdapter

Vavr

Tools

Compiler Generator

ANTLR

JavaCC

JBurg

  • http://jburg.sourceforge.net/
  • Desc. : a compiler construction tool that is often used in the compiler's back end to convert a tree-structured representation of a program into machine code.
  • License : Common Public License

Janino

Decompiler

JD Project

  • http://jd.benow.ca/
  • Desc. : aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions.
  • License :

JODE

Obfuscator

ProGuard

yGuard

  • http://www.yworks.com/en/products_yguard_about.html
  • Desc. : a free Java bytecode obfuscator and shrinker that improves your software deployment by prohibiting unwanted access to your source code and drastically shrinking the processed Jar files at the same time.
  • License :

Code Analysis

FindBugs

Readings
Plug-ins

PMD

Sonar

JDepend

Checkstyle

Rat

JavaNCSS

Launcher

WinRun4J

Monitoring and Diagnostic

VisualVM

Readings

NetBeans Profiler

Java Mission Control

IBM Health Center

BTrace

Jolokia

  • https://jolokia.org/
  • Desc. : remote JMX with JSON over HTTP
  • License : Apache License, Version 2.0

jmxtrans

hawtio

  • http://hawt.io/
  • Desc. : a modular web console for managing your Java stuff
  • License : Apache License, v2.0
  • Sources :
  • Maven artifacts

Metrics

Dump Analysis

jhat

IBM HeapAnalyzer

Eclipse Memory Analyzer

IBM Thread and Monitor Dump Analyzer for Java

ThreadLogic

Thread Dump Analyzer

GCViewer

IBM Pattern Modeling and Analysis Tool for Java Garbage Collector

IBM Monitoring and Diagnostic Tools - Garbage Collection and Memory Visualizer

Installer

IzPack

  • http://izpack.org/
  • Desc. : A widely used tool for packaging applications on the Java platform.


Community content is available under CC-BY-SA unless otherwise noted.