Elexis 3 Core Repository
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
Note: This will fail in MacOSX. Build instructions for Mac:
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
Building via Eclipse IDE
If you want a complete development environment, try Oomph
We recommend (and if you want to submit patches, you have to respect) the following settings in the Eclipse IDE, reachabel via Window..Preferences:
- 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
- Set “Plugin execution not covered by lifecycle configuration” to “Ignore”
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
This repository hosts the core Elexis 3. It consists of the following plug-ins and features:
ch.rgw.utilityUtilities required to drive Elexis.
ch.elexis.coreCore concepts and interface definitions.
ch.elexis.core.dataCore persistence and functionality packages and classes.
ch.elexis.core.console.applicationHeadless Elexis application.
ch.elexis.core.uiUser Interface dependent portions. Dependent on Eclipse RCP 3.×.
ch.elexis.core.applicationCore UI Elexis Application.
ch.elexis.core.relengRelease Engineering specific parts (Build Target, 3rd party …)
ch.elexis.core.loggingPlug-In for starting ch.qos.logback logging (via slf4j interface)
ch.elexis.core.logging.featureFeature for logging and Felix-gogo console
ch.elexis.core.logging.default_configurationDefault logging configuration (logback.xml)
ch.elexis.core.ui.iconsPlug-In for central icon management.
ch.elexis.core.ui.contactsPlug-In for contact management.
ch.elexis.core.ui.laboratoryPlug-In for laboratory related tasks.
ch.elexis.core.ui.p2Plug-In to realize client side p2 update tasks
ch.elexis.core.common.featureHeadless Core Feature.
ch.elexis.core.ui.featureCore UI Feature.
ch.elexis.core.application.featureCore 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:
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
mvn -N versions:update-child-modules
- Update the version in the following files
- 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