From Fedora Project Wiki

Revision as of 09:23, 20 January 2010 by Ashawley (talk | contribs) (fix preformatted bits with leading whitespace)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The GNU Enterprise Application Server is the core of the n-tier variant of the GNU Enterprise system. To the front end (be it GNUe Forms, GNUe Reports or any other tool), it provides user-definable business objects with arbitrary fields and methods.

Install gnue-appserver and gnue-forms -- as of 20010-01-20, these do not exist in Fedora.

$ sudo yum install gnue-appserver{,-doc} gnue-forms.

If it isn't already, install Postgresql as a database backend.

$ sudo yum install postgresql{,-server}

In the configuration file,

/var/lib/pgsql/data/postgresql.conf

uncomment the following line.

listen_addresses = 'localhost'

Edit Postgresql's host-based authentication file

/var/lib/pgsql/data/pg_hba.conf

and these 4 lines as the first entries.

host gnue_test gnue 127.0.0.1/32 trust
host gnue_test gnue 0.0.0.0/0 reject
host gnue_test gnue ::1/128 trust
host gnue_test gnue ::0/0 reject

Get Postgresql started.

$ sudo service postgresql initdb
$ sudo service postgresql start

Create a "gnue" user in Postgresql.

$ sudo -u postgres createuser -r --no-superuser --createdb --no-adduser gnue

GNUe can probably create databases, but you should probably just make one called "gnue_test".

$ sudo -u postgres createdb --owner=gnue gnue_test

Should you need Postgres to notice any changed settings in the pg_hba.conf, then reload Postgresql with this command.

$ sudo service postgresql reload

Use the sample connections.conf file

$ sudo cp /etc/gnue/{sample.,}connections.conf 

Edit the above file so that the "dbname" is "gnue_test"

dbname = gnue_test

and change the "provider" entry to "psycopg2".

provider = psycopg2

Initialize GNUe with the gnue-schema command.

$ gnue-schema -y /usr/share/gnue/appserver/gnue.gsd 
Updating schema ...
Updating data ...
  updating table 'gnue_module' ...
    Rows: 1 inserted, 0 updated, 0 unchanged.
  updating table 'gnue_class' ...
    Rows: 7 inserted, 0 updated, 0 unchanged.
  updating table 'gnue_property' ...
    Rows: 49 inserted, 0 updated, 0 unchanged.
  updating table 'gnue_procedure' ...
    Rows: 1 inserted, 0 updated, 0 unchanged.
  updating table 'gnue_parameter' ...
    Rows: 4 inserted, 0 updated, 0 unchanged.

Start the GNUe application service.

$ sudo service gnue-appserver start
Starting gnue-appserver: Exporting our services via xmlrpc (port 8765) ...
Reloading class repository ...
Class repository loaded

... GNUe Application Server up and running ...

                                                           [  OK  ]

Edit the file

/etc/gnue/connection.conf

In the "appserver" entry, comment the line

# authentication = yes

Try loading the following sample files that come with gnue-appserver

$ cd /usr/share/doc/gnue-appserver-0.5.2/examples/
$ gnue-readgcd sample.gcd
Loading gcd files ...
Updating schema ...
Updating class repository ...
  Modules   :   1 inserted,   0 updated,   0 unchanged.
  Classes   :   2 inserted,   0 updated,   0 unchanged.
  Properties:  24 inserted,   0 updated,   0 unchanged.
  Procedures:   6 inserted,   0 updated,   0 unchanged.
  Parameters:   0 inserted,   0 updated,   0 unchanged.
$ gnue-readgld sample-C.gld
Loading GNUe language definitions
  Labels  :  15 inserted,   0 updated,   0 unchanged.
  Messages:   2 inserted,   0 updated,   0 unchanged.
$ gnue-readgld sample-de.gld
Loading GNUe language definitions
  Labels  :  15 inserted,   0 updated,   0 unchanged.
  Messages:   2 inserted,   0 updated,   0 unchanged.
$ gnue-schema -y sample.gsd
Updating schema ...
Updating data ...
  updating table 'address_country' ...
    Rows: 240 inserted, 0 updated, 0 unchanged.
  updating table 'address_person' ...
    Rows: 4 inserted, 0 updated, 0 unchanged.

In the same directory, view a sample GNUe form that connects to the appserver as the data source.

$ gnue-forms sample.gfd

Alternatively, have the application server provide gnue-forms the form and the data.

$ gnue-forms appserver://appserver/form/address_person