A general-purpose, object-oriented programming language used for web development. Java is one of the most popular programming languages in use, particularly for client-server web applications. 

Java build tools

Ant, Maven, Gradle.

Java testing tools

jUnit, TestNG, Cactus, EasyMock, Mockito, Cucumber.


A message broker that provides an ability to communicate from more than one client or server.


An end-to-end Java EE framework that makes plainer application development by supplying out-of-the-box infrastructure services and a visual and declarative development experience. It supports rapid app development based on ready-to-use design patterns, metadata-driven and visual tools.

Apache Ant

A Java library and command-line tool, enabling to compile, assemble, test and run Java apps. Can be used for building both Java and non-Java applications (e.g., C or C++ apps). 

Apache Camel

An open source Java framework that focuses on making integration of different applications easier and more accessible to developers.

Burp Suite

A Java application and is distributed as a standalone Java executable file, with the .JAR extension. Is made to be used by hands-on testers to support the testing process.


A test framework for unit testing server-side Java code. Its main purpose is to lessen the cost of writing tests for server-side code.


A framework for developing NLP components in Java. It is built on top of Apache UIMA.


Stands for Direct Web Remoting. Is a Java library that helps interaction between Java and JavaScript. It includes Ajax technology.


An open source software from the Eclipse Foundation, a reference implementation for JPA, provides an extensible framework that allows Java developers to interact with databases, web services, Object XML mapping etc. 


A robust, proven and full-featured Java cache product that enables you to boost performance, simplify scalability, offload your database.


Stands for the Enterprise JavaBeans. A server-side component architecture for Java EE. It enables rapid and simplified development of large-scale distributed apps.


A template engine that generates different text output with a basis on templates and various data. 


An open-source Java application server project, created by Sun Microsystems, allows to generate enterprise technologies that are scalable and additional services that can be installed based on preference.


An open source, advanced general purpose build management system, built on ANT and Maven repositories, the initial plugins are primarily focused around Java, Groovy and Scala development. 


A framework that is used to create web applications with the help of Groovy programming language (based on Java platform). It has many plugins available that give an easy integration of add-on features, integrates with JVM and provides numerous powerful features.


A dynamic, object-oriented programming language for the Java platform that can be used to combine Java modules, extend existing Java apps and write new ones as well as to test Java code. Its code is more compact than Java code because it doesn't need all the elements that Java needs. 


A set of core libraries for Java developed by Google. It includes immutable collections, new collection types, a graph library, functional types and other features. 


An open source set of development tools for building and optimizing complex browser-based Java applications, and deploy them as JavaScript. It is used by products at Google, including Google AdWords, Orkut etc. 


An open source ORM framework that simplifies the use of relational databases in Java apps, presenting relational data as simple Java objects.


A Java  e-commerce framework built on top of Spring framework, uased to build great customer experiences with a top commerce solution, handle high traffic.

IntelliJ IDEA

A Java integrated development environment (IDE) for developing computer software, created by JetBrains, it is centered on programmer productivity, can be used for commercial development, supports various programming language. 


Stands for Java Authentication and Authorization Service. An optional extension to the Java SE and is mainly used for the distinction of concerns of user authentication so that they may be handled separately.

Development by