This page is consists of two main topics: Application Frameworks and Integration Frameworks.

Application Framework is a set of common software routines (e.g. Jakarta Project creates and maintains open source software for the Java platform under the ASF) that provides a foundation structure for developing an application. Frameworks take the tedium out of writing all the program code for an application from scratch. Object-oriented application frameworks (see the lecture), which are the norm today, are structured as a class library. Object Oriented framework consists of a set of classes that work together to solve a family of related problems. Programmers can use inheritance and delegation to extend the framework. Examples are RogueWave Tools.h++, Model-View Controller (MVC), Microsoft Foundation Classes (MFC). There are also frameworks geared to specific purposes (below table shows Specialized Application Frameworks); for example, a framework for a content management system (CMS) would include the infrastructure for developing Web e-commerce, document maintenance and interactive user activities such as blogs and wikis (see Joomla!).

See also some modern web technologies, like: Angular, Node.Js, React.js, Bootstrap, Gulp and Grunt, Python Frameworks, REST Django and other web technologies.

Top 10 Java Frameworks, Best 10 for Modern Web Apps, Udacity google and list of below items.

Table: Frameworks grouped by Category

See also: Open Source Software in Java, www.bestwebframeworks.com, projects.apache.org, Portals

Model View Controller

Model View Controller (MVC) is an architecture for building applications that separate the data (model) from the user interface (view) and the processing (controller). Providing a programming interface between the data and the processing has been a primary concept in information technology for decades. MVC is widely used in Web-based application frameworks.
In practice, MVC views and controllers are often combined into a single object because they are closely related. For example, the controller code validates a request for data and causes it to be returned in a view. View-controller objects are tied to only one model; however, a model can have many view-controller objects associated with it.

Implementations of MVC as Web-based Frameworks

Web application frameworks (e.g. Struts, Spring MVC are examples of Implementaion of MVC) are software tools that are commonly used to aid in the creation and management of various types of online applications. A web application framework can involve designing and launching pages for a website or provisioning various applications to provide a wide range of web services to consumers. The framework tends to include all the elements needed to accomplish the desired tasks, thus eliminating the need to secure the necessary tools from different sources (see also: for better framework). There are numerous Java frameworks either in development or in use. Many of these frameworks are built on top of, or borrow elements from the Java EE platform or Eclipse etc.

Spring and EJB Framework

In an enterprise application, business logic forms the basis of transforming the persisted data. That is the reason why the business logic layer is considered the most important layer of any enterprise application. Typically, the Java Enterprise Edition (JEE) component that was used to implement business logic was Enterprise Java Beans (EJB). However, EJBs are heavy weight components that require application servers to run.

This was the scenario before the Spring Framework came into the picture. The Spring Framework provides a lightweight container to run the objects implementing business logic. In other words, Spring Framework-based business objects do not require an application server to run. Spring Framework is "An open-source layered Java/J2EE application framework having a light-weight container implementing Inversion-of-Control and Aspect Oriented Programming." The key points here are "layered application framework" and "Inversion of Control and Aspect Oriented Programming." See also Continuous integration ( CI ).

Comparision of EJB and Spring: Spring and EJB, Comparision, improved EJB, in Harmony, use Spring within EJB, AOP (Interceptors in EJB)

XDoclet - Attribute-Oriented Programming: XDoclet - About

Spring Boot and Microservices

See more about Spring Boot Reference Documentation here, GitHub

Java WEB Frameworks

Comparision of web frameworks: list of other java web frameworks, Comparing, Struts1 and Struts2, Comparison wiki, Comparison 1, Comparison 2.

Persistence Frameworks in Java

Other Open Source Persistence Frameworks in Java, here
  • iBatis - The SQL Maps framework will help to significantly reduce the amount of Java code that is normally needed to access a relational database. See more: About, Tutorial
  • Apache Cayenne - is a powerful, full-featured Java ORM framework, About. One of the main Cayenne distinctions is that it comes with cross-platform modeling GUI tools.
  • JavaSE Database Technology - (e.g. JDBC, Derby) is a programming framework for writing programs that access information stored in databases, spreadsheets, and flat files.

See also • SQL TutorialDatabase Management Systems (DBMS)Object Relational (OR) Mapping
Comparision of persistent frameworks: Java Persistence Frameworks, Which is right one?, iBATIS/Hibernate/JPA , JDO, Spring ORM access.

Java Presentation Frameworks

See more Open Source Template Engines in Java here

Reporting and Business Intelligence Frameworks, 2 in Java.

  • Apache FOP - Formatting Object Processor (FOP) is a Java based print formatter based on the XSL-FO (XSL-Formatting Object) standard. See more: About, Guide, Tutorial
  • BIRT - Business Intelligence and Reporting Tools provides reporting and business intelligence capabilities for rich client and web applications See more: About, Guide, Birt Tutorial
  • JFree Chart - is a free Java class library for generating charts, including: pie charts, Gantt charts, wafer map charts See more: About, Article, Apply
  • JasperReports - has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files. See more: About, Tutorialspoint

Comparision reporting frameworks: Charting and Reporting Tools, More Tutorials, DocFlex, Jasper and iBATIS, PDF and Postscript, DS for PDF, RMS

Intelligent Agent Framework

There is growing interest in using intelligent software agents for a variety of tasks, including navigating and retrieving information from the Internet and from databases, online shopping activities, user authentication, negotiation for resources, and decision making, see also Artificial Intelligence.

Testing Frameworks in Java

See more Open Source Testing Frameworks in Java here , and heree
  • JUnit - is a regression testing framework written by Erich Gamma and Kent Beck. About, Tutorial, Tutorialspoint, JUnit3, JUnit 4.x
  • TestNG - is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as: - JSR 175 Annotations See more: About, Guide, Article, TestNG Tutorial
  • EasyMock - provides Mock Objects for interfaces in JUnit tests by generating them on the fly using Java's proxy mechanism See more: About, EasyMock, JUnit+EasyMock, tutorialspoint
  • XMLUnit - provides two JUnit extension classes, XMLAssert and XMLTestCase, and a set of supporting classes See more: About, mvn-artifact, Article
  • HtmlUnit - is a java unit testing framework for testing web based applications. It is similar in concept to httpunit but is very different in implementation. HttpUnit models the http protocol so you deal with request and response objects. See more: About, Article
  • DbUnit - is a JUnit extension (also usable with Ant) targeted for database-driven projects that, puts your database into a known state between test runs. See: DB Testing, for Database testing, Spring Test DBUnit
  • UISpec4J - is an Open Source functional and/or unit testing framework for Swing-based Java applications, built on top of the JUnit test harness.
  • Cactus - is a simple test framework for unit testing server-side java code (Servlets, EJBs, Tag Libs, Filters, :)) See more: About, Cactus Integration
  • Apache JMeter - Java desktop application designed to load test functional behavior and measure performance. But it was originally designed for testing Web Applications. See more: About
  • Marathon - is a testing framework for GUI applications developed using Java/Swing. Marathon composes of recorder, runner and editor. See: About

Comparision of testing frameworks: Testing Tools in Java, Testing, JWebUnit, SELENIUM, Mercury QualityCenter, QualityCenter, Easy Mock, Cactus, Compare1, Test Framework Comparison, Testing FAQ, Spring Testing, Unitils

Java Logging Frameworks

See more Open Source Logging Frameworks in Java here
  • SLF4J - The Simple Logging Facade for Java or (SLF4J) is intended to serve as a simple facade for various logging APIs allowing to the end-user to plug in the desired implementation at deployment time. See more: About, Spring MVC + Logback SLF4j, codingpedia
  • Commons Logging - is an ultra-thin bridge between different logging libraries. See more: About, Guide

Comparision of logging frameworks: Logging Tools and Frameworks, Other platforms, Logging Dependencies in Spring

Java Security Frameworks in Java

See also: Java Security Technology and Computer Security and Cryptography, Java MD5 Hashing, 2, Almanac Crypto Package, Other Security Tools

Rule Engines and Workflow Engines in Java

A workflow engine (e.g. jBPM, iProcess, etc.) is a software application that manages and executes modeled computer processes. A workflow approach to analyzing and managing a business process can be combined with an object-oriented programming approach, which tends to focus on documents and data.
A business rules engine (e.g. Drools, etc., more about BRE) is a software system that executes one or more business rules in a runtime production environment.

List of other Engines: Top 10 java-workflow-engine, Open Source Workflow Engines in Java and Open Source Rule Engines in Java

Build Systems, POM, and Source Control (see also: DevOps, Project Health Tools)

More on: • Open Source Build Systems in JavaSource Control Tools in Java, • Software ManagementProject Health Tools

  • Ant - is a software tool for automating software build processes. It uses XML to describe the build process and its dependencies.
    See more: About, Ant - Usage, Tutorialspoint, Tutorial
  • Maven - is a Java project management and project comprehension tool. Maven is based on the concept of a project object model (POM) See more: About, Skinny WARs, Tutorialspoint, vimp, in Eclipse , Maven Overlays, 2, 3, 2, 3, Bill of Materials use BOM (svn -list -R -v)
  • Ivy - is a free java based dependency manager, with powerful features such as transitive dependencies, ant integration, maven repository compatibility, continuous integration, html reports and many more See more: About, Tutorial
  • Version control software, sometimes called SCM (Source Code Management), helps you manage a software project. It provides a common repository that stores the code to be shared and more. See: CVS, Subversion Clearcase - is a free java based dependency manager, with powerful features such as transitive dependencies, ant integration, maven repository compatibility, continuous integration, html reports and many more See more: Source Control Tools in Java, Compare

Suggested Reading: Future of build tools, ViewVC, Maven and Ant, Compare build tools, SCM Tools

Java Media Frameworks

See also: • Java ME Java 3DGraphic Objects (2D & 3D)

XML Frameworks in Java ( Open Source XML Parsers, XML UI)

Standards you need to be familiar as a priority, see XML Usage in Web ApplicationsXML Processing (JAXP) and JAXBX-Stream Annotations

  • JiBX - for binding XML data to Java objects, lets you work with data from XML doc. using your own class structures See more: About, JiBX Guide, Step by
  • dom4j - is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform
    See more: About, Usage

Comparision of xml tools: XML Validation and XPath EvaluationComparing Data Binding ToolsJava XML Tools

Web Service Frameworks in Java

What is a Web Service?, What is a REST?

A Web service (Java EE Web service) is a method of communication between two electronic devices over World Wide Web. A web service is a software function provided at a network address over the web or the cloud; it is a service that is "always on" as in the concept of utility computing. More about Web Services: Web Services, Web Services, webservicex.net, Specification, WML , WML Script, RSS, Tutor ial, Apache WS, Java Web Services

REST (REpresentational State Transfer) is an architectural style, and an approach to communications that is often used in the development of Web services. The use of REST is often preferred over the more heavyweight SOAP (Simple Object Access Protocol) style because REST does not leverage as much bandwidth, which makes it a better fit for use over the Internet. Building RESTful Web Services with JAX-RS, RESTful Web Services

See also:Java Web ServicesXML Usage in Web ApplicationsXML Processing (JAXP) and JAXBWeb ToolkitRESTful Micro Frameworks, • Microservices with Spring, • REST services and microservices

  • Apache CXF - is an open source (web) services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS. See more: About, JAX-WS Tutorial
  • WSIT - is for developing the next-generation of web service technologies, provides interoperability between Java EE and .NET web services in a SOA. See more: About, WSIT, Slide
  • Django REST - Python - Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. See: Co je Django?, use in Postgres, Django

Comparision Web service frameworks: List of WS, Open Source Web Services Tools in Java, Web services, Framework comparisions, Comparison

Some other practical Java frameworks

Also see: Open Source Software in Java

Integration Frameworks

scripting on jvm

Software architecture and software design are two aspects of the same topic. Enterprise integration is a technical field of Enterprise Architecture, which focused on the study of topics such as system interconnection, electronic data interchange, product data exchange and distributed computing environments. Enterprise Information Integration (EII), is the ability to support a unified view of data and information for an entire organization. ARIS (Architecture of Integrated Information Systems) is an approach to enterprise modeling. See also: BUSINESS PROCESS MODELING TOOLS

Java Business Integration (JBI) is a specification developed under the Java Community Process (JCP) for an approach to implementing a service-oriented architecture (SOA). The following open-source software JBI based ESB implementations are available here and an example, 2.
The Application Integration Framework (AIF) enables companies to integrate and communicate with other business processes and partners electronically. E.g. Overview of AIF is the infrastructure within Microsoft Dynamics AX with which you can expose business logic or exchange data with other systems. E.g. Enterprise application integration using J2EE, Microsoft Dynamics AX, Trask Integration Framework.

An Enterprise Architecture Framework (EA framework) defines how to create and use an enterprise architecture.

Enterprise Application Integration - EAI (see implementations: EAI Commercial products, e.g. TIBCO Business Works, EAI using J2EE) is the use of software and computer systems architectural principles to integrate a set of enterprise computer applications, e.g. Patterns and Best Practices for EI

What is a TIBCO BW (Business Works)?

TIBCO ActiveMatrix BW (about: Business Works) is one of the leading service creation, orchestration, and integration products on the market. It has been deployed by over thousands companies worldwide and is the foundation for several of the largest mission critical service-oriented business applications in production today. For ore information: TIBCO ActiveMatrix BusinessWorks Essentials, BW Overview, 2.

Other kinds of Enterprise Integration Frameworks - EIF

Other Tools: Java ToolkitAPI'sProgrammer's CornerWebDev. ToolsDatabase ToolsModeling & DesignMultimediaMaths and Science

References


  1. Comparison of web application frameworks
  2. Open Source Web Frameworks
  3. Integration using J2EE
  4. EAI
  5. Choose language to compare web frameworks