System Architecture

The Capability generator targets 9 different types of software components (jar and war files):

Component Type Description File Type
Web Application A component that represents a web application and can be deployed in a JEE application server. A web application contains exactly one common web fragment and one or more ui web fragments.

The generator JSF Application writes code for this component.
Web Fragment A component that contains web pages and calls to web services
This component is packaged as a JEE web fragment.

The generator JSF Web-Fragment writes code for this component.
Web Fragment Interfaces A component that contains interfaces, enumerations and helper classes.
This component is packaged as simple jar file and doesn’t have any dependencies to other web fragment or web fragment interface components. Its purpose is to avoid circular dependencies when a web application contains several web fragment components.

The generator JSF Web-Fragment writes code for this component.
JAXRS Application A component that … .war
Logic A component that … .jar
Persistence A component that reads/writes data from/to a relational database .jar
JAXB Interface A component that can be used as part of a service client lib to make it easier to use the capabilitiy’s webservices. .jar
JAXB Internal A component that includes classes that are used by other components that are only used internally, e.g. an enumeration that is used in the persistence layer only. .jar
Clients A component that encapsulates implementations to access remote services (unless a remote service already provides client libs). This includes messaging systems (publish/subscribe). .jar

The following picture shows these components and how they depend on each other:

Capability Component Dependencies