servicemix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jbono...@apache.org
Subject [45/51] [partial] servicemix-bundles git commit: Cleanup "old" bundle versions
Date Sat, 01 Jul 2017 04:41:12 GMT
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>


Mime
View raw message