Development Tools

Last modified by Vincent Massol on 2024/10/10 14:59

Development Tools

You will find here some development tools to be able to easier contribute to XWiki project. If you're an XWiki committer you can access some licenses for these tools.

Java

The core technologies/programming language on which XWiki is based.

Eclipse

Look at Building in Eclipse for some tutorials about configuring your workspace

  • URL: http://www.eclipse.org
  • Description: Very well known and powerful open source development platform mostly targeting Java development.
  • OS: Windows / Mac OS X / Linux

IntelliJ IDEA

Look at Working in Intellij IDEA for some tutorials about configuring your workspace

  • URL: http://www.jetbrains.com/idea/
  • Description: Another development platform. There is an Open Source community version, and for the XWiki developers we have an open source license for the Ultimate version.
  • OS: Windows / Mac OS X / Linux

Bash

Those on Unix/Linux systems can find various helpers scripts on https://github.com/xwiki/xwiki-dev-tools/tree/master/bash.

In-Page editing

It's All Text

  • URL: https://addons.mozilla.org/en-US/firefox/addon/its-all-text/
  • Description: A lot of code is editable directly in the wiki. However, it is not very fun to write code directly in an HTML textarea, so this extension for firefox starts your favourite text editor (with syntax highlighting, etc...) and synchronise it with the textarea. Note: it works for every website, not only XWiki.
  • OS: Windows / Mac OS X / Linux

gEdit

  • URL: https://wiki.gnome.org/Apps/Gedit
  • Description: A text editor very appreciated by developers. With syntax highlighting and a lot of available plug-ins. 
  • OS: Linux with ports for Windows and Mac OS X

Velocity highlighting for gEdit

Atlassian JIRA issue tracker

The main issue tracking system used by all XWiki projects.

Online

Jira client

Git

The main version control system used for all XWiki projects sources.

GitHub

That's where sources are actually hosted, it offers some online tools and help on how to use git.

Git shell client

Maven

The main build system used by all XWiki projects.

M2Eclipse

  • URL: http://www.eclipse.org/m2e/
  • Description: Integrate a Maven project with Eclipse and Eclipse plugins
  • Environment: All Eclipse supported OS

IntelliJ Idea integrated maven

Maven shell client

Checkstyle

The system used by maven to automates the process of checking Java code for XWiki coding standard. Configuration file : checkstyle.xml.

XWiki Checkstyle maven plugin

  • URL: CodeStyle
  • Environment: Windows / Mac OS X / Linux

Eclipse-cs

  • URL: https://github.com/checkstyle/eclipse-cs
  • Description: "With the Checkstyle Eclipse plug-in your code is constantly inspected for problems. Within the Eclipse workbench you are notified of problems via the Eclipse Problems View and source code annotations just as you would see with compiler errors or warnings."
  • Environment: All Eclipse supported OS

Don't use checkstyle.xml configuration file alone, or you'll get cannot initialize module TreeWalker - Unable to instantiate org.xwiki.tool.checkstyle.XWikiClassFanOutComplexityCheck
errors in Eclipse while it tries to build your project. Instead, put the latest version of https://search.maven.org/search?q=a:xwiki-commons-tool-verification-resources jar in Eclipse's dropins/ (recommended) or plugins/ folder. This jar contains a couple of XWiki specific checkstyle modules that are defined in XWiki's checkstyle.xml and without which the Eclipse-cs can not properly process the xml.

CheckStyle-IDEA

Clone the https://github.com/xwiki/xwiki-commons project and use the checkstyle.xml directly from the xwiki-commons-tool-verification-resources package.

Checkstyle official shell client

AspectJ

The tool used by XWiki mainly to keep deprecated methods/Class isolated from the "clean" code.

Eclipse AJDT plugin

Nexus

Used to perform cleanup of XWiki's remote repository (+ for staging and deployment in the future)

YourKit

Use to debug performance issues (memory, CPU) by profiling XWiki.

Pre configured development VM

Get Connected