Welcome to AdaWorks' Trac

the original WikiStart can be seen here: OldWikiStart

AdaWorks is a framework for building business applications with the Ada2005 programming language. It's goal is to simplify development of applications that require:

  • persistent data
  • distributed model
  • programming in layers (separate data from logic and presentation)
  • systems that must work; bugs are not acceptable.
  • easy management
  • fast development
  • web interface

About

AdaWorks was started and is maintained by Marcelo Coraça de Freitas, a brazilian guy who is also involved in AuroraUX project.

As the time went by, a small group of developers has helped AdaWorks to evolve.

For those who don't know the Ada programming language, a hello world application would look like this:

with Ada.Text_IO; use Ada.Text_IO;

procedure Hello_World is
begin
   Put_Line( "Hello World!" );
end Hello_World;

For a more in depth description please read the excellent Wikibook on Ada Programming.

Licensing

This framework is released by the GNAT Modified GPL License which can be found at:

This include the modules that depend on other GPL applications, but in that case, if the user can't acquire another (MGPL compatible) license for the dependency, the libraries are covered by GPL v2.0 only.

Status of the Project

Those libraries are ready to use in Linux (even though they shouldn't be considered stable yet) and are known to run fine in Windows (mingw):

  • AWLib
    • for now we have:
      • string utilities.
      • some file system functionalities.
      • symbols and dll handling.
      • locales.
      • calendar operations (formatting supporting locales).
  • AWConfig
    • we support both XML and plain text files
    • using String types.
  • AWLog
    • highly configurable and powerful logging facilities.
    • support multiple output formats (called log writers).
    • regular expressions support in log pattern.
  • AWPlug
    • system-independent plugin facilities.
    • can handle library prefix and suffix depending on the system (looks for lib[plugin_name].so in linux and [plugin_name].dll in windows)
  • APQ
    • the already known database bindings, now supporting a more flexible build system (based on gnat's GPR files)
    • the core have been cleared and split into sub projects for each database product:
      • APQ-MySQL?
      • APQ-PostgreSQL?
      • APQ-Sybase?
        • this should be changed anytime soon (delayed, but before the 3.0-alpha2 release)
        • instead of apq-sybase deriving from apq we'll have apq-ct_lib, from which we'll implement apq-mssql and apq-sybase
  • APQ Provider?
    • AwConfig powered library with multitasking and persistent connections (connection pool) for APQ.
  • AWDB
    • programatical tools for building Database Neutral SQL Queries.
    • still in early stages, but will easy the development of valid and efficient queries for different database products
    • as in 2009-07-02, this module has been discontinued with no idea on when it's gonna be developed again.
  • AWSec
    • modular security facilities handling both authentication and authorization (in independent way).
    • accounting is also implemented
  • AWEnt
    • entity management for Ada (based on APQ).
    • should be started simultaneously (maybe with a short delay) with AWSec.
  • AWView
    • a framework for helping building complex web sites based in AWS.
    • AwEnt and AwView support available
  • AWDist (PLANNING)
    • a distributed structure for business applications with a simple but yet efficient implementation.
    • this should include extension for both AWSec and AWEnt

For more details please refer to Project Overview and Project Releases.

Downloading

You can find our releases at http://adaworks.net/releases

There you'll be able to download the latest tarbals ready to compile. :)

Building

The easiest way for trying AdaWorks right now is checking out the subversion trunk. For this simply do:

$ svn co svn://adaworks.net/adaworks/trunk adaworks_trunk

then

$ cd adaworks_trunk
$ ls

You'll see a directory listing like

apq                     apq-sybase-samples     awent           awplug-tutorial
apq-mysql               awconfig               awlib           clean
apq-mysql-samples       awconfig-samples       awlib-samples   extra
apq-postgresql          awconfig-text          awlog           manifest
apq-postgresql-samples  awconfig-text_samples  awlog-samples
apq-samples             awconfig-xml           awplug
apq-sybase              awconfig-xml_samples   awplug-samples

Each one of these folders represent one AdaWorks sub project. You can then "cd" into some of them and try a "make". All the dependencies (except for the APQ samples, which require a manual build inside the corresponding driver before) should be build and available for you.

Those are the tools libraries AdaWorks use or intend to use in the future:

  • in use
    • Ada Web Server
      • for web development.
    • GNAT-GCC
      • even thought we are using GNAT Project Manager we try to write our code independent of the compiler. Then it should compile fine in others Ada compliant compilers (obviously that only if the other dependencies can be built on those compilers).
    • XML/Ada
      • currently optional and used only on AW_Config-XML.
    • http://www.freetds.org FreeTDS, for both sybase and sql server support
    • http://www.mysql.org MySQL client
    • http://www.postgresql.org/ PostgreSQL client
  • planning to use:
    • GtkAda
      • Graphical Toolkit (for desktop application and PDV )
    • Ada Class Library
      • for Regular Expressions,
      • Unicode support (even thought we might implement our own or use the one from XML/Ada)
      • Garbage Collector (if we feel we need one)