Giter Club home page Giter Club logo

xaos's Introduction

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.

xaos's People

Contributors

andersharrisson-ess avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

xaos's Issues

[minor] path to dot binary hardcoded

Tried to compile this on my system, and I encountered one issue. In the pom file the path to dot is hardcoded as <dotExecutable>/usr/local/bin/dot</dotExecutable>. Removing this line solved it for me. I imagine anyone that has set up dot in /usr/local/bin also would have that in their path, deeming this unecessary?

Other than that it compiled fine, using openjdk-11 and maven 3.6.0 on an arch linux based system. I noticed that one dot file and a few png's were marked as updated in the repository, which is perhaps ideally not necessary as a default action

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.