-
Notifications
You must be signed in to change notification settings - Fork 55
Building instructions
GeoFence is split in 2 main pieces:
- The GeoFence webapp, containing the rule engine and the admin GUI
- The probe, containing the logic that allows GeoServer to send auth requests to GeoFence.
You need to get the sources from different repositories for getting the different parts.
Get the source as usual from github.
The git
command line should be something like
git clone git@github.com:geoserver/geofence.git geofence
The probe has been implemented as a GeoServer community module. It is a community module in GeoServer, so you'll have to checkout the normal GeoServer repository:
https://github.com/geoserver/geoserver
The probe is versioned along with GeoServer, so you'll have to checkout the branch you need,
and then get into src/community/geofence
- Create a PostGIS DB called "geofence" (with PostGis support enabled). You may need to run these commands as user
postgres
.
createdb geofence
createlang plpgsql geofence
psql -d geofence -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d geofence -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
psql -d geofence -f /usr/share/postgresql/9.1/contrib/postgis_comments.sql
Your files may be in a different location than /usr/share/postgresql/9.1/contrib/postgis-1.5/
2. Run the sql script doc/setup/sql/001_setup_db.sql
on geofence db via psql -d geofence -f path_to_file
; it will create the users:
-
geofence
with pwgeofence
-
geofence_test
with pwgeofence_test
and schemas geofence
and geofence_test
.
You may need to run these commands as user postgres
.
psql -d geofence -f YOUR_GEOFENCE_DIR/doc/setup/sql/001_setup_db.sql
- Run the sql script
doc/setup/sql/002_create_schema_postgres.sql
on geofence db, geofence schema; it will create the base tables, indices, etc. Thegeofence_test
schema will be automatically recreated during tests.
psql -U geofence -d geofence -f YOUR_GEOFENCE_DIR/doc/setup/sql/002_create_schema_postgres.sql
Note that you are logging in postgres as usergeofence
, so you will be asked for user password, that's set as geofence
as noted above.
You can build the application, specifying what kind of backend database you will use.
Enter the src/
directory and launch one of the following command (the one matching the database you wish to use).
mvn clean install
mvn clean install -Ppostgis
mvn clean install -Poracle
This will create two wars:
-
src/gui/web/target/geofence.war
: the geofence service and GUI webapp (see also ticket #8) -
geoserver/web-app/target/geoserver.war
: the geoserver webapp with the proper libs to communicate with geofence
You can run the two webapps using the embedded Jetty http server.
In order to run GeoFence, enter into the directory src/gui/web
and run the command
mvn jetty:run
If you also want to run GeoServer, enter the directory src/geoserver21x/web-app/
(or the directory src/geoserver22x/web-app/
) and run the same command:
mvn jetty:run
You can optionally run the GUI from GWT by running this the following command from inside src/gui/web
:
mvn gwt:run
Install Google Web Toolkit plugin on your Eclipse distribution following these instructions
Create Eclipse projects as follows:
mvn eclipse:clean eclipse:eclipse
On "gui/web" module, create GWT Eclipse project as follows:
mvn gwt:eclipse
Import the projects on your workspace, make sure all compiles.
Right click on "web" project and enable it as Google Web Toolkit module by selecting "Google > Web Toolkit settings".
Enable GWT 2.1.1 and add Entry point:
Application - org.geoserver.geofence.gui
From "Run Configurations" select edit "geofence" launcher properties and check that the "Arguments" are configured like the following:
-remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl Application.html -logLevel INFO -port 8888 -war YOUR_GEOFENCE_GIT_REPO_PATH/src/gui\web\target\geofence -codeServerPort 9997 org.geoserver.geofence.gui.Application
WARNING: Pay attention to the paths