commit 1ff4a50d8fbdcbdc224f9d664750b8aaf1fa5685
Author: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Wed Feb 4 13:59:47 2015 +0100
Port to QDox 2.0
- Resolves: rhbz#1166700
hamcrest-1.3-qdox-2.0.patch | 92 +++++++++++++++++++++++++++++++++++++++++++
hamcrest.spec | 9 ++++-
2 files changed, 100 insertions(+), 1 deletions(-)
---
diff --git a/hamcrest-1.3-qdox-2.0.patch b/hamcrest-1.3-qdox-2.0.patch
new file mode 100644
index 0000000..d9eb779
--- /dev/null
+++ b/hamcrest-1.3-qdox-2.0.patch
@@ -0,0 +1,92 @@
+diff --git a/hamcrest-generator/src/main/java/org/hamcrest/generator/QDox.java
b/hamcrest-generator/src/main/java/org/hamcrest/generator/QDox.java
+index efaf615..338178d 100644
+--- a/hamcrest-generator/src/main/java/org/hamcrest/generator/QDox.java
++++ b/hamcrest-generator/src/main/java/org/hamcrest/generator/QDox.java
+@@ -1,6 +1,6 @@
+ package org.hamcrest.generator;
+
+-import com.thoughtworks.qdox.JavaDocBuilder;
++import com.thoughtworks.qdox.JavaProjectBuilder;
+ import com.thoughtworks.qdox.model.JavaClass;
+
+ import java.io.File;
+@@ -16,7 +16,7 @@ import java.io.Reader;
+ */
+ public class QDox {
+
+- private final JavaDocBuilder javaDocBuilder = new JavaDocBuilder();
++ private final JavaProjectBuilder javaDocBuilder = new JavaProjectBuilder();
+
+ public void addSourceTree(File sourceDir) {
+ javaDocBuilder.addSourceTree(sourceDir);
+diff --git
a/hamcrest-generator/src/main/java/org/hamcrest/generator/QDoxFactoryReader.java
b/hamcrest-generator/src/main/java/org/hamcrest/generator/QDoxFactoryReader.java
+index 5108140..ec02f54 100644
+--- a/hamcrest-generator/src/main/java/org/hamcrest/generator/QDoxFactoryReader.java
++++ b/hamcrest-generator/src/main/java/org/hamcrest/generator/QDoxFactoryReader.java
+@@ -4,8 +4,10 @@ import com.thoughtworks.qdox.model.DocletTag;
+ import com.thoughtworks.qdox.model.JavaClass;
+ import com.thoughtworks.qdox.model.JavaMethod;
+ import com.thoughtworks.qdox.model.JavaParameter;
+-import com.thoughtworks.qdox.model.Type;
++import com.thoughtworks.qdox.model.JavaType;
++import com.thoughtworks.qdox.model.impl.DefaultJavaType;
+
++import java.util.ArrayList;
+ import java.util.Iterator;
+ import java.util.List;
+ import java.util.regex.Pattern;
+@@ -56,15 +58,15 @@ public class QDoxFactoryReader implements
Iterable<FactoryMethod> {
+ JavaMethod methodSource = findMethodInSource(factoryMethod);
+ if (methodSource != null) {
+ factoryMethod.setJavaDoc(createJavaDocComment(methodSource));
+- JavaParameter[] parametersFromSource
++ List<JavaParameter> parametersFromSource
+ = methodSource.getParameters();
+ List<FactoryMethod.Parameter> parametersFromReflection
+ = factoryMethod.getParameters();
+
+- if (parametersFromReflection.size() == parametersFromSource.length) {
+- for (int i = 0; i < parametersFromSource.length; i++) {
++ if (parametersFromReflection.size() == parametersFromSource.size()) {
++ for (int i = 0; i < parametersFromSource.size(); i++) {
+ parametersFromReflection.get(i).setName(
+- parametersFromSource[i].getName());
++ parametersFromSource.get(i).getName());
+ }
+ }
+ }
+@@ -79,18 +81,18 @@ public class QDoxFactoryReader implements
Iterable<FactoryMethod> {
+ // Note, this doesn't always work - it struggles with some kinds of
generics.
+ // This seems to cover most cases though.
+ List<FactoryMethod.Parameter> params = factoryMethod.getParameters();
+- Type[] types = new Type[params.size()];
++ List<JavaType> types = new ArrayList<JavaType>(params.size());
+ boolean varArgs = false;
+- for (int i = 0; i < types.length; i++) {
++ for (int i = 0; i < params.size(); i++) {
+ String type = params.get(i).getType();
+ varArgs = VARARGS_REGEX.matcher(type).find();
+ // QDox ignores varargs and generics, so we strip them out to help QDox.
+ type = GENERIC_REGEX.matcher(type).replaceAll("");
+ type = VARARGS_REGEX.matcher(type).replaceAll("");
+- types[i] = new Type(type);
++ types.add(new DefaultJavaType(type));
+ }
+- JavaMethod[] methods =
classSource.getMethodsBySignature(factoryMethod.getName(), types, false, varArgs);
+- return methods.length == 1 ? methods[0] : null;
++ List<JavaMethod> methods =
classSource.getMethodsBySignature(factoryMethod.getName(), types, false, varArgs);
++ return methods.size() == 1 ? methods.get(0) : null;
+ }
+
+ /**
+@@ -98,8 +100,8 @@ public class QDoxFactoryReader implements
Iterable<FactoryMethod> {
+ */
+ private static String createJavaDocComment(JavaMethod methodSource) {
+ String comment = methodSource.getComment();
+- DocletTag[] tags = methodSource.getTags();
+- if ((comment == null || comment.trim().length() == 0) && tags.length ==
0) {
++ List<DocletTag> tags = methodSource.getTags();
++ if ((comment == null || comment.trim().length() == 0) && tags.size() ==
0) {
+ return null;
+ }
+ StringBuilder result = new StringBuilder();
diff --git a/hamcrest.spec b/hamcrest.spec
index e2cd5b8..00038b5 100644
--- a/hamcrest.spec
+++ b/hamcrest.spec
@@ -42,7 +42,7 @@
Name: hamcrest
Version: 1.3
-Release: 8%{?dist}
+Release: 9%{?dist}
Epoch: 0
Summary: Library of matchers for building test expressions
License: BSD
@@ -68,6 +68,7 @@ Source12: hamcrest-generator-MANIFEST.MF
Patch0: %{name}-%{version}-build.patch
Patch1: %{name}-%{version}-no-jarjar.patch
Patch3: %{name}-%{version}-javadoc.patch
+Patch4: %{name}-%{version}-qdox-2.0.patch
Requires: java-headless >= 1:1.6.0
Requires: qdox
@@ -79,6 +80,7 @@ BuildRequires: ant >= 0:1.6.5
BuildRequires: ant-junit
BuildRequires: zip
BuildRequires: easymock3
+BuildRequires: perl
%if %with jarjar
BuildRequires: jarjar
%endif
@@ -141,6 +143,7 @@ ln -sf $(build-classpath testng-jdk15) lib/integration/
%patch1 -p1
%endif
%patch3 -p1
+%patch4 -p1
perl -pi -e 's/\r$//g' LICENSE.txt
@@ -238,6 +241,10 @@ cp -pr %{name}-examples $RPM_BUILD_ROOT%{_datadir}/%{name}/
%{_datadir}/%{name}
%changelog
+* Wed Feb 4 2015 Mikolaj Izdebski <mizdebsk(a)redhat.com> - 0:1.3-9
+- Port to QDox 2.0
+- Resolves: rhbz#1166700
+
* Wed Jul 30 2014 Mat Booth <mat.booth(a)redhat.com> - 0:1.3-8
- Fix FTBFS
- Always build integration jar (removes some complexity from the spec)
Show replies by date