import xbean-4.8-1.module+el8+2598+06babf2e
This commit is contained in:
commit
6ad9d0753f
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
SOURCES/xbean-4.8-source-release.zip
|
1
.xbean.metadata
Normal file
1
.xbean.metadata
Normal file
@ -0,0 +1 @@
|
||||
64f049581900a100206fa065501c043de4f9dc46 SOURCES/xbean-4.8-source-release.zip
|
62
SOURCES/0002-Port-to-Eclipse-Luna-OSGi.patch
Normal file
62
SOURCES/0002-Port-to-Eclipse-Luna-OSGi.patch
Normal file
@ -0,0 +1,62 @@
|
||||
From 9e1bb9bfee86490163fb1e226556620aa8cdf7bc Mon Sep 17 00:00:00 2001
|
||||
From: Mikolaj Izdebski <mizdebsk@redhat.com>
|
||||
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 @@
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
- <groupId>org.osgi</groupId>
|
||||
- <artifactId>org.osgi.core</artifactId>
|
||||
- <version>4.3.1</version>
|
||||
- <scope>provided</scope>
|
||||
- </dependency>
|
||||
- <dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>osgi</artifactId>
|
||||
- <version>3.6.0.v20100517</version>
|
||||
+ <version>3.10.0-v20140606-1445</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
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 <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference) {
|
||||
+ return bundleContext.getServiceObjects(reference);
|
||||
+ }
|
||||
+
|
||||
+ public <S> ServiceRegistration<S> registerService(Class<S> clazz, ServiceFactory<S> factory, Dictionary<String, ?> properties) {
|
||||
+ return bundleContext.registerService(clazz, factory, properties);
|
||||
+ }
|
||||
|
||||
}
|
||||
--
|
||||
2.9.3
|
||||
|
689
SOURCES/0003-Port-to-QDox-2.0.patch
Normal file
689
SOURCES/0003-Port-to-QDox-2.0.patch
Normal file
@ -0,0 +1,689 @@
|
||||
From 928bd5a98dc500a31197a56c8f6c5e19a3a273f8 Mon Sep 17 00:00:00 2001
|
||||
From: Mikolaj Izdebski <mizdebsk@redhat.com>
|
||||
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 @@
|
||||
<dependency>
|
||||
<groupId>com.thoughtworks.qdox</groupId>
|
||||
<artifactId>qdox</artifactId>
|
||||
- <version>1.6.3</version>
|
||||
+ <version>2.0-M5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
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<NamespaceMapping> 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<NamespaceMapping> loadNamespaces(JavaDocBuilder builder) {
|
||||
+ private Set<NamespaceMapping> loadNamespaces(JavaProjectBuilder builder) {
|
||||
// load all of the elements
|
||||
List<ElementMapping> elements = loadElements(builder);
|
||||
|
||||
@@ -131,14 +135,14 @@ public class QdoxMappingLoader implements MappingLoader {
|
||||
return Collections.unmodifiableSet(namespaces);
|
||||
}
|
||||
|
||||
- private List<ElementMapping> loadElements(JavaDocBuilder builder) {
|
||||
- JavaSource[] javaSources = builder.getSources();
|
||||
+ private List<ElementMapping> loadElements(JavaProjectBuilder builder) {
|
||||
+ Collection<JavaSource> javaSources = builder.getSources();
|
||||
List<ElementMapping> elements = new ArrayList<ElementMapping>();
|
||||
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<JavaClass> 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<String, AttributeMapping> attributesByPropertyName = new HashMap<String, AttributeMapping>();
|
||||
|
||||
for (JavaClass jClass = javaClass; jClass != null; jClass = jClass.getSuperJavaClass()) {
|
||||
- BeanProperty[] beanProperties = jClass.getBeanProperties();
|
||||
+ Collection<BeanProperty> 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<JavaMethod> 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<List<ParameterMapping>> constructorArgs = new ArrayList<List<ParameterMapping>>();
|
||||
- JavaMethod[] methods = javaClass.getMethods();
|
||||
- for (JavaMethod method : methods) {
|
||||
- JavaParameter[] parameters = method.getParameters();
|
||||
- if (isValidConstructor(factoryMethod, method, parameters)) {
|
||||
- List<ParameterMapping> args = new ArrayList<ParameterMapping>(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<JavaConstructor> constructors = javaClass.getConstructors();
|
||||
+ for (JavaConstructor constructor : constructors) {
|
||||
+ Collection<JavaParameter> parameters = constructor.getParameters();
|
||||
+ if (constructor.isPublic() && parameters.size() > 0) {
|
||||
+ List<ParameterMapping> args = new ArrayList<ParameterMapping>(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<JavaMethod> methods = javaClass.getMethods();
|
||||
+ for (JavaMethod method : methods) {
|
||||
+ Collection<JavaParameter> parameters = method.getParameters();
|
||||
+ if (method.isPublic() && parameters.size() > 0 && method.getName().equals(factoryMethod)) {
|
||||
+ List<ParameterMapping> args = new ArrayList<ParameterMapping>(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<String> getFullyQualifiedNames(JavaClass[] implementedInterfaces) {
|
||||
+ private List<String> getFullyQualifiedNames(Collection<JavaClass> implementedInterfaces) {
|
||||
ArrayList<String> l = new ArrayList<String>();
|
||||
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<DocletTag> 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<JavaParameter> 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<NamespaceMapping> 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<NamespaceMapping> loadNamespaces(JavaDocBuilder builder) {
|
||||
+ private Set<NamespaceMapping> loadNamespaces(JavaProjectBuilder builder) {
|
||||
// load all of the elements
|
||||
List<ElementMapping> elements = loadElements(builder);
|
||||
|
||||
@@ -131,14 +135,14 @@ public class QdoxMappingLoader implements MappingLoader {
|
||||
return Collections.unmodifiableSet(namespaces);
|
||||
}
|
||||
|
||||
- private List<ElementMapping> loadElements(JavaDocBuilder builder) {
|
||||
- JavaSource[] javaSources = builder.getSources();
|
||||
+ private List<ElementMapping> loadElements(JavaProjectBuilder builder) {
|
||||
+ Collection<JavaSource> javaSources = builder.getSources();
|
||||
List<ElementMapping> elements = new ArrayList<ElementMapping>();
|
||||
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<JavaClass> 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<String, AttributeMapping> attributesByPropertyName = new HashMap<String, AttributeMapping>();
|
||||
|
||||
for (JavaClass jClass = javaClass; jClass != null; jClass = jClass.getSuperJavaClass()) {
|
||||
- BeanProperty[] beanProperties = jClass.getBeanProperties();
|
||||
+ Collection<BeanProperty> 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<JavaMethod> 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<List<ParameterMapping>> constructorArgs = new ArrayList<List<ParameterMapping>>();
|
||||
- JavaMethod[] methods = javaClass.getMethods();
|
||||
- for (JavaMethod method : methods) {
|
||||
- JavaParameter[] parameters = method.getParameters();
|
||||
- if (isValidConstructor(factoryMethod, method, parameters)) {
|
||||
- List<ParameterMapping> args = new ArrayList<ParameterMapping>(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<JavaConstructor> constructors = javaClass.getConstructors();
|
||||
+ for (JavaConstructor constructor : constructors) {
|
||||
+ Collection<JavaParameter> parameters = constructor.getParameters();
|
||||
+ if (constructor.isPublic() && parameters.size() > 0) {
|
||||
+ List<ParameterMapping> args = new ArrayList<ParameterMapping>(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<JavaMethod> methods = javaClass.getMethods();
|
||||
+ for (JavaMethod method : methods) {
|
||||
+ Collection<JavaParameter> parameters = method.getParameters();
|
||||
+ if (method.isPublic() && parameters.size() > 0 && method.getName().equals(factoryMethod)) {
|
||||
+ List<ParameterMapping> args = new ArrayList<ParameterMapping>(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<String> interfaces = new HashSet<String>();
|
||||
- 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<String> getFullyQualifiedNames(JavaClass[] implementedInterfaces) {
|
||||
+ private List<String> getFullyQualifiedNames(Collection<JavaClass> implementedInterfaces) {
|
||||
ArrayList<String> l = new ArrayList<String>();
|
||||
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<DocletTag> 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<JavaParameter> 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
|
||||
|
355
SPECS/xbean.spec
Normal file
355
SPECS/xbean.spec
Normal file
@ -0,0 +1,355 @@
|
||||
# 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.8
|
||||
Release: 1%{?dist}
|
||||
Summary: Java plugin based web server
|
||||
License: ASL 2.0
|
||||
URL: http://geronimo.apache.org/xbean/
|
||||
BuildArch: noarch
|
||||
|
||||
Source0: http://repo2.maven.org/maven2/org/apache/%{name}/%{name}/%{version}/%{name}-%{version}-source-release.zip
|
||||
|
||||
# Compatibility with Eclipse Luna (rhbz#1087461)
|
||||
Patch1: 0002-Port-to-Eclipse-Luna-OSGi.patch
|
||||
Patch2: 0003-Port-to-QDox-2.0.patch
|
||||
|
||||
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
|
||||
The goal of XBean project is to create a plugin based server
|
||||
analogous to Eclipse being a plugin based IDE. XBean will be able to
|
||||
discover, download and install server plugins from an Internet based
|
||||
repository. In addition, we include support for multiple IoC systems,
|
||||
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
|
||||
%setup -q
|
||||
# build failing on this due to doxia-sitetools problems
|
||||
rm src/site/site.xml
|
||||
|
||||
%if %{with equinox}
|
||||
%patch1 -p1
|
||||
%endif
|
||||
%patch2 -p1
|
||||
|
||||
%pom_remove_parent
|
||||
%pom_remove_dep mx4j:mx4j
|
||||
|
||||
# Unshade ASM
|
||||
%pom_remove_dep -r :xbean-asm6-shaded
|
||||
%pom_remove_dep -r :xbean-finder-shaded
|
||||
%pom_disable_module xbean-asm6-shaded
|
||||
%pom_disable_module xbean-finder-shaded
|
||||
%pom_add_dep org.apache.xbean:xbean-asm-util:%{version} xbean-reflect
|
||||
%pom_xpath_remove pom:optional xbean-reflect xbean-asm-util
|
||||
%pom_xpath_remove 'pom:scope[text()="provided"]' xbean-reflect xbean-asm-util
|
||||
sed -i 's/org\.apache\.xbean\.asm6/org.objectweb.asm/g' `find xbean-reflect -name '*.java'`
|
||||
|
||||
# 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
|
||||
|
||||
%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
|
||||
%endif
|
||||
|
||||
# maven-xbean-plugin invocation makes no sense as there are no namespaces
|
||||
%pom_remove_plugin :maven-xbean-plugin xbean-classloader
|
||||
|
||||
# As auditing tool RAT is useful for upstream only.
|
||||
%pom_remove_plugin :apache-rat-plugin
|
||||
|
||||
# disable copy of internal aries-blueprint
|
||||
sed -i "s|<Private-Package>|<!--Private-Package>|" xbean-blueprint/pom.xml
|
||||
sed -i "s|</Private-Package>|</Private-Package-->|" xbean-blueprint/pom.xml
|
||||
|
||||
%build
|
||||
%mvn_build -f
|
||||
|
||||
%install
|
||||
%mvn_install
|
||||
|
||||
%files -f .mfiles
|
||||
%doc LICENSE NOTICE
|
||||
%dir %{_javadir}/%{name}
|
||||
|
||||
%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
|
||||
* Thu Apr 19 2018 Michael Simacek <msimacek@redhat.com> - 4.8-1
|
||||
- Update to upstream version 4.8
|
||||
|
||||
* Tue Mar 13 2018 Michael Simacek <msimacek@redhat.com> - 4.6-1
|
||||
- Update to upstream version 4.6
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.5-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.5-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.5-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Wed Feb 1 2017 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.5-6
|
||||
- Introduce groovy build conditional
|
||||
|
||||
* Wed Feb 01 2017 Michael Simacek <msimacek@redhat.com> - 4.5-5
|
||||
- Fix build with conditionals
|
||||
|
||||
* Wed Feb 01 2017 Michael Simacek <msimacek@redhat.com> - 4.5-4
|
||||
- Port to current QDox
|
||||
|
||||
* Thu Jun 16 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.5-3
|
||||
- Add missing build-requires
|
||||
|
||||
* Thu May 12 2016 Michael Simacek <msimacek@redhat.com> - 4.5-2
|
||||
- Enable xbean-asm-util
|
||||
|
||||
* Mon May 02 2016 Michael Simacek <msimacek@redhat.com> - 4.5-1
|
||||
- Update to upstream version 4.5
|
||||
|
||||
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Tue Nov 24 2015 Michael Simacek <msimacek@redhat.com> - 4.4-1
|
||||
- Update to upstream version 4.4
|
||||
- Rebase patches
|
||||
- Remove obsolete groovy patch
|
||||
|
||||
* Mon Jul 13 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.3-1
|
||||
- Update to upstream version 4.3
|
||||
|
||||
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Wed Apr 1 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.2-1
|
||||
- Update to upstream version 4.2
|
||||
|
||||
* Thu Feb 5 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-2
|
||||
- Fix patch unshading ASM
|
||||
|
||||
* Fri Nov 21 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-1
|
||||
- Update to upstream version 4.1
|
||||
|
||||
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.17-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Mon Apr 14 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.17-1
|
||||
- Update to upstream version 3.17
|
||||
- Add patch for Eclipse Luna
|
||||
|
||||
* Thu Dec 5 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.16-1
|
||||
- Update to upstream version 3.16
|
||||
|
||||
* Thu Aug 08 2013 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.13-4
|
||||
- Update to latest packaging guidelines
|
||||
|
||||
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.13-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Mon Apr 29 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.13-2
|
||||
- Remove unneeded BR: maven-idea-plugin
|
||||
|
||||
* Fri Mar 15 2013 Michal Srb <msrb@redhat.com> - 3.13-1
|
||||
- Update to upstream version 3.13
|
||||
|
||||
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.12-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Wed Feb 06 2013 Java SIG <java-devel@lists.fedoraproject.org> - 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 <mizdebsk@redhat.com> - 3.12-4
|
||||
- Enable xbean-spring, resolves rhbz#887496
|
||||
- Disable xbean-blueprint due to FTBFS
|
||||
|
||||
* Mon Oct 22 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.12-3
|
||||
- Replace eclipse-rcp requires with eclipse-equinox-osgi
|
||||
- Reenable Equinox
|
||||
|
||||
* Tue Oct 16 2012 gil cattaneo <puntogil@libero.it> - 3.12-2
|
||||
- Enable xbean-blueprint and xbean-classloader modules
|
||||
|
||||
* Wed Oct 10 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.12-1
|
||||
- Update to upstream version 3.12
|
||||
|
||||
* Wed Oct 10 2012 Krzysztof Daniel <kdaniel@redhat.com> 3.11.1-8
|
||||
- Revert previous changes.
|
||||
|
||||
* Wed Oct 10 2012 Krzysztof Daniel <kdaniel@redhat.com> 3.11.1-7
|
||||
- Disable parts dependent on Eclipse (for bootstraping purpose).
|
||||
|
||||
* Wed Oct 10 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.11.1-6
|
||||
- Implement equinox and spring conditionals
|
||||
|
||||
* Mon Sep 3 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.11.1-5
|
||||
- Fix eclipse requires
|
||||
|
||||
* Mon Aug 27 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.11.1-4
|
||||
- Fix felix-framework enabling patch
|
||||
|
||||
* Mon Aug 6 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.11.1-3
|
||||
- Enable xbean-spring
|
||||
- Enable maven-xbean-plugin
|
||||
- Remove RPM bug workaround
|
||||
|
||||
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.11.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Fri Jul 13 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 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 <sochotnicky@redhat.com> - 3.8-5
|
||||
- Remove mx4j from deps (javax.management provided by JDK 1.5+)
|
||||
|
||||
* Tue Apr 24 2012 Alexander Kurtakov <akurtako@redhat.com> 3.8-4
|
||||
- BR felix-framework instead of felix-osgi-core.
|
||||
|
||||
* Tue Apr 24 2012 Alexander Kurtakov <akurtako@redhat.com> 3.8-3
|
||||
- Do not build equinox specific parts for RHEL.
|
||||
|
||||
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.8-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Tue Dec 6 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.8-1
|
||||
- Update to latest upstream version
|
||||
- Build with maven 3
|
||||
- Packaging & guidelines fixes
|
||||
|
||||
* Sat May 28 2011 Marek Goldmann <mgoldman@redhat.com> - 3.7-7
|
||||
- Added xbean-finder and xbean-bundleutils submodules
|
||||
|
||||
* Fri Mar 4 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.7-6
|
||||
- Add comment for removing javadoc
|
||||
- Fix maven 3 build
|
||||
|
||||
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.7-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Mon Dec 6 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 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 <sochotnicky@redhat.com> - 3.7-3
|
||||
- Use javadoc:aggregate to generate javadocs
|
||||
|
||||
* Fri Jul 9 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.7-2
|
||||
- Add license to javadoc subpackage
|
||||
|
||||
* Mon Jun 21 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.7-1
|
||||
- First release
|
Loading…
Reference in New Issue
Block a user