# Contributing to Eclipse Hawk

Eclipse Hawk is a model indexing framework for fast, scalable querying of large
models. It mirrors a set of remote models (which may be broken up into many
small files) into a local database, so you can answer global queries without
having to keep the entire model in memory. Eclipse Hawk does not require you to
change modelling technology, and it allows for indexing model elements by
derived expressions and not just single attributes.

The main website is here:

  https://www.eclipse.org/hawk/

## Building Hawk as Java libraries

Eclipse Hawk can be built in two ways: as a set of plain Java libraries, or as a
set of Eclipse plugins. To build Hawk as a set of plain Java libraries, run this
command from this folder:

    mvn -f pom-plain.xml package

Please keep in mind that not all Hawk components are available as Java libraries.

## Building Hawk as Eclipse plugins

To build Eclipse Hawk as a set of Eclipse plugins, run these commands from this folder:

    mvn -f core/pom.xml install
    mvn -f greycat/pom.xml install
    mvn -f server/pom.xml install

You may want to run the `neo4j/pom.xml` file as well if you would like to use
the GPLv3-licensed Neo4j support. The Neo4j components are not distributed in
binary form from Eclipse: you will have to build them yourself and adopt Eclipse
Hawk under the secondary GPLv3 license in that case.

## Building from Eclipse

The website contains all the documentation needed to compile and run all
components of Hawk from Eclipse. Please see this page:

  https://www.eclipse.org/hawk/developers/run-from-source/

## Website links

If you would like to communicate with us, please
use the official Eclipse Hawk forum:

  https://www.eclipse.org/forums/index.php/f/442/

You can file bugs through the link in the website, which has links to the main
Git repository as well. If you would like to contribute changes, please submit a
patch together with your bug report. You will need to sign the Eclipse
Contributor Agreement before we can integrate your code:

  https://www.eclipse.org/legal/ECA.php
