Skip to content
Browse files
JENA-1234: Merge commit 'refs/pull/174/head' of
This closes #174.
  • Loading branch information
afs committed Oct 6, 2016
2 parents ec9573f + 03092e6 commit d14ce97e9c61138d35f03dd7fc0c2604f8a9d726
Showing 2 changed files with 186 additions and 0 deletions.
@@ -0,0 +1,66 @@
Apache Jena : Build from Source

It is not normally necessary to build from source. Apache Jena provides already-built maven artifacts, available from the central maven repositories.

## Binaries


For most usage, there is no requirment to build from source. Use maven
or other build system that can download from the central repositories.


The latest Apache Jena Fuseki can be obtained via

There is also a package of libraries for offline installation.

## Source

Building Jena requires a Java8 JDK, Maven 3, and a network connection.

### Obtain the source

You can get the current development code by cloning:

git clone

or the Apache primary code repository for Jena:

git clone

For the signed source of the latest release, go to:

with previous versions available at:

These are the formal files that define an Apache Jena release.

### Build the source

Apache Jena uses maven as its build system.

mvn clean install

A faster, but abbreviated, build of the main modules, including ARQ,
TDB, command line tools and Fuseki2.

mvn clean install -Pdev

Once the whole of Jena has been built once, individual modules can be incrementally
built using maven in their module directory.

## Build Notes

The TDB tests on Microsoft Windows use a large amount of temporary disk space.
This is because databases can not be completely deleted until the JVM exits on
this operating system.
@@ -0,0 +1,120 @@
Apache Jena : Contributing

The project welcomes contributions, large and small, from anyone.

The mailing list for project-wide discussions is and all
development work happens in public, using that list.

The processes described here are guidelines, rather than absolute

## Contributions

Contributions can be made by:

* Github pull requests (preferred)
* JIRA and patches
* Other

Contributions should include:

* Tests
* Documentation as needed

Documentation is kept and published with Apache's svnpubsub system:

## Workflow

### JIRA

The project uses a JIRA instance to track work. Please create a JIRA so
that we can track a contribution.

### Github

It is useful to create a JIRA then use the JIRA number (e.g. JENA-9999)
in the Pull Request title. This activates the automated mirroring of
discussions onto the project developers mailing list.

To make a contribution:

* On github, fork into you github account.
* Create a branch in your fork for the contribution.
* Make your changes. Include the Apache source header at the top of each file.
* Generate a pull request via github. Further changes to your branch will automatically
show up in the pull request

The project development mailing list is automatically notified of new pull
requests and JIRA is also automatically updated if the JIRA id is in the pull request

### Discussion and Merging

A project committer will review the contribution and coordinate any project-wide discussion
needed. Review and discussion of the pull request itself takes place on

The committer review guide:

### Patches

An alternative is to upload a patch/diff to JIRA.

### Code

Code style is about making the code clear for the next person
who looks at the code.

The project prefers code to be formatted in the common java style with
sensible deviation for short forms.

The project does not enforce a particular style but asks for:

* Kernighan and Ritchie style "Egyptian brackets" braces.
* Spaces for indentation
* No `@author` tags.
* One statement per line
* Indent level 4 for Java
* Indent level 2 for XML

See, for illustration:

The codebase has a long history - not all of it follows this style.

The code should have no warnings, in particular, use `@Override` and types
for generics, and don't declared checked exceptions that are not used.
Use `@SuppressWarnings("unused")` as necessary.

Please don't mix reformatting and functional changes; it makes it harder
to review.

### Legal

All contributions are understood to be made as contributions to the
Apache Software Foundation by the person making the pull request. These
are then incorporated into the project codebase and licensed under the
Apache License 2.0.

You, as an individual, must be entitled to make the contribution to the
project. If the contribution is part of your employment, please arrange
this before making the contribution.

For a large contribution, the project may ask for a specific Software
Grant from the contributor.

If in doubt, or if you have any questions, ask on the
mailing list. Legal issues are easier to deal with if done before
contributing, rather than after.

The project cannot accept contributions with unclear ownership nor
contributions containing work by other people without a clear agreement
from those people.

0 comments on commit d14ce97

Please sign in to comment.