Elexis 3 Core Repository
Java Ruby HTML XSLT Shell Groovy
Clone or download
Pull request Compare This branch is 30 commits ahead of ngiger:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
ch.elexis.core.p2site [9664] Use 3.7 as version for master branch Jun 22, 2018
ch.elexis.core.releng [9098] Readded tooltip/description/label for plugin[_*].properties Jul 2, 2018
ch.elexis.target [9664] Use 3.7 as version for master branch Jun 22, 2018
features [9664] Update Elexis.setup, remove natures for structural projects Jun 28, 2018
tests [11561] Fix typo in unit-test for travis-ci Jul 2, 2018
.gitignore [5694] Add missing translation file May 16, 2018
.gitlab-ci.yml Fix .gitlab-ci.yml origin branch Jun 22, 2018
.travis.yml [6858] Override failing install step of travis Sep 21, 2017
3lexisFormatterProfile.xml Update formatter profile Sep 8, 2014
Changelog [9093] Updated Changelog Jun 21, 2018
Elexis.setup [9664] Fix target location in Elexis.setup Jun 28, 2018
FeatureStructure.png Documentation update Jul 15, 2013
Gemfile [9909] Fix security warning (#226) Jan 11, 2018
Gemfile.lock [9664] Update to newer nokogir version (Security problem) May 5, 2018
Jenkinsfile [3187]Added Jenkinsfile build.groovy Dec 20, 2015
LICENSE Add License Information Jul 6, 2017
build.groovy [3187]Added Jenkinsfile build.groovy Dec 20, 2015
pom.xml [9664] Use 3.7 as version for master branch Jun 22, 2018


Elexis 3 Core Repository

build status

IMPORTANT Please employ the 3lexisFormatterProfile.xml as Eclipse default formatter prior to development and pull requests.
This accounts for all Elexis 3 related development.

Install latest build

Go to Jenkins-CI Builds.

Download and unzip the zip file for your machine.

Install Oracle java 1.8 from http://www.java.com/de/download/manual.jsp

Start the Elexis3 application.

Use Help..Install New Software to add the desired features from the elexis-3-base P2 repository.


Maven based build

You need Java 1.8+. Maven >= 3.3. Then you should be able to generate the application and p2 update site using the following calls:

git clone https://github.com/elexis/elexis-3-core
mvn -V clean verify -Dtycho.localArtifacts=ignore -Dmaven.test.skip=true -P all-archs

Explanation of the used options

  • -V: emits version of Java, Maven, GUI-Toolkit, Architecture. Handy when you ask a problem
  • clean: Build everything from scratch
  • verify: Compile, test and build a P2-site including products. But does NOT install maven artefacts
  • -Dtycho.localArtifacts=ignore: Do not use any locally built maven artefacts
  • -Dmaven.test.skip=true: Skip unit tests (Use it only if you want to speed up the build)
  • -P all-archs: This a work-around for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=491951. We will get rid of around April 2018 when its fix will be in the next Oxygen Release
  • —quiet: Used for travis builds to generate Quiet output – only show errors. Without it the log would bee too long and make the travis-build fail.

It will be built for your OS/Window-System/Architecture combination. You will find the executables under ch.elexis.core.p2site/target/products/ch.elexis.core.application.ElexisApp/*/*/*

Note: This will fail in MacOSX. Build instructions for Mac:

Install Homebrew
brew install homebrew/versions/maven30
git clone https://github.com/elexis/elexis-3-core
mvn clean install -Pall-archs -Dmaven.test.skip=true

Continuos Intergration builds

We use Travis-CI to ensure that our build system works using a well documented environment. The status for the different branches can be founde under Travis-CI elexis-3-core

The downloads found under http://download.elexis.info/elexis/ are produced by jobs running via the Medelexis GitLab

Building via Eclipse IDE

If you want a complete development environment, try Oomph

Eclipse IDE-Preferences

We recommend (and if you want to submit patches, you have to respect) the following settings in the Eclipse IDE, reachabel via Window..Preferences:

  • General..Workspace
    • Select UTF-8 as “Textfile encoding”
    • Select UNIX as “New text file line delimiter”
  • Java..Code Style..Formatter
    • Click on “Import..” and select the 3lexisFormatterProfile.xml from the root directory of the elexis-3-core checkout
    • Select “3lexis Formatter” as “Active Formater”
  • Java..Editor..Save Action
    • Select: Perform the selected actions on save
    • Do NOT select: Format source code
    • Select: Organize imports
    • Do NOT select: Additional actions
  • Maven..Errors/Warning
    • Set “Plugin execution not covered by lifecycle configuration” to “Ignore”

Submitting patches

To submit patches you have to

  • Fork our github repository to your personal account
  • Clone this repository on your devevelopment machine
  • Create a new branch (eg. git checkout -b my_branch)
  • Commit your change (eg. @git commmit -m “My cool changes”)
  • Push it to your account (eg. git push --set-upstream origin my_branch)
  • Go to your github repository and create a pull requests by clicking on the greeen button “Compare & pull request”
  • Review your changes. There should be only the lines that contribute to the problem. If you have too many changes look at the remarks about Eclipse IDE-Preferences

Developer Overview

This repository hosts the core Elexis 3. It consists of the following plug-ins and features:

  • ch.rgw.utility Utilities required to drive Elexis.
  • ch.elexis.core Core concepts and interface definitions.
  • ch.elexis.core.data Core persistence and functionality packages and classes.
  • ch.elexis.core.console.application Headless Elexis application.
  • ch.elexis.core.ui User Interface dependent portions. Dependent on Eclipse RCP 3.×.
  • ch.elexis.core.application Core UI Elexis Application.
  • ch.elexis.core.releng Release Engineering specific parts (Build Target, 3rd party …)
  • ch.elexis.core.logging Plug-In for starting ch.qos.logback logging (via slf4j interface)
  • ch.elexis.core.logging.feature Feature for logging and Felix-gogo console
  • ch.elexis.core.logging.default_configuration Default logging configuration (logback.xml)
  • ch.elexis.core.ui.icons Plug-In for central icon management.
  • ch.elexis.core.ui.contacts Plug-In for contact management.
  • ch.elexis.core.ui.laboratory Plug-In for laboratory related tasks.
  • ch.elexis.core.ui.p2 Plug-In to realize client side p2 update tasks
  • ch.elexis.core.common.feature Headless Core Feature.
  • ch.elexis.core.ui.feature Core UI Feature.
  • ch.elexis.core.application.feature Core Application Feature.

For details about the resp. plug-ins/features switch to the respective directory. The plug-ins and features
are contained and inter-dependent as follows:

Generate Javadoc

Elexis uses Javadoc go documents its API interface. The Eclipse IDE offers built-in support for reading the javadoc for a given method or class and provides also helper to generate it.

This is accomplished by calling mvn -DforceContextQualifier=javadoc javadoc:javadoc. It generates a complete javadoc. The generated output can be search at target/site/apidocs/index.html.

Even when theses javadoc are not used often, they provide a convenient way to get an overview over methods, packages, etc.

Check whether Javadocs are correctly generated

We use checkstyle to generate Javadoc. Use the following command line:

mvn checkstyle:checkstyle-aggregate site:site

This generates an browsable HTML file target/site/index.html. The links to the modules do not work, unless you call afterwards ch.elexis.core.releng/cleanup_after_checkstyle.rb, a small ruby script which generates a few missing links (not supported on Windows).

It uses the rules defined in ch.elexis.core.releng/checkstyle.xml to generate warnings for missing Javadoc. For each project, there exists an error report. E.g target/site/ch.rgw.utility/checkstyle.html. An aggregated, overall statistics can be found under target/site/checkstyle-aggregate.html

If you want to add even more checks, look at ch.elexis.core.releng/checkstyle_full.xml. Adding new checks should be discussed on the developers mailing list.

Updating all versions for a newer ID

We do this for all new major version, eg. 3.3 → 3.4. See also http://www.mojohaus.org/versions-maven-plugin/usage.html

Steps to follow are:

  • Update the version in master pom.xml
  • Run mvn -N versions:update-child-modules
  • Update the version in the following files
    • ch.elexis.core.p2site/category.xml
    • ch.elexis.core.application/META-INF/MANIFEST.MF
    • ch.elexis.core.console.application/META-INF/MANIFEST.MF
    • other manifests if build fails

Localisation / translation

We are in a transition phase to use trema and support french and italien versions of elexis. For details see l10n.md