[stapler/f19] Initial import
Michal Srb
msrb at fedoraproject.org
Wed May 29 13:04:13 UTC 2013
commit 5e411d501f9c3f595d4d6ef6de08fd8db57ee139
Author: Michal Srb <msrb at redhat.com>
Date: Wed May 29 15:00:59 2013 +0200
Initial import
.gitignore | 2 +
0001-Fix-asm-namespace.patch | 33 ++
0001-Remove-jellydoc-annotations.patch | 428 ++++++++++++++++++++
0001-Use-XmlChars-class-from-external-jar.patch | 45 ++
...riginal-dom4j-library-not-patched-version.patch | 215 ++++++++++
0001-Use-unbundled-class-from-glassfish-jaxb.patch | 46 +++
create-tarball.sh | 29 ++
sources | 2 +
stapler.spec | 196 +++++++++
9 files changed, 996 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..58179c4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/stapler-1.209-clean.tar.gz
+/LICENSE-2.0.txt
diff --git a/0001-Fix-asm-namespace.patch b/0001-Fix-asm-namespace.patch
new file mode 100644
index 0000000..c687154
--- /dev/null
+++ b/0001-Fix-asm-namespace.patch
@@ -0,0 +1,33 @@
+From 4a1eee6be529ef73155fa3da62fb427c2c21b58a Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Mon, 6 May 2013 16:12:02 +0200
+Subject: [PATCH] Fix asm namespace
+
+---
+ core/src/main/java/org/kohsuke/stapler/ClassDescriptor.java | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/core/src/main/java/org/kohsuke/stapler/ClassDescriptor.java b/core/src/main/java/org/kohsuke/stapler/ClassDescriptor.java
+index 3c14446..967fd86 100644
+--- a/core/src/main/java/org/kohsuke/stapler/ClassDescriptor.java
++++ b/core/src/main/java/org/kohsuke/stapler/ClassDescriptor.java
+@@ -24,11 +24,11 @@
+ package org.kohsuke.stapler;
+
+ import org.apache.commons.io.IOUtils;
+-import org.kohsuke.asm3.ClassReader;
+-import org.kohsuke.asm3.Label;
+-import org.kohsuke.asm3.MethodVisitor;
+-import org.kohsuke.asm3.Type;
+-import org.kohsuke.asm3.commons.EmptyVisitor;
++import org.objectweb.asm.ClassReader;
++import org.objectweb.asm.Label;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Type;
++import org.objectweb.asm.commons.EmptyVisitor;
+
+ import java.io.IOException;
+ import java.io.InputStream;
+--
+1.8.1.4
+
diff --git a/0001-Remove-jellydoc-annotations.patch b/0001-Remove-jellydoc-annotations.patch
new file mode 100644
index 0000000..88b6b61
--- /dev/null
+++ b/0001-Remove-jellydoc-annotations.patch
@@ -0,0 +1,428 @@
+From 12702f84a63a4102cb532daa60949190b481458b Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Mon, 6 May 2013 16:31:31 +0200
+Subject: [PATCH] Remove jellydoc annotations
+
+We don't need to generate any reports with maven-jellydoc-plugin.
+---
+ jelly/src/main/java/org/kohsuke/stapler/jelly/AdjunctTag.java | 3 ---
+ .../main/java/org/kohsuke/stapler/jelly/AttributeConstraintsTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/BindTag.java | 4 ----
+ jelly/src/main/java/org/kohsuke/stapler/jelly/ContentTypeTag.java | 4 ----
+ jelly/src/main/java/org/kohsuke/stapler/jelly/CopyStreamTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/DoctypeTag.java | 5 -----
+ jelly/src/main/java/org/kohsuke/stapler/jelly/FindAncestorTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/HeaderTag.java | 5 -----
+ jelly/src/main/java/org/kohsuke/stapler/jelly/IncludeTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/IsUserInRoleTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/NbspTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/OutTag.java | 4 ----
+ jelly/src/main/java/org/kohsuke/stapler/jelly/RedirectTag.java | 4 ----
+ jelly/src/main/java/org/kohsuke/stapler/jelly/StatusCodeTag.java | 4 ----
+ .../java/org/kohsuke/stapler/jelly/StructuredMessageFormatTag.java | 2 --
+ jelly/src/main/java/org/kohsuke/stapler/jelly/package-info.java | 2 --
+ 17 files changed, 51 deletions(-)
+
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/AdjunctTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/AdjunctTag.java
+index a36201f..da8d3da 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/AdjunctTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/AdjunctTag.java
+@@ -28,8 +28,6 @@ import org.apache.commons.jelly.XMLOutput;
+ import org.kohsuke.stapler.framework.adjunct.AdjunctManager;
+ import org.kohsuke.stapler.framework.adjunct.AdjunctsInPage;
+ import org.xml.sax.SAXException;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ import java.io.IOException;
+ import java.util.List;
+@@ -41,7 +39,6 @@ import java.util.logging.Logger;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class AdjunctTag extends AbstractStaplerTag {
+ private String[] includes;
+ private String[] assumes;
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeConstraintsTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeConstraintsTag.java
+index 893e67e..b0ec8d2 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeConstraintsTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeConstraintsTag.java
+@@ -25,7 +25,6 @@ package org.kohsuke.stapler.jelly;
+
+ import org.apache.commons.jelly.TagSupport;
+ import org.apache.commons.jelly.XMLOutput;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ /**
+ * DTD-like expression that specifies the consraints on attribute appearances.
+@@ -44,7 +43,6 @@ public class AttributeConstraintsTag extends TagSupport {
+ /**
+ * Constraint expression.
+ */
+- @Required
+ public void setExpr(String v) {}
+ }
+
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeTag.java
+index bbd54c6..532b19b 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/AttributeTag.java
+@@ -25,7 +25,6 @@ package org.kohsuke.stapler.jelly;
+
+ import org.apache.commons.jelly.TagSupport;
+ import org.apache.commons.jelly.XMLOutput;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ /**
+ * Documentation for an attribute of a Jelly tag file.
+@@ -47,7 +46,6 @@ public class AttributeTag extends TagSupport {
+ /**
+ * Name of the attribute.
+ */
+- @Required
+ public void setName(String v) {}
+
+ /**
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/BindTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/BindTag.java
+index 1528ced..50b404a 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/BindTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/BindTag.java
+@@ -25,8 +25,6 @@ package org.kohsuke.stapler.jelly;
+
+ import org.apache.commons.jelly.JellyTagException;
+ import org.apache.commons.jelly.XMLOutput;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+ import org.kohsuke.stapler.WebApp;
+ import org.kohsuke.stapler.bind.Bound;
+ import org.kohsuke.stapler.framework.adjunct.AdjunctsInPage;
+@@ -38,7 +36,6 @@ import org.xml.sax.SAXException;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class BindTag extends AbstractStaplerTag {
+ private String varName;
+ private Object javaObject;
+@@ -55,7 +52,6 @@ public class BindTag extends AbstractStaplerTag {
+ this.varName = varName;
+ }
+
+- @Required
+ public void setValue(Object o) {
+ this.javaObject = o;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/ContentTypeTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/ContentTypeTag.java
+index 223f5fb..784242b 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/ContentTypeTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/ContentTypeTag.java
+@@ -26,8 +26,6 @@ package org.kohsuke.stapler.jelly;
+ import org.apache.commons.jelly.JellyTagException;
+ import org.apache.commons.jelly.MissingAttributeException;
+ import org.apache.commons.jelly.XMLOutput;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+
+ import javax.servlet.http.HttpServletResponse;
+
+@@ -36,14 +34,12 @@ import javax.servlet.http.HttpServletResponse;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class ContentTypeTag extends AbstractStaplerTag {
+ private String contentType;
+
+ /**
+ * The content-type value, such as "text/html".
+ */
+- @Required
+ public void setValue(String contentType) {
+ this.contentType = contentType;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/CopyStreamTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/CopyStreamTag.java
+index a299a8a..0a764c1 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/CopyStreamTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/CopyStreamTag.java
+@@ -26,7 +26,6 @@ package org.kohsuke.stapler.jelly;
+ import org.apache.commons.jelly.JellyTagException;
+ import org.apache.commons.jelly.XMLOutput;
+ import org.xml.sax.SAXException;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+
+ import java.io.File;
+ import java.io.FileNotFoundException;
+@@ -41,7 +40,6 @@ import java.net.URL;
+ * Copies a stream as text.
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class CopyStreamTag extends AbstractStaplerTag {
+ private Reader in;
+
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/DoctypeTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/DoctypeTag.java
+index 34afea0..b1ab5cc 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/DoctypeTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/DoctypeTag.java
+@@ -25,8 +25,6 @@ package org.kohsuke.stapler.jelly;
+
+ import org.apache.commons.jelly.XMLOutput;
+ import org.apache.commons.jelly.JellyTagException;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ import java.io.IOException;
+
+@@ -35,17 +33,14 @@ import java.io.IOException;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class DoctypeTag extends AbstractStaplerTag {
+ private String publicId;
+ private String systemId;
+
+- @Required
+ public void setPublicId(String publicId) {
+ this.publicId = publicId;
+ }
+
+- @Required
+ public void setSystemId(String systemId) {
+ this.systemId = systemId;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/FindAncestorTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/FindAncestorTag.java
+index 34318c3..bc6a455 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/FindAncestorTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/FindAncestorTag.java
+@@ -27,7 +27,6 @@ import org.apache.commons.jelly.JellyTagException;
+ import org.apache.commons.jelly.NamespaceAwareTag;
+ import org.apache.commons.jelly.Tag;
+ import org.apache.commons.jelly.XMLOutput;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+
+ import java.util.Map;
+
+@@ -37,7 +36,6 @@ import java.util.Map;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class FindAncestorTag extends AbstractStaplerTag implements NamespaceAwareTag {
+ private String tag;
+
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/HeaderTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/HeaderTag.java
+index 259c134..8771b0a 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/HeaderTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/HeaderTag.java
+@@ -26,15 +26,12 @@ package org.kohsuke.stapler.jelly;
+ import org.apache.commons.jelly.JellyTagException;
+ import org.apache.commons.jelly.MissingAttributeException;
+ import org.apache.commons.jelly.XMLOutput;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ /**
+ * Adds an HTTP header to the response.
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class HeaderTag extends AbstractStaplerTag {
+ private String name;
+ private String value;
+@@ -42,7 +39,6 @@ public class HeaderTag extends AbstractStaplerTag {
+ /**
+ * Header name.
+ */
+- @Required
+ public void setName(String name) {
+ this.name = name;
+ }
+@@ -50,7 +46,6 @@ public class HeaderTag extends AbstractStaplerTag {
+ /**
+ * Header value.
+ */
+- @Required
+ public void setValue(String value) {
+ this.value = value;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/IncludeTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/IncludeTag.java
+index 5dc4d1f..9357552 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/IncludeTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/IncludeTag.java
+@@ -32,7 +32,6 @@ import org.apache.commons.jelly.impl.TagScript;
+ import org.kohsuke.stapler.MetaClass;
+ import org.kohsuke.stapler.WebApp;
+ import org.xml.sax.SAXException;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ /**
+ * Tag that includes views of the object.
+@@ -53,7 +52,6 @@ public class IncludeTag extends TagSupport {
+ /**
+ * Specifies the name of the JSP to be included.
+ */
+- @Required
+ public void setPage(String page) {
+ this.page = page;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/IsUserInRoleTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/IsUserInRoleTag.java
+index 762e7ff..c0dcdf2 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/IsUserInRoleTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/IsUserInRoleTag.java
+@@ -26,7 +26,6 @@ package org.kohsuke.stapler.jelly;
+ import org.apache.commons.jelly.JellyTagException;
+ import org.apache.commons.jelly.MissingAttributeException;
+ import org.apache.commons.jelly.XMLOutput;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ import javax.servlet.http.HttpServletRequest;
+
+@@ -39,7 +38,6 @@ public class IsUserInRoleTag extends AbstractStaplerTag {
+ /**
+ * The name of the role against which the user is checked.
+ */
+- @Required
+ public void setRole(String role) {
+ this.role = role;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/NbspTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/NbspTag.java
+index 27fc7f3..42ffc8c 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/NbspTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/NbspTag.java
+@@ -28,14 +28,12 @@ import org.apache.commons.jelly.MissingAttributeException;
+ import org.apache.commons.jelly.TagSupport;
+ import org.apache.commons.jelly.XMLOutput;
+ import org.xml.sax.SAXException;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+
+ /**
+ * Writes out '&nbsp;'.
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class NbspTag extends TagSupport {
+ public void doTag(XMLOutput output) throws MissingAttributeException, JellyTagException {
+ try {
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/OutTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/OutTag.java
+index 8ed70d4..0c770db 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/OutTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/OutTag.java
+@@ -29,8 +29,6 @@ import org.apache.commons.jelly.TagSupport;
+ import org.apache.commons.jelly.XMLOutput;
+ import org.apache.commons.jelly.expression.Expression;
+ import org.xml.sax.SAXException;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ /**
+ * Tag that outputs the specified value but with escaping,
+@@ -39,11 +37,9 @@ import org.jvnet.maven.jellydoc.annotation.Required;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class OutTag extends TagSupport {
+ private Expression value;
+
+- @Required
+ public void setValue(Expression value) {
+ this.value = value;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/RedirectTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/RedirectTag.java
+index 4479a1e..7595131 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/RedirectTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/RedirectTag.java
+@@ -28,8 +28,6 @@ import org.apache.commons.jelly.TagSupport;
+ import org.apache.commons.jelly.XMLOutput;
+ import org.kohsuke.stapler.Stapler;
+ import org.kohsuke.stapler.StaplerResponse;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ import java.io.IOException;
+
+@@ -38,7 +36,6 @@ import java.io.IOException;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class RedirectTag extends TagSupport {
+ private String url;
+
+@@ -46,7 +43,6 @@ public class RedirectTag extends TagSupport {
+ * Sets the target URL to redirect to. This just gets passed
+ * to {@link StaplerResponse#sendRedirect2(String)}.
+ */
+- @Required
+ public void setUrl(String url) {
+ this.url = url;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/StatusCodeTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/StatusCodeTag.java
+index 9c1db8e..848d6a5 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/StatusCodeTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/StatusCodeTag.java
+@@ -25,8 +25,6 @@ package org.kohsuke.stapler.jelly;
+
+ import org.apache.commons.jelly.XMLOutput;
+ import org.apache.commons.jelly.JellyTagException;
+-import org.jvnet.maven.jellydoc.annotation.NoContent;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+
+ /**
+ * Sets HTTP status code.
+@@ -36,14 +34,12 @@ import org.jvnet.maven.jellydoc.annotation.Required;
+ *
+ * @author Kohsuke Kawaguchi
+ */
+- at NoContent
+ public class StatusCodeTag extends AbstractStaplerTag {
+ private int code;
+
+ /**
+ * HTTP status code to send back.
+ */
+- @Required
+ public void setValue(int code) {
+ this.code = code;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/StructuredMessageFormatTag.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/StructuredMessageFormatTag.java
+index 5e018b4..78afe1c 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/StructuredMessageFormatTag.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/StructuredMessageFormatTag.java
+@@ -27,7 +27,6 @@ import org.apache.commons.jelly.JellyTagException;
+ import org.apache.commons.jelly.XMLOutput;
+ import org.apache.commons.jelly.LocationAware;
+ import org.jvnet.localizer.LocaleProvider;
+-import org.jvnet.maven.jellydoc.annotation.Required;
+ import org.xml.sax.SAXException;
+
+ import java.util.ArrayList;
+@@ -44,7 +43,6 @@ public class StructuredMessageFormatTag extends AbstractStaplerTag implements Lo
+ private String key;
+ private ResourceBundle rb;
+
+- @Required
+ public void setKey(String resourceKey) {
+ this.key = resourceKey;
+ }
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/package-info.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/package-info.java
+index bf5fdf0..294a0b6 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/package-info.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/package-info.java
+@@ -24,7 +24,5 @@
+ /**
+ * Optional Jelly support, to write views in Jelly.
+ */
+- at TagLibUri("jelly:stapler")
+ package org.kohsuke.stapler.jelly;
+
+-import org.jvnet.maven.jellydoc.annotation.TagLibUri;
+\ No newline at end of file
+--
+1.8.1.4
+
diff --git a/0001-Use-XmlChars-class-from-external-jar.patch b/0001-Use-XmlChars-class-from-external-jar.patch
new file mode 100644
index 0000000..8e77f2e
--- /dev/null
+++ b/0001-Use-XmlChars-class-from-external-jar.patch
@@ -0,0 +1,45 @@
+From cdd88b497dc2c1ed90ca366ad13189b8e1334484 Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Tue, 21 May 2013 14:30:16 +0200
+Subject: [PATCH] Use XmlChars class from external jar
+
+This class was previously bundled inside stapler
+---
+ core/src/main/java/org/kohsuke/stapler/export/XMLDataWriter.java | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/core/src/main/java/org/kohsuke/stapler/export/XMLDataWriter.java b/core/src/main/java/org/kohsuke/stapler/export/XMLDataWriter.java
+index 168a9d0..72f4b6e 100644
+--- a/core/src/main/java/org/kohsuke/stapler/export/XMLDataWriter.java
++++ b/core/src/main/java/org/kohsuke/stapler/export/XMLDataWriter.java
+@@ -25,6 +25,7 @@ package org.kohsuke.stapler.export;
+
+ import org.kohsuke.stapler.Stapler;
+ import org.kohsuke.stapler.StaplerResponse;
++import org.apache.xerces.util.XMLChar;
+
+ import java.util.Stack;
+ import java.io.Writer;
+@@ -115,8 +116,8 @@ final class XMLDataWriter implements DataWriter {
+ /*package*/ static String makeXmlName(String name) {
+ if (name.length()==0) name="_";
+
+- if (!XmlChars.isNameStart(name.charAt(0))) {
+- if (name.length()>1 && XmlChars.isNameStart(name.charAt(1)))
++ if (!XMLChar.isNameStart(name.charAt(0))) {
++ if (name.length()>1 && XMLChar.isNameStart(name.charAt(1)))
+ name = name.substring(1);
+ else
+ name = '_'+name;
+@@ -124,7 +125,7 @@ final class XMLDataWriter implements DataWriter {
+
+ int i=1;
+ while (i<name.length()) {
+- if (XmlChars.isNameChar(name.charAt(i)))
++ if (XMLChar.isName(name.charAt(i)))
+ i++;
+ else
+ name = name.substring(0,i)+name.substring(i+1);
+--
+1.8.1.4
+
diff --git a/0001-Use-original-dom4j-library-not-patched-version.patch b/0001-Use-original-dom4j-library-not-patched-version.patch
new file mode 100644
index 0000000..84a038e
--- /dev/null
+++ b/0001-Use-original-dom4j-library-not-patched-version.patch
@@ -0,0 +1,215 @@
+From dc82ff730db5b72adc6ca812649d77a2d141eb20 Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Fri, 17 May 2013 12:29:37 +0200
+Subject: [PATCH] Use original dom4j library, not patched version
+
+Stapler uses slightly modified version of dom4j. This is a dirty hack
+which allows us to compile and use stapler with our unmodified dom4j
+library. Jenkins developers tried to push thier dom4j patches to upstream,
+but upstream didn't respond [1].
+
+Instead of modifying existing class HTMLWriter from dom4j, we create
+a new class which extends HTMLWriter. This new class should provide
+similar functionality as modified class used by Jenkins project.
+
+[1]: http://sourceforge.net/p/dom4j/patches/30/
+---
+ .../main/java/org/dom4j/io/JenkinsHTMLWriter.java | 142 +++++++++++++++++++++
+ .../kohsuke/stapler/jelly/HTMLWriterOutput.java | 10 +-
+ 2 files changed, 147 insertions(+), 5 deletions(-)
+ create mode 100644 jelly/src/main/java/org/dom4j/io/JenkinsHTMLWriter.java
+
+diff --git a/jelly/src/main/java/org/dom4j/io/JenkinsHTMLWriter.java b/jelly/src/main/java/org/dom4j/io/JenkinsHTMLWriter.java
+new file mode 100644
+index 0000000..d23de8f
+--- /dev/null
++++ b/jelly/src/main/java/org/dom4j/io/JenkinsHTMLWriter.java
+@@ -0,0 +1,142 @@
++package org.dom4j.io;
++
++import java.io.IOException;
++import java.io.OutputStream;
++import java.io.UnsupportedEncodingException;
++import java.io.Writer;
++import java.lang.reflect.Method;
++
++import org.dom4j.Entity;
++import org.dom4j.Node;
++import org.xml.sax.SAXException;
++
++public class JenkinsHTMLWriter extends org.dom4j.io.HTMLWriter {
++
++ private boolean disabled = false;
++
++ public JenkinsHTMLWriter(Writer writer) {
++ super(writer, DEFAULT_HTML_FORMAT);
++ }
++
++ public JenkinsHTMLWriter(Writer writer, OutputFormat format) {
++ super(writer, format);
++ }
++
++ public JenkinsHTMLWriter() throws UnsupportedEncodingException {
++ super(DEFAULT_HTML_FORMAT);
++ }
++
++ public JenkinsHTMLWriter(OutputFormat format)
++ throws UnsupportedEncodingException {
++ super(format);
++ }
++
++ public JenkinsHTMLWriter(OutputStream out)
++ throws UnsupportedEncodingException {
++ super(out, DEFAULT_HTML_FORMAT);
++ }
++
++ public JenkinsHTMLWriter(OutputStream out, OutputFormat format)
++ throws UnsupportedEncodingException {
++ super(out, format);
++ }
++
++ public boolean isEnabled() {
++ return !disabled;
++ }
++
++ public void setEnabled(boolean enabled) {
++ disabled = !enabled;
++ }
++
++ public void startCDATA() throws SAXException {
++ if (disabled) {
++ // invoke "super.super.startCDATA()"
++ invokeSSMethod(getSSMethod("startCDATA"));
++ }
++ }
++
++ public void endCDATA() throws SAXException {
++ if (disabled) {
++ // invoke "super.super.endCDATA()"
++ invokeSSMethod(getSSMethod("endCDATA"));
++ }
++ }
++
++ protected void writeCDATA(String text) throws IOException {
++
++ if (disabled || getOutputFormat().isXHTML()) {
++ // invoke "super.super.writeCDATA()"
++ invokeSSMethod(getSSMethod("writeCDATA", String.class), text);
++ } else {
++ writer.write(text);
++ }
++
++ lastOutputNodeType = Node.CDATA_SECTION_NODE;
++ }
++
++ protected void writeEntity(Entity entity) throws IOException {
++ if (disabled) {
++ // invoke "super.super.writeEntity()"
++ invokeSSMethod(getSSMethod("writeEntity", Entity.class), entity);
++ } else {
++ super.writeEntity(entity);
++ }
++ }
++
++ protected void writeString(String text) throws IOException {
++ if (disabled) {
++ // invoke "super.super.writeString()"
++ invokeSSMethod(getSSMethod("writeString", String.class), text);
++ } else {
++ super.writeString(text);
++ }
++ }
++
++ protected void writeClose(String qualifiedName) throws IOException {
++ if (disabled || !omitElementClose(qualifiedName)) {
++ // invoke "super.super.writeClose()"
++ invokeSSMethod(getSSMethod("writeClose", String.class),
++ qualifiedName);
++ }
++ }
++
++ protected void writeEmptyElementClose(String qualifiedName)
++ throws IOException {
++ if (disabled || !omitElementClose(qualifiedName)) {
++ // invoke "super.super.writeEmptyElementClose()"
++ invokeSSMethod(getSSMethod("writeEmptyElementClose", String.class),
++ qualifiedName);
++ } else {
++ if (getOutputFormat().isXHTML()) {
++ writer.write(" />");
++ } else {
++ writer.write(">");
++ }
++ }
++ }
++
++ // get Method object from parent's parent
++ private Method getSSMethod(String methodName, Class<?>... args) {
++
++ try {
++ return Class.forName("org.dom4j.io.XMLWriter").getMethod(
++ methodName, args);
++ } catch (Exception e) {
++ e.printStackTrace();
++ throw new RuntimeException(
++ "Failed to get method of parent's parent");
++ }
++ }
++
++ // invoke method from parent's parent
++ private Object invokeSSMethod(Method method, Object... args) {
++
++ try {
++ return method.invoke(this, args);
++ } catch (Exception e) {
++ e.printStackTrace();
++ throw new RuntimeException("Failed to invoke method from parent's parent");
++ }
++ }
++}
+diff --git a/jelly/src/main/java/org/kohsuke/stapler/jelly/HTMLWriterOutput.java b/jelly/src/main/java/org/kohsuke/stapler/jelly/HTMLWriterOutput.java
+index f6e6cc1..447b33f 100644
+--- a/jelly/src/main/java/org/kohsuke/stapler/jelly/HTMLWriterOutput.java
++++ b/jelly/src/main/java/org/kohsuke/stapler/jelly/HTMLWriterOutput.java
+@@ -24,7 +24,7 @@
+ package org.kohsuke.stapler.jelly;
+
+ import org.apache.commons.jelly.XMLOutput;
+-import org.dom4j.io.HTMLWriter;
++import org.dom4j.io.JenkinsHTMLWriter;
+ import org.dom4j.io.OutputFormat;
+ import java.io.IOException;
+ import java.io.OutputStream;
+@@ -38,17 +38,17 @@ import java.io.Writer;
+ * @author Alan.Harder at Sun.Com
+ */
+ public class HTMLWriterOutput extends XMLOutput {
+- private HTMLWriter htmlWriter;
++ private JenkinsHTMLWriter htmlWriter;
+ private OutputFormat format;
+
+ public static HTMLWriterOutput create(OutputStream out) throws UnsupportedEncodingException {
+ OutputFormat format = createFormat();
+- return new HTMLWriterOutput(new HTMLWriter(out, format), format, false);
++ return new HTMLWriterOutput(new JenkinsHTMLWriter(out, format), format, false);
+ }
+
+ public static HTMLWriterOutput create(Writer out, boolean escapeText) {
+ OutputFormat format = createFormat();
+- return new HTMLWriterOutput(new HTMLWriter(out, format), format, escapeText);
++ return new HTMLWriterOutput(new JenkinsHTMLWriter(out, format), format, escapeText);
+ }
+
+ private static OutputFormat createFormat() {
+@@ -59,7 +59,7 @@ public class HTMLWriterOutput extends XMLOutput {
+ return format;
+ }
+
+- private HTMLWriterOutput(HTMLWriter hw, OutputFormat fmt, boolean escapeText) {
++ private HTMLWriterOutput(JenkinsHTMLWriter hw, OutputFormat fmt, boolean escapeText) {
+ super(hw);
+ hw.setEscapeText(escapeText);
+ this.htmlWriter = hw;
+--
+1.8.1.4
+
diff --git a/0001-Use-unbundled-class-from-glassfish-jaxb.patch b/0001-Use-unbundled-class-from-glassfish-jaxb.patch
new file mode 100644
index 0000000..4a3a91c
--- /dev/null
+++ b/0001-Use-unbundled-class-from-glassfish-jaxb.patch
@@ -0,0 +1,46 @@
+From 009a2f6eb8982e294eca44a61add7892ff41a718 Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Wed, 22 May 2013 14:52:58 +0200
+Subject: [PATCH] Use unbundled class from glassfish-jaxb
+
+---
+ .../main/java/org/kohsuke/stapler/export/SchemaGenerator.java | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/core/src/main/java/org/kohsuke/stapler/export/SchemaGenerator.java b/core/src/main/java/org/kohsuke/stapler/export/SchemaGenerator.java
+index 6ca4d9b..75a228e 100644
+--- a/core/src/main/java/org/kohsuke/stapler/export/SchemaGenerator.java
++++ b/core/src/main/java/org/kohsuke/stapler/export/SchemaGenerator.java
+@@ -23,6 +23,8 @@
+
+ package org.kohsuke.stapler.export;
+
++import com.sun.xml.bind.v2.model.nav.ReflectionNavigator;
++
+ import com.sun.xml.txw2.TXW;
+ import com.sun.xml.txw2.output.ResultFactory;
+ import java.beans.Introspector;
+@@ -47,6 +49,9 @@ import java.util.Stack;
+ * @author Kohsuke Kawaguchi
+ */
+ public class SchemaGenerator {
++
++ private static final ReflectionNavigator reflectionNavigator = ReflectionNavigator.REFLECTION;
++
+ private final Stack<Model> queue = new Stack<Model>();
+ private final Set<Model> written = new HashSet<Model>();
+ /**
+@@ -114,8 +119,8 @@ public class SchemaGenerator {
+ } else
+ if(Collection.class.isAssignableFrom(t)) {
+ isCollection = true;
+- itemType = TypeUtil.erasure(
+- TypeUtil.getTypeArgument(TypeUtil.getBaseClass(p.getGenericType(),Collection.class),0));
++ itemType = reflectionNavigator.erasure(
++ reflectionNavigator.getTypeArgument(reflectionNavigator.getBaseClass(p.getGenericType(),Collection.class),0));
+ } else {
+ isCollection = false;
+ itemType = t;
+--
+1.8.1.4
+
diff --git a/create-tarball.sh b/create-tarball.sh
new file mode 100755
index 0000000..c9d3471
--- /dev/null
+++ b/create-tarball.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+if [ $# -ne 1 ]; then
+ echo "Usage: ./create-sources VERSION"
+ exit 1
+fi
+
+VERSION=${1}
+NAME="stapler"
+
+wget https://github.com/${NAME}/${NAME}/archive/${NAME}-parent-${VERSION}.tar.gz
+tar xzvf ${NAME}-parent-${VERSION}.tar.gz
+rm ${NAME}-parent-${VERSION}.tar.gz
+find ./${NAME}-${NAME}-parent-${VERSION} -name "*.jar" -delete
+find ./${NAME}-${NAME}-parent-${VERSION} -name "*.zip" -delete
+# Remove jruby module from tarball, it contains bundled 3rd party project (haml)
+rm -Rf ./${NAME}-${NAME}-parent-${VERSION}/jruby
+# Bundled class from glassfish-jaxb
+rm -Rf ./${NAME}-${NAME}-parent-${VERSION}/core/src/main/java/org/kohsuke/stapler/export/TypeUtil.java
+# Budled class from bea-stax
+rm -Rf ./${NAME}-${NAME}-parent-${VERSION}/core/src/main/java/org/kohsuke/stapler/export/XmlChars.java
+# We don't need examples
+rm -Rf ./${NAME}-${NAME}-parent-${VERSION}/core/example
+rm -Rf ./${NAME}-${NAME}-parent-${VERSION}/core/ref
+rm -Rf ./${NAME}-${NAME}-parent-${VERSION}/core/maven-example
+# Generated site
+rm -Rf ./${NAME}-${NAME}-parent-${VERSION}/src/
+tar czvf ${NAME}-${VERSION}-clean.tar.gz ./${NAME}-${NAME}-parent-${VERSION}
+
diff --git a/sources b/sources
index e69de29..7077402 100644
--- a/sources
+++ b/sources
@@ -0,0 +1,2 @@
+f6d9859b23696183224daec41f5ef760 stapler-1.209-clean.tar.gz
+3b83ef96387f14655fc854ddc3c6bd57 LICENSE-2.0.txt
diff --git a/stapler.spec b/stapler.spec
new file mode 100644
index 0000000..a60958a
--- /dev/null
+++ b/stapler.spec
@@ -0,0 +1,196 @@
+Name: stapler
+Version: 1.209
+Release: 2%{?dist}
+Summary: Stapler Java web framework
+
+# Project is licensed mostly under 2-clause BSD license
+# It contains following ASL 2.0 licensed files:
+# groovy/src/main/java/org/kohsuke/stapler/jelly/groovy/SimpleTemplateParser.java
+# groovy/src/main/java/org/kohsuke/stapler/jelly/groovy/JellyBuilder.java (partly under ASL 2.0)
+License: BSD and ASL 2.0
+URL: http://stapler.kohsuke.org/
+# ./create-tarball.sh
+Source0: stapler-%{version}-clean.tar.gz
+# Stapler/Jenkins guys don't want to add whole ASL 2.0 license
+# text to the repository. Their opinion is that having short ASL 2.0 notice
+# in affected files is enough
+Source1: http://www.apache.org/licenses/LICENSE-2.0.txt
+
+# Upstream uses unmodified objectweb-asm3, but under different namespace
+Patch0: 0001-Fix-asm-namespace.patch
+# We don't have maven-jellydoc-plugin
+Patch1: 0001-Remove-jellydoc-annotations.patch
+# This is only temporary workaround
+# Build against our unmodified dom4j library, not against its forked version
+# Upstream uses org.jvnet.hudson.dom4j:dom4j
+# TODO: apply proper Jenkins patches on dom4j and remove this
+Patch2: 0001-Use-original-dom4j-library-not-patched-version.patch
+# We do not bundle classes from other project, fix that
+# (this need some testing)
+Patch3: 0001-Use-XmlChars-class-from-external-jar.patch
+Patch4: 0001-Use-unbundled-class-from-glassfish-jaxb.patch
+
+BuildArch: noarch
+
+BuildRequires: maven-local
+BuildRequires: mvn(com.google.guava:guava)
+BuildRequires: mvn(com.sun.xml.bind:jaxb-impl)
+BuildRequires: mvn(com.sun.xml.txw2:txw2)
+BuildRequires: mvn(commons-beanutils:commons-beanutils)
+BuildRequires: mvn(commons-discovery:commons-discovery)
+BuildRequires: mvn(commons-fileupload:commons-fileupload)
+BuildRequires: mvn(commons-io:commons-io)
+BuildRequires: mvn(dom4j:dom4j)
+BuildRequires: mvn(javax.servlet:jsp-api)
+BuildRequires: mvn(javax.servlet:servlet-api)
+BuildRequires: mvn(net.sf.json-lib:json-lib)
+BuildRequires: mvn(net.sf.ezmorph:ezmorph)
+BuildRequires: mvn(net.sourceforge.findbugs:annotations)
+BuildRequires: mvn(org.apache.maven.plugins:maven-compiler-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-release-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-site-plugin)
+BuildRequires: mvn(org.apache.tomcat:tomcat-el-api)
+BuildRequires: mvn(org.codehaus.groovy:groovy)
+BuildRequires: mvn(org.jenkins-ci:annotation-indexer)
+BuildRequires: mvn(org.jenkins-ci:commons-jelly)
+BuildRequires: mvn(org.jvnet.localizer:localizer)
+BuildRequires: mvn(org.jvnet:tiger-types)
+BuildRequires: mvn(org.kohsuke.metainf-services:metainf-services)
+BuildRequires: mvn(org.kohsuke:pom)
+BuildRequires: mvn(xerces:xercesImpl)
+BuildRequires: mvn(asm:asm)
+
+
+%description
+Stapler is a library that "staples" your application objects to URLs,
+making it easier to write web applications. The core idea of Stapler
+is to automatically assign URLs for your objects, creating an intuitive
+URL hierarchy.
+
+%package jsp
+Summary: JSP module for %{name}
+
+%description jsp
+This package contains %{summary}.
+
+%package jelly
+Summary: Jelly module for %{name}
+
+%description jelly
+This package contains %{summary}.
+
+%package groovy
+Summary: Groovy module for %{name}
+
+%description groovy
+This package contains %{summary}.
+
+%package parent
+Summary: Parent POM file for %{name}
+
+%description parent
+This package contains parent POM file for %{name}.
+
+%package javadoc
+Summary: Javadoc for %{name}
+
+%description javadoc
+This package contains the API documentation for %{name}.
+
+
+%prep
+%setup -q -n %{name}-%{name}-parent-%{version}
+
+cp %{SOURCE1} LICENSE
+
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
+# Missing org.jruby-rack:jruby-rack
+%pom_disable_module jruby
+
+# Missing org.zeroturnaround:jr-sdk
+%pom_disable_module jrebel
+
+# Fix json-lib groupId
+%pom_xpath_replace "pom:dependency[pom:groupId[text()='org.kohsuke.stapler']]/pom:groupId" \
+ "<groupId>net.sf.json-lib</groupId>" core
+
+# Fix groovy artifactId
+%pom_xpath_replace "pom:dependency[pom:artifactId[text()='groovy-all']]/pom:artifactId" \
+ "<artifactId>groovy</artifactId>" core
+%pom_xpath_replace "pom:dependency[pom:artifactId[text()='groovy-all']]/pom:artifactId" \
+ "<artifactId>groovy</artifactId>" groovy
+
+# Fix asm groupId:artifactId
+%pom_xpath_replace "pom:dependency[pom:artifactId[text()='asm3']]" \
+"<dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ <scope>compile</scope>
+ </dependency>" core
+
+# Fix findbugs groupId:artifactId
+%pom_xpath_replace "pom:dependency[pom:artifactId[text()='findbugs-annotations']]" \
+"<dependency>
+ <groupId>net.sourceforge.findbugs</groupId>
+ <artifactId>annotations</artifactId>
+ <scope>compile</scope>
+ </dependency>" core
+
+
+# Annotations removed by patch1, we don't need this anymore
+%pom_remove_dep ":jellydoc-annotations" jelly
+
+# Use original dom4j, not forked version
+%pom_xpath_replace "pom:dependency[pom:artifactId[text()='dom4j']]/pom:groupId" \
+ "<groupId>dom4j</groupId>" jelly
+
+# We don't have these extensions
+%pom_xpath_remove "pom:extension[pom:artifactId[text()='wagon-webdav']]"
+%pom_xpath_remove "pom:extension[pom:artifactId[text()='wagon-gitsite']]"
+
+# We don't have these plugins
+%pom_remove_plugin :fix1600
+%pom_remove_plugin :maven-jellydoc-plugin
+
+# Replacement for unbundled classes
+%pom_add_dep xerces:xercesImpl core
+%pom_add_dep com.sun.xml.bind:jaxb-impl core
+
+%build
+# Tests require jetty 6
+%mvn_build -s -f
+
+%install
+%mvn_install
+
+
+%files -f .mfiles-stapler
+%doc LICENSE
+%files jsp -f .mfiles-stapler-jsp
+%files jelly -f .mfiles-stapler-jelly
+%files groovy -f .mfiles-stapler-groovy
+%files parent -f .mfiles-stapler-parent
+%doc LICENSE
+%files javadoc -f .mfiles-javadoc
+# rpmlint complains about this file. It's automatically generated,
+# but without proper shebang
+%exclude %{_javadocdir}/%{name}/javadoc.sh
+%doc LICENSE
+
+
+%changelog
+* Wed May 29 2013 Michal Srb <msrb at redhat.com> - 1.209-2
+- Exclude javadoc.sh file from javadoc
+
+* Mon May 06 2013 Michal Srb <msrb at redhat.com> - 1.209-1
+- Update to upstream version 1.209
+
+* Mon May 06 2013 Michal Srb <msrb at redhat.com> - 1.207-1
+- Initial package
+
More information about the scm-commits
mailing list