On 11/29/2009 11:56 PM, fmancinelli (SVN) wrote:
Author: fmancinelli
Date: 2009-11-29 23:56:23 +0100 (Sun, 29 Nov 2009)
New Revision: 25362
Added:
contrib/people/fmancinelli/
contrib/people/fmancinelli/xwiki-command/
contrib/people/fmancinelli/xwiki-command/README.txt
contrib/people/fmancinelli/xwiki-command/pom.xml
contrib/people/fmancinelli/xwiki-command/src/
contrib/people/fmancinelli/xwiki-command/src/main/
contrib/people/fmancinelli/xwiki-command/src/main/java/
contrib/people/fmancinelli/xwiki-command/src/main/java/META-INF/
contrib/people/fmancinelli/xwiki-command/src/main/java/META-INF/MANIFEST.MF
contrib/people/fmancinelli/xwiki-command/src/main/java/org/
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/Command.java
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/CommandResource.java
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/commands/
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/commands/LS.java
contrib/people/fmancinelli/xwiki-command/src/main/resources/
contrib/people/fmancinelli/xwiki-command/src/main/resources/META-INF/
contrib/people/fmancinelli/xwiki-command/src/main/resources/META-INF/components.txt
Log:
[Initial import] A proof of concept for a "command line" XWiki interface based
on HTTP.
Added: contrib/people/fmancinelli/xwiki-command/README.txt
===================================================================
--- contrib/people/fmancinelli/xwiki-command/README.txt (rev 0)
+++ contrib/people/fmancinelli/xwiki-command/README.txt 2009-11-29 22:56:23 UTC (rev
25362)
@@ -0,0 +1,9 @@
+This module adds a resource to the XWiki REST subsystem for executing commands.
+This resource accepts text/plain POSTs containing a command line and sends back
+responses in text/plain containing the result of the execution of the command.
+
+A simple "ls" command which lists the spaces in a wiki is provided.
+
+Clients can send commands using cURL in this way:
+
+curl -d "ls" -H "Content-type: text/plain"
http://localhost:8080/xwiki/rest/command
Added:
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/Command.java
===================================================================
---
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/Command.java
(rev 0)
+++
contrib/people/fmancinelli/xwiki-command/src/main/java/org/xwiki/command/Command.java 2009-11-29
22:56:23 UTC (rev 25362)
@@ -0,0 +1,28 @@
+package org.xwiki.command;
+
+import org.xwiki.component.annotation.ComponentRole;
+import org.xwiki.component.manager.ComponentManager;
+
+/**
+ *<p>
+ * This is the command interface. Each command should implement this interface and be
annotated with a @Component
+ * annotation for declaring its name. Don't forget to add the FQN of the command in
the META-INF/components.txt
+ * otherwise it will not be visible.
+ *</p>
+ */
+@ComponentRole
+public interface Command
+{
+ /**
+ *<p>
+ * Execute the command
+ *</p>
+ *
+ * @param componentManager The XWiki component manager for looking up the XWiki
components needed for executing the
+ * command.
+ * @param arguments The arguments extracted from the command line.
+ * @return A String containing the result of the execution of the command.
+ * @throws Exception
+ */
Why do you pass the component manager around? Each component
implementation can declare a dependency on ComponentManager if it needs it.
+ String execute(ComponentManager componentManager,
String... arguments) throws Exception;
+}
--
Sergiu Dumitriu
http://purl.org/net/sergiu/