Skip to content
This repository has been archived by the owner on Oct 23, 2020. It is now read-only.
/ XAOS Public archive

Open XAL is an open source development environment used for creating accelerator physics applications, scripts and services.

License

Notifications You must be signed in to change notification settings

ESSICS/XAOS

Repository files navigation

logo XAOS (ΧΑΟΣ – the primordial state of existence)

Maven Central Apache License

A JavaFX application framework made initially to create accelerator physics applications based on Open XAL, an open source development environment used for creating accelerator physics applications, scripts and services.

Modules

XAOS is written using the Java Platform Module System (JPMS) available since Java 9. The Maven project is also organized in modules maintaining a 1-to-1 mapping with the JPMS ones. A Maven module's name is made up by the JPMS module one plus the .module suffix.

The XAOS App module (xaos.tools) provides a JavaFX-based application framework for building UI-based applications with menus, toolbars, etc.

The XAOS Core module (xaos.core) provides the non-UI classes part of the framework. Any non-graphical application can use this module.

The XAOS Tools module (xaos.tool) provides tools and utilities used by the other XAOS modules (e.g. annotation processors) to simplify some programming tasks.

The XAOS UI module (xaos.ui) provides JavaFX-based controls and tools suitable for other projects too.

The XAOS Gauge module (xaos.ui.gauge) provides the JavaFX-based kit of controls and tools for creating gauges.

The XAOS Plot module (xaos.ui.plot) provides the JavaFX-based controls and tools for plotting data into a graph.

Test Modules

From the introduction of JPMS in Java 9, some tests cannot anymore performed from inside the module to be tested. for this reasons there are some specific JPMS/Maven modules built to test others:

Using XAOS

Maven

Each XAOS module needed to build your application require a dependency in the application's pom.xml file like the following one:

<dependency>
  <groupId>se.europeanspallationsource</groupId>
  <artifactId>xaos.module</artifactId>
  <version>0.4.3</version>
  <scope>compile</scope>
</dependency>

where module is the name of the XAOS module needed. Look at the README.md file of the module you need for more examples and information.

Here the Maven dependencies of xaos project:

xaos dependencis

Java module-info

Inside your application's module-info.java file the following dependency must be added:

module your.application {
  ...
  requires xaos.module;
  ...
}

where module is the name of the XAOS module needed. Look at the README.md file of the module you need for more examples and information.

System Properties

XAOS defines the following system properties that can be set before launching an application build on XAOS (using java -D<name>=<value> ... ):

Property Type Default Description
xaos.test.verbose boolean false Some tests will be more verbose if set to true.

Running TextFX Tests

When XAOS is built JUnit tests and UI ones (based on TextFX) are automatically performed.

On macOS since version 10.14 Mojave it is necessary to explicitly allow the IDE or the Terminal application performing the build to control the computer. This can be done in the Privacy tab of the Security & Privacy system preferences, by selecting the Accessibility category, the adding and enabling the applications.

Contributing XAOS

The XAOS project on GitHub is using Gitflow, development model introduced by Vincent Driessen, here summarized:

Gitflow

Who wants to contribute this projects must adopt the Gitflow model and tools.

About

Open XAL is an open source development environment used for creating accelerator physics applications, scripts and services.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages