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
- Spring Boot
(INITIALIZR) -
is Spring's convention-over-configuration solution for creating stand-alone, production-grade Spring-based Applications that you can 'just run' as a Microservice
See more:
Building an Application,
baeldung,
tutorialspoint,
geeksforgeeks,
callicoder
- Configuration,
OAuth2 -
application configuration options that are present in Spring Boot.
See more:
Application Configuration,
Autoconfiguration classes,
Modularization,
Spring Security OAuth,
authorizing via linkedin, facebook, twitter
|
- Microservices,
2 (with
Spring Boot,
Dropwizard,
WildFly Swarm)
is an architectural style that structures an application as a collection of services
See more:
Dropwizard vs. Spring Boot,
GitHub MS,
GitHub SP,
Dropwizard,
Java Microservices,
REST and Microservices,
Top Restful micro frameworks
- Ajax JSP - that simplify the use of (SS Ajax operations).
Templates streamlines: Apache Tiles,
Facelets, Freemarker,
XSSI,
Integrating view technologies.
|
Java WEB Frameworks ⇧
- Spring MVC -
defines strategy interfaces for all of the responsibilities which must be handled by a modern request-based framework.
See more:
Spring MVC,
Article,
About,
Tutorial
- Webwork -
is based on a concept called "Pull HMVC" (Pull Hierarchical MVC)
See more:
Learning
- Struts1, Struts2 -
is the implementation of MVC design pattern for the JSP
See more:
About,
S2 T.,
DZone Tutorials,
Guide
- JSF -
simplifies development by providing a component-centric approach to developing Java Web user interfaces.
About,
MAJORRA,
Tutorial,
JSF 2.0,
RichFaces,
MyFaces,
Facelets,
2
- Tapestry -
reconceptualizes web application development in terms of objects, methods and properties instead of URLs and query parameters. Tapestry is an alternative to scripting environments such as JavaServer Pages or Velocity.
|
|
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
- JPA - provides POJO standard and OR mapping for data persistence among apps. See JPA Ref. Impl, other implementations.
See more:
JSR 338 - JPA 2.1,
Java Persistence API,
Java EE Technologies
- Hibernate (implementing JPA) -
is a solution for OR mapping and a persistence management solution or persistent layer.
See more:
About,
Tutorialspoint,
Tutor2,
Tips and Tricks,
JPA with Hibernate,
JPA EntityManager vs. Hibernate Session,
JPA 2.1 Impl.
- Oracle TopLink -
implements JPA. EclipseLink is based on the TopLink's 11g code base. TopLink will include EclipseLink as well as the next major release of Oracle AS.
See more:
About,
Oracle TopLink,
Toplink,
Oracle DB,
EclipseLink,
JPA 2.0 with EclipseLink
|
- 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 Tutorial
• Database 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
|
|
- iText -
iText is a library that contains classes to generate documents in the PDF, XML, HTML, and RTF
See more:
About,
iText Guide,
Tutorial,
iText Posts
- POI -
a project that provides Java libraries for reading and writing MS Office files, see
About,
Article
- Crystal Reports -
is a popular Windows-based report writer (report generation program) that allows a programmer to create reports from a variety of data sources
See more:
About,
Guide,
MS
- PDFBox -
A Java class library for parsing PDF documents including PDF to text extraction, merge PDF documents, PDF document decryption.
See more:
About,
Guide
- docx4j - is a Java library for creating and manipulating Microsoft Open XML (Word docx, Powerpoint pptx, and Excel xlsx) files, e.g. Etra usage:)
Office Open XML,
2
Simple .docx,
Creation,
Editing XML,
OpenXML Developer,
Not confuse with:
openoffice.org,
xml,
OpenOffice
|
- 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
⇧
- Enterprise -
Enterprise Security API Toolkits help software developers guard against security-related design and implementation flaws. More details. OWASP Enterprise Security API also VeriSIGN
- JAAS Access Control, Spring Security is a Java/Java EE framework that provides advanced authentication, authorization and other security features for enterprise applications. Spring Acegi Security Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. jGuard is written in Java. Its goal is to provide a security framework based on JAAS (Java Authentication and Authorization Security).
See more:
Journal,
JAAS Tutorial
- Encryption -
refers to algorithmic schemes that encode plain text into non-readable form or cyphertext, providing privacy.
Bouncycastle - Lightweight Java cryptography APIs.
Jasypt is a java library which allows the developer to add basic encryption capabilities.
See more:
Java Cryptography Architecture,
SUN Tutorial,
Article,
API,
Secure WEB App,
Secure App,
Secure Java
See also:
Java Security Technology and
Computer Security and Cryptography,
Java MD5 Hashing, 2, Almanac Crypto Package,
Other Security Tools
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.
- jBPM (old name was: Drools Flow) - is a flexible Business Process Management (BPM) Suite. It makes the bridge between business analysts and developers.
See more:
wiki,
User Guide,
jBPM 5 tutorial - first example
- iProcess - TIBCO iProcess Suite offers a one of a kind and powerful business processes management tool to help your company achieve this aim. Tibco iProcess engine will be deferred, currently it belongs to TIBCO Framework.
See more:
Quick introduction to TIBCO iProcess components,
Getting Started
- XWorkflow - is a an engine extended with Spring that allows you to define workflows in xml. See also: Spring Integration.
without XWorkflow:
Simple Workflow Engine With Spring,
A Spring-based workflow
- Drools - is a business rule management system (BRMS) with a forward chaining inference based rules engine, more correctly known as a production rule system, using an enhanced implementation of the Rete algorithm.
See more:
Drools Introduction,
Why use a Rule Engine?,
Example for Drools,
JBoss Drools Tutorial
List of other Engines:
Top 10 java-workflow-engine,
Open Source Workflow Engines in Java and
Open Source Rule Engines in Java
More on:
• Open Source Build Systems in Java
• Source Control Tools in Java,
• Software Management
• Project 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 Framework (JMF) -
is a Java library that enables audio, video and other time-based media to be added to Java applications
See more:
Sun Media,
Article
Tutorial,
Guide,
Guide2
- JavaSound -
for controlling audio playback, audio capture, MIDI synthesis, and basic MIDI sequencing
See more:
Sun Media,
Article,
Tutorial,
JSound
|
|
See also: • Java ME
• Java 3D
• Graphic Objects (2D & 3D)
Standards you need to be familiar as a priority, see
XML Usage in Web Applications
• XML Processing (JAXP) and JAXB
• X-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 Evaluation
•
Comparing Data Binding Tools
• Java 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 Services
• XML Usage in Web Applications
• XML Processing (JAXP) and JAXB
• Web Toolkit
• RESTful Micro Frameworks,
• Microservices with Spring,
• REST services and microservices
- Apache Axis -
is 3rd generation of Apache SOAP (at IBM lik "SOAP4J"). Apache Axis2 - is more efficient, more modular and more XML-oriented than Axis.
See more:
About Axis2,
Tutorial, Axis,
Guide
- Metro -
the third generation Web services engine is more efficient, more modular and more XML-oriented than Axis.
See more:
Introduction,
Metro WS Tech.,
Glassfish Metro
-
Jersey (JAX-RS) is a RESTful WS
reference implementation
See more:
Tutorial,
Building with Spring,
REST with Spring
- ORDS
(more) -
Oracle REST Data Services makes it easy to develop modern REST interfaces for relational data in the Oracle Database,
Oracle Database 12c JSON Document Store, and Oracle NoSQL Database.
See more:
Learn,
formerly APEX Listener,
Oracle REST FAQ,
docs ,
Python Loader
|
- 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
Integration Frameworks ⇧
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 Tools:
Java Toolkit
• API's
• Programmer's Corner
• WebDev. Tools
• Database Tools
• Modeling & Design
• Multimedia
• Maths and Science
References
- Comparison of web application frameworks
- Open Source Web Frameworks
- Integration using J2EE
- EAI
- Choose language to compare web frameworks
|