Application Development Flavor

Version 8.108 by Ecaterina Valica on 2013/07/04 12:37
Warning: For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [incubator:Improvements.AppDevelopmentFlavor]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

Application Development Flavor

Community Feedback

[xwiki-devs] [Brainstorming] [Flavor] Application Development Flavor http://markmail.org/thread/ion37cj7zb255j3d (25 Mar, 2013)

[xwiki-devs]  [Idea] XWiki Project Development Flavor http://xwiki.markmail.org/thread/334vzyytfvlppmri (Nov 18, 2012)

Objectives

Besides being a wiki, XWiki is also an application development platform. An application is a set of pages that adds new functionality to the wiki (like a blog, or a task manager). You can build simple applications, extend the platform with custom plugins, or even build complex Web applications. 

Short Version

The highlights of the Application Development wiki are:

Issues

  • Group Development Macros together

Tasks & Features

 For developer oriented documentation please consult Developer Guide and Development Zone

Task: Basic Mechanisms

Pages

Pages are atomic entities of the wiki. They can be edited using the Syntax editor or the WYSIWYG editor. They have 'Copy', 'Rename', 'Move', 'Delete' functionality. Also you can manage the 'History' (restore versions), add Attachments to them and manage them with 'Document Index'

Pages are organized in Spaces, that are grouped in Wikis.
Mandatory Default

Rights

Rights can control who can view, edit or delete documents in a flexible manner. You can apply rights to a document, a space or an entire wiki. For special cases (when there is a need to execute powerful code that can affect the entire wiki) there is a programming right.
Mandatory Default

Backup

Backups prevent information loss by having regular backups, useful also when doing upgrades or moving from one instance to another. Also you can export your application's pages into a single XAR archive that is reusable across wikis.
Mandatory Default Extension

Internationalization

You can internationalize your macros and applications by creating and integrating translations keys for your values.
Optional Default

Advanced User Mode

You can switch the user mode from the Profile. The Advanced User Mode reveals access to the advanced edit modes (Class Editor, Object Editor, Rights, etc.) Also it activates the Keyboard Shortcuts.
Mandatory Default

Programming

There are several scripting languages that can be used inside wiki pages: Velocity, Groovy, Python, Ruby and PHP. Also XWiki exposes an API that allows you to manipulate the wiki.
Mandatory Default

Classes & Objects

XWiki's Data Model uses Classes, Properties and Objects in order to build applications.

Classes are templates that define an unique type of object. It defines what properties an object can have. There are several kind of properties you can use: string, number, boolean, static list, database list, date, etc. Classes are defined in wiki pages.

Objects are unique instances of a class with unique values defined for each of the properties that make up the class. An object is attached to a specific page. Each page can have multiple objects.

There are special editors for Classes and Objects. Also, by default there is a set of predefined classes that can be used inside your applications like StyleSheetExtensions (allows you to add CSS specific to your page), JavaScriptExtensions (allows you to add JS), etc.
Mandatory Default

Applications

There are two ways to create applications inside XWiki: first, App Within Minutes targeted towards users with no technical knowledge; second, by using XWiki Classes, Objects and Templates. 

By default there is a set of preinstalled applications and also a repository with applications installable by Extensions Manager.
Mandatory Default Extension Custom

Macros

Macros add extra functionality inside wiki pages. There are certain macro categories, from content formatting to application specific macros. Macro categories need to be customized and specialized for application development. 

Some examples of useful macros:

You can write your own Macros.
Mandatory Default Extension Custom

Skins

Just like Applications and Macros, Skins can be extended from wiki pages. Skin customize the look&feel of the wiki, by modifying the templates, styles, etc.
Mandatory Default Extension Custom

Task: Application Management

Workspaces

Workspaces are subwiki that are created and used by regular users (not just admins). The workspace is a place to collaborate on a specific topic, being able to have independent applications, rights, presentation, backup, etc.
Mandatory

Extension Manager

Extension Manager allows applications to be installed/updated/removed in and from the wiki. All installed applications are displayed in an Applications Panel.

The extensions are available in e.x.o repository.
Mandatory Default

App Within Minutes

App Within Minutes creates collaborative web applications within minutes, based on XWiki's powerful structured data management system.

The wizard allows you to manage the application structure and preferences, offering a drag&drop fields palette.  
Mandatory Default

Task:  Default Applications

Search

Search for content inside pages, comments, objects and also in the content of attachments. You can restrict your search results by using filters based on location, content type, modification date, author, etc. 

Also the Search Suggest feature rapidly displays the top matches for a certain query and highlights documents name, document content, attachment content and user names.
Mandatory Default

Livetable

Livetables allow filtering of pages that share structured data. You can view multiple details on a certain page, like name, location, author, modification date, images, etc. Pages selection can be done for an entire space, wiki, class, tag, author, etc.
Mandatory Default

Activity Stream

Activity Stream lets you monitor the activity on pages, comments, attachments, by seing new, edited, deleted content.
Optional Default

Task:  Development Applications

Repository

Repository Application manages extensions in a repository based on XWiki.
Optional Extension

Syntax Highlighting

Syntax highlighting provides highlighting for writing code inside XWiki pages. Similar functionality is provided by Skywriter, Skin Editor. To highlight code snippets use Highlight Macro or Code Macro.
Optional Extension

Macro Manager

Macro Manager manages all your wiki macros on a single wiki page.
Optional Extension

Database List Manager

Database List Manager manages database list values of a class.
Optional Extension

GitHub

GitHub Commit Application allows to commit and update XWiki pages to and from GitHub.
Optional Extension

Groovy Console

Groovy Console Application allows full access to XWiki API.
Optional Extension

Filesystem Browser

Filesystem Browser Application allows to browse the filesystem on the server.
Optional Extension

Debug Skin

Debug Skin allows to help understand XWiki templates.
Optional Extension

SVN

SVN Application allows to commit and update XWiki pages to and from SVN.
Optional Extension

Selenium

Selenium Application lets you write tests directly inside wiki pages.  
Optional Extension

JS Unit Test Runner

JS Unit Test Runner Application lets you run JS tests from XWiki.
Optional Extension

SQL Tools

SQL Tools are tools to execute SQL queries on JDBC compatible databases.
Optional Extension

Task:  Administrator Tools

Logging Application

Logging Application displays received logs.
Optional Default  

CRaSH Console

CRaSH Console provides standard commands and XWiki specific ones to be run from the console, interacting with the JVM.
Optional Extension

Admin Tools

Admin Tools contains administration tools that checks configurations, indexes, rights, etc.
Optional Extension

Plover

Plover Application is a sanity check runner that executes check suites defined as groovy scripts.
Optional Extension

Features Summary

 Feature  Status
Workspaces Mandatory       
Extension Manager Mandatory    Default    
App Within Minutes Mandatory    Default    
Pages (History, Attachments, Document Index)  Mandatory    Default    
Advanced User Mode Mandatory    Default    
Programming Mandatory    Default    
Classes & Objects Mandatory    Default    
Rights Mandatory    Default    
Search Mandatory    Default    
Livetable Mandatory    Default    
Applications Mandatory    Default    Extension Custom  
Skins Mandatory    Default    Extension Custom  
Macros Mandatory    Default    Extension 1 Custom  
Backup Mandatory    Default    Extension 2 
Internationalization    Optional   Default    
Activity Stream  Optional   Default    
Logging Application  Optional   Default    
Repository  Optional    Extension  3 
GitHub  Optional    Extension  4 
SVN  Optional    Extension  5 
Syntax Highlighting  Optional    Extension  6 
Macro Manager  Optional    Extension  7 
Database List Manager  Optional    Extension  8 
Groovy Console  Optional    Extension  9 
Filesystem Browser  Optional    Extension  10 
Debug Skin  Optional    Extension  11 
Selenium  Optional    Extension  12 
JS Unit Test Runner  Optional    Extension  13 
SQL Tools  Optional    Extension  14 
Admin Tools  Optional    Extension  15 
Plover  Optional    Extension  16 
CRaSH Console  Optional    Extension  17 
  1. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/JIRA+Macro
  2. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/SavedListExporterApplication
  3. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Repository+Application
  4. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/GitHubApp
  5. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/SVN+Application
  6. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Syntax+Highlighting+Application
  7. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Macro+Manager+Application
  8. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/MLDBListManager+Application
  9. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Groovy+Console+Application
  10. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Filesystem+Browser+Application
  11. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/DebugSkin
  12. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Selenium+Application
  13. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/JSUnit+Test+Runner+Application
  14. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/SQL+Tools
  15. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Admin+Tools+Application
  16. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/Plover+Application
  17. ^ http://extensions.xwiki.org/xwiki/bin/view/Extension/CRaSH+Console