Skip to content
This repository has been archived by the owner on Nov 21, 2022. It is now read-only.

What is Gig?

eiichiro edited this page Oct 10, 2014 · 11 revisions

Gig is a Java web application assembler including the best-of-breed full stack runtime framework for web presentation, component configuration and data persistence, as well as the developer toolkit which is integrated with IDE and some major build tools. Gig can be performed on JDK 7 and later Java platform. Gig is offering a next generation engineering experience for Java developers with a full set of development facilities to build, deploy and maintain your applications more easily and quickly.

Gig has been developed based on the following core design principles.

  1. Integrity. Gig must provide a comprehensive development stack to cover entire application lifecycle from building a project to running it.
  2. Modularity. The components making up Gig stack must be easily added/removed/replaced respectively. So Gig's core must behave as a glue of these well modularized components.
  3. Portability. The application assembled by Gig must work on wide range of environment such as standard web application environment based on Servlet API specification as well as Platform as a Service runtime provided by some Cloud providers.

Architecture

This illustration is the architecture of Gig. Gig is built on top of Java platform and consists of two parts, the "runtime" and "developer tools".

+---------------+   +---------------+   +---------------+   +---------------+     Supporting:
| Presentation  |   |      Web      |   |   Component   |   |  Persistence  |     Standard Web app
|---------------|   |---------------|   |---------------|   |---------------|     Google App Engine
| jQuery        |   | Bootleg       |   | Jaguar        |   | EclipseLink   |     Heroku
| Bootstrap     |   |               |   |               |   | Acid House    |
+-------+-------+   +-------+-------+   +-------+-------+   +-------+-------+
        |                   |                   |                   |
        |                   |      Runtime      |                   |
        |                   |                   |                   |
+-------+-------------------+-------------------+-------------------+-------+
|                                                                           |
|  Gig: the best of breed full-stack runtime and toolkit for Java Web apps  |
|                                                                           |
+-------+-------------------+-------------------+---------------------------+
        |                   |                   |
        |                   |  Developer tools  |
        |                   |                   |
+-------+-------+   +-------+-------+   +-------+-------+
|     Build     |   |      IDE      |   |    CLI Tool   |
|---------------|   |---------------|   |---------------|
| Maven         |   | Eclipse       |   | Shell         |
| archetypes    |   | plugins       |   |               |
+---------------+   +---------------+   +---------------+

Runtime

Gig's runtime is offering a full-stack application framework composed of several modules.

  • Presentation is based on jQuery and Bootstrap. jQuery is the most popular JavaScript library in use today designed to simplify the client-side scripting of HTML and also Bootstrap is a powerful front-end presentation framework for faster and easier web development.
  • Web layer is based on Bootleg. Bootleg is a Web-centric application framework. Bootleg eliminates the complexities in modern Web development and makes the development easier with the powerful development capability.
  • Component building facility is based on Jaguar. Jaguar is an "Inversion of Control" pattern based micro component framework. Jaguar is providing much more flexibility in component building by effective implementation methods.
  • Persistence is based on JPA (Java Persistence API) for RDBMS and Acid House for NoSQL. JPA is the standard for accessing RDBMS in Java and Acid House is a generic Java client library for NoSQL which is providing human-friendly API based on NoSQL application's best practices. Developers can leverage these libraries selectively according to the environment.

Gig is the runtime glue to integrate these modules seamlessly.

Developer tools

Gig's developer tools are also composed of the following components.

  • Build. Gig is closely-integrated with Apache Maven. Project templates are provided as Maven archetypes and all Gig stuffs are distributed from Maven repositories.
  • IDE support. Gig is providing some Eclipse plugins including component class templates, code validators and so on. You can build your own application more productively with these plugins.
  • CLI tool. Gig is providing interactive shell and some CLI-based code generator tools such as CRUD scaffolding.

These components interlock each other. Maven archetypes include Eclipse project settings and CLI tools can be executed from Eclipse plugin. Many developer tools will be added in the future releases.

Sub Projects

Gig is offering runtime component sets / Maven archetypes specified for some platforms such as plain Java Webapp environment, Google App Engine and Heroku. Check out the following projects:

Component set

Tool

Maven archetype

Eclipse plugin

Continue to Getting Started guide and try Gig programming.