You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by jb...@apache.org on 2017/07/01 04:41:12 UTC
[45/51] [partial] servicemix-bundles git commit: Cleanup "old" bundle
versions
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.1/src/main/java/org/apache/avro/reflect/ReflectData.java
----------------------------------------------------------------------
diff --git a/avro-1.7.1/src/main/java/org/apache/avro/reflect/ReflectData.java b/avro-1.7.1/src/main/java/org/apache/avro/reflect/ReflectData.java
deleted file mode 100644
index e182064..0000000
--- a/avro-1.7.1/src/main/java/org/apache/avro/reflect/ReflectData.java
+++ /dev/null
@@ -1,475 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.avro.reflect;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.GenericArrayType;
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.apache.avro.AvroRemoteException;
-import org.apache.avro.AvroRuntimeException;
-import org.apache.avro.AvroTypeException;
-import org.apache.avro.Protocol;
-import org.apache.avro.Schema;
-import org.apache.avro.Protocol.Message;
-import org.apache.avro.generic.IndexedRecord;
-import org.apache.avro.generic.GenericFixed;
-import org.apache.avro.generic.GenericContainer;
-import org.apache.avro.specific.SpecificData;
-import org.apache.avro.specific.FixedSize;
-import org.apache.avro.io.BinaryData;
-import org.apache.avro.util.ClassLoadingUtils;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.node.NullNode;
-
-import com.thoughtworks.paranamer.CachingParanamer;
-import com.thoughtworks.paranamer.Paranamer;
-
-/** Utilities to use existing Java classes and interfaces via reflection. */
-public class ReflectData extends SpecificData {
-
- /** {@link org.apache.avro.reflect.ReflectData} implementation that permits null field values. The
- * schema generated for each field is a union of its declared type and
- * null. */
- public static class AllowNull extends ReflectData {
-
- private static final AllowNull INSTANCE = new AllowNull();
-
- /** Return the singleton instance. */
- public static AllowNull get() { return INSTANCE; }
-
- protected Schema createFieldSchema(Field field, Map<String, Schema> names) {
- Schema schema = super.createFieldSchema(field, names);
- return makeNullable(schema);
- }
- }
-
- private static final ReflectData INSTANCE = new ReflectData();
-
- protected ReflectData() {}
-
- /** Return the singleton instance. */
- public static ReflectData get() { return INSTANCE; }
-
- @Override
- public void setField(Object record, String name, int position, Object o) {
- if (record instanceof IndexedRecord) {
- super.setField(record, name, position, o);
- return;
- }
- try {
- getField(record.getClass(), name).set(record, o);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- @Override
- public Object getField(Object record, String name, int position) {
- if (record instanceof IndexedRecord)
- return super.getField(record, name, position);
- try {
- return getField(record.getClass(), name).get(record);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- @Override
- protected boolean isRecord(Object datum) {
- if (datum == null) return false;
- if (super.isRecord(datum)) return true;
- return getSchema(datum.getClass()).getType() == Schema.Type.RECORD;
- }
-
- @Override
- protected boolean isArray(Object datum) {
- if (datum == null) return false;
- return (datum instanceof Collection) || datum.getClass().isArray();
- }
-
- @Override
- protected boolean isBytes(Object datum) {
- if (datum == null) return false;
- if (super.isBytes(datum)) return true;
- Class c = datum.getClass();
- return c.isArray() && c.getComponentType() == Byte.TYPE;
- }
-
- @Override
- protected Schema getRecordSchema(Object record) {
- if (record instanceof GenericContainer)
- return super.getRecordSchema(record);
- return getSchema(record.getClass());
- }
-
- @Override
- public boolean validate(Schema schema, Object datum) {
- switch (schema.getType()) {
- case ARRAY:
- if (!datum.getClass().isArray())
- return super.validate(schema, datum);
- int length = java.lang.reflect.Array.getLength(datum);
- for (int i = 0; i < length; i++)
- if (!validate(schema.getElementType(),
- java.lang.reflect.Array.get(datum, i)))
- return false;
- return true;
- default:
- return super.validate(schema, datum);
- }
- }
-
- private static final Map<Class,Map<String,Field>> FIELD_CACHE =
- new ConcurrentHashMap<Class,Map<String,Field>>();
-
- /** Return the named field of the provided class. Implementation caches
- * values, since this is used at runtime to get and set fields. */
- private static Field getField(Class c, String name) {
- Map<String,Field> fields = FIELD_CACHE.get(c);
- if (fields == null) {
- fields = new ConcurrentHashMap<String,Field>();
- FIELD_CACHE.put(c, fields);
- }
- Field f = fields.get(name);
- if (f == null) {
- f = findField(c, name);
- fields.put(name, f);
- }
- return f;
- }
-
- private static Field findField(Class original, String name) {
- Class c = original;
- do {
- try {
- Field f = c.getDeclaredField(name);
- f.setAccessible(true);
- return f;
- } catch (NoSuchFieldException e) {}
- c = c.getSuperclass();
- } while (c != null);
- throw new AvroRuntimeException("No field named "+name+" in: "+original);
- }
-
- static final String CLASS_PROP = "java-class";
- static final String ELEMENT_PROP = "java-element-class";
-
- static Class getClassProp(Schema schema, String prop) {
- String name = schema.getProp(prop);
- if (name == null) return null;
- try {
- return ClassLoadingUtils.loadClass(name);
- } catch (ClassNotFoundException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- private static final Class BYTES_CLASS = new byte[0].getClass();
-
- @Override
- public Class getClass(Schema schema) {
- switch (schema.getType()) {
- case ARRAY:
- Class collectionClass = getClassProp(schema, CLASS_PROP);
- if (collectionClass != null)
- return collectionClass;
- return java.lang.reflect.Array.newInstance(getClass(schema.getElementType()),0).getClass();
- case STRING: return String.class;
- case BYTES: return BYTES_CLASS;
- case INT:
- if (Short.class.getName().equals(schema.getProp(CLASS_PROP)))
- return Short.TYPE;
- default:
- return super.getClass(schema);
- }
- }
-
- @Override
- @SuppressWarnings(value="unchecked")
- protected Schema createSchema(Type type, Map<String,Schema> names) {
- if (type instanceof GenericArrayType) { // generic array
- Type component = ((GenericArrayType)type).getGenericComponentType();
- if (component == Byte.TYPE) // byte array
- return Schema.create(Schema.Type.BYTES);
- Schema result = Schema.createArray(createSchema(component, names));
- setElement(result, component);
- return result;
- } else if (type instanceof ParameterizedType) {
- ParameterizedType ptype = (ParameterizedType)type;
- Class raw = (Class)ptype.getRawType();
- Type[] params = ptype.getActualTypeArguments();
- if (Map.class.isAssignableFrom(raw)) { // Map
- Type key = params[0];
- Type value = params[1];
- if (!(key == String.class))
- throw new AvroTypeException("Map key class not String: "+key);
- return Schema.createMap(createSchema(value, names));
- } else if (Collection.class.isAssignableFrom(raw)) { // Collection
- if (params.length != 1)
- throw new AvroTypeException("No array type specified.");
- Schema schema = Schema.createArray(createSchema(params[0], names));
- schema.addProp(CLASS_PROP, raw.getName());
- return schema;
- }
- } else if ((type == Short.class) || (type == Short.TYPE)) {
- Schema result = Schema.create(Schema.Type.INT);
- result.addProp(CLASS_PROP, Short.class.getName());
- return result;
- } else if (type instanceof Class) { // Class
- Class<?> c = (Class<?>)type;
- if (c.isPrimitive() || Number.class.isAssignableFrom(c)
- || c == Void.class || c == Boolean.class) // primitive
- return super.createSchema(type, names);
- if (c.isArray()) { // array
- Class component = c.getComponentType();
- if (component == Byte.TYPE) // byte array
- return Schema.create(Schema.Type.BYTES);
- Schema result = Schema.createArray(createSchema(component, names));
- setElement(result, component);
- return result;
- }
- if (CharSequence.class.isAssignableFrom(c)) // String
- return Schema.create(Schema.Type.STRING);
- String fullName = c.getName();
- Schema schema = names.get(fullName);
- if (schema == null) {
- String name = c.getSimpleName();
- String space = c.getPackage() == null ? "" : c.getPackage().getName();
- if (c.getEnclosingClass() != null) // nested class
- space = c.getEnclosingClass().getName() + "$";
- Union union = c.getAnnotation(Union.class);
- if (union != null) { // union annotated
- return getAnnotatedUnion(union, names);
- } else if (c.isAnnotationPresent(Stringable.class)){ // Stringable
- Schema result = Schema.create(Schema.Type.STRING);
- result.addProp(CLASS_PROP, c.getName());
- return result;
- } else if (c.isEnum()) { // Enum
- List<String> symbols = new ArrayList<String>();
- Enum[] constants = (Enum[])c.getEnumConstants();
- for (int i = 0; i < constants.length; i++)
- symbols.add(constants[i].name());
- schema = Schema.createEnum(name, null /* doc */, space, symbols);
- } else if (GenericFixed.class.isAssignableFrom(c)) { // fixed
- int size = c.getAnnotation(FixedSize.class).value();
- schema = Schema.createFixed(name, null /* doc */, space, size);
- } else if (IndexedRecord.class.isAssignableFrom(c)) { // specific
- return super.createSchema(type, names);
- } else { // record
- List<Schema.Field> fields = new ArrayList<Schema.Field>();
- boolean error = Throwable.class.isAssignableFrom(c);
- schema = Schema.createRecord(name, null /* doc */, space, error);
- names.put(c.getName(), schema);
- for (Field field : getFields(c))
- if ((field.getModifiers()&(Modifier.TRANSIENT|Modifier.STATIC))==0){
- Schema fieldSchema = createFieldSchema(field, names);
- JsonNode defaultValue = null;
- if (fieldSchema.getType() == Schema.Type.UNION) {
- Schema defaultType = fieldSchema.getTypes().get(0);
- if (defaultType.getType() == Schema.Type.NULL) {
- defaultValue = NullNode.getInstance();
- }
- }
- fields.add(new Schema.Field(field.getName(),
- fieldSchema, null /* doc */, defaultValue));
- }
- if (error) // add Throwable message
- fields.add(new Schema.Field("detailMessage", THROWABLE_MESSAGE,
- null, null));
- schema.setFields(fields);
- }
- names.put(fullName, schema);
- }
- return schema;
- }
- return super.createSchema(type, names);
- }
-
- private static final Schema THROWABLE_MESSAGE =
- makeNullable(Schema.create(Schema.Type.STRING));
-
- // if array element type is a class with a union annotation, note it
- // this is required because we cannot set a property on the union itself
- @SuppressWarnings(value="unchecked")
- private void setElement(Schema schema, Type element) {
- if (!(element instanceof Class)) return;
- Class<?> c = (Class<?>)element;
- Union union = c.getAnnotation(Union.class);
- if (union != null) // element is annotated union
- schema.addProp(ELEMENT_PROP, c.getName());
- }
-
- // construct a schema from a union annotation
- private Schema getAnnotatedUnion(Union union, Map<String,Schema> names) {
- List<Schema> branches = new ArrayList<Schema>();
- for (Class branch : union.value())
- branches.add(createSchema(branch, names));
- return Schema.createUnion(branches);
- }
-
- /** Create and return a union of the null schema and the provided schema. */
- public static Schema makeNullable(Schema schema) {
- return Schema.createUnion(Arrays.asList(Schema.create(Schema.Type.NULL),
- schema));
- }
-
- // Return of this class and its superclasses to serialize.
- // Not cached, since this is only used to create schemas, which are cached.
- private Collection<Field> getFields(Class recordClass) {
- Map<String,Field> fields = new LinkedHashMap<String,Field>();
- Class c = recordClass;
- do {
- if (c.getPackage() != null
- && c.getPackage().getName().startsWith("java."))
- break; // skip java built-in classes
- for (Field field : c.getDeclaredFields())
- if ((field.getModifiers() & (Modifier.TRANSIENT|Modifier.STATIC)) == 0)
- if (fields.put(field.getName(), field) != null)
- throw new AvroTypeException(c+" contains two fields named: "+field);
- c = c.getSuperclass();
- } while (c != null);
- return fields.values();
- }
-
- /** Create a schema for a field. */
- protected Schema createFieldSchema(Field field, Map<String, Schema> names) {
- Schema schema = createSchema(field.getGenericType(), names);
- if (field.isAnnotationPresent(Nullable.class)) // nullable
- schema = makeNullable(schema);
- return schema;
- }
-
- /** Return the protocol for a Java interface.
- * <p>Note that this requires that <a
- * href="http://paranamer.codehaus.org/">Paranamer</a> is run over compiled
- * interface declarations, since Java 6 reflection does not provide access to
- * method parameter names. See Avro's build.xml for an example. */
- @Override
- public Protocol getProtocol(Class iface) {
- Protocol protocol =
- new Protocol(iface.getSimpleName(),
- iface.getPackage()==null?"":iface.getPackage().getName());
- Map<String,Schema> names = new LinkedHashMap<String,Schema>();
- Map<String,Message> messages = protocol.getMessages();
- for (Method method : iface.getMethods())
- if ((method.getModifiers() & Modifier.STATIC) == 0) {
- String name = method.getName();
- if (messages.containsKey(name))
- throw new AvroTypeException("Two methods with same name: "+name);
- messages.put(name, getMessage(method, protocol, names));
- }
-
- // reverse types, since they were defined in reference order
- List<Schema> types = new ArrayList<Schema>();
- types.addAll(names.values());
- Collections.reverse(types);
- protocol.setTypes(types);
-
- return protocol;
- }
-
- private final Paranamer paranamer = new CachingParanamer();
-
- private Message getMessage(Method method, Protocol protocol,
- Map<String,Schema> names) {
- List<Schema.Field> fields = new ArrayList<Schema.Field>();
- String[] paramNames = paranamer.lookupParameterNames(method);
- Type[] paramTypes = method.getGenericParameterTypes();
- Annotation[][] annotations = method.getParameterAnnotations();
- for (int i = 0; i < paramTypes.length; i++) {
- Schema paramSchema = getSchema(paramTypes[i], names);
- for (int j = 0; j < annotations[i].length; j++)
- if (annotations[i][j] instanceof Union)
- paramSchema = getAnnotatedUnion(((Union)annotations[i][j]), names);
- else if (annotations[i][j] instanceof Nullable)
- paramSchema = makeNullable(paramSchema);
- String paramName = paramNames.length == paramTypes.length
- ? paramNames[i]
- : paramSchema.getName()+i;
- fields.add(new Schema.Field(paramName, paramSchema,
- null /* doc */, null));
- }
- Schema request = Schema.createRecord(fields);
-
- Union union = method.getAnnotation(Union.class);
- Schema response = union == null
- ? getSchema(method.getGenericReturnType(), names)
- : getAnnotatedUnion(union, names);
- if (method.isAnnotationPresent(Nullable.class)) // nullable
- response = makeNullable(response);
-
- List<Schema> errs = new ArrayList<Schema>();
- errs.add(Protocol.SYSTEM_ERROR); // every method can throw
- for (Type err : method.getGenericExceptionTypes())
- if (err != AvroRemoteException.class)
- errs.add(getSchema(err, names));
- Schema errors = Schema.createUnion(errs);
-
- return protocol.createMessage(method.getName(), null /* doc */, request, response, errors);
- }
-
- private Schema getSchema(Type type, Map<String,Schema> names) {
- try {
- return createSchema(type, names);
- } catch (AvroTypeException e) { // friendly exception
- throw new AvroTypeException("Error getting schema for "+type+": "
- +e.getMessage(), e);
- }
- }
-
- @Override
- protected int compare(Object o1, Object o2, Schema s, boolean equals) {
- switch (s.getType()) {
- case ARRAY:
- if (!o1.getClass().isArray())
- break;
- Schema elementType = s.getElementType();
- int l1 = java.lang.reflect.Array.getLength(o1);
- int l2 = java.lang.reflect.Array.getLength(o2);
- int l = Math.min(l1, l2);
- for (int i = 0; i < l; i++) {
- int compare = compare(java.lang.reflect.Array.get(o1, i),
- java.lang.reflect.Array.get(o2, i),
- elementType, equals);
- if (compare != 0) return compare;
- }
- return l1 - l2;
- case BYTES:
- if (!o1.getClass().isArray())
- break;
- byte[] b1 = (byte[])o1;
- byte[] b2 = (byte[])o2;
- return BinaryData.compareBytes(b1, 0, b1.length, b2, 0, b2.length);
- }
- return super.compare(o1, o2, s, equals);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.1/src/main/java/org/apache/avro/specific/SpecificData.java
----------------------------------------------------------------------
diff --git a/avro-1.7.1/src/main/java/org/apache/avro/specific/SpecificData.java b/avro-1.7.1/src/main/java/org/apache/avro/specific/SpecificData.java
deleted file mode 100644
index 5714ab6..0000000
--- a/avro-1.7.1/src/main/java/org/apache/avro/specific/SpecificData.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.avro.specific;
-
-import java.util.Map;
-import java.util.Collection;
-import java.util.List;
-import java.util.WeakHashMap;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.LinkedHashMap;
-import java.nio.ByteBuffer;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.ParameterizedType;
-
-import org.apache.avro.Schema;
-import org.apache.avro.Protocol;
-import org.apache.avro.AvroRuntimeException;
-import org.apache.avro.AvroTypeException;
-import org.apache.avro.Schema.Type;
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.util.ClassLoadingUtils;
-
-/** Utilities for generated Java classes and interfaces. */
-public class SpecificData extends GenericData {
-
- private static final SpecificData INSTANCE = new SpecificData();
-
- private final ClassLoader classLoader;
-
- private static final Class<?>[] NO_ARG = new Class[]{};
- private static final Class<?>[] SCHEMA_ARG = new Class[]{Schema.class};
- private static final Map<Class,Constructor> CTOR_CACHE =
- new ConcurrentHashMap<Class,Constructor>();
-
- /** For subclasses. Applications normally use {@link org.apache.avro.specific.SpecificData#get()}. */
- protected SpecificData() { this(SpecificData.class.getClassLoader()); }
-
- /** Construct with a specific classloader. */
- public SpecificData(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
-
- /** Return the singleton instance. */
- public static SpecificData get() { return INSTANCE; }
-
- @Override
- protected boolean isEnum(Object datum) {
- return datum instanceof Enum || super.isEnum(datum);
- }
-
- @Override
- protected Schema getEnumSchema(Object datum) {
- return (datum instanceof Enum)
- ? getSchema(datum.getClass())
- : super.getEnumSchema(datum);
- }
-
- private Map<String,Class> classCache = new ConcurrentHashMap<String,Class>();
-
- private static final Class NO_CLASS = new Object(){}.getClass();
- private static final Schema NULL_SCHEMA = Schema.create(Schema.Type.NULL);
-
- /** Return the class that implements a schema, or null if none exists. */
- public Class getClass(Schema schema) {
- switch (schema.getType()) {
- case FIXED:
- case RECORD:
- case ENUM:
- String name = schema.getFullName();
- if (name == null) return null;
- Class c = classCache.get(name);
- if (c == null) {
- try {
- c = ClassLoadingUtils.loadClass(classLoader,getClassName(schema));
- } catch (ClassNotFoundException e) {
- c = NO_CLASS;
- }
- classCache.put(name, c);
- }
- return c == NO_CLASS ? null : c;
- case ARRAY: return List.class;
- case MAP: return Map.class;
- case UNION:
- List<Schema> types = schema.getTypes(); // elide unions with null
- if ((types.size() == 2) && types.contains(NULL_SCHEMA))
- return getClass(types.get(types.get(0).equals(NULL_SCHEMA) ? 1 : 0));
- return Object.class;
- case STRING:
- if (STRING_TYPE_STRING.equals(schema.getProp(STRING_PROP)))
- return String.class;
- return CharSequence.class;
- case BYTES: return ByteBuffer.class;
- case INT: return Integer.TYPE;
- case LONG: return Long.TYPE;
- case FLOAT: return Float.TYPE;
- case DOUBLE: return Double.TYPE;
- case BOOLEAN: return Boolean.TYPE;
- case NULL: return Void.TYPE;
- default: throw new AvroRuntimeException("Unknown type: "+schema);
- }
- }
-
- /** Returns the Java class name indicated by a schema's name and namespace. */
- public static String getClassName(Schema schema) {
- String namespace = schema.getNamespace();
- String name = schema.getName();
- if (namespace == null || "".equals(namespace))
- return name;
- String dot = namespace.endsWith("$") ? "" : ".";
- return namespace + dot + name;
- }
-
- private final WeakHashMap<java.lang.reflect.Type,Schema> schemaCache =
- new WeakHashMap<java.lang.reflect.Type,Schema>();
-
- /** Find the schema for a Java type. */
- public Schema getSchema(java.lang.reflect.Type type) {
- Schema schema = schemaCache.get(type);
- if (schema == null) {
- schema = createSchema(type, new LinkedHashMap<String,Schema>());
- schemaCache.put(type, schema);
- }
- return schema;
- }
-
- /** Create the schema for a Java type. */
- @SuppressWarnings(value="unchecked")
- protected Schema createSchema(java.lang.reflect.Type type,
- Map<String,Schema> names) {
- if (type instanceof Class
- && CharSequence.class.isAssignableFrom((Class)type))
- return Schema.create(Type.STRING);
- else if (type == ByteBuffer.class)
- return Schema.create(Type.BYTES);
- else if ((type == Integer.class) || (type == Integer.TYPE))
- return Schema.create(Type.INT);
- else if ((type == Long.class) || (type == Long.TYPE))
- return Schema.create(Type.LONG);
- else if ((type == Float.class) || (type == Float.TYPE))
- return Schema.create(Type.FLOAT);
- else if ((type == Double.class) || (type == Double.TYPE))
- return Schema.create(Type.DOUBLE);
- else if ((type == Boolean.class) || (type == Boolean.TYPE))
- return Schema.create(Type.BOOLEAN);
- else if ((type == Void.class) || (type == Void.TYPE))
- return Schema.create(Type.NULL);
- else if (type instanceof ParameterizedType) {
- ParameterizedType ptype = (ParameterizedType)type;
- Class raw = (Class)ptype.getRawType();
- java.lang.reflect.Type[] params = ptype.getActualTypeArguments();
- if (Collection.class.isAssignableFrom(raw)) { // array
- if (params.length != 1)
- throw new AvroTypeException("No array type specified.");
- return Schema.createArray(createSchema(params[0], names));
- } else if (Map.class.isAssignableFrom(raw)) { // map
- java.lang.reflect.Type key = params[0];
- java.lang.reflect.Type value = params[1];
- if (!(type instanceof Class
- && CharSequence.class.isAssignableFrom((Class)type)))
- throw new AvroTypeException("Map key class not CharSequence: "+key);
- return Schema.createMap(createSchema(value, names));
- } else {
- return createSchema(raw, names);
- }
- } else if (type instanceof Class) { // class
- Class c = (Class)type;
- String fullName = c.getName();
- Schema schema = names.get(fullName);
- if (schema == null)
- try {
- schema = (Schema)(c.getDeclaredField("SCHEMA$").get(null));
-
- if (!fullName.equals(getClassName(schema)))
- // HACK: schema mismatches class. maven shade plugin? try replacing.
- schema = Schema.parse
- (schema.toString().replace(schema.getNamespace(),
- c.getPackage().getName()));
- } catch (NoSuchFieldException e) {
- throw new AvroRuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- names.put(fullName, schema);
- return schema;
- }
- throw new AvroTypeException("Unknown type: "+type);
- }
-
- /** Return the protocol for a Java interface. */
- public Protocol getProtocol(Class iface) {
- try {
- Protocol p = (Protocol)(iface.getDeclaredField("PROTOCOL").get(null));
- if (!p.getNamespace().equals(iface.getPackage().getName()))
- // HACK: protocol mismatches iface. maven shade plugin? try replacing.
- p = Protocol.parse(p.toString().replace(p.getNamespace(),
- iface.getPackage().getName()));
- return p;
- } catch (NoSuchFieldException e) {
- throw new AvroRuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- @Override
- protected int compare(Object o1, Object o2, Schema s, boolean eq) {
- switch (s.getType()) {
- case ENUM:
- if (o1 instanceof Enum)
- return ((Enum)o1).ordinal() - ((Enum)o2).ordinal();
- default:
- return super.compare(o1, o2, s, eq);
- }
- }
-
- /** Create an instance of a class. If the class implements {@link
- * org.apache.avro.specific.SpecificData.SchemaConstructable}, call a constructor with a {@link
- * org.apache.avro.Schema} parameter, otherwise use a no-arg constructor. */
- @SuppressWarnings("unchecked")
- public static Object newInstance(Class c, Schema s) {
- boolean useSchema = SchemaConstructable.class.isAssignableFrom(c);
- Object result;
- try {
- Constructor meth = (Constructor)CTOR_CACHE.get(c);
- if (meth == null) {
- meth = c.getDeclaredConstructor(useSchema ? SCHEMA_ARG : NO_ARG);
- meth.setAccessible(true);
- CTOR_CACHE.put(c, meth);
- }
- result = meth.newInstance(useSchema ? new Object[]{s} : (Object[])null);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- return result;
- }
-
- @Override
- public Object createFixed(Object old, Schema schema) {
- Class c = SpecificData.get().getClass(schema);
- if (c == null) return super.createFixed(old, schema); // punt to generic
- return c.isInstance(old) ? old : newInstance(c, schema);
- }
-
- @Override
- public Object newRecord(Object old, Schema schema) {
- Class c = SpecificData.get().getClass(schema);
- if (c == null) return super.newRecord(old, schema); // punt to generic
- return (c.isInstance(old) ? old : newInstance(c, schema));
- }
-
- /** Tag interface that indicates that a class has a one-argument constructor
- * that accepts a Schema.
- * @see SpecificDatumReader#newInstance
- */
- public interface SchemaConstructable {}
-
-}
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.1/src/main/java/org/apache/avro/util/ClassLoadingUtils.java
----------------------------------------------------------------------
diff --git a/avro-1.7.1/src/main/java/org/apache/avro/util/ClassLoadingUtils.java b/avro-1.7.1/src/main/java/org/apache/avro/util/ClassLoadingUtils.java
deleted file mode 100644
index cc669b2..0000000
--- a/avro-1.7.1/src/main/java/org/apache/avro/util/ClassLoadingUtils.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.avro.util;
-
-public class ClassLoadingUtils {
-
- private ClassLoadingUtils() {
- //Utility Class
- }
-
- /**
- * Loads a class using the class loader.
- * 1. The class loader of the current class is being used.
- * 2. The thread context class loader is being used.
- * If both approaches fail, returns null.
- *
- * @param className The name of the class to load.
- * @return The class or null if no class loader could load the class.
- */
- public static Class<?> loadClass(String className) throws ClassNotFoundException {
- return ClassLoadingUtils.loadClass(ClassLoadingUtils.class, className);
- }
-
- /**
- * Loads a class using the class loader.
- * 1. The class loader of the context class is being used.
- * 2. The thread context class loader is being used.
- * If both approaches fail, returns null.
- *
- * @param contextClass The name of a context class to use.
- * @param className The name of the class to load
- * @return The class or null if no class loader could load the class.
- */
- public static Class<?> loadClass(Class<?> contextClass, String className) throws ClassNotFoundException {
- Class<?> clazz = null;
- if (contextClass.getClassLoader() != null) {
- clazz = loadClassFromClassLoader(contextClass.getClassLoader(), className);
- }
- if (clazz == null && Thread.currentThread().getContextClassLoader() != null) {
- clazz = loadClassFromClassLoader(Thread.currentThread().getContextClassLoader(), className);
- }
- if (clazz == null) {
- throw new ClassNotFoundException("Failed to load class" + className);
- }
- return clazz;
- }
-
- /**
- * Loads a class using the class loader.
- * 1. The class loader of the context class is being used.
- * 2. The thread context class loader is being used.
- * If both approaches fail, returns null.
- *
- * @param classLoader The classloader to use.
- * @param className The name of the class to load
- * @return The class or null if no class loader could load the class.
- */
- public static Class<?> loadClass(ClassLoader classLoader, String className) throws ClassNotFoundException {
- Class<?> clazz = null;
- if (classLoader != null) {
- clazz = loadClassFromClassLoader(classLoader, className);
- }
- if (clazz == null && Thread.currentThread().getContextClassLoader() != null) {
- clazz = loadClassFromClassLoader(Thread.currentThread().getContextClassLoader(),className);
- }
- if (clazz == null) {
- throw new ClassNotFoundException("Failed to load class" + className);
- }
- return clazz;
- }
-
- /**
- * Loads a {@link Class} from the specified {@link ClassLoader} without throwing {@ClassNotFoundException}.
- *
- * @param className
- * @param classLoader
- * @return
- */
- private static Class<?> loadClassFromClassLoader(ClassLoader classLoader, String className) {
- Class<?> clazz = null;
- if (classLoader != null && className != null) {
- try {
- clazz = classLoader.loadClass(className);
- } catch (ClassNotFoundException e) {
- //Ignore and return null
- }
- }
- return clazz;
- }
-}
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.1/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/avro-1.7.1/src/main/resources/OSGI-INF/bundle.info b/avro-1.7.1/src/main/resources/OSGI-INF/bundle.info
deleted file mode 100644
index e68ffdb..0000000
--- a/avro-1.7.1/src/main/resources/OSGI-INF/bundle.info
+++ /dev/null
@@ -1,11 +0,0 @@
-\u001B[1mSYNOPSIS\u001B[0m
- ${project.description}
-
- Original Maven URL:
- \u001B[33mmvn:${pkgGroupId}/${pkgArtifactId}-core/${pkgVersion}\u001B[0m
-
-\u001B[1mDESCRIPTION\u001B[0m
- Apache Avro™ is a data serialization system.
-
-\u001B[1mSEE ALSO\u001B[0m
- \u001B[36mhttp://avro.apache.org\u001B[0m
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.2/pom.xml
----------------------------------------------------------------------
diff --git a/avro-1.7.2/pom.xml b/avro-1.7.2/pom.xml
deleted file mode 100644
index dddf952..0000000
--- a/avro-1.7.2/pom.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>bundles-pom</artifactId>
- <version>12</version>
- <relativePath>../bundles-pom/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>org.apache.servicemix.bundles.avro</artifactId>
- <version>1.7.2_3-SNAPSHOT</version>
- <packaging>bundle</packaging>
- <name>Apache ServiceMix :: Bundles :: ${pkgArtifactId}</name>
- <description>This OSGi bundle wraps ${pkgArtifactId} ${pkgVersion} jar file.</description>
-
- <scm>
- <connection>scm:git:https://git-wip-us.apache.org/repos/asf/servicemix-bundles.git</connection>
- <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/servicemix-bundles.git</developerConnection>
- <url>https://git-wip-us.apache.org/repos/asf?p=servicemix-bundles.git</url>
- <tag>HEAD</tag>
- </scm>
-
- <properties>
- <pkgGroupId>org.apache.avro</pkgGroupId>
- <pkgArtifactId>avro</pkgArtifactId>
- <pkgVersion>1.7.2</pkgVersion>
- <servicemix.osgi.export>
- !org.apache.avro.ipc;version="${project.version}",
- org.apache.avro*;version="${project.version}";-noimport:=true;-split-package:=merge-first
- </servicemix.osgi.export>
- <servicemix.osgi.import.pkg>
- com.thoughtworks.paranamer;version="[2.3,3)",
- org.codehaus.jackson*;version="[1.8,2)",
- org.xerial.snappy;version="[1.0,2)";resolution:=optional,
- *
- </servicemix.osgi.import.pkg>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>${pkgGroupId}</groupId>
- <artifactId>${pkgArtifactId}</artifactId>
- <version>${pkgVersion}</version>
- <optional>false</optional>
- </dependency>
-
- <!-- sources -->
- <dependency>
- <groupId>${pkgGroupId}</groupId>
- <artifactId>${pkgArtifactId}</artifactId>
- <version>${pkgVersion}</version>
- <classifier>sources</classifier>
- <optional>false</optional>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <artifactSet>
- <includes>
- <include>${pkgGroupId}:${pkgArtifactId}</include>
- </includes>
- </artifactSet>
- <filters>
- <filter>
- <artifact>${pkgGroupId}:${pkgArtifactId}</artifact>
- <excludes>
- <exclude>**</exclude>
- </excludes>
- </filter>
- </filters>
- <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
- <createDependencyReducedPom>true</createDependencyReducedPom>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.2/src/main/java/org/apache/avro/reflect/ReflectData.java
----------------------------------------------------------------------
diff --git a/avro-1.7.2/src/main/java/org/apache/avro/reflect/ReflectData.java b/avro-1.7.2/src/main/java/org/apache/avro/reflect/ReflectData.java
deleted file mode 100644
index e182064..0000000
--- a/avro-1.7.2/src/main/java/org/apache/avro/reflect/ReflectData.java
+++ /dev/null
@@ -1,475 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.avro.reflect;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.GenericArrayType;
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.apache.avro.AvroRemoteException;
-import org.apache.avro.AvroRuntimeException;
-import org.apache.avro.AvroTypeException;
-import org.apache.avro.Protocol;
-import org.apache.avro.Schema;
-import org.apache.avro.Protocol.Message;
-import org.apache.avro.generic.IndexedRecord;
-import org.apache.avro.generic.GenericFixed;
-import org.apache.avro.generic.GenericContainer;
-import org.apache.avro.specific.SpecificData;
-import org.apache.avro.specific.FixedSize;
-import org.apache.avro.io.BinaryData;
-import org.apache.avro.util.ClassLoadingUtils;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.node.NullNode;
-
-import com.thoughtworks.paranamer.CachingParanamer;
-import com.thoughtworks.paranamer.Paranamer;
-
-/** Utilities to use existing Java classes and interfaces via reflection. */
-public class ReflectData extends SpecificData {
-
- /** {@link org.apache.avro.reflect.ReflectData} implementation that permits null field values. The
- * schema generated for each field is a union of its declared type and
- * null. */
- public static class AllowNull extends ReflectData {
-
- private static final AllowNull INSTANCE = new AllowNull();
-
- /** Return the singleton instance. */
- public static AllowNull get() { return INSTANCE; }
-
- protected Schema createFieldSchema(Field field, Map<String, Schema> names) {
- Schema schema = super.createFieldSchema(field, names);
- return makeNullable(schema);
- }
- }
-
- private static final ReflectData INSTANCE = new ReflectData();
-
- protected ReflectData() {}
-
- /** Return the singleton instance. */
- public static ReflectData get() { return INSTANCE; }
-
- @Override
- public void setField(Object record, String name, int position, Object o) {
- if (record instanceof IndexedRecord) {
- super.setField(record, name, position, o);
- return;
- }
- try {
- getField(record.getClass(), name).set(record, o);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- @Override
- public Object getField(Object record, String name, int position) {
- if (record instanceof IndexedRecord)
- return super.getField(record, name, position);
- try {
- return getField(record.getClass(), name).get(record);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- @Override
- protected boolean isRecord(Object datum) {
- if (datum == null) return false;
- if (super.isRecord(datum)) return true;
- return getSchema(datum.getClass()).getType() == Schema.Type.RECORD;
- }
-
- @Override
- protected boolean isArray(Object datum) {
- if (datum == null) return false;
- return (datum instanceof Collection) || datum.getClass().isArray();
- }
-
- @Override
- protected boolean isBytes(Object datum) {
- if (datum == null) return false;
- if (super.isBytes(datum)) return true;
- Class c = datum.getClass();
- return c.isArray() && c.getComponentType() == Byte.TYPE;
- }
-
- @Override
- protected Schema getRecordSchema(Object record) {
- if (record instanceof GenericContainer)
- return super.getRecordSchema(record);
- return getSchema(record.getClass());
- }
-
- @Override
- public boolean validate(Schema schema, Object datum) {
- switch (schema.getType()) {
- case ARRAY:
- if (!datum.getClass().isArray())
- return super.validate(schema, datum);
- int length = java.lang.reflect.Array.getLength(datum);
- for (int i = 0; i < length; i++)
- if (!validate(schema.getElementType(),
- java.lang.reflect.Array.get(datum, i)))
- return false;
- return true;
- default:
- return super.validate(schema, datum);
- }
- }
-
- private static final Map<Class,Map<String,Field>> FIELD_CACHE =
- new ConcurrentHashMap<Class,Map<String,Field>>();
-
- /** Return the named field of the provided class. Implementation caches
- * values, since this is used at runtime to get and set fields. */
- private static Field getField(Class c, String name) {
- Map<String,Field> fields = FIELD_CACHE.get(c);
- if (fields == null) {
- fields = new ConcurrentHashMap<String,Field>();
- FIELD_CACHE.put(c, fields);
- }
- Field f = fields.get(name);
- if (f == null) {
- f = findField(c, name);
- fields.put(name, f);
- }
- return f;
- }
-
- private static Field findField(Class original, String name) {
- Class c = original;
- do {
- try {
- Field f = c.getDeclaredField(name);
- f.setAccessible(true);
- return f;
- } catch (NoSuchFieldException e) {}
- c = c.getSuperclass();
- } while (c != null);
- throw new AvroRuntimeException("No field named "+name+" in: "+original);
- }
-
- static final String CLASS_PROP = "java-class";
- static final String ELEMENT_PROP = "java-element-class";
-
- static Class getClassProp(Schema schema, String prop) {
- String name = schema.getProp(prop);
- if (name == null) return null;
- try {
- return ClassLoadingUtils.loadClass(name);
- } catch (ClassNotFoundException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- private static final Class BYTES_CLASS = new byte[0].getClass();
-
- @Override
- public Class getClass(Schema schema) {
- switch (schema.getType()) {
- case ARRAY:
- Class collectionClass = getClassProp(schema, CLASS_PROP);
- if (collectionClass != null)
- return collectionClass;
- return java.lang.reflect.Array.newInstance(getClass(schema.getElementType()),0).getClass();
- case STRING: return String.class;
- case BYTES: return BYTES_CLASS;
- case INT:
- if (Short.class.getName().equals(schema.getProp(CLASS_PROP)))
- return Short.TYPE;
- default:
- return super.getClass(schema);
- }
- }
-
- @Override
- @SuppressWarnings(value="unchecked")
- protected Schema createSchema(Type type, Map<String,Schema> names) {
- if (type instanceof GenericArrayType) { // generic array
- Type component = ((GenericArrayType)type).getGenericComponentType();
- if (component == Byte.TYPE) // byte array
- return Schema.create(Schema.Type.BYTES);
- Schema result = Schema.createArray(createSchema(component, names));
- setElement(result, component);
- return result;
- } else if (type instanceof ParameterizedType) {
- ParameterizedType ptype = (ParameterizedType)type;
- Class raw = (Class)ptype.getRawType();
- Type[] params = ptype.getActualTypeArguments();
- if (Map.class.isAssignableFrom(raw)) { // Map
- Type key = params[0];
- Type value = params[1];
- if (!(key == String.class))
- throw new AvroTypeException("Map key class not String: "+key);
- return Schema.createMap(createSchema(value, names));
- } else if (Collection.class.isAssignableFrom(raw)) { // Collection
- if (params.length != 1)
- throw new AvroTypeException("No array type specified.");
- Schema schema = Schema.createArray(createSchema(params[0], names));
- schema.addProp(CLASS_PROP, raw.getName());
- return schema;
- }
- } else if ((type == Short.class) || (type == Short.TYPE)) {
- Schema result = Schema.create(Schema.Type.INT);
- result.addProp(CLASS_PROP, Short.class.getName());
- return result;
- } else if (type instanceof Class) { // Class
- Class<?> c = (Class<?>)type;
- if (c.isPrimitive() || Number.class.isAssignableFrom(c)
- || c == Void.class || c == Boolean.class) // primitive
- return super.createSchema(type, names);
- if (c.isArray()) { // array
- Class component = c.getComponentType();
- if (component == Byte.TYPE) // byte array
- return Schema.create(Schema.Type.BYTES);
- Schema result = Schema.createArray(createSchema(component, names));
- setElement(result, component);
- return result;
- }
- if (CharSequence.class.isAssignableFrom(c)) // String
- return Schema.create(Schema.Type.STRING);
- String fullName = c.getName();
- Schema schema = names.get(fullName);
- if (schema == null) {
- String name = c.getSimpleName();
- String space = c.getPackage() == null ? "" : c.getPackage().getName();
- if (c.getEnclosingClass() != null) // nested class
- space = c.getEnclosingClass().getName() + "$";
- Union union = c.getAnnotation(Union.class);
- if (union != null) { // union annotated
- return getAnnotatedUnion(union, names);
- } else if (c.isAnnotationPresent(Stringable.class)){ // Stringable
- Schema result = Schema.create(Schema.Type.STRING);
- result.addProp(CLASS_PROP, c.getName());
- return result;
- } else if (c.isEnum()) { // Enum
- List<String> symbols = new ArrayList<String>();
- Enum[] constants = (Enum[])c.getEnumConstants();
- for (int i = 0; i < constants.length; i++)
- symbols.add(constants[i].name());
- schema = Schema.createEnum(name, null /* doc */, space, symbols);
- } else if (GenericFixed.class.isAssignableFrom(c)) { // fixed
- int size = c.getAnnotation(FixedSize.class).value();
- schema = Schema.createFixed(name, null /* doc */, space, size);
- } else if (IndexedRecord.class.isAssignableFrom(c)) { // specific
- return super.createSchema(type, names);
- } else { // record
- List<Schema.Field> fields = new ArrayList<Schema.Field>();
- boolean error = Throwable.class.isAssignableFrom(c);
- schema = Schema.createRecord(name, null /* doc */, space, error);
- names.put(c.getName(), schema);
- for (Field field : getFields(c))
- if ((field.getModifiers()&(Modifier.TRANSIENT|Modifier.STATIC))==0){
- Schema fieldSchema = createFieldSchema(field, names);
- JsonNode defaultValue = null;
- if (fieldSchema.getType() == Schema.Type.UNION) {
- Schema defaultType = fieldSchema.getTypes().get(0);
- if (defaultType.getType() == Schema.Type.NULL) {
- defaultValue = NullNode.getInstance();
- }
- }
- fields.add(new Schema.Field(field.getName(),
- fieldSchema, null /* doc */, defaultValue));
- }
- if (error) // add Throwable message
- fields.add(new Schema.Field("detailMessage", THROWABLE_MESSAGE,
- null, null));
- schema.setFields(fields);
- }
- names.put(fullName, schema);
- }
- return schema;
- }
- return super.createSchema(type, names);
- }
-
- private static final Schema THROWABLE_MESSAGE =
- makeNullable(Schema.create(Schema.Type.STRING));
-
- // if array element type is a class with a union annotation, note it
- // this is required because we cannot set a property on the union itself
- @SuppressWarnings(value="unchecked")
- private void setElement(Schema schema, Type element) {
- if (!(element instanceof Class)) return;
- Class<?> c = (Class<?>)element;
- Union union = c.getAnnotation(Union.class);
- if (union != null) // element is annotated union
- schema.addProp(ELEMENT_PROP, c.getName());
- }
-
- // construct a schema from a union annotation
- private Schema getAnnotatedUnion(Union union, Map<String,Schema> names) {
- List<Schema> branches = new ArrayList<Schema>();
- for (Class branch : union.value())
- branches.add(createSchema(branch, names));
- return Schema.createUnion(branches);
- }
-
- /** Create and return a union of the null schema and the provided schema. */
- public static Schema makeNullable(Schema schema) {
- return Schema.createUnion(Arrays.asList(Schema.create(Schema.Type.NULL),
- schema));
- }
-
- // Return of this class and its superclasses to serialize.
- // Not cached, since this is only used to create schemas, which are cached.
- private Collection<Field> getFields(Class recordClass) {
- Map<String,Field> fields = new LinkedHashMap<String,Field>();
- Class c = recordClass;
- do {
- if (c.getPackage() != null
- && c.getPackage().getName().startsWith("java."))
- break; // skip java built-in classes
- for (Field field : c.getDeclaredFields())
- if ((field.getModifiers() & (Modifier.TRANSIENT|Modifier.STATIC)) == 0)
- if (fields.put(field.getName(), field) != null)
- throw new AvroTypeException(c+" contains two fields named: "+field);
- c = c.getSuperclass();
- } while (c != null);
- return fields.values();
- }
-
- /** Create a schema for a field. */
- protected Schema createFieldSchema(Field field, Map<String, Schema> names) {
- Schema schema = createSchema(field.getGenericType(), names);
- if (field.isAnnotationPresent(Nullable.class)) // nullable
- schema = makeNullable(schema);
- return schema;
- }
-
- /** Return the protocol for a Java interface.
- * <p>Note that this requires that <a
- * href="http://paranamer.codehaus.org/">Paranamer</a> is run over compiled
- * interface declarations, since Java 6 reflection does not provide access to
- * method parameter names. See Avro's build.xml for an example. */
- @Override
- public Protocol getProtocol(Class iface) {
- Protocol protocol =
- new Protocol(iface.getSimpleName(),
- iface.getPackage()==null?"":iface.getPackage().getName());
- Map<String,Schema> names = new LinkedHashMap<String,Schema>();
- Map<String,Message> messages = protocol.getMessages();
- for (Method method : iface.getMethods())
- if ((method.getModifiers() & Modifier.STATIC) == 0) {
- String name = method.getName();
- if (messages.containsKey(name))
- throw new AvroTypeException("Two methods with same name: "+name);
- messages.put(name, getMessage(method, protocol, names));
- }
-
- // reverse types, since they were defined in reference order
- List<Schema> types = new ArrayList<Schema>();
- types.addAll(names.values());
- Collections.reverse(types);
- protocol.setTypes(types);
-
- return protocol;
- }
-
- private final Paranamer paranamer = new CachingParanamer();
-
- private Message getMessage(Method method, Protocol protocol,
- Map<String,Schema> names) {
- List<Schema.Field> fields = new ArrayList<Schema.Field>();
- String[] paramNames = paranamer.lookupParameterNames(method);
- Type[] paramTypes = method.getGenericParameterTypes();
- Annotation[][] annotations = method.getParameterAnnotations();
- for (int i = 0; i < paramTypes.length; i++) {
- Schema paramSchema = getSchema(paramTypes[i], names);
- for (int j = 0; j < annotations[i].length; j++)
- if (annotations[i][j] instanceof Union)
- paramSchema = getAnnotatedUnion(((Union)annotations[i][j]), names);
- else if (annotations[i][j] instanceof Nullable)
- paramSchema = makeNullable(paramSchema);
- String paramName = paramNames.length == paramTypes.length
- ? paramNames[i]
- : paramSchema.getName()+i;
- fields.add(new Schema.Field(paramName, paramSchema,
- null /* doc */, null));
- }
- Schema request = Schema.createRecord(fields);
-
- Union union = method.getAnnotation(Union.class);
- Schema response = union == null
- ? getSchema(method.getGenericReturnType(), names)
- : getAnnotatedUnion(union, names);
- if (method.isAnnotationPresent(Nullable.class)) // nullable
- response = makeNullable(response);
-
- List<Schema> errs = new ArrayList<Schema>();
- errs.add(Protocol.SYSTEM_ERROR); // every method can throw
- for (Type err : method.getGenericExceptionTypes())
- if (err != AvroRemoteException.class)
- errs.add(getSchema(err, names));
- Schema errors = Schema.createUnion(errs);
-
- return protocol.createMessage(method.getName(), null /* doc */, request, response, errors);
- }
-
- private Schema getSchema(Type type, Map<String,Schema> names) {
- try {
- return createSchema(type, names);
- } catch (AvroTypeException e) { // friendly exception
- throw new AvroTypeException("Error getting schema for "+type+": "
- +e.getMessage(), e);
- }
- }
-
- @Override
- protected int compare(Object o1, Object o2, Schema s, boolean equals) {
- switch (s.getType()) {
- case ARRAY:
- if (!o1.getClass().isArray())
- break;
- Schema elementType = s.getElementType();
- int l1 = java.lang.reflect.Array.getLength(o1);
- int l2 = java.lang.reflect.Array.getLength(o2);
- int l = Math.min(l1, l2);
- for (int i = 0; i < l; i++) {
- int compare = compare(java.lang.reflect.Array.get(o1, i),
- java.lang.reflect.Array.get(o2, i),
- elementType, equals);
- if (compare != 0) return compare;
- }
- return l1 - l2;
- case BYTES:
- if (!o1.getClass().isArray())
- break;
- byte[] b1 = (byte[])o1;
- byte[] b2 = (byte[])o2;
- return BinaryData.compareBytes(b1, 0, b1.length, b2, 0, b2.length);
- }
- return super.compare(o1, o2, s, equals);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.2/src/main/java/org/apache/avro/specific/SpecificData.java
----------------------------------------------------------------------
diff --git a/avro-1.7.2/src/main/java/org/apache/avro/specific/SpecificData.java b/avro-1.7.2/src/main/java/org/apache/avro/specific/SpecificData.java
deleted file mode 100644
index 5714ab6..0000000
--- a/avro-1.7.2/src/main/java/org/apache/avro/specific/SpecificData.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.avro.specific;
-
-import java.util.Map;
-import java.util.Collection;
-import java.util.List;
-import java.util.WeakHashMap;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.LinkedHashMap;
-import java.nio.ByteBuffer;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.ParameterizedType;
-
-import org.apache.avro.Schema;
-import org.apache.avro.Protocol;
-import org.apache.avro.AvroRuntimeException;
-import org.apache.avro.AvroTypeException;
-import org.apache.avro.Schema.Type;
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.util.ClassLoadingUtils;
-
-/** Utilities for generated Java classes and interfaces. */
-public class SpecificData extends GenericData {
-
- private static final SpecificData INSTANCE = new SpecificData();
-
- private final ClassLoader classLoader;
-
- private static final Class<?>[] NO_ARG = new Class[]{};
- private static final Class<?>[] SCHEMA_ARG = new Class[]{Schema.class};
- private static final Map<Class,Constructor> CTOR_CACHE =
- new ConcurrentHashMap<Class,Constructor>();
-
- /** For subclasses. Applications normally use {@link org.apache.avro.specific.SpecificData#get()}. */
- protected SpecificData() { this(SpecificData.class.getClassLoader()); }
-
- /** Construct with a specific classloader. */
- public SpecificData(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
-
- /** Return the singleton instance. */
- public static SpecificData get() { return INSTANCE; }
-
- @Override
- protected boolean isEnum(Object datum) {
- return datum instanceof Enum || super.isEnum(datum);
- }
-
- @Override
- protected Schema getEnumSchema(Object datum) {
- return (datum instanceof Enum)
- ? getSchema(datum.getClass())
- : super.getEnumSchema(datum);
- }
-
- private Map<String,Class> classCache = new ConcurrentHashMap<String,Class>();
-
- private static final Class NO_CLASS = new Object(){}.getClass();
- private static final Schema NULL_SCHEMA = Schema.create(Schema.Type.NULL);
-
- /** Return the class that implements a schema, or null if none exists. */
- public Class getClass(Schema schema) {
- switch (schema.getType()) {
- case FIXED:
- case RECORD:
- case ENUM:
- String name = schema.getFullName();
- if (name == null) return null;
- Class c = classCache.get(name);
- if (c == null) {
- try {
- c = ClassLoadingUtils.loadClass(classLoader,getClassName(schema));
- } catch (ClassNotFoundException e) {
- c = NO_CLASS;
- }
- classCache.put(name, c);
- }
- return c == NO_CLASS ? null : c;
- case ARRAY: return List.class;
- case MAP: return Map.class;
- case UNION:
- List<Schema> types = schema.getTypes(); // elide unions with null
- if ((types.size() == 2) && types.contains(NULL_SCHEMA))
- return getClass(types.get(types.get(0).equals(NULL_SCHEMA) ? 1 : 0));
- return Object.class;
- case STRING:
- if (STRING_TYPE_STRING.equals(schema.getProp(STRING_PROP)))
- return String.class;
- return CharSequence.class;
- case BYTES: return ByteBuffer.class;
- case INT: return Integer.TYPE;
- case LONG: return Long.TYPE;
- case FLOAT: return Float.TYPE;
- case DOUBLE: return Double.TYPE;
- case BOOLEAN: return Boolean.TYPE;
- case NULL: return Void.TYPE;
- default: throw new AvroRuntimeException("Unknown type: "+schema);
- }
- }
-
- /** Returns the Java class name indicated by a schema's name and namespace. */
- public static String getClassName(Schema schema) {
- String namespace = schema.getNamespace();
- String name = schema.getName();
- if (namespace == null || "".equals(namespace))
- return name;
- String dot = namespace.endsWith("$") ? "" : ".";
- return namespace + dot + name;
- }
-
- private final WeakHashMap<java.lang.reflect.Type,Schema> schemaCache =
- new WeakHashMap<java.lang.reflect.Type,Schema>();
-
- /** Find the schema for a Java type. */
- public Schema getSchema(java.lang.reflect.Type type) {
- Schema schema = schemaCache.get(type);
- if (schema == null) {
- schema = createSchema(type, new LinkedHashMap<String,Schema>());
- schemaCache.put(type, schema);
- }
- return schema;
- }
-
- /** Create the schema for a Java type. */
- @SuppressWarnings(value="unchecked")
- protected Schema createSchema(java.lang.reflect.Type type,
- Map<String,Schema> names) {
- if (type instanceof Class
- && CharSequence.class.isAssignableFrom((Class)type))
- return Schema.create(Type.STRING);
- else if (type == ByteBuffer.class)
- return Schema.create(Type.BYTES);
- else if ((type == Integer.class) || (type == Integer.TYPE))
- return Schema.create(Type.INT);
- else if ((type == Long.class) || (type == Long.TYPE))
- return Schema.create(Type.LONG);
- else if ((type == Float.class) || (type == Float.TYPE))
- return Schema.create(Type.FLOAT);
- else if ((type == Double.class) || (type == Double.TYPE))
- return Schema.create(Type.DOUBLE);
- else if ((type == Boolean.class) || (type == Boolean.TYPE))
- return Schema.create(Type.BOOLEAN);
- else if ((type == Void.class) || (type == Void.TYPE))
- return Schema.create(Type.NULL);
- else if (type instanceof ParameterizedType) {
- ParameterizedType ptype = (ParameterizedType)type;
- Class raw = (Class)ptype.getRawType();
- java.lang.reflect.Type[] params = ptype.getActualTypeArguments();
- if (Collection.class.isAssignableFrom(raw)) { // array
- if (params.length != 1)
- throw new AvroTypeException("No array type specified.");
- return Schema.createArray(createSchema(params[0], names));
- } else if (Map.class.isAssignableFrom(raw)) { // map
- java.lang.reflect.Type key = params[0];
- java.lang.reflect.Type value = params[1];
- if (!(type instanceof Class
- && CharSequence.class.isAssignableFrom((Class)type)))
- throw new AvroTypeException("Map key class not CharSequence: "+key);
- return Schema.createMap(createSchema(value, names));
- } else {
- return createSchema(raw, names);
- }
- } else if (type instanceof Class) { // class
- Class c = (Class)type;
- String fullName = c.getName();
- Schema schema = names.get(fullName);
- if (schema == null)
- try {
- schema = (Schema)(c.getDeclaredField("SCHEMA$").get(null));
-
- if (!fullName.equals(getClassName(schema)))
- // HACK: schema mismatches class. maven shade plugin? try replacing.
- schema = Schema.parse
- (schema.toString().replace(schema.getNamespace(),
- c.getPackage().getName()));
- } catch (NoSuchFieldException e) {
- throw new AvroRuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- names.put(fullName, schema);
- return schema;
- }
- throw new AvroTypeException("Unknown type: "+type);
- }
-
- /** Return the protocol for a Java interface. */
- public Protocol getProtocol(Class iface) {
- try {
- Protocol p = (Protocol)(iface.getDeclaredField("PROTOCOL").get(null));
- if (!p.getNamespace().equals(iface.getPackage().getName()))
- // HACK: protocol mismatches iface. maven shade plugin? try replacing.
- p = Protocol.parse(p.toString().replace(p.getNamespace(),
- iface.getPackage().getName()));
- return p;
- } catch (NoSuchFieldException e) {
- throw new AvroRuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new AvroRuntimeException(e);
- }
- }
-
- @Override
- protected int compare(Object o1, Object o2, Schema s, boolean eq) {
- switch (s.getType()) {
- case ENUM:
- if (o1 instanceof Enum)
- return ((Enum)o1).ordinal() - ((Enum)o2).ordinal();
- default:
- return super.compare(o1, o2, s, eq);
- }
- }
-
- /** Create an instance of a class. If the class implements {@link
- * org.apache.avro.specific.SpecificData.SchemaConstructable}, call a constructor with a {@link
- * org.apache.avro.Schema} parameter, otherwise use a no-arg constructor. */
- @SuppressWarnings("unchecked")
- public static Object newInstance(Class c, Schema s) {
- boolean useSchema = SchemaConstructable.class.isAssignableFrom(c);
- Object result;
- try {
- Constructor meth = (Constructor)CTOR_CACHE.get(c);
- if (meth == null) {
- meth = c.getDeclaredConstructor(useSchema ? SCHEMA_ARG : NO_ARG);
- meth.setAccessible(true);
- CTOR_CACHE.put(c, meth);
- }
- result = meth.newInstance(useSchema ? new Object[]{s} : (Object[])null);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- return result;
- }
-
- @Override
- public Object createFixed(Object old, Schema schema) {
- Class c = SpecificData.get().getClass(schema);
- if (c == null) return super.createFixed(old, schema); // punt to generic
- return c.isInstance(old) ? old : newInstance(c, schema);
- }
-
- @Override
- public Object newRecord(Object old, Schema schema) {
- Class c = SpecificData.get().getClass(schema);
- if (c == null) return super.newRecord(old, schema); // punt to generic
- return (c.isInstance(old) ? old : newInstance(c, schema));
- }
-
- /** Tag interface that indicates that a class has a one-argument constructor
- * that accepts a Schema.
- * @see SpecificDatumReader#newInstance
- */
- public interface SchemaConstructable {}
-
-}
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.2/src/main/java/org/apache/avro/util/ClassLoadingUtils.java
----------------------------------------------------------------------
diff --git a/avro-1.7.2/src/main/java/org/apache/avro/util/ClassLoadingUtils.java b/avro-1.7.2/src/main/java/org/apache/avro/util/ClassLoadingUtils.java
deleted file mode 100644
index cc669b2..0000000
--- a/avro-1.7.2/src/main/java/org/apache/avro/util/ClassLoadingUtils.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.avro.util;
-
-public class ClassLoadingUtils {
-
- private ClassLoadingUtils() {
- //Utility Class
- }
-
- /**
- * Loads a class using the class loader.
- * 1. The class loader of the current class is being used.
- * 2. The thread context class loader is being used.
- * If both approaches fail, returns null.
- *
- * @param className The name of the class to load.
- * @return The class or null if no class loader could load the class.
- */
- public static Class<?> loadClass(String className) throws ClassNotFoundException {
- return ClassLoadingUtils.loadClass(ClassLoadingUtils.class, className);
- }
-
- /**
- * Loads a class using the class loader.
- * 1. The class loader of the context class is being used.
- * 2. The thread context class loader is being used.
- * If both approaches fail, returns null.
- *
- * @param contextClass The name of a context class to use.
- * @param className The name of the class to load
- * @return The class or null if no class loader could load the class.
- */
- public static Class<?> loadClass(Class<?> contextClass, String className) throws ClassNotFoundException {
- Class<?> clazz = null;
- if (contextClass.getClassLoader() != null) {
- clazz = loadClassFromClassLoader(contextClass.getClassLoader(), className);
- }
- if (clazz == null && Thread.currentThread().getContextClassLoader() != null) {
- clazz = loadClassFromClassLoader(Thread.currentThread().getContextClassLoader(), className);
- }
- if (clazz == null) {
- throw new ClassNotFoundException("Failed to load class" + className);
- }
- return clazz;
- }
-
- /**
- * Loads a class using the class loader.
- * 1. The class loader of the context class is being used.
- * 2. The thread context class loader is being used.
- * If both approaches fail, returns null.
- *
- * @param classLoader The classloader to use.
- * @param className The name of the class to load
- * @return The class or null if no class loader could load the class.
- */
- public static Class<?> loadClass(ClassLoader classLoader, String className) throws ClassNotFoundException {
- Class<?> clazz = null;
- if (classLoader != null) {
- clazz = loadClassFromClassLoader(classLoader, className);
- }
- if (clazz == null && Thread.currentThread().getContextClassLoader() != null) {
- clazz = loadClassFromClassLoader(Thread.currentThread().getContextClassLoader(),className);
- }
- if (clazz == null) {
- throw new ClassNotFoundException("Failed to load class" + className);
- }
- return clazz;
- }
-
- /**
- * Loads a {@link Class} from the specified {@link ClassLoader} without throwing {@ClassNotFoundException}.
- *
- * @param className
- * @param classLoader
- * @return
- */
- private static Class<?> loadClassFromClassLoader(ClassLoader classLoader, String className) {
- Class<?> clazz = null;
- if (classLoader != null && className != null) {
- try {
- clazz = classLoader.loadClass(className);
- } catch (ClassNotFoundException e) {
- //Ignore and return null
- }
- }
- return clazz;
- }
-}
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.2/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/avro-1.7.2/src/main/resources/OSGI-INF/bundle.info b/avro-1.7.2/src/main/resources/OSGI-INF/bundle.info
deleted file mode 100644
index e68ffdb..0000000
--- a/avro-1.7.2/src/main/resources/OSGI-INF/bundle.info
+++ /dev/null
@@ -1,11 +0,0 @@
-\u001B[1mSYNOPSIS\u001B[0m
- ${project.description}
-
- Original Maven URL:
- \u001B[33mmvn:${pkgGroupId}/${pkgArtifactId}-core/${pkgVersion}\u001B[0m
-
-\u001B[1mDESCRIPTION\u001B[0m
- Apache Avro™ is a data serialization system.
-
-\u001B[1mSEE ALSO\u001B[0m
- \u001B[36mhttp://avro.apache.org\u001B[0m
http://git-wip-us.apache.org/repos/asf/servicemix-bundles/blob/428046ec/avro-1.7.3/pom.xml
----------------------------------------------------------------------
diff --git a/avro-1.7.3/pom.xml b/avro-1.7.3/pom.xml
deleted file mode 100644
index a4931af..0000000
--- a/avro-1.7.3/pom.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>bundles-pom</artifactId>
- <version>12</version>
- <relativePath>../bundles-pom/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>org.apache.servicemix.bundles.avro</artifactId>
- <version>1.7.3_3-SNAPSHOT</version>
- <packaging>bundle</packaging>
- <name>Apache ServiceMix :: Bundles :: ${pkgArtifactId}</name>
- <description>This OSGi bundle wraps ${pkgArtifactId} ${pkgVersion} jar file.</description>
-
- <scm>
- <connection>scm:git:https://git-wip-us.apache.org/repos/asf/servicemix-bundles.git</connection>
- <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/servicemix-bundles.git</developerConnection>
- <url>https://git-wip-us.apache.org/repos/asf?p=servicemix-bundles.git</url>
- <tag>HEAD</tag>
- </scm>
-
- <properties>
- <pkgGroupId>org.apache.avro</pkgGroupId>
- <pkgArtifactId>avro</pkgArtifactId>
- <pkgVersion>1.7.3</pkgVersion>
- <servicemix.osgi.export>
- !org.apache.avro.ipc;version="${project.version}",
- org.apache.avro*;version="${project.version}";-noimport:=true;-split-package:=merge-first
- </servicemix.osgi.export>
- <servicemix.osgi.import.pkg>
- com.thoughtworks.paranamer;version="[2.3,3)",
- org.codehaus.jackson*;version="[1.8,2)",
- org.xerial.snappy;version="[1.0,2)";resolution:=optional,
- *
- </servicemix.osgi.import.pkg>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>${pkgGroupId}</groupId>
- <artifactId>${pkgArtifactId}</artifactId>
- <version>${pkgVersion}</version>
- <optional>false</optional>
- </dependency>
-
- <!-- sources -->
- <dependency>
- <groupId>${pkgGroupId}</groupId>
- <artifactId>${pkgArtifactId}</artifactId>
- <version>${pkgVersion}</version>
- <classifier>sources</classifier>
- <optional>false</optional>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <artifactSet>
- <includes>
- <include>${pkgGroupId}:${pkgArtifactId}</include>
- </includes>
- </artifactSet>
- <filters>
- <filter>
- <artifact>${pkgGroupId}:${pkgArtifactId}</artifact>
- <excludes>
- <exclude>**</exclude>
- </excludes>
- </filter>
- </filters>
- <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
- <createDependencyReducedPom>true</createDependencyReducedPom>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>