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.


Popular and widely used messaging broker with moderate performance, wide protocol support written in Java together with a full Java Message Service (JMS) client. It provides "Enterprise Features" which in this case means fostering the communication 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

Software tool for automating software build processes. It is an XML contained list of procedural steps to perform in order to build a software project. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications.

Apache Camel

Software that allows to create processing pipelines in a declarative manner, in XML or via a Java DSL. Focuses on making integration easier and more accessible to developers. It does this by providing: concrete implementations of all the widely used Enterprise Integration Patterns (EIPs), connectivity to a great variety of transports and APIs, easy to use Domain Specific Languages (DSLs) to wire EIPs and transports together.

Burp Suite

Integrated platform for performing security testing of web applications. Its various tools work seamlessly together to support the entire testing process, from initial mapping and analysis of an application’s attack surface, through to finding and exploiting security. vulnerabilities.


Simple test framework for unit testing server-side java code (Servlets, EJBs, Tag Libs, Filters). The intent of Cactus is to lower the cost of writing tests for server-side code. It uses JUnit and extends it.



Framework for developing statistical natural language processing (NLP) components in Java and is built on top of Apache UIMA. Provides a rich feature extraction library that can be used with any of the machine learning classifiers.


Java open source library that helps developers write web sites that include Ajax technology. It allows code in a web browser to use Java functions running on a web server as if those functions were within the browser.


Comprehensive open-source Java persistence solution addressing relational, XML, and database web services. The software provides an extensible framework that allows Java developers to interact with various data services, including databases, web services, Object XML mapping (OXM), and Enterprise Information Systems (EIS).


Standards-based cache that boosts performance, offloads your database, and simplifies scalability. Distributed cache solution, lighter than others, but also with less features, which is quite often used together with an ORM as a second level cache to cache objects and sometimes full queries.


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


Template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. Templates are written in the FreeMarker Template Language (FTL).


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.


Build tool that does not use XML for build script, instead it provides a domain specific language (DSL). This DSL is based on groovy, another JVM compatible language. Gradle combines the power and flexibility of Apache Ant with the dependency management and conventions of Apache Maven


Web application framework that uses the Apache Groovy programming language. Grails seamlessly and transparently integrates and interoperates with Java, the JVM, and existing Java EE containers. Provides full stack functionality GSP Pages, MVVC control, GORM, etc.


A flexible programming language with functional programming aspects built on top of the JVM and fully compatible with Java. Integrates smoothly with any Java program and delivers powerful features, including scripting capabilities, domain-specific Language authoring, runtime and compile-time meta-programming and functional programming.


Java-based library developed by Google. Contains several of Google's core libraries that they rely on in their Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.


Development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript.


Object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate is a persistence framework which is used to persist data from Java environment to database.


Solution for Commerce, Marketing, Sales, Service and Billing in any industry supporting open standards, multi-channel touch points. Provides a complete multichannel commerce software solution that integrates product content, commerce operations, and the extended channel to help retailers, manufacturers, and other businesses.

IntelliJ IDEA

Java IDE available as a commercial edition and for free as a community edition. Specifically designed to maximize developer productivity. Powerful static code analysis and ergonomic design.


A set of application program interfaces (APIs) that can determine the identity of a user or computer attempting to run Java code and ensure that the entity has the right to execute the functions requested.

Development by