[GeoNetwork-devel] GeoNetwork Architecture documentation ?

Hi,

I try to modify/customize GeoNetwork source code for my personal needs.
But it’s very difficult to understand GeoNetwork architecture.

Is there documentation ? can you give me any advise ?

Thx

Hi,

I try to modify/customize GeoNetwork source code for my personal needs.
But it’s very difficult to understand GeoNetwork architecture.

Is there documentation ? can you give me any advise ?

When you checked out the svn trunk, you should be able to have the current directories :

  • jeeves : Contains the framework used by GeoNetwork in order to handle some specific tasks shared by the GeoNetwork system. i.e. Database connection / queries handling, …

  • web : This one is probably the directories you would have to hack around with. The actual sources of GN are stored into web/src/main/java/

Some other files of interest :

  • /web/src/main/webapp/WEB-INF/.xml : in the config-.xml you should be able to find some configuration infos, like how the GN services are plugged ;

  • Files under /web/src/main/webapp/xsl : GN hugely uses XSL transformation to actually print pages, PDFs, …

Rapidly, some examples, in config.xml you could find this definition :

This allows to map the URL http://…/geonetwork/srv/[language code on 2 characters]/xml.region.get, calling the Java class org.fao.geonet.services.region.Get, which you could find back into web/src/main/java/org/fao/geonet/services/region/Get.java. This one does not use XSL transformation.

Another one is defined as :

This one is a more complicated example. It involves a XSL transformation (using the user-update.xsl stylesheet), and call the class GetMine from the guiservices/groups/GetMine.java class, which the response would be stored into the XML (before XSL transformation) under a node called . The result of the XSL transfo would be output to the browser.

To conclude this rapid tour of GN architecture, take a look at the WEB-INF/user-profiles.xml file, which defines the services access depending on the profile of the connected user. You could then see that you need to be at least USERADMIN priviledged to access the “user.edit” service.

Hth,


Pierre Mauduit

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac Cedex
Tel : + 33 (0)4 79 44 44 92
http://www.camptocamp.com
pierre.mauduit@anonymised.com