Alexandria
A standard library of commonly used Java code.
The alexandria project is designed to provide a general-purpose library of Java code for a wide range of applications. Things specific to Java but which should be shared widely among projects belong in this library.
Developers
Eclipse & APT
M2E allows Eclipse to read Maven pom files and automatically build Java projects very easily, however by default it does not (yet) support annotation processing. To be specific, both Maven and Eclipse support annotation processing (apt), but M2E does not requires an additional maven plugin to provide full integration of the two.
To develop Alexandria or other projects which use ax-annotations
, you you will need to install m2e-apt
. Simply drag the "Install" button from your browser to your Eclipse window, and follow the directions from Eclipse.
Once you have restarted Eclipse you will need to configure m2e-apt
:
Building Annotations
The ax-annotations
project provides some general purpose annotations for code documentation, along with an annotation process for reporting one them in compiler logs. Because of the complex dependencies inherent in build annotation processors ax-annotations
requires some care in building if you're a developer. Below are the endorsed, though certainly not the only, steps to build alexandria for development.
- Obtain the source code either by download or
git clone
. cd alexandria
mvn install -pl ax-annotations -am -Prelease
- Import
alexandria/pom.xml
into Eclipse, which should bring in all other sub-projects exceptax-annotations
.
Release
- Use maven to release the project and update versions
mvn release:prepare -Prelease
mvn release:perform -Prelease
- Release or drop the staging repository
- Publish changes to GitHub
- Open a pull request with the results of step #1.2, marking it with the milestone you've just released.
- Push the tag generated by step #1.2 to github
- Create the new github milestone and close the prior one
- Local & downstream updates
- Install the new SNAPSHOT version of annotations
cd .../ax-root && mvn install
thencd .../ax-annotations && mvn install
- Update downstream projects (
<alexandria.version>XXX</alexandria.version>
, parent POM versions, etc) - Update issue tracking. For Jira note that you will want to bulk-add the new fix version, and then bulk-remove the old version rather than replace since other versions may be involved.
- Install the new SNAPSHOT version of annotations
Modules
Below are notes and descriptions for a subset of the modules in this library:
- FileSystem is a library which will aid you in writing your own Java NIO compatible file system provider.
- Memory FileSystem is an in-memory file system which we have released both as a usable library and an example you may copy (this one module is unlicense unlike the rest of alexandria)
- FileSystem Test which is a small library you can use to build unit tests for your file system provider.