From d5918cfef72834a339e2d8b0a859dde62dc48c58 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Sun, 17 Jun 2007 18:13:17 +0000 Subject: [PATCH] added preliminary schema generation support. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@3462 71c3de6d-444a-0410-be80-ed276b4c234a --- core/pom.xml | 7 ++++++- core/src/main/java/hudson/model/Api.java | 13 +++++++++++++ .../src/main/resources/hudson/model/Api/index.jelly | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/core/pom.xml b/core/pom.xml index 8016bd6e0c..a36dc70d9a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -119,7 +119,7 @@ org.kohsuke.stapler stapler - 1.32 + 1.33 org.kohsuke @@ -252,5 +252,10 @@ commons-logging 1.1 + + com.sun.xml.txw2 + txw2 + 20070616 + \ No newline at end of file diff --git a/core/src/main/java/hudson/model/Api.java b/core/src/main/java/hudson/model/Api.java index e787bcef4d..1ba228f75d 100644 --- a/core/src/main/java/hudson/model/Api.java +++ b/core/src/main/java/hudson/model/Api.java @@ -4,8 +4,11 @@ import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.Flavor; +import org.kohsuke.stapler.export.SchemaGenerator; +import org.kohsuke.stapler.export.ModelBuilder; import javax.servlet.ServletException; +import javax.xml.transform.stream.StreamResult; import java.io.IOException; /** @@ -35,6 +38,16 @@ public class Api extends AbstractModelObject { rsp.serveExposedBean(req,bean, Flavor.XML); } + /** + * Generate schema. + */ + public void doSchema(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + rsp.setContentType("application/xml"); + StreamResult r = new StreamResult(rsp.getOutputStream()); + new SchemaGenerator(new ModelBuilder().get(bean.getClass())).generateSchema(r); + r.getOutputStream().close(); + } + /** * Exposes the bean as JSON. */ diff --git a/core/src/main/resources/hudson/model/Api/index.jelly b/core/src/main/resources/hudson/model/Api/index.jelly index 7744003867..c347452917 100644 --- a/core/src/main/resources/hudson/model/Api/index.jelly +++ b/core/src/main/resources/hudson/model/Api/index.jelly @@ -13,6 +13,7 @@
XML API
Access data exposed in HTML as XML for machine consumption. + Schema is also available.
JSON API
-- GitLab