Skip to content

gallandarakhneorg/afc

Repository files navigation

Arakhnê Foundation Classes

The Arakhnê Foundation Classes (AFC) is a collection of Java libraries that may be used to build applications. The Arakhnê Foundation Classes provide tools that are not directly available in the standard Java API.

requires Java%2011 red afc afc afc?branch=master&svg=true

compliant Maven yellowgreen compliant Java yellowgreen compliant SARL yellowgreen compliant Scala yellowgreen compliant Xtext yellowgreen compliant Xtend yellowgreen compliant OSGI yellowgreen

afc afc

1. Content of the AFC

1.1. Maintained Modules

AFC library contains the several maintained modules: geometry utilities, geographical information framework, etc. See Arakhne.org for details.

1.2. Deprecated and Dead Modules

AFC library contains the deprecated modules (deprecated modules are subject to removal in future version). See Arakhne.org for details.

1.3 Compatibility with other Languages than Java

AFC is a Java library that provides extensions for being used with other programming languages.

For example, Vector2D provides overloading function for operator +. In this way, this operator may be used by typing v1 + 1 instead of v1.add(1).

1.3.1 SARL agent-oriented programming language

AFC library is compatible with the SARL agent-oriented programming language, which is a Xtext-based language (see below). Indeed, the AFC classes use the specific annotations: @Pure for making pure functions, and @Inline for inline functions. AFC also provides the overridings of the operators (operator_plus, operator_minus, etc.) for vectors, matrices, etc.

1.3.2 Scala object-oriented programming language

AFC library is compatible with the Scala object-oriented programming language. Indeed, the AFC classes provide the overridings of the operators ($plus, $minus, etc.) for vectors, matrices, etc.

1.3.3 Xtend object-oriented programming language

AFC library is compatible with the Xtend object-oriented programming language, which is a Xtext-based language (see below). Indeed, the AFC classes use the specific annotations: @Pure for making pure functions, and @Inline for [inline functions](en.wikipedia.org/wiki/Inline_function)). AFC also provides the overridings of the operators (operator_plus, operator_minus, etc.) for vectors, matrices, etc.

1.3.4 Other Xtext-base languages

AFC library is compatible with all the languages that are defined upon the Xtext framework for development of programming languages and domain-specific languages. Indeed, the AFC classes use the specific annotations: @Pure for making pure functions, and @Inline for inline functions. AFC also provides the overridings of the operators (operator_plus, operator_minus, etc.) for vectors, matrices, etc.

2. Requirements

For AFC version 17.0 or higher:

  • Java Development Toolkit (JDK) 11 or higher.

For AFC prior to version 17.0:

  • Java Development Toolkit (JDK) 8.

3. Using AFC

3.1. Recommendations

For making your experience with AFC the best, we recommend you:

  • to enable the assertions at development time (with the -ea command line option).

3.2. Use the stable version with Maven

The lastest stable version of AFC is available on Maven Central. Consequently, you could directly include the AFC module that you want to use into the Maven dependencies of your project. For example, if you want to use the "vmutils" module:

	...
	<dependency>
	  <groupId>org.arakhne.core</groupId>
	  <artifactId>vmutils</artifactId>
	  <version>13.0</version>
	</dependency>
	...

Please, replace Version 12.0 in the previous snipset by the number of the version you want to use (12.0 is the first version that is available on Maven Central).

3.3. Use of the development version with Maven

New features, enhancements and bug fixes are available in the SNAPSHOT (development) version of AFC. For using this version, you must add the Maven Repository Server of AFC in your pom file:

	...
	<dependencies>
	  <dependency>
	    <groupId>org.arakhne.core</groupId>
	    <artifactId>vmutils</artifactId>
	    <version>14.0-SNAPSHOT</version>
	  </dependency>
	<dependencies>
	...
	<repositories>
	  <repository>
	    <id>org.arakhne-maven</id>
	    <name>Arakhnê.org Snapshots</name>
	    <url>http://download.tuxfamily.org/arakhne/maven/</url>
	  </repository>
	</repositories>
	<pluginRepositories>
    	  <pluginRepository>
	    <id>org.arakhne-maven</id>
	    <name>Arakhnê.org Snapshots</name>
	    <url>http://download.tuxfamily.org/arakhne/maven/</url>
	    <snapshots>
	      <enabled>true</enabled>
	    </snapshots>
	  </pluginRepository>
	</pluginRepositories>
	...

4. P2 Repository

A P2 repository is set up and accesible at the address: download.tuxfamily.org/arakhne/p2.

The bundles that are available on this P2 repository are:

Name Id Version

Mockito and related dependencies

org.mockito-core

20.0.64.beta

5. Issues

Issues related to the AFC are tracked on GitHub You must use this issue tracker to report and follow your issues.

6. Contributions

Any contribution to the AFC library is welcome. See [CONTRIBUTING](./CONTRIBUTING.md) file for details.

7. Authors

  • anonymous Marc BAUMGARTNER, author of copied source code.

  • anonymous Christophe BOHRHAUER, UTBM student developer, math module.

  • gallandarakhneorg Stéphane GALLAND, founder, original and active author.

  • ngaud Nicolas GAUD, senior developer, math module.

  • MaximeGrolleau Maxime GROLLEAU, UTBM student developer, math module.

  • anonymous Mahdi HANNOUN, founder, original and former author.

  • cheikh35 Hamza JAFFALI, UTBM student developer, math module.

  • olivierlamotte Olivier LAMOTTE, senior developer, vmutil and math modules.

  • devFozgul Fevzi OZGUL, senior developer, cleaning and optimization.

  • tpiotrow Thomas PIOTROWSKI, UTBM student developer, math module.

  • anonymous Yuku SUGIANTO, author of copied source code.

  • anonymous Alexandre WILLAUME, UTBM junior developer, vmutil module.

8. License of AFC

The Arakhnê Foundation Classes are distributed under the Apache v2 license, and is copyrigthed to the original authors and the other authors, as expressed in the NOTICE.

9. Success Stories