diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore index 8b65bd9..3072c7d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,4 @@ -/results_* -/*.src.rpm - -/xbean-3.7.tar.xz +xbean-3.7.tar.xz /xbean-3.8.tar.xz /xbean-3.11.1.tar.xz /xbean-3.13-source-release.zip @@ -12,13 +9,3 @@ /xbean-4.3-source-release.zip /xbean-4.4-source-release.zip /xbean-4.5-source-release.zip -/xbean-4.6-source-release.zip -/xbean-4.8-source-release.zip -/xbean-4.9-source-release.zip -/xbean-4.14-source-release.zip -/xbean-4.15-source-release.zip -/xbean-4.17-source-release.zip -/xbean-4.18-source-release.zip -/xbean-4.21-source-release.zip -/xbean-4.23-source-release.zip -/xbean-4.24-source-release.zip diff --git a/0001-Unbundle-ASM.patch b/0001-Unbundle-ASM.patch deleted file mode 100644 index eb40658..0000000 --- a/0001-Unbundle-ASM.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4f7a61dcd47ed0dee2d78e31e2dd50b88ab42f25 Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Thu, 12 Dec 2019 08:51:57 +0100 -Subject: [PATCH 2/3] Unbundle ASM - ---- - .../xbean/recipe/XbeanAsmParameterNameLoader.java | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java b/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java -index 20b646c..9e96775 100644 ---- a/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java -+++ b/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java -@@ -17,11 +17,11 @@ - */ - package org.apache.xbean.recipe; - --import org.apache.xbean.asm9.ClassReader; --import org.apache.xbean.asm9.ClassVisitor; --import org.apache.xbean.asm9.Label; --import org.apache.xbean.asm9.MethodVisitor; --import org.apache.xbean.asm9.Type; -+import org.objectweb.asm.ClassReader; -+import org.objectweb.asm.ClassVisitor; -+import org.objectweb.asm.Label; -+import org.objectweb.asm.MethodVisitor; -+import org.objectweb.asm.Type; - - import java.io.IOException; - import java.io.InputStream; -@@ -36,7 +36,7 @@ import java.util.List; - import java.util.Map; - import java.util.WeakHashMap; - --import static org.apache.xbean.asm9.shade.commons.AsmConstants.ASM_VERSION; -+import static org.apache.xbean.asm9.original.commons.AsmConstants.ASM_VERSION; - - /** - * Implementation of ParameterNameLoader that uses ASM to read the parameter names from the local variable table in the --- -2.29.2 - diff --git a/0001-Unshade-ASM.patch b/0001-Unshade-ASM.patch new file mode 100644 index 0000000..f4fd97e --- /dev/null +++ b/0001-Unshade-ASM.patch @@ -0,0 +1,35 @@ +From 5b1a0fe4400bffddd1ab31af91beaef7bb560f6c Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Thu, 12 May 2016 11:40:13 +0200 +Subject: [PATCH 1/3] Unshade ASM + +--- + .../org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java b/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java +index dea2f2a..303dfc3 100644 +--- a/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java ++++ b/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java +@@ -17,12 +17,12 @@ + */ + package org.apache.xbean.recipe; + +-import org.apache.xbean.asm5.ClassReader; +-import org.apache.xbean.asm5.ClassVisitor; +-import org.apache.xbean.asm5.Label; +-import org.apache.xbean.asm5.MethodVisitor; +-import org.apache.xbean.asm5.Opcodes; +-import org.apache.xbean.asm5.Type; ++import org.objectweb.asm.ClassReader; ++import org.objectweb.asm.ClassVisitor; ++import org.objectweb.asm.Label; ++import org.objectweb.asm.MethodVisitor; ++import org.objectweb.asm.Opcodes; ++import org.objectweb.asm.Type; + + import java.io.IOException; + import java.io.InputStream; +-- +2.9.3 + diff --git a/0002-Port-to-Eclipse-Luna-OSGi.patch b/0002-Port-to-Eclipse-Luna-OSGi.patch new file mode 100644 index 0000000..af2e743 --- /dev/null +++ b/0002-Port-to-Eclipse-Luna-OSGi.patch @@ -0,0 +1,62 @@ +From 9e1bb9bfee86490163fb1e226556620aa8cdf7bc Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Fri, 21 Nov 2014 10:05:05 +0100 +Subject: [PATCH 2/3] Port to Eclipse Luna OSGi + +--- + xbean-bundleutils/pom.xml | 8 +------- + .../apache/xbean/osgi/bundle/util/DelegatingBundleContext.java | 10 ++++++++++ + 2 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/xbean-bundleutils/pom.xml b/xbean-bundleutils/pom.xml +index 72f4865..2b3459d 100644 +--- a/xbean-bundleutils/pom.xml ++++ b/xbean-bundleutils/pom.xml +@@ -35,15 +35,9 @@ + slf4j-api + + +- org.osgi +- org.osgi.core +- 4.3.1 +- provided +- +- + org.eclipse + osgi +- 3.6.0.v20100517 ++ 3.10.0-v20140606-1445 + provided + + +diff --git a/xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/DelegatingBundleContext.java b/xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/DelegatingBundleContext.java +index 58a392b..cc8d081 100644 +--- a/xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/DelegatingBundleContext.java ++++ b/xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/DelegatingBundleContext.java +@@ -31,7 +31,9 @@ import org.osgi.framework.BundleListener; + import org.osgi.framework.Filter; + import org.osgi.framework.FrameworkListener; + import org.osgi.framework.InvalidSyntaxException; ++import org.osgi.framework.ServiceFactory; + import org.osgi.framework.ServiceListener; ++import org.osgi.framework.ServiceObjects; + import org.osgi.framework.ServiceReference; + import org.osgi.framework.ServiceRegistration; + +@@ -153,5 +155,13 @@ public class DelegatingBundleContext implements BundleContext { + public Bundle getBundle(String location) { + return bundleContext.getBundle(location); + } ++ ++ public ServiceObjects getServiceObjects(ServiceReference reference) { ++ return bundleContext.getServiceObjects(reference); ++ } ++ ++ public ServiceRegistration registerService(Class clazz, ServiceFactory factory, Dictionary properties) { ++ return bundleContext.registerService(clazz, factory, properties); ++ } + + } +-- +2.9.3 + diff --git a/0002-Remove-dependency-on-log4j-and-commons-logging.patch b/0002-Remove-dependency-on-log4j-and-commons-logging.patch deleted file mode 100644 index b1846ee..0000000 --- a/0002-Remove-dependency-on-log4j-and-commons-logging.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 28e37850d8343f44f82e3138c772dd65d1d0ff2f Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Thu, 12 Dec 2019 08:52:26 +0100 -Subject: [PATCH 3/3] Remove dependency on log4j and commons-logging - ---- - .../xbean/propertyeditor/PropertyEditorRegistry.java | 12 ------------ - 1 file changed, 12 deletions(-) - -diff --git a/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditorRegistry.java b/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditorRegistry.java -index e7e17edd..be302861 100644 ---- a/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditorRegistry.java -+++ b/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditorRegistry.java -@@ -84,18 +84,6 @@ public class PropertyEditorRegistry implements Closeable { - register(new VectorEditor()); - register(new WeakHashMapEditor()); - -- try { -- register(new Log4jConverter()); -- } catch (final Throwable e) { -- // no-op -- } -- -- try { -- register(new CommonsLoggingConverter()); -- } catch (final Throwable e) { -- // no-op -- } -- - return this; - } - --- -2.21.0 - diff --git a/0003-Port-to-QDox-2.0.patch b/0003-Port-to-QDox-2.0.patch new file mode 100644 index 0000000..95609a2 --- /dev/null +++ b/0003-Port-to-QDox-2.0.patch @@ -0,0 +1,689 @@ +From 928bd5a98dc500a31197a56c8f6c5e19a3a273f8 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Fri, 21 Nov 2014 10:51:38 +0100 +Subject: [PATCH 3/3] Port to QDox 2.0 + +--- + pom.xml | 2 +- + .../blueprint/generator/QdoxMappingLoader.java | 144 +++++++++++--------- + .../xbean/spring/generator/QdoxMappingLoader.java | 148 ++++++++++++--------- + .../org/apache/xbean/spring/generator/Type.java | 7 +- + 4 files changed, 166 insertions(+), 135 deletions(-) + +diff --git a/pom.xml b/pom.xml +index 6e53649..9132fe4 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -297,7 +297,7 @@ + + com.thoughtworks.qdox + qdox +- 1.6.3 ++ 2.0-M5 + + + +diff --git a/xbean-blueprint/src/main/java/org/apache/xbean/blueprint/generator/QdoxMappingLoader.java b/xbean-blueprint/src/main/java/org/apache/xbean/blueprint/generator/QdoxMappingLoader.java +index 6635937..e17fd08 100644 +--- a/xbean-blueprint/src/main/java/org/apache/xbean/blueprint/generator/QdoxMappingLoader.java ++++ b/xbean-blueprint/src/main/java/org/apache/xbean/blueprint/generator/QdoxMappingLoader.java +@@ -20,6 +20,7 @@ import java.io.File; + import java.io.IOException; + import java.net.URL; + import java.util.ArrayList; ++import java.util.Collection; + import java.util.Collections; + import java.util.Enumeration; + import java.util.HashMap; +@@ -31,14 +32,17 @@ import java.util.TreeSet; + import java.util.jar.JarEntry; + import java.util.jar.JarFile; + +-import com.thoughtworks.qdox.JavaDocBuilder; ++import com.thoughtworks.qdox.JavaProjectBuilder; + import com.thoughtworks.qdox.model.BeanProperty; + import com.thoughtworks.qdox.model.DocletTag; + import com.thoughtworks.qdox.model.JavaClass; ++import com.thoughtworks.qdox.model.JavaConstructor; + import com.thoughtworks.qdox.model.JavaMethod; ++import com.thoughtworks.qdox.model.JavaModel; + import com.thoughtworks.qdox.model.JavaParameter; + import com.thoughtworks.qdox.model.JavaSource; +-import com.thoughtworks.qdox.model.Type; ++import com.thoughtworks.qdox.model.JavaType; ++ + import org.apache.commons.logging.Log; + import org.apache.commons.logging.LogFactory; + +@@ -62,7 +66,7 @@ public class QdoxMappingLoader implements MappingLoader { + private final String defaultNamespace; + private final File[] srcDirs; + private final String[] excludedClasses; +- private Type collectionType; ++ private JavaClass collectionType; + + public QdoxMappingLoader(String defaultNamespace, File[] srcDirs, String[] excludedClasses) { + this.defaultNamespace = defaultNamespace; +@@ -79,7 +83,7 @@ public class QdoxMappingLoader implements MappingLoader { + } + + public Set loadNamespaces() throws IOException { +- JavaDocBuilder builder = new JavaDocBuilder(); ++ JavaProjectBuilder builder = new JavaProjectBuilder(); + + log.debug("Source directories: "); + +@@ -92,11 +96,11 @@ public class QdoxMappingLoader implements MappingLoader { + getSourceFiles(sourceDirectory, excludedClasses, builder); + } + +- collectionType = builder.getClassByName("java.util.Collection").asType(); ++ collectionType = builder.getClassByName("java.util.Collection"); + return loadNamespaces(builder); + } + +- private Set loadNamespaces(JavaDocBuilder builder) { ++ private Set loadNamespaces(JavaProjectBuilder builder) { + // load all of the elements + List elements = loadElements(builder); + +@@ -131,14 +135,14 @@ public class QdoxMappingLoader implements MappingLoader { + return Collections.unmodifiableSet(namespaces); + } + +- private List loadElements(JavaDocBuilder builder) { +- JavaSource[] javaSources = builder.getSources(); ++ private List loadElements(JavaProjectBuilder builder) { ++ Collection javaSources = builder.getSources(); + List elements = new ArrayList(); + for (JavaSource javaSource : javaSources) { +- if (javaSource.getClasses().length == 0) { ++ if (javaSource.getClasses().isEmpty()) { + log.info("No Java Classes defined in: " + javaSource.getURL()); + } else { +- JavaClass[] classes = javaSource.getClasses(); ++ Collection classes = javaSource.getClasses(); + for (JavaClass javaClass : classes) { + ElementMapping element = loadElement(builder, javaClass); + if (element != null && !javaClass.isAbstract()) { +@@ -152,7 +156,7 @@ public class QdoxMappingLoader implements MappingLoader { + return elements; + } + +- private ElementMapping loadElement(JavaDocBuilder builder, JavaClass javaClass) { ++ private ElementMapping loadElement(JavaProjectBuilder builder, JavaClass javaClass) { + DocletTag xbeanTag = javaClass.getTagByName(XBEAN_ANNOTATION); + if (xbeanTag == null) { + return null; +@@ -176,7 +180,7 @@ public class QdoxMappingLoader implements MappingLoader { + Map attributesByPropertyName = new HashMap(); + + for (JavaClass jClass = javaClass; jClass != null; jClass = jClass.getSuperJavaClass()) { +- BeanProperty[] beanProperties = jClass.getBeanProperties(); ++ Collection beanProperties = jClass.getBeanProperties(); + for (BeanProperty beanProperty : beanProperties) { + // we only care about properties with a setter + if (beanProperty.getMutator() != null) { +@@ -219,9 +223,9 @@ public class QdoxMappingLoader implements MappingLoader { + String destroyMethod = null; + String factoryMethod = null; + for (JavaClass jClass = javaClass; jClass != null; jClass = jClass.getSuperJavaClass()) { +- JavaMethod[] methods = javaClass.getMethods(); ++ Collection methods = javaClass.getMethods(); + for (JavaMethod method : methods) { +- if (method.isPublic() && !method.isConstructor()) { ++ if (method.isPublic()) { + if (initMethod == null && method.getTagByName(INIT_METHOD_ANNOTATION) != null) { + initMethod = method.getName(); + } +@@ -237,22 +241,43 @@ public class QdoxMappingLoader implements MappingLoader { + } + + List> constructorArgs = new ArrayList>(); +- JavaMethod[] methods = javaClass.getMethods(); +- for (JavaMethod method : methods) { +- JavaParameter[] parameters = method.getParameters(); +- if (isValidConstructor(factoryMethod, method, parameters)) { +- List args = new ArrayList(parameters.length); +- for (JavaParameter parameter : parameters) { +- AttributeMapping attributeMapping = attributesByPropertyName.get(parameter.getName()); +- if (attributeMapping == null) { +- attributeMapping = loadParameter(parameter); +- +- attributes.add(attributeMapping); +- attributesByPropertyName.put(attributeMapping.getPropertyName(), attributeMapping); ++ if (factoryMethod == null) { ++ Collection constructors = javaClass.getConstructors(); ++ for (JavaConstructor constructor : constructors) { ++ Collection parameters = constructor.getParameters(); ++ if (constructor.isPublic() && parameters.size() > 0) { ++ List args = new ArrayList(parameters.size()); ++ for (JavaParameter parameter : parameters) { ++ AttributeMapping attributeMapping = attributesByPropertyName.get(parameter.getName()); ++ if (attributeMapping == null) { ++ attributeMapping = loadParameter(parameter, constructor); ++ ++ attributes.add(attributeMapping); ++ attributesByPropertyName.put(attributeMapping.getPropertyName(), attributeMapping); ++ } ++ args.add(new ParameterMapping(attributeMapping.getPropertyName(), toMappingType(parameter.getType(), null))); + } +- args.add(new ParameterMapping(attributeMapping.getPropertyName(), toMappingType(parameter.getType(), null))); ++ constructorArgs.add(Collections.unmodifiableList(args)); ++ } ++ } ++ } else { ++ Collection methods = javaClass.getMethods(); ++ for (JavaMethod method : methods) { ++ Collection parameters = method.getParameters(); ++ if (method.isPublic() && parameters.size() > 0 && method.getName().equals(factoryMethod)) { ++ List args = new ArrayList(parameters.size()); ++ for (JavaParameter parameter : parameters) { ++ AttributeMapping attributeMapping = attributesByPropertyName.get(parameter.getName()); ++ if (attributeMapping == null) { ++ attributeMapping = loadParameter(parameter, method); ++ ++ attributes.add(attributeMapping); ++ attributesByPropertyName.put(attributeMapping.getPropertyName(), attributeMapping); ++ } ++ args.add(new ParameterMapping(attributeMapping.getPropertyName(), toMappingType(parameter.getType(), null))); ++ } ++ constructorArgs.add(Collections.unmodifiableList(args)); + } +- constructorArgs.add(Collections.unmodifiableList(args)); + } + } + +@@ -303,7 +328,7 @@ public class QdoxMappingLoader implements MappingLoader { + interfaces); + } + +- private List getFullyQualifiedNames(JavaClass[] implementedInterfaces) { ++ private List getFullyQualifiedNames(Collection implementedInterfaces) { + ArrayList l = new ArrayList(); + for (JavaClass implementedInterface : implementedInterfaces) { + l.add(implementedInterface.getFullyQualifiedName()); +@@ -395,19 +420,19 @@ public class QdoxMappingLoader implements MappingLoader { + return defaultDescription; + } + +- private AttributeMapping loadParameter(JavaParameter parameter) { ++ private AttributeMapping loadParameter(JavaParameter parameter, JavaModel methodOrConstructor) { + String parameterName = parameter.getName(); + String parameterDescription = getParameterDescription(parameter); + + // first attempt to load the attribute from the java beans accessor methods +- JavaClass javaClass = parameter.getParentMethod().getParentClass(); ++ JavaClass javaClass = parameter.getParentClass(); + BeanProperty beanProperty = javaClass.getBeanProperty(parameterName); + if (beanProperty != null) { + AttributeMapping attributeMapping = loadAttribute(beanProperty, parameterDescription); + // if the attribute mapping is null, the property was tagged as hidden and this is an error + if (attributeMapping == null) { + throw new InvalidModelException("Hidden property usage: " + +- "The construction method " + toMethodLocator(parameter.getParentMethod()) + ++ "The construction method " + toMethodLocator(parameter.getParentClass(), methodOrConstructor) + + " can not use a hidded property " + parameterName); + } + return attributeMapping; +@@ -426,9 +451,9 @@ public class QdoxMappingLoader implements MappingLoader { + + private String getParameterDescription(JavaParameter parameter) { + String parameterName = parameter.getName(); +- DocletTag[] tags = parameter.getParentMethod().getTagsByName("param"); ++ Collection tags = parameter.getTagsByName("param"); + for (DocletTag tag : tags) { +- if (tag.getParameters()[0].equals(parameterName)) { ++ if (tag.getParameters().get(0).equals(parameterName)) { + String parameterDescription = tag.getValue().trim(); + if (parameterDescription.startsWith(parameterName)) { + parameterDescription = parameterDescription.substring(parameterName.length()).trim(); +@@ -439,18 +464,6 @@ public class QdoxMappingLoader implements MappingLoader { + return null; + } + +- private boolean isValidConstructor(String factoryMethod, JavaMethod method, JavaParameter[] parameters) { +- if (!method.isPublic() || parameters.length == 0) { +- return false; +- } +- +- if (factoryMethod == null) { +- return method.isConstructor(); +- } else { +- return method.getName().equals(factoryMethod); +- } +- } +- + private static String getProperty(DocletTag propertyTag, String propertyName) { + return getProperty(propertyTag, propertyName, null); + } +@@ -477,14 +490,17 @@ public class QdoxMappingLoader implements MappingLoader { + return false; + } + +- private org.apache.xbean.blueprint.generator.Type toMappingType(Type type, String nestedType) { ++ private org.apache.xbean.blueprint.generator.Type toMappingType(JavaType type, String nestedType) { + try { +- if (type.isArray()) { +- return org.apache.xbean.blueprint.generator.Type.newArrayType(type.getValue(), type.getDimensions()); +- } else if (type.isA(collectionType)) { +- if (nestedType == null) nestedType = "java.lang.Object"; +- return org.apache.xbean.blueprint.generator.Type.newCollectionType(type.getValue(), +- org.apache.xbean.blueprint.generator.Type.newSimpleType(nestedType)); ++ if (type instanceof JavaClass) { ++ JavaClass clazz = (JavaClass)type; ++ if (clazz.isArray()) { ++ return org.apache.xbean.blueprint.generator.Type.newArrayType(type.getValue(), clazz.getDimensions()); ++ } else if (clazz.isA(collectionType)) { ++ if (nestedType == null) nestedType = "java.lang.Object"; ++ return org.apache.xbean.blueprint.generator.Type.newCollectionType(type.getValue(), ++ org.apache.xbean.blueprint.generator.Type.newSimpleType(nestedType)); ++ } + } + } catch (Throwable t) { + log.debug("Could not load type mapping", t); +@@ -492,26 +508,28 @@ public class QdoxMappingLoader implements MappingLoader { + return org.apache.xbean.blueprint.generator.Type.newSimpleType(type.getValue()); + } + +- private static String toMethodLocator(JavaMethod method) { ++ private static String toMethodLocator(JavaClass parentClass, JavaModel methodOrConstructor) { ++ JavaMethod method = methodOrConstructor instanceof JavaMethod ? (JavaMethod) methodOrConstructor : null; ++ JavaConstructor constructor = methodOrConstructor instanceof JavaConstructor ? (JavaConstructor) methodOrConstructor : null; + StringBuffer buf = new StringBuffer(); +- buf.append(method.getParentClass().getFullyQualifiedName()); +- if (!method.isConstructor()) { ++ buf.append(parentClass.getFullyQualifiedName()); ++ if (method != null) { + buf.append(".").append(method.getName()); + } + buf.append("("); +- JavaParameter[] parameters = method.getParameters(); +- for (int i = 0; i < parameters.length; i++) { +- JavaParameter parameter = parameters[i]; ++ List parameters = method != null ? method.getParameters() : constructor.getParameters(); ++ for (int i = 0; i < parameters.size(); i++) { ++ JavaParameter parameter = parameters.get(i); + if (i > 0) { + buf.append(", "); + } + buf.append(parameter.getName()); + } +- buf.append(") : ").append(method.getLineNumber()); ++ buf.append(") : ").append(method != null ? method.getLineNumber() : constructor.getLineNumber()); + return buf.toString(); + } + +- private static void getSourceFiles(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException { ++ private static void getSourceFiles(File base, String[] excludedClasses, JavaProjectBuilder builder) throws IOException { + if (base.isDirectory()) { + listAllFileNames(base, "", excludedClasses, builder); + } else { +@@ -519,7 +537,7 @@ public class QdoxMappingLoader implements MappingLoader { + } + } + +- private static void listAllFileNames(File base, String prefix, String[] excludedClasses, JavaDocBuilder builder) throws IOException { ++ private static void listAllFileNames(File base, String prefix, String[] excludedClasses, JavaProjectBuilder builder) throws IOException { + if (!base.canRead() || !base.isDirectory()) { + throw new IllegalArgumentException(base.getAbsolutePath()); + } +@@ -536,7 +554,7 @@ public class QdoxMappingLoader implements MappingLoader { + } + } + +- private static void listAllJarEntries(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException { ++ private static void listAllJarEntries(File base, String[] excludedClasses, JavaProjectBuilder builder) throws IOException { + JarFile jarFile = new JarFile(base); + for (Enumeration entries = jarFile.entries(); entries.hasMoreElements(); ) { + JarEntry entry = (JarEntry) entries.nextElement(); +diff --git a/xbean-spring/src/main/java/org/apache/xbean/spring/generator/QdoxMappingLoader.java b/xbean-spring/src/main/java/org/apache/xbean/spring/generator/QdoxMappingLoader.java +index 94bd7a1..228117e 100644 +--- a/xbean-spring/src/main/java/org/apache/xbean/spring/generator/QdoxMappingLoader.java ++++ b/xbean-spring/src/main/java/org/apache/xbean/spring/generator/QdoxMappingLoader.java +@@ -20,6 +20,7 @@ import java.io.File; + import java.io.IOException; + import java.net.URL; + import java.util.ArrayList; ++import java.util.Collection; + import java.util.Collections; + import java.util.Enumeration; + import java.util.HashMap; +@@ -31,14 +32,17 @@ import java.util.TreeSet; + import java.util.jar.JarEntry; + import java.util.jar.JarFile; + +-import com.thoughtworks.qdox.JavaDocBuilder; ++import com.thoughtworks.qdox.JavaProjectBuilder; + import com.thoughtworks.qdox.model.BeanProperty; + import com.thoughtworks.qdox.model.DocletTag; + import com.thoughtworks.qdox.model.JavaClass; ++import com.thoughtworks.qdox.model.JavaConstructor; + import com.thoughtworks.qdox.model.JavaMethod; ++import com.thoughtworks.qdox.model.JavaModel; + import com.thoughtworks.qdox.model.JavaParameter; + import com.thoughtworks.qdox.model.JavaSource; +-import com.thoughtworks.qdox.model.Type; ++import com.thoughtworks.qdox.model.JavaType; ++ + import org.apache.commons.logging.Log; + import org.apache.commons.logging.LogFactory; + +@@ -62,7 +66,7 @@ public class QdoxMappingLoader implements MappingLoader { + private final String defaultNamespace; + private final File[] srcDirs; + private final String[] excludedClasses; +- private Type collectionType; ++ private JavaClass collectionType; + + public QdoxMappingLoader(String defaultNamespace, File[] srcDirs, String[] excludedClasses) { + this.defaultNamespace = defaultNamespace; +@@ -79,7 +83,7 @@ public class QdoxMappingLoader implements MappingLoader { + } + + public Set loadNamespaces() throws IOException { +- JavaDocBuilder builder = new JavaDocBuilder(); ++ JavaProjectBuilder builder = new JavaProjectBuilder(); + + log.debug("Source directories: "); + +@@ -92,11 +96,11 @@ public class QdoxMappingLoader implements MappingLoader { + getSourceFiles(sourceDirectory, excludedClasses, builder); + } + +- collectionType = builder.getClassByName("java.util.Collection").asType(); ++ collectionType = builder.getClassByName("java.util.Collection"); + return loadNamespaces(builder); + } + +- private Set loadNamespaces(JavaDocBuilder builder) { ++ private Set loadNamespaces(JavaProjectBuilder builder) { + // load all of the elements + List elements = loadElements(builder); + +@@ -131,14 +135,14 @@ public class QdoxMappingLoader implements MappingLoader { + return Collections.unmodifiableSet(namespaces); + } + +- private List loadElements(JavaDocBuilder builder) { +- JavaSource[] javaSources = builder.getSources(); ++ private List loadElements(JavaProjectBuilder builder) { ++ Collection javaSources = builder.getSources(); + List elements = new ArrayList(); + for (JavaSource javaSource : javaSources) { +- if (javaSource.getClasses().length == 0) { ++ if (javaSource.getClasses().isEmpty()) { + log.info("No Java Classes defined in: " + javaSource.getURL()); + } else { +- JavaClass[] classes = javaSource.getClasses(); ++ Collection classes = javaSource.getClasses(); + for (JavaClass javaClass : classes) { + ElementMapping element = loadElement(builder, javaClass); + if (element != null && !javaClass.isAbstract()) { +@@ -152,7 +156,7 @@ public class QdoxMappingLoader implements MappingLoader { + return elements; + } + +- private ElementMapping loadElement(JavaDocBuilder builder, JavaClass javaClass) { ++ private ElementMapping loadElement(JavaProjectBuilder builder, JavaClass javaClass) { + DocletTag xbeanTag = javaClass.getTagByName(XBEAN_ANNOTATION); + if (xbeanTag == null) { + return null; +@@ -176,7 +180,7 @@ public class QdoxMappingLoader implements MappingLoader { + Map attributesByPropertyName = new HashMap(); + + for (JavaClass jClass = javaClass; jClass != null; jClass = jClass.getSuperJavaClass()) { +- BeanProperty[] beanProperties = jClass.getBeanProperties(); ++ Collection beanProperties = jClass.getBeanProperties(); + for (BeanProperty beanProperty : beanProperties) { + // we only care about properties with a setter + if (beanProperty.getMutator() != null) { +@@ -219,9 +223,9 @@ public class QdoxMappingLoader implements MappingLoader { + String destroyMethod = null; + String factoryMethod = null; + for (JavaClass jClass = javaClass; jClass != null; jClass = jClass.getSuperJavaClass()) { +- JavaMethod[] methods = javaClass.getMethods(); ++ Collection methods = javaClass.getMethods(); + for (JavaMethod method : methods) { +- if (method.isPublic() && !method.isConstructor()) { ++ if (method.isPublic()) { + if (initMethod == null && method.getTagByName(INIT_METHOD_ANNOTATION) != null) { + initMethod = method.getName(); + } +@@ -237,27 +241,48 @@ public class QdoxMappingLoader implements MappingLoader { + } + + List> constructorArgs = new ArrayList>(); +- JavaMethod[] methods = javaClass.getMethods(); +- for (JavaMethod method : methods) { +- JavaParameter[] parameters = method.getParameters(); +- if (isValidConstructor(factoryMethod, method, parameters)) { +- List args = new ArrayList(parameters.length); +- for (JavaParameter parameter : parameters) { +- AttributeMapping attributeMapping = attributesByPropertyName.get(parameter.getName()); +- if (attributeMapping == null) { +- attributeMapping = loadParameter(parameter); +- +- attributes.add(attributeMapping); +- attributesByPropertyName.put(attributeMapping.getPropertyName(), attributeMapping); ++ if (factoryMethod == null) { ++ Collection constructors = javaClass.getConstructors(); ++ for (JavaConstructor constructor : constructors) { ++ Collection parameters = constructor.getParameters(); ++ if (constructor.isPublic() && parameters.size() > 0) { ++ List args = new ArrayList(parameters.size()); ++ for (JavaParameter parameter : parameters) { ++ AttributeMapping attributeMapping = attributesByPropertyName.get(parameter.getName()); ++ if (attributeMapping == null) { ++ attributeMapping = loadParameter(parameter, constructor); ++ ++ attributes.add(attributeMapping); ++ attributesByPropertyName.put(attributeMapping.getPropertyName(), attributeMapping); ++ } ++ args.add(new ParameterMapping(attributeMapping.getPropertyName(), toMappingType(parameter.getType(), null))); + } +- args.add(new ParameterMapping(attributeMapping.getPropertyName(), toMappingType(parameter.getType(), null))); ++ constructorArgs.add(Collections.unmodifiableList(args)); ++ } ++ } ++ } else { ++ Collection methods = javaClass.getMethods(); ++ for (JavaMethod method : methods) { ++ Collection parameters = method.getParameters(); ++ if (method.isPublic() && parameters.size() > 0 && method.getName().equals(factoryMethod)) { ++ List args = new ArrayList(parameters.size()); ++ for (JavaParameter parameter : parameters) { ++ AttributeMapping attributeMapping = attributesByPropertyName.get(parameter.getName()); ++ if (attributeMapping == null) { ++ attributeMapping = loadParameter(parameter, method); ++ ++ attributes.add(attributeMapping); ++ attributesByPropertyName.put(attributeMapping.getPropertyName(), attributeMapping); ++ } ++ args.add(new ParameterMapping(attributeMapping.getPropertyName(), toMappingType(parameter.getType(), null))); ++ } ++ constructorArgs.add(Collections.unmodifiableList(args)); + } +- constructorArgs.add(Collections.unmodifiableList(args)); + } + } + + HashSet interfaces = new HashSet(); +- interfaces.addAll(getFullyQualifiedNames(javaClass.getImplementedInterfaces())); ++ interfaces.addAll(getFullyQualifiedNames(javaClass.getInterfaces())); + + JavaClass actualClass = javaClass; + if (factoryClass != null) { +@@ -282,7 +307,7 @@ public class QdoxMappingLoader implements MappingLoader { + } + p = s; + superClasses.add(p.getFullyQualifiedName()); +- interfaces.addAll(getFullyQualifiedNames(p.getImplementedInterfaces())); ++ interfaces.addAll(getFullyQualifiedNames(p.getInterfaces())); + } + + return new ElementMapping(namespace, +@@ -303,7 +328,7 @@ public class QdoxMappingLoader implements MappingLoader { + interfaces); + } + +- private List getFullyQualifiedNames(JavaClass[] implementedInterfaces) { ++ private List getFullyQualifiedNames(Collection implementedInterfaces) { + ArrayList l = new ArrayList(); + for (JavaClass implementedInterface : implementedInterfaces) { + l.add(implementedInterface.getFullyQualifiedName()); +@@ -395,19 +420,19 @@ public class QdoxMappingLoader implements MappingLoader { + return defaultDescription; + } + +- private AttributeMapping loadParameter(JavaParameter parameter) { ++ private AttributeMapping loadParameter(JavaParameter parameter, JavaModel methodOrConstructor) { + String parameterName = parameter.getName(); + String parameterDescription = getParameterDescription(parameter); + + // first attempt to load the attribute from the java beans accessor methods +- JavaClass javaClass = parameter.getParentMethod().getParentClass(); ++ JavaClass javaClass = parameter.getDeclaringClass(); + BeanProperty beanProperty = javaClass.getBeanProperty(parameterName); + if (beanProperty != null) { + AttributeMapping attributeMapping = loadAttribute(beanProperty, parameterDescription); + // if the attribute mapping is null, the property was tagged as hidden and this is an error + if (attributeMapping == null) { + throw new InvalidModelException("Hidden property usage: " + +- "The construction method " + toMethodLocator(parameter.getParentMethod()) + ++ "The construction method " + toMethodLocator(parameter.getDeclaringClass(), methodOrConstructor) + + " can not use a hidded property " + parameterName); + } + return attributeMapping; +@@ -426,9 +451,9 @@ public class QdoxMappingLoader implements MappingLoader { + + private String getParameterDescription(JavaParameter parameter) { + String parameterName = parameter.getName(); +- DocletTag[] tags = parameter.getParentMethod().getTagsByName("param"); ++ Collection tags = parameter.getTagsByName("param"); + for (DocletTag tag : tags) { +- if (tag.getParameters()[0].equals(parameterName)) { ++ if (tag.getParameters().get(0).equals(parameterName)) { + String parameterDescription = tag.getValue().trim(); + if (parameterDescription.startsWith(parameterName)) { + parameterDescription = parameterDescription.substring(parameterName.length()).trim(); +@@ -439,18 +464,6 @@ public class QdoxMappingLoader implements MappingLoader { + return null; + } + +- private boolean isValidConstructor(String factoryMethod, JavaMethod method, JavaParameter[] parameters) { +- if (!method.isPublic() || parameters.length == 0) { +- return false; +- } +- +- if (factoryMethod == null) { +- return method.isConstructor(); +- } else { +- return method.getName().equals(factoryMethod); +- } +- } +- + private static String getProperty(DocletTag propertyTag, String propertyName) { + return getProperty(propertyTag, propertyName, null); + } +@@ -477,14 +490,17 @@ public class QdoxMappingLoader implements MappingLoader { + return false; + } + +- private org.apache.xbean.spring.generator.Type toMappingType(Type type, String nestedType) { ++ private org.apache.xbean.spring.generator.Type toMappingType(JavaType type, String nestedType) { + try { +- if (type.isArray()) { +- return org.apache.xbean.spring.generator.Type.newArrayType(type.getValue(), type.getDimensions()); +- } else if (type.isA(collectionType)) { +- if (nestedType == null) nestedType = "java.lang.Object"; +- return org.apache.xbean.spring.generator.Type.newCollectionType(type.getValue(), +- org.apache.xbean.spring.generator.Type.newSimpleType(nestedType)); ++ if (type instanceof JavaClass) { ++ JavaClass clazz = (JavaClass)type; ++ if (clazz.isArray()) { ++ return org.apache.xbean.spring.generator.Type.newArrayType(type.getValue(), clazz.getDimensions()); ++ } else if (clazz.isA(collectionType)) { ++ if (nestedType == null) nestedType = "java.lang.Object"; ++ return org.apache.xbean.spring.generator.Type.newCollectionType(type.getValue(), ++ org.apache.xbean.spring.generator.Type.newSimpleType(nestedType)); ++ } + } + } catch (Throwable t) { + log.debug("Could not load type mapping", t); +@@ -492,26 +508,28 @@ public class QdoxMappingLoader implements MappingLoader { + return org.apache.xbean.spring.generator.Type.newSimpleType(type.getValue()); + } + +- private static String toMethodLocator(JavaMethod method) { ++ private static String toMethodLocator(JavaClass parentClass, JavaModel methodOrConstructor) { ++ JavaMethod method = methodOrConstructor instanceof JavaMethod ? (JavaMethod) methodOrConstructor : null; ++ JavaConstructor constructor = methodOrConstructor instanceof JavaConstructor ? (JavaConstructor) methodOrConstructor : null; + StringBuffer buf = new StringBuffer(); +- buf.append(method.getParentClass().getFullyQualifiedName()); +- if (!method.isConstructor()) { ++ buf.append(parentClass.getFullyQualifiedName()); ++ if (method != null) { + buf.append(".").append(method.getName()); + } + buf.append("("); +- JavaParameter[] parameters = method.getParameters(); +- for (int i = 0; i < parameters.length; i++) { +- JavaParameter parameter = parameters[i]; ++ List parameters = method != null ? method.getParameters() : constructor.getParameters(); ++ for (int i = 0; i < parameters.size(); i++) { ++ JavaParameter parameter = parameters.get(i); + if (i > 0) { + buf.append(", "); + } + buf.append(parameter.getName()); + } +- buf.append(") : ").append(method.getLineNumber()); ++ buf.append(") : ").append(method != null ? method.getLineNumber() : constructor.getLineNumber()); + return buf.toString(); + } + +- private static void getSourceFiles(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException { ++ private static void getSourceFiles(File base, String[] excludedClasses, JavaProjectBuilder builder) throws IOException { + if (base.isDirectory()) { + listAllFileNames(base, "", excludedClasses, builder); + } else { +@@ -519,7 +537,7 @@ public class QdoxMappingLoader implements MappingLoader { + } + } + +- private static void listAllFileNames(File base, String prefix, String[] excludedClasses, JavaDocBuilder builder) throws IOException { ++ private static void listAllFileNames(File base, String prefix, String[] excludedClasses, JavaProjectBuilder builder) throws IOException { + if (!base.canRead() || !base.isDirectory()) { + throw new IllegalArgumentException(base.getAbsolutePath()); + } +@@ -536,7 +554,7 @@ public class QdoxMappingLoader implements MappingLoader { + } + } + +- private static void listAllJarEntries(File base, String[] excludedClasses, JavaDocBuilder builder) throws IOException { ++ private static void listAllJarEntries(File base, String[] excludedClasses, JavaProjectBuilder builder) throws IOException { + JarFile jarFile = new JarFile(base); + for (Enumeration entries = jarFile.entries(); entries.hasMoreElements(); ) { + JarEntry entry = (JarEntry) entries.nextElement(); +diff --git a/xbean-spring/src/main/java/org/apache/xbean/spring/generator/Type.java b/xbean-spring/src/main/java/org/apache/xbean/spring/generator/Type.java +index 5eac64c..0d9fa63 100644 +--- a/xbean-spring/src/main/java/org/apache/xbean/spring/generator/Type.java ++++ b/xbean-spring/src/main/java/org/apache/xbean/spring/generator/Type.java +@@ -41,12 +41,7 @@ public class Type { + public static Type newArrayType(String type, int dimensions) { + if (type == null) throw new NullPointerException("type"); + if (dimensions < 1) throw new IllegalArgumentException("dimensions must be atleast one"); +- StringBuffer buf = new StringBuffer(type.length() + (dimensions * 2)); +- buf.append(type); +- for (int i = 0; i < dimensions; i ++) { +- buf.append("[]"); +- } +- return new Type(buf.toString(), newSimpleType(type)); ++ return new Type(type, newSimpleType(type.replaceAll("\\[\\]", ""))); + } + + public static Type newCollectionType(String collectionType, Type elementType) { +-- +2.9.3 + diff --git a/changelog b/changelog deleted file mode 100644 index 549083e..0000000 --- a/changelog +++ /dev/null @@ -1,300 +0,0 @@ -* Tue Aug 19 2025 Marian Koncek - 4.24-9 -- Drop -javadoc subpackage - -* Wed Jul 30 2025 jiri vanek - 4.24-8 -- Rrevert to jdk21 - -* Tue Jul 29 2025 jiri vanek - 4.24-7 -- Rebuilt for java-25-openjdk as preffered jdk - -* Fri Jul 25 2025 Fedora Release Engineering - 4.24-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jan 19 2025 Fedora Release Engineering - 4.24-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Jul 20 2024 Fedora Release Engineering - 4.24-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Tue Feb 27 2024 Jiri Vanek - 4.24-3 -- Rebuilt for java-21-openjdk as system jdk - -* Sat Jan 27 2024 Fedora Release Engineering - 4.24-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Tue Dec 19 2023 Marian Koncek - 4.24-1 -- Update to upstream version 4.24 - -* Fri Sep 01 2023 Mikolaj Izdebski - 4.23-2 -- Rebuild - -* Thu Aug 17 2023 Marian Koncek - 4.23-1 -- Update to upstream version 4.23 - -* Sat Jul 22 2023 Fedora Release Engineering - 4.21-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jan 21 2023 Fedora Release Engineering - 4.21-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Sep 09 2022 Marian Koncek - 4.21-1 -- Update to upstream version 4.21 - -* Sat Jul 23 2022 Fedora Release Engineering - 4.18-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Feb 05 2022 Jiri Vanek - 4.18-7 -- Rebuilt for java-17-openjdk as system jdk - -* Sat Jan 22 2022 Fedora Release Engineering - 4.18-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Nov 02 2021 Mikolaj Izdebski - 4.18-5 -- Set explicit Java compiler source/target levels to 1.7 - -* Fri Jul 23 2021 Fedora Release Engineering - 4.18-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Mon Jun 21 2021 Mikolaj Izdebski - 4.18-3 -- Enable xbean-finder -- Resolves: rhbz#1969297 - -* Mon May 17 2021 Mikolaj Izdebski - 4.18-2 -- Bootstrap build -- Non-bootstrap build - -* Wed Jan 27 2021 Fedora Release Engineering - 4.15-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Jan 26 2021 Marian Koncek - 4.18-1 -- Update to upstream version 4.18 - -* Wed Sep 09 2020 Fabio Valentini - 4.15-6 -- Switch from log4j 1.2 compat package to log4j 1.2 API shim. - -* Wed Jul 29 2020 Marian Koncek - 4.17-1 -- Update to upsteam version 4.17 - -* Wed Jul 29 2020 Mat Booth - 4.15-5 -- Remove springframework conditionals, the deps are a long time removed from - Fedora and this simplifies the spec a bit -- Disable unused modules that can't build on JDK 11 - -* Sat Jul 11 2020 Jiri Vanek - 4.15-4 -- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 - -* Thu Jun 25 2020 Jeff Johnston - 4.15-3 -- Fix JVM as 1.8.0 as package cannot be built with Java 9 and above - -* Fri May 15 2020 Mikolaj Izdebski - 4.14-4 -- Remove dependency on log4j and commons-logging - -* Fri Jan 31 2020 Fedora Release Engineering - 4.15-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Nov 13 2019 Fabio Valentini - 4.15-1 -- Update to version 4.15. - -* Tue Nov 05 2019 Mikolaj Izdebski - 4.14-3 -- Mass rebuild for javapackages-tools 201902 - -* Tue Nov 05 2019 Mikolaj Izdebski - 4.14-2 -- Disable all modules except xbean-reflect - -* Wed Sep 18 2019 Fabio Valentini - 4.14-2 -- Migrate from the obsolete felix-osgi-core to osgi-core. - -* Tue Aug 20 2019 Fabio Valentini - 4.14-1 -- Update to version 4.14. - -* Sun Jul 28 2019 Fabio Valentini - 4.9-5 -- Disable support for spring and groovy. - -* Sat Jul 27 2019 Fedora Release Engineering - 4.9-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jul 09 2019 Fabio Valentini - 4.9-3 -- Disable eclipse equinox functionality to fix the FTBFS issue on 32bit arches. - -* Wed Jun 26 2019 Marian Koncek - 4.14-1 -- Update to upstream version 4.14 - -* Fri May 24 2019 Mikolaj Izdebski - 4.8-2 -- Mass rebuild for javapackages-tools 201901 - -* Sun Feb 03 2019 Fedora Release Engineering - 4.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Aug 07 2018 Michael Simacek - 4.9-1 -- Update to upstream version 4.9 - -* Sat Jul 14 2018 Fedora Release Engineering - 4.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Apr 19 2018 Michael Simacek - 4.8-1 -- Update to upstream version 4.8 - -* Tue Mar 13 2018 Michael Simacek - 4.6-1 -- Update to upstream version 4.6 - -* Fri Feb 09 2018 Fedora Release Engineering - 4.5-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 4.5-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 4.5-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 1 2017 Mikolaj Izdebski - 4.5-6 -- Introduce groovy build conditional - -* Wed Feb 01 2017 Michael Simacek - 4.5-5 -- Fix build with conditionals - -* Wed Feb 01 2017 Michael Simacek - 4.5-4 -- Port to current QDox - -* Thu Jun 16 2016 Mikolaj Izdebski - 4.5-3 -- Add missing build-requires - -* Thu May 12 2016 Michael Simacek - 4.5-2 -- Enable xbean-asm-util - -* Mon May 02 2016 Michael Simacek - 4.5-1 -- Update to upstream version 4.5 - -* Fri Feb 05 2016 Fedora Release Engineering - 4.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Nov 24 2015 Michael Simacek - 4.4-1 -- Update to upstream version 4.4 -- Rebase patches -- Remove obsolete groovy patch - -* Mon Jul 13 2015 Mikolaj Izdebski - 4.3-1 -- Update to upstream version 4.3 - -* Fri Jun 19 2015 Fedora Release Engineering - 4.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Wed Apr 1 2015 Mikolaj Izdebski - 4.2-1 -- Update to upstream version 4.2 - -* Thu Feb 5 2015 Mikolaj Izdebski - 4.1-2 -- Fix patch unshading ASM - -* Fri Nov 21 2014 Mikolaj Izdebski - 4.1-1 -- Update to upstream version 4.1 - -* Sun Jun 08 2014 Fedora Release Engineering - 3.17-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Mon Apr 14 2014 Mikolaj Izdebski - 3.17-1 -- Update to upstream version 3.17 -- Add patch for Eclipse Luna - -* Thu Dec 5 2013 Mikolaj Izdebski - 3.16-1 -- Update to upstream version 3.16 - -* Thu Aug 08 2013 Stanislav Ochotnicky - 3.13-4 -- Update to latest packaging guidelines - -* Sun Aug 04 2013 Fedora Release Engineering - 3.13-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Mon Apr 29 2013 Mikolaj Izdebski - 3.13-2 -- Remove unneeded BR: maven-idea-plugin - -* Fri Mar 15 2013 Michal Srb - 3.13-1 -- Update to upstream version 3.13 - -* Fri Feb 15 2013 Fedora Release Engineering - 3.12-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Wed Feb 06 2013 Java SIG - 3.12-5 -- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild -- Replace maven BuildRequires with maven-local - -* Mon Dec 17 2012 Mikolaj Izdebski - 3.12-4 -- Enable xbean-spring, resolves rhbz#887496 -- Disable xbean-blueprint due to FTBFS - -* Mon Oct 22 2012 Mikolaj Izdebski - 3.12-3 -- Replace eclipse-rcp requires with eclipse-equinox-osgi -- Reenable Equinox - -* Tue Oct 16 2012 gil cattaneo - 3.12-2 -- Enable xbean-blueprint and xbean-classloader modules - -* Wed Oct 10 2012 Mikolaj Izdebski - 3.12-1 -- Update to upstream version 3.12 - -* Wed Oct 10 2012 Krzysztof Daniel 3.11.1-8 -- Revert previous changes. - -* Wed Oct 10 2012 Krzysztof Daniel 3.11.1-7 -- Disable parts dependent on Eclipse (for bootstraping purpose). - -* Wed Oct 10 2012 Mikolaj Izdebski - 3.11.1-6 -- Implement equinox and spring conditionals - -* Mon Sep 3 2012 Mikolaj Izdebski - 3.11.1-5 -- Fix eclipse requires - -* Mon Aug 27 2012 Mikolaj Izdebski - 3.11.1-4 -- Fix felix-framework enabling patch - -* Mon Aug 6 2012 Mikolaj Izdebski - 3.11.1-3 -- Enable xbean-spring -- Enable maven-xbean-plugin -- Remove RPM bug workaround - -* Sun Jul 22 2012 Fedora Release Engineering - 3.11.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Fri Jul 13 2012 Mikolaj Izdebski - 3.11.1-1 -- Update to the upstream version 3.11.1 -- Force use of Equinox instead of Felix -- Convert patch to POM macros - -* Thu May 3 2012 Stanislav Ochotnicky - 3.8-5 -- Remove mx4j from deps (javax.management provided by JDK 1.5+) - -* Tue Apr 24 2012 Alexander Kurtakov 3.8-4 -- BR felix-framework instead of felix-osgi-core. - -* Tue Apr 24 2012 Alexander Kurtakov 3.8-3 -- Do not build equinox specific parts for RHEL. - -* Sat Jan 14 2012 Fedora Release Engineering - 3.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Dec 6 2011 Stanislav Ochotnicky - 3.8-1 -- Update to latest upstream version -- Build with maven 3 -- Packaging & guidelines fixes - -* Sat May 28 2011 Marek Goldmann - 3.7-7 -- Added xbean-finder and xbean-bundleutils submodules - -* Fri Mar 4 2011 Stanislav Ochotnicky - 3.7-6 -- Add comment for removing javadoc -- Fix maven 3 build - -* Mon Feb 07 2011 Fedora Release Engineering - 3.7-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Dec 6 2010 Stanislav Ochotnicky - 3.7-4 -- Fix pom filename (Resolves rhbz#655827) -- Add depmap for main pom file -- Fixes according to new guidelines (versionless jars, javadocs) - -* Fri Jul 30 2010 Stanislav Ochotnicky - 3.7-3 -- Use javadoc:aggregate to generate javadocs - -* Fri Jul 9 2010 Stanislav Ochotnicky - 3.7-2 -- Add license to javadoc subpackage - -* Mon Jun 21 2010 Stanislav Ochotnicky - 3.7-1 -- First release diff --git a/ci.fmf b/ci.fmf deleted file mode 100644 index c5aa0e0..0000000 --- a/ci.fmf +++ /dev/null @@ -1 +0,0 @@ -resultsdb-testcase: separate diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index 0d484d7..0000000 --- a/gating.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- !Policy -product_versions: - - fedora-* -decision_contexts: - - bodhi_update_push_testing - - bodhi_update_push_stable -rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/javapackages.functional} diff --git a/plans/javapackages.fmf b/plans/javapackages.fmf deleted file mode 100644 index 075e436..0000000 --- a/plans/javapackages.fmf +++ /dev/null @@ -1,7 +0,0 @@ -summary: Run javapackages-specific tests -discover: - how: fmf - url: https://gitlab.com/redhat/centos-stream/tests/javapackages.git - ref: main -execute: - how: tmt diff --git a/sources b/sources index 225cbe3..e8025d8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xbean-4.24-source-release.zip) = c88fc635e6365335cb8b78b28ac1324be0970e0d2bc000f5f43ff40d4ce6fbed04a61006788873dc0819e8f80913f40b2da4b9b264c2fe81e78ffcde5dd85e65 +f9b31c472dc627f3d4bc7fd8a232def9 xbean-4.5-source-release.zip diff --git a/xbean.spec b/xbean.spec index 2499b2d..fe53824 100644 --- a/xbean.spec +++ b/xbean.spec @@ -1,32 +1,58 @@ -%bcond_with bootstrap +# Conditionals to help breaking eclipse <-> xbean dependency cycle +# when bootstrapping for new architectures +%bcond_without equinox +%bcond_without groovy +%bcond_without spring Name: xbean -Version: 4.24 -Release: %autorelease +Version: 4.5 +Release: 9%{?dist} Summary: Java plugin based web server -License: Apache-2.0 -URL: https://geronimo.apache.org/xbean/ +License: ASL 2.0 +URL: http://geronimo.apache.org/xbean/ BuildArch: noarch -ExclusiveArch: %{java_arches} noarch -Source0: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}/%{version}/%{name}-%{version}-source-release.zip +Source0: http://repo2.maven.org/maven2/org/apache/%{name}/%{name}/%{version}/%{name}-%{version}-source-release.zip -Patch: 0001-Unbundle-ASM.patch -Patch: 0002-Remove-dependency-on-log4j-and-commons-logging.patch +# Fix dependency on xbean-asm4-shaded to original objectweb-asm +Patch0: 0001-Unshade-ASM.patch +# Compatibility with Eclipse Luna (rhbz#1087461) +Patch1: 0002-Port-to-Eclipse-Luna-OSGi.patch +Patch2: 0003-Port-to-QDox-2.0.patch -# TODO Remove in Fedora 47 -Obsoletes: %{name}-javadoc < 4.24-9 - -%if %{with bootstrap} -BuildRequires: javapackages-bootstrap -%else -BuildRequires: maven-local-openjdk25 -BuildRequires: mvn(junit:junit) +BuildRequires: maven-local +BuildRequires: mvn(commons-logging:commons-logging-api) +BuildRequires: mvn(log4j:log4j:1.2.12) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) BuildRequires: mvn(org.osgi:org.osgi.core) BuildRequires: mvn(org.ow2.asm:asm) BuildRequires: mvn(org.ow2.asm:asm-commons) BuildRequires: mvn(org.slf4j:slf4j-api) + +%if %{with equinox} +BuildRequires: mvn(org.eclipse:osgi) +%endif + +%if %{with groovy} +BuildRequires: mvn(org.codehaus.groovy:groovy-all) +%endif + +%if %{with spring} +BuildRequires: mvn(ant:ant) +BuildRequires: mvn(commons-logging:commons-logging) +BuildRequires: mvn(com.thoughtworks.qdox:qdox) +BuildRequires: mvn(org.apache.maven:maven-archiver) +BuildRequires: mvn(org.apache.maven:maven-artifact) +BuildRequires: mvn(org.apache.maven:maven-plugin-api) +BuildRequires: mvn(org.apache.maven:maven-project) +BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) +BuildRequires: mvn(org.codehaus.plexus:plexus-archiver) +BuildRequires: mvn(org.codehaus.plexus:plexus-utils) +BuildRequires: mvn(org.springframework:spring-beans) +BuildRequires: mvn(org.springframework:spring-context) +BuildRequires: mvn(org.springframework:spring-web) %endif %description @@ -38,48 +64,287 @@ support for running with no IoC system, JMX without JMX code, lifecycle and class loader management, and a rock solid Spring integration. +%if %{with spring} +# For now blueprint module fails to compile. Disable it. +%if 0 +%package blueprint +Summary: Schema-driven namespace handler for Apache Aries Blueprint + +%description blueprint +This package provides %{summary}. +%endif + +%package classloader +Summary: A flexibie multi-parent classloader + +%description classloader +This package provides %{summary}. + +%package spring +Summary: Schema-driven namespace handler for spring contexts +Requires: %{name} = %{version}-%{release} + +%description spring +This package provides %{summary}. + +%package -n maven-%{name}-plugin +Summary: XBean plugin for Apache Maven + +%description -n maven-%{name}-plugin +This package provides %{summary}. +%endif + +%package javadoc +Summary: API documentation for %{name} + +%description javadoc +This package provides %{summary}. + %prep -%autosetup -p1 -C +%setup -q +# build failing on this due to doxia-sitetools problems +rm src/site/site.xml -cp xbean-asm-util/src/main/java/org/apache/xbean/asm9/original/commons/AsmConstants.java xbean-reflect/src/main/java/org/apache/xbean/recipe/ +%patch0 -p1 +%if %{with equinox} +%patch1 -p1 +%endif +%patch2 -p1 -# Parent POM is not packaged %pom_remove_parent +%pom_remove_dep mx4j:mx4j -%pom_disable_module xbean-classloader -%pom_disable_module xbean-classpath -%pom_disable_module xbean-bundleutils -%pom_disable_module xbean-asm9-shaded +%pom_remove_dep -r :xbean-asm5-shaded +%pom_remove_dep -r :xbean-finder-shaded +%pom_disable_module xbean-asm5-shaded %pom_disable_module xbean-finder-shaded -%pom_disable_module xbean-naming + +%pom_xpath_remove pom:scope xbean-asm-util +%pom_xpath_remove pom:optional xbean-asm-util + +# Prevent modules depending on springframework from building. +%if %{without spring} + %pom_remove_dep org.springframework: + #%%pom_disable_module xbean-blueprint + %pom_disable_module xbean-classloader + %pom_disable_module xbean-spring + %pom_disable_module maven-xbean-plugin +%else + %mvn_package :xbean-classloader classloader + %mvn_package :xbean-spring spring + %mvn_package :maven-xbean-plugin maven-xbean-plugin +%endif +# blueprint FTBFS, disable for now %pom_disable_module xbean-blueprint -%pom_disable_module xbean-spring + +%if %{without equinox} + %pom_remove_dep :xbean-bundleutils xbean-finder + rm -r xbean-finder/src/main/java/org/apache/xbean/finder{,/archive}/Bundle* + %pom_disable_module xbean-bundleutils +%endif + +%if %{without groovy} %pom_disable_module xbean-telnet -%pom_disable_module maven-xbean-plugin +%endif -%pom_remove_dep :commons-logging-api xbean-reflect -%pom_remove_dep :log4j xbean-reflect -%pom_remove_dep :xbean-asm9-shaded xbean-reflect -find -name CommonsLoggingConverter.java -delete -find -name Log4jConverter.java -delete +# maven-xbean-plugin invocation makes no sense as there are no namespaces +%pom_remove_plugin :maven-xbean-plugin xbean-classloader -# Plugins useful for upstream only +# As auditing tool RAT is useful for upstream only. %pom_remove_plugin :apache-rat-plugin -%pom_remove_plugin :maven-source-plugin -%pom_remove_dep :xbean-bundleutils xbean-finder -rm -r xbean-finder/src/main/java/org/apache/xbean/finder{,/archive}/Bundle* - -# Disable one test that fails on JVM 11 -sed -i '/testGetBytecode/i@org.junit.Ignore' xbean-finder/src/test/java/org/apache/xbean/finder/archive/MJarJarArchiveTest.java +# disable copy of internal aries-blueprint +sed -i "s|||" xbean-blueprint/pom.xml %build -%mvn_build --force -j -- -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8 +%mvn_build -f %install %mvn_install %files -f .mfiles -%license LICENSE NOTICE +%doc LICENSE NOTICE +%dir %{_javadir}/%{name} -%autochangelog +%if %{with spring} +%if 0 +%files blueprint -f .mfiles-blueprint +%doc LICENSE NOTICE %{name}-blueprint/target/restaurant.xsd* +%endif + +%files classloader -f .mfiles-classloader +%doc LICENSE NOTICE + +%files spring -f .mfiles-spring +%doc LICENSE NOTICE + +%files -n maven-%{name}-plugin -f .mfiles-maven-%{name}-plugin +%doc LICENSE NOTICE +%endif + +%files javadoc -f .mfiles-javadoc +%doc LICENSE NOTICE + +%changelog +* Fri Feb 09 2018 Fedora Release Engineering - 4.5-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 4.5-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 4.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 1 2017 Mikolaj Izdebski - 4.5-6 +- Introduce groovy build conditional + +* Wed Feb 01 2017 Michael Simacek - 4.5-5 +- Fix build with conditionals + +* Wed Feb 01 2017 Michael Simacek - 4.5-4 +- Port to current QDox + +* Thu Jun 16 2016 Mikolaj Izdebski - 4.5-3 +- Add missing build-requires + +* Thu May 12 2016 Michael Simacek - 4.5-2 +- Enable xbean-asm-util + +* Mon May 02 2016 Michael Simacek - 4.5-1 +- Update to upstream version 4.5 + +* Fri Feb 05 2016 Fedora Release Engineering - 4.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Nov 24 2015 Michael Simacek - 4.4-1 +- Update to upstream version 4.4 +- Rebase patches +- Remove obsolete groovy patch + +* Mon Jul 13 2015 Mikolaj Izdebski - 4.3-1 +- Update to upstream version 4.3 + +* Fri Jun 19 2015 Fedora Release Engineering - 4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Apr 1 2015 Mikolaj Izdebski - 4.2-1 +- Update to upstream version 4.2 + +* Thu Feb 5 2015 Mikolaj Izdebski - 4.1-2 +- Fix patch unshading ASM + +* Fri Nov 21 2014 Mikolaj Izdebski - 4.1-1 +- Update to upstream version 4.1 + +* Sun Jun 08 2014 Fedora Release Engineering - 3.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 14 2014 Mikolaj Izdebski - 3.17-1 +- Update to upstream version 3.17 +- Add patch for Eclipse Luna + +* Thu Dec 5 2013 Mikolaj Izdebski - 3.16-1 +- Update to upstream version 3.16 + +* Thu Aug 08 2013 Stanislav Ochotnicky - 3.13-4 +- Update to latest packaging guidelines + +* Sun Aug 04 2013 Fedora Release Engineering - 3.13-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Apr 29 2013 Mikolaj Izdebski - 3.13-2 +- Remove unneeded BR: maven-idea-plugin + +* Fri Mar 15 2013 Michal Srb - 3.13-1 +- Update to upstream version 3.13 + +* Fri Feb 15 2013 Fedora Release Engineering - 3.12-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Feb 06 2013 Java SIG - 3.12-5 +- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild +- Replace maven BuildRequires with maven-local + +* Mon Dec 17 2012 Mikolaj Izdebski - 3.12-4 +- Enable xbean-spring, resolves rhbz#887496 +- Disable xbean-blueprint due to FTBFS + +* Mon Oct 22 2012 Mikolaj Izdebski - 3.12-3 +- Replace eclipse-rcp requires with eclipse-equinox-osgi +- Reenable Equinox + +* Tue Oct 16 2012 gil cattaneo - 3.12-2 +- Enable xbean-blueprint and xbean-classloader modules + +* Wed Oct 10 2012 Mikolaj Izdebski - 3.12-1 +- Update to upstream version 3.12 + +* Wed Oct 10 2012 Krzysztof Daniel 3.11.1-8 +- Revert previous changes. + +* Wed Oct 10 2012 Krzysztof Daniel 3.11.1-7 +- Disable parts dependent on Eclipse (for bootstraping purpose). + +* Wed Oct 10 2012 Mikolaj Izdebski - 3.11.1-6 +- Implement equinox and spring conditionals + +* Mon Sep 3 2012 Mikolaj Izdebski - 3.11.1-5 +- Fix eclipse requires + +* Mon Aug 27 2012 Mikolaj Izdebski - 3.11.1-4 +- Fix felix-framework enabling patch + +* Mon Aug 6 2012 Mikolaj Izdebski - 3.11.1-3 +- Enable xbean-spring +- Enable maven-xbean-plugin +- Remove RPM bug workaround + +* Sun Jul 22 2012 Fedora Release Engineering - 3.11.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jul 13 2012 Mikolaj Izdebski - 3.11.1-1 +- Update to the upstream version 3.11.1 +- Force use of Equinox instead of Felix +- Convert patch to POM macros + +* Thu May 3 2012 Stanislav Ochotnicky - 3.8-5 +- Remove mx4j from deps (javax.management provided by JDK 1.5+) + +* Tue Apr 24 2012 Alexander Kurtakov 3.8-4 +- BR felix-framework instead of felix-osgi-core. + +* Tue Apr 24 2012 Alexander Kurtakov 3.8-3 +- Do not build equinox specific parts for RHEL. + +* Sat Jan 14 2012 Fedora Release Engineering - 3.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Dec 6 2011 Stanislav Ochotnicky - 3.8-1 +- Update to latest upstream version +- Build with maven 3 +- Packaging & guidelines fixes + +* Sat May 28 2011 Marek Goldmann - 3.7-7 +- Added xbean-finder and xbean-bundleutils submodules + +* Fri Mar 4 2011 Stanislav Ochotnicky - 3.7-6 +- Add comment for removing javadoc +- Fix maven 3 build + +* Mon Feb 07 2011 Fedora Release Engineering - 3.7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 6 2010 Stanislav Ochotnicky - 3.7-4 +- Fix pom filename (Resolves rhbz#655827) +- Add depmap for main pom file +- Fixes according to new guidelines (versionless jars, javadocs) + +* Fri Jul 30 2010 Stanislav Ochotnicky - 3.7-3 +- Use javadoc:aggregate to generate javadocs + +* Fri Jul 9 2010 Stanislav Ochotnicky - 3.7-2 +- Add license to javadoc subpackage + +* Mon Jun 21 2010 Stanislav Ochotnicky - 3.7-1 +- First release