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).
- for now we have:
- 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
- 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.
Links
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
- Ada Web Server
- 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)
- GtkAda
