Wiki source code of Application Development Flavor

Version 8.108 by Ecaterina Valica on 2013/07/04 12:37

Show last authors
1 {{velocity}}
2 $xwiki.ssx.use("Improvements.WebHome")
3 $xwiki.ssx.use("Standards.WebHome")
4 $xwiki.ssx.use("Improvements.DocumentationFlavor")
5 {{/velocity}}
6
7 = Application Development Flavor =
8
9 (% class="left column50 dashboardleft" %)
10 (((
11 {{toc depth="3"/}}
12 )))
13
14 (% class="dashboardright right column50 " %)
15 (((
16 {{gallery}}
17 image:AppWithinMinutes.png
18 {{/gallery}}
19 )))
20
21 (% class="clearfloats" %)
22 (((
23 )))
24
25 == Community Feedback ==
26
27 {{info}}
28 [xwiki-devs] [Brainstorming] [Flavor] Application Development Flavor http://markmail.org/thread/ion37cj7zb255j3d (25 Mar, 2013)
29
30 [xwiki-devs] [Idea] XWiki Project Development Flavor http://xwiki.markmail.org/thread/334vzyytfvlppmri (Nov 18, 2012)
31 {{/info}}
32
33 (% class="left column40 dashboardleft" style="width: 27%" %)
34 (((
35 == Objectives ==
36 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.
37
38 == Short Version ==
39
40 The highlights of the Application Development wiki are:
41 * [[Advanced User Mode>>||anchor="HAdvancedUserMode"]]
42 * [[Extension Manager>>||anchor="HExtensionManager"]]
43 * [[App Within Minutes>>||anchor="HAppWithinMinutes"]]
44 * Focused on development [[Applications>>||anchor="HApplications"]]
45 * Custom [[Macros>>||anchor="HMacros"]] specialized for application development
46
47
48 == Issues ==
49 * Group Development Macros together
50 )))
51
52 (% class="dashboardright right column60 " style="width: 70%" %)
53 (((
54
55 == Tasks & Features ==
56
57 {{warning}} For developer oriented documentation please consult [[Developer Guide>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/WebHome]] and [[Development Zone>>http://dev.xwiki.org/xwiki/bin/view/Main/WebHome]]{{/warning}}
58
59 === (% class="primaryTitle" %)Task:(%%) Basic Mechanisms ===
60
61 {{container layoutStyle="columns"}}
62 (((
63 ==== Pages ====
64 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'//.
65
66 Pages are organized in Spaces, that are grouped in Wikis.
67 {{status group='M'/}} {{status group='D'/}}
68
69 ==== Rights ====
70 [[Rights>>http://platform.xwiki.org/xwiki/bin/view/AdminGuide/Access+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.
71 {{status group='M'/}} {{status group='D'/}}
72
73 ==== Backup ====
74 Backups prevent information loss by having regular backups, useful also when doing upgrades or moving from one instance to another. Also you can [[export>>http://extensions.xwiki.org/xwiki/bin/view/Extension/SavedListExporterApplication]] your application's pages into a single XAR archive that is reusable across wikis.
75 {{status group='M'/}} {{status group='D'/}} {{status group='E'/}}
76
77 ==== Internationalization ====
78 You can [[internationalize>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/InternationalizingApplications]] your macros and applications by creating and integrating translations keys for your values.
79 {{status group='O'/}} {{status group='D'/}}
80 )))
81 (((
82 ==== Advanced User Mode ====
83 You can switch the user mode from the Profile. The [[Advanced User Mode>>http://platform.xwiki.org/xwiki/bin/view/Features/PageEditing#HSimpleandAdvancededitionmodes]] reveals access to the advanced edit modes (Class Editor, Object Editor, Rights, etc.) Also it activates the [[Keyboard Shortcuts>>http://platform.xwiki.org/xwiki/bin/view/Features/KeyboardShortcuts]].
84 {{status group='M'/}} {{status group='D'/}}
85
86 ==== Programming ====
87 There are several [[scripting>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/Scripting]] languages that can be used inside wiki pages: Velocity, Groovy, Python, Ruby and PHP. Also XWiki exposes an [[API>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/API]] that allows you to manipulate the wiki.
88 {{status group='M'/}} {{status group='D'/}}
89
90 ==== Classes & Objects ====
91 [[XWiki's Data Model>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/DataModel]] uses Classes, Properties and Objects in order to build applications.
92
93 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.
94
95 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.
96
97 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.
98 {{status group='M'/}} {{status group='D'/}}
99 )))
100 (((
101 ==== Applications ====
102 There are two ways to create applications inside XWiki: first, [[App Within Minutes>>||anchor='HAppWithinMinutes']] targeted towards users with no technical knowledge; second, by using [[XWiki Classes>>||anchor='HClasses26Objects']], Objects and Templates.
103
104 By default there is a set of [[preinstalled applications>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/Architecture#HXWikiPlatformApplications]] and also a repository with applications installable by [[Extensions Manager>>||anchor='HExtensionManager']].
105 {{status group='M'/}} {{status group='D'/}} {{status group='E'/}} {{status group='S'/}}
106
107 ==== Macros ====
108 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.
109
110 Some examples of useful macros:
111 * [[Context Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Context+Macro]]
112 * [[HTML Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/HTML+Macro]]
113 * [[Velocity Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Velocity+Macro]]
114 * [[Groovy Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Groovy+Macro]]
115 * [[Code Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Code+Macro]]
116 * [[Jira Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/JIRA+Macro]]
117
118 You can [[write your own>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/WritingMacros]] Macros.
119 {{status group='M'/}} {{status group='D'/}} {{status group='E'/}} {{status group='S'/}}
120
121 ==== Skins ====
122 Just like Applications and Macros, Skins can be extended from wiki pages. [[Skin>>http://platform.xwiki.org/xwiki/bin/view/Features/Skins]] customize the look&feel of the wiki, by modifying the templates, styles, etc.
123 {{status group='M'/}} {{status group='D'/}} {{status group='E'/}} {{status group='S'/}}
124 )))
125 {{/container}}
126
127
128
129 === (% class="primaryTitle" %)Task:(%%) Application Management ===
130
131 {{container layoutStyle="columns"}}
132 (((
133 ==== Workspaces ====
134 [[Workspaces>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Workspace+Application]] 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.
135 {{status group='M'/}} {{status group=''/}}
136 )))
137 (((
138 ==== Extension Manager ====
139 [[Extension Manager>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Extension+Manager+Application]] allows applications to be installed/updated/removed in and from the wiki. All installed applications are displayed in an Applications Panel.
140
141 The extensions are available in [[e.x.o repository>>http://extensions.xwiki.org/xwiki/bin/view/Main/WebHome]].
142 {{status group='M'/}} {{status group='D'/}}
143 )))
144 (((
145 ==== App Within Minutes====
146 [[App Within Minutes>>http://extensions.xwiki.org/xwiki/bin/view/Extension/App+Within+Minutes+Application]] creates collaborative web applications within minutes, based on XWiki's powerful structured data management system.
147
148 The wizard allows you to manage the application structure and preferences, offering a drag&drop fields palette.
149 {{status group='M'/}} {{status group='D'/}}
150 )))
151 {{/container}}
152
153
154
155 === (% class="primaryTitle" %)Task:(%%) Default Applications ===
156
157 {{container layoutStyle="columns"}}
158 (((
159 ==== Search ====
160 [[Search>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Search+Application]] 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.
161
162 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.
163 {{status group='M'/}} {{status group='D'/}}
164 )))
165 (((
166 ==== Livetable ====
167 [[Livetables>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Livetable+Macro]] 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.
168 {{status group='M'/}} {{status group='D'/}}
169 )))
170 (((
171 ==== Activity Stream ====
172 [[Activity Stream>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Activity+Macro]] lets you monitor the activity on pages, comments, attachments, by seing new, edited, deleted content.
173 {{status group='O'/}} {{status group='D'/}}
174 )))
175 {{/container}}
176
177
178
179 === (% class="primaryTitle" %)Task:(%%) Development Applications ===
180
181 {{container layoutStyle="columns"}}
182 (((
183 ==== Repository====
184 [[Repository Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Repository+Application]] manages extensions in a repository based on XWiki.
185 {{status group='O'/}} {{status group='E'/}}
186
187 ==== Syntax Highlighting ====
188 [[Syntax highlighting>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Syntax+Highlighting+Application]] provides highlighting for writing code inside XWiki pages. Similar functionality is provided by [[Skywriter>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Skywriter+Application]], [[Skin Editor>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Skin+Editor+Application]]. To highlight code snippets use [[Highlight Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Highlight+Macro]] or [[Code Macro>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Code+Macro]].
189 {{status group='O'/}} {{status group='E'/}}
190
191 ==== Macro Manager ====
192 [[Macro Manager>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Macro+Manager+Application]] manages all your wiki macros on a single wiki page.
193 {{status group='O'/}} {{status group='E'/}}
194
195 ==== Database List Manager ====
196 [[Database List Manager>>http://extensions.xwiki.org/xwiki/bin/view/Extension/MLDBListManager+Application]] manages database list values of a class.
197 {{status group='O'/}} {{status group='E'/}}
198 )))
199 (((
200 ==== GitHub ====
201 [[GitHub Commit Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/GitHubApp]] allows to commit and update XWiki pages to and from GitHub.
202 {{status group='O'/}} {{status group='E'/}}
203
204 ==== Groovy Console ====
205 [[Groovy Console Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Groovy+Console+Application]] allows full access to XWiki API.
206 {{status group='O'/}} {{status group='E'/}}
207
208 ==== Filesystem Browser ====
209 [[Filesystem Browser Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Filesystem+Browser+Application]] allows to browse the filesystem on the server.
210 {{status group='O'/}} {{status group='E'/}}
211
212 ==== Debug Skin ====
213 [[Debug Skin>>http://extensions.xwiki.org/xwiki/bin/view/Extension/DebugSkin]] allows to help understand XWiki templates.
214 {{status group='O'/}} {{status group='E'/}}
215 )))
216 (((
217 ==== SVN ====
218 [[SVN Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/SVN+Application]] allows to commit and update XWiki pages to and from SVN.
219 {{status group='O'/}} {{status group='E'/}}
220
221 ==== Selenium====
222 [[Selenium Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Selenium+Application]] lets you write tests directly inside wiki pages.
223 {{status group='O'/}} {{status group='E'/}}
224
225 ==== JS Unit Test Runner====
226 [[JS Unit Test Runner Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/JSUnit+Test+Runner+Application]] lets you run JS tests from XWiki.
227 {{status group='O'/}} {{status group='E'/}}
228
229 ==== SQL Tools ====
230 [[SQL Tools>>http://extensions.xwiki.org/xwiki/bin/view/Extension/SQL+Tools]] are tools to execute SQL queries on JDBC compatible databases.
231 {{status group='O'/}} {{status group='E'/}}
232
233 )))
234 {{/container}}
235
236 === (% class="primaryTitle" %)Task:(%%) Administrator Tools ===
237
238 {{container layoutStyle="columns"}}
239 (((
240 ==== Logging Application ====
241 [[Logging Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Logging+Module]] displays received logs.
242 {{status group='O'/}} {{status group='D'/}}
243
244 ==== CRaSH Console ====
245 [[CRaSH Console>>http://extensions.xwiki.org/xwiki/bin/view/Extension/CRaSH+Console]] provides standard commands and XWiki specific ones to be run from the console, interacting with the JVM.
246 {{status group='O'/}} {{status group='E'/}}
247 )))
248 (((
249 ==== Admin Tools ====
250 [[Admin Tools>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Admin+Tools+Application]] contains administration tools that checks configurations, indexes, rights, etc.
251 {{status group='O'/}} {{status group='E'/}}
252 )))
253 (((
254 ==== Plover ====
255 [[Plover Application>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Plover+Application]] is a sanity check runner that executes check suites defined as groovy scripts.
256 {{status group='O'/}} {{status group='E'/}}
257 )))
258 {{/container}}
259 )))
260
261 (% class="clearfloats" %)
262 (((
263 )))
264
265 == Features Summary ==
266
267 (% class="statusTable" %)
268 |= Feature |=(% colspan="6" width="40%" %) Status
269 |[[Workspaces>>||anchor="HWorkspaces"]]|{{status group="M"/}} | |{{status group=""/}} | | |
270 |[[Extension Manager>>||anchor="HExtensionManager"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
271 |[[App Within Minutes>>||anchor="HAppWithinMinutes"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
272 |[[Pages>>||anchor="HPages"]] (History, Attachments, Document Index) |{{status group="M"/}} | |{{status group="D"/}} | | |
273 |[[Advanced User Mode>>||anchor="HAdvancedUserMode"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
274 |[[Programming>>||anchor="HProgramming"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
275 |[[Classes & Objects>>||anchor="HClasses26Objects"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
276 |[[Rights>>||anchor="HRights"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
277 |[[Search>>||anchor="HSearch"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
278 |[[Livetable>>||anchor="HLivetable"]]|{{status group="M"/}} | |{{status group="D"/}} | | |
279 |[[Applications>>||anchor="HApplications"]]|{{status group="M"/}} | |{{status group="D"/}} | {{status group="E"/}}|{{status group="S"/}} |
280 |[[Skins>>||anchor="HSkins"]]|{{status group="M"/}} | |{{status group="D"/}} | {{status group="E"/}}|{{status group="S"/}} |
281 |[[Macros>>||anchor="HMacros"]]|{{status group="M"/}} | |{{status group="D"/}} | {{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/JIRA+Macro{{/footnote}}|{{status group="S"/}} |
282 |[[Backup>>||anchor="HBackup"]]|{{status group="M"/}} | |{{status group="D"/}} | {{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/SavedListExporterApplication{{/footnote}}| |
283 |[[Internationalization>>||anchor="HInternationalization"]] | | {{status group="O"/}} |{{status group="D"/}} | | |
284 |[[Activity Stream>>||anchor="HActivityStream"]]| |{{status group="O"/}} |{{status group="D"/}} | | |
285 |[[Logging Application>>||anchor="HLoggingApplication"]]| |{{status group="O"/}} |{{status group="D"/}} | | |
286 |[[Repository>>||anchor="HRepository"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Repository+Application{{/footnote}}| |
287 |[[GitHub>>||anchor="HGitHub"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/GitHubApp{{/footnote}}| |
288 |[[SVN>>||anchor="HSVN"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/SVN+Application{{/footnote}}| |
289 |[[Syntax Highlighting>>||anchor="HSyntaxHighlighting"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Syntax+Highlighting+Application{{/footnote}}| |
290 |[[Macro Manager>>||anchor="HMacroManager"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Macro+Manager+Application{{/footnote}}| |
291 |[[Database List Manager>>||anchor="HDatabaseListManager"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/MLDBListManager+Application{{/footnote}}| |
292 |[[Groovy Console>>||anchor="HGroovyConsole"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Groovy+Console+Application{{/footnote}}| |
293 |[[Filesystem Browser>>||anchor="HFilesystemBrowser"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Filesystem+Browser+Application{{/footnote}}| |
294 |[[Debug Skin>>||anchor="HDebugSkin"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/DebugSkin{{/footnote}}| |
295 |[[Selenium>>||anchor="HSelenium"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Selenium+Application{{/footnote}}| |
296 |[[JS Unit Test Runner>>||anchor="HJSUnitTestRunner"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/JSUnit+Test+Runner+Application{{/footnote}}| |
297 |[[SQL Tools>>||anchor="HSQLTools"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/SQL+Tools{{/footnote}}| |
298 |[[Admin Tools>>||anchor="HAdminTools"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Admin+Tools+Application{{/footnote}}| |
299 |[[Plover>>||anchor="HPlover"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/Plover+Application{{/footnote}}| |
300 |[[CRaSH Console>>||anchor="HCRaSHConsole"]]| |{{status group="O"/}} | |{{status group="E"/}} {{footnote}}http://extensions.xwiki.org/xwiki/bin/view/Extension/CRaSH+Console{{/footnote}}| |
301
302 {{putFootnotes/}}