Alexandria Collection

Extended collection API, which will evolve to encompass all ADTs.

License

License

GroupId

GroupId

com.g2forge.alexandria
ArtifactId

ArtifactId

ax-collection
Last Version

Last Version

0.0.7
Release Date

Release Date

Type

Type

jar
Description

Description

Alexandria Collection
Extended collection API, which will evolve to encompass all ADTs.
Source Code Management

Source Code Management

http://github.com/g2forge/alexandria/tree/0.0.7/ax-collection

Download ax-collection

How to add to project

<!-- https://jarcasting.com/artifacts/com.g2forge.alexandria/ax-collection/ -->
<dependency>
    <groupId>com.g2forge.alexandria</groupId>
    <artifactId>ax-collection</artifactId>
    <version>0.0.7</version>
</dependency>
// https://jarcasting.com/artifacts/com.g2forge.alexandria/ax-collection/
implementation 'com.g2forge.alexandria:ax-collection:0.0.7'
// https://jarcasting.com/artifacts/com.g2forge.alexandria/ax-collection/
implementation ("com.g2forge.alexandria:ax-collection:0.0.7")
'com.g2forge.alexandria:ax-collection:jar:0.0.7'
<dependency org="com.g2forge.alexandria" name="ax-collection" rev="0.0.7">
  <artifact name="ax-collection" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.g2forge.alexandria', module='ax-collection', version='0.0.7')
)
libraryDependencies += "com.g2forge.alexandria" % "ax-collection" % "0.0.7"
[com.g2forge.alexandria/ax-collection "0.0.7"]

Dependencies

compile (1)

Group / Artifact Type Version
com.g2forge.alexandria : ax-java jar 0.0.7

provided (1)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.16.18

test (2)

Group / Artifact Type Version
com.g2forge.alexandria : ax-test jar 0.0.7
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

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:

enable 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.

  1. Obtain the source code either by download or git clone.
  2. cd alexandria
  3. mvn install -pl ax-annotations -am -Prelease
  4. Import alexandria/pom.xml into Eclipse, which should bring in all other sub-projects except ax-annotations.

Release

  1. Use maven to release the project and update versions
    1. mvn release:prepare -Prelease
    2. mvn release:perform -Prelease
    3. Release or drop the staging repository
  2. Publish changes to GitHub
    1. Open a pull request with the results of step #1.2, marking it with the milestone you've just released.
    2. Push the tag generated by step #1.2 to github
    3. Create the new github milestone and close the prior one
  3. Local & downstream updates
    1. Install the new SNAPSHOT version of annotations cd .../ax-root && mvn install then cd .../ax-annotations && mvn install
    2. Update downstream projects (<alexandria.version>XXX</alexandria.version>, parent POM versions, etc)
    3. 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.

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.
com.g2forge.alexandria

G2 Forge

Open source software and gateware

Versions

Version
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3