[prev in list] [next in list] [prev in thread] [next in thread]
List: avro-commits
Subject: svn commit: r1556891 - in /avro/trunk: ./ lang/java/ lang/java/avro/ lang/java/avro/src/main/java/or
From: cutting () apache ! org
Date: 2014-01-09 17:24:51
Message-ID: 20140109172452.0008823888D7 () eris ! apache ! org
[Download RAW message or body]
Author: cutting
Date: Thu Jan 9 17:24:50 2014
New Revision: 1556891
URL: http://svn.apache.org/r1556891
Log:
AVRO-987. Java: Make Avro OSGI-ready. Contributed by Ioannis Canellos.
Added:
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/util/ClassUtils.java \
(with props) Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/java/avro/pom.xml
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java
avro/trunk/lang/java/compiler/pom.xml
avro/trunk/lang/java/ipc/pom.xml
avro/trunk/lang/java/mapred/pom.xml
avro/trunk/lang/java/pom.xml
avro/trunk/lang/java/protobuf/pom.xml
avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java
avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufDatumReader.java
avro/trunk/lang/java/thrift/pom.xml
avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java
avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftDatumReader.java
avro/trunk/lang/java/tools/pom.xml
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Thu Jan 9 17:24:50 2014
@@ -78,6 +78,8 @@ Trunk (not yet released)
AVRO-1426. Java: Add mapreduce word count example.
(Jesse Anderson via cutting)
+ AVRO-987. Java: Make Avro OSGI-ready. (Ioannis Canellos via cutting)
+
BUG FIXES
AVRO-1368. Fix SpecificDatumWriter to, when writing a string
Modified: avro/trunk/lang/java/avro/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/pom.xml (original)
+++ avro/trunk/lang/java/avro/pom.xml Thu Jan 9 17:24:50 2014
@@ -32,6 +32,18 @@
<name>Apache Avro</name>
<url>http://avro.apache.org</url>
<description>Avro core components</description>
+ <packaging>bundle</packaging>
+
+ <properties>
+ <osgi.import>
+ !org.apache.avro*,
+ com.thoughtworks.paranamer,
+ org.codehaus.jackson*,
+ org.xerial.snappy;resolution:=optional,
+ *
+ </osgi.import>
+ <osgi.export>org.apache.avro*;version="${project.version}"</osgi.export>
+ </properties>
<build>
<resources>
Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java \
(original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java \
Thu Jan 9 17:24:50 2014 @@ -47,6 +47,7 @@ import org.apache.avro.generic.GenericCo
import org.apache.avro.generic.GenericFixed;
import org.apache.avro.generic.IndexedRecord;
import org.apache.avro.io.BinaryData;
+import org.apache.avro.util.ClassUtils;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.specific.FixedSize;
@@ -308,7 +309,7 @@ public class ReflectData extends Specifi
if (c != null)
return c;
try {
- c = Class.forName(name);
+ c = ClassUtils.forName(name);
CLASS_CACHE.put(name, c);
} catch (ClassNotFoundException e) {
throw new AvroRuntimeException(e);
Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java \
(original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java \
Thu Jan 9 17:24:50 2014 @@ -34,6 +34,7 @@ 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.util.ClassUtils;
import org.apache.avro.generic.GenericData;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
@@ -128,7 +129,7 @@ public class SpecificData extends Generi
Class c = classCache.get(name);
if (c == null) {
try {
- c = getClassLoader().loadClass(getClassName(schema));
+ c = ClassUtils.forName(getClassLoader(), getClassName(schema));
} catch (ClassNotFoundException e) {
c = NO_CLASS;
}
Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/a \
vro/specific/SpecificDatumReader.java?rev=1556891&r1=1556890&r2=1556891&view=diff \
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java \
(original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java \
Thu Jan 9 17:24:50 2014 @@ -20,6 +20,7 @@ package org.apache.avro.specific;
import org.apache.avro.Schema;
import org.apache.avro.AvroRuntimeException;
import org.apache.avro.generic.GenericDatumReader;
+import org.apache.avro.util.ClassUtils;
/** {@link org.apache.avro.io.DatumReader DatumReader} for generated Java classes. \
*/ public class SpecificDatumReader<T> extends GenericDatumReader<T> {
@@ -91,7 +92,7 @@ public class SpecificDatumReader<T> exte
String name = schema.getProp(prop);
if (name == null) return null;
try {
- return Class.forName(name);
+ return ClassUtils.forName(getData().getClassLoader(), name);
} catch (ClassNotFoundException e) {
throw new AvroRuntimeException(e);
}
Added: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/util/ClassUtils.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/util/ClassUtils.java?rev=1556891&view=auto
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/util/ClassUtils.java \
(added)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/util/ClassUtils.java Thu \
Jan 9 17:24:50 2014 @@ -0,0 +1,109 @@
+/**
+ * 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 ClassUtils {
+
+ private ClassUtils() {
+ }
+
+ /**
+ * 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<?> forName(String className)
+ throws ClassNotFoundException {
+ return ClassUtils.forName(ClassUtils.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<?> forName(Class<?> contextClass, String className)
+ throws ClassNotFoundException {
+ Class<?> c = null;
+ if (contextClass.getClassLoader() != null) {
+ c = forName(className, contextClass.getClassLoader());
+ }
+ if (c == null
+ && Thread.currentThread().getContextClassLoader() != null) {
+ c = forName(className, Thread.currentThread().getContextClassLoader());
+ }
+ if (c == null) {
+ throw new ClassNotFoundException("Failed to load class" + className);
+ }
+ return c;
+ }
+
+ /**
+ * 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<?> forName(ClassLoader classLoader, String className)
+ throws ClassNotFoundException {
+ Class<?> c = null;
+ if (classLoader != null) {
+ c = forName(className, classLoader);
+ }
+ if (c == null && Thread.currentThread().getContextClassLoader() != null) {
+ c = forName(className, Thread.currentThread().getContextClassLoader());
+ }
+ if (c == null) {
+ throw new ClassNotFoundException("Failed to load class" + className);
+ }
+ return c;
+ }
+
+ /**
+ * Loads a {@link Class} from the specified {@link ClassLoader} without
+ * throwing {@link ClassNotFoundException}.
+ *
+ * @param className
+ * @param classLoader
+ * @return
+ */
+ private static Class<?> forName(String className, ClassLoader classLoader) {
+ Class<?> c = null;
+ if (classLoader != null && className != null) {
+ try {
+ c = Class.forName(className, true, classLoader);
+ } catch (ClassNotFoundException e) {
+ //Ignore and return null
+ }
+ }
+ return c;
+ }
+}
Propchange: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/util/ClassUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: avro/trunk/lang/java/compiler/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/compiler/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/compiler/pom.xml (original)
+++ avro/trunk/lang/java/compiler/pom.xml Thu Jan 9 17:24:50 2014
@@ -30,9 +30,22 @@
<artifactId>avro-compiler</artifactId>
<name>Apache Avro Compiler</name>
+ <packaging>bundle</packaging>
<url>http://avro.apache.org</url>
<description>Compilers for Avro IDL and Avro Specific Java API</description>
+ <properties>
+ <osgi.import>
+ !org.apache.avro.compiler*,
+ org.apache.avro*;version="${project.version}",
+ org.apache.commons.lang*,
+ org.apache.commons.velocity*,
+ org.apache.ant*,
+ *
+ </osgi.import>
+ <osgi.export>org.apache.avro.compiler*;version="${project.version}"</osgi.export>
+ </properties>
+
<build>
<resources>
<resource>
Modified: avro/trunk/lang/java/ipc/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/pom.xml (original)
+++ avro/trunk/lang/java/ipc/pom.xml Thu Jan 9 17:24:50 2014
@@ -32,6 +32,20 @@
<name>Apache Avro IPC</name>
<url>http://avro.apache.org</url>
<description>Avro inter-process communication components</description>
+ <packaging>bundle</packaging>
+
+ <properties>
+ <osgi.import>
+ !org.apache.avro.ipc*,
+ org.apache.avro*;version="${project.version}",
+ org.jboss.netty*,
+ javax.servlet*;resolution:=optional,
+ org.mortbay*;resolution:=optional,
+ org.apache.velocity*;resolution:=optional,
+ *
+ </osgi.import>
+ <osgi.export>org.apache.avro.ipc*;version="${project.version}"</osgi.export>
+ </properties>
<build>
<resources>
Modified: avro/trunk/lang/java/mapred/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/mapred/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/mapred/pom.xml (original)
+++ avro/trunk/lang/java/mapred/pom.xml Thu Jan 9 17:24:50 2014
@@ -31,6 +31,17 @@
<name>Apache Avro Mapred API</name>
<description>An org.apache.hadoop.mapred compatible API for using Avro \
Serializatin in Hadoop</description> + <packaging>bundle</packaging>
+
+ <properties>
+ <osgi.import>
+ !org.apache.avro.mapred*,
+ org.apache.avro*;version="${project.version}",
+ org.apache.hadoop*,
+ *
+ </osgi.import>
+ <osgi.export>org.apache.avro.mapred*;version="${project.version}"</osgi.export>
+ </properties>
<build>
<plugins>
Modified: avro/trunk/lang/java/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/pom.xml (original)
+++ avro/trunk/lang/java/pom.xml Thu Jan 9 17:24:50 2014
@@ -66,6 +66,7 @@
<!-- version properties for plugins -->
<checkstyle-plugin.version>2.8</checkstyle-plugin.version>
+ <bundle-plugin-version>2.1.0</bundle-plugin-version>
<compiler-plugin.version>2.3.2</compiler-plugin.version>
<exec-plugin.version>1.2.1</exec-plugin.version>
<jar-plugin.version>2.3.2</jar-plugin.version>
@@ -277,6 +278,38 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>${bundle-plugin-version}</version>
+ <extensions>true</extensions>
+ <inherited>true</inherited>
+ <configuration>
+ <instructions>
+ <Bundle-Name>${project.name}</Bundle-Name>
+ <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+ <Export-Package>${osgi.export}</Export-Package>
+ <Import-Package>${osgi.import}</Import-Package>
+ <DynamicImport-Package>${osgi.dynamic.import}</DynamicImport-Package>
+ <Private-Package>${osgi.private}</Private-Package>
+ <Require-Bundle>${osgi.bundles}</Require-Bundle>
+ <Bundle-Activator>${osgi.activator}</Bundle-Activator>
+ </instructions>
+ <supportedProjectTypes>
+ <supportedProjectType>bundle</supportedProjectType>
+ </supportedProjectTypes>
+ <unpackBundle>true</unpackBundle>
+ </configuration>
+ <executions>
+ <execution>
+ <id>bundle-manifest</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>manifest</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
Modified: avro/trunk/lang/java/protobuf/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/protobuf/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/protobuf/pom.xml (original)
+++ avro/trunk/lang/java/protobuf/pom.xml Thu Jan 9 17:24:50 2014
@@ -31,6 +31,17 @@
<name>Apache Avro Protobuf Compatibility</name>
<description>Permit serialization of Protobuf-generated classes as Avro \
data.</description> + <packaging>bundle</packaging>
+
+ <properties>
+ <osgi.import>
+ !org.apache.avro.protobuf*,
+ org.apache.avro*;version="${project.version}",
+ com.google.protobuf*;version="${project.version}",
+ *
+ </osgi.import>
+ <osgi.export>org.apache.avro.protobuf*;version="${project.version}"</osgi.export>
+ </properties>
<profiles>
<profile>
Modified: avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java \
(original)
+++ avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java \
Thu Jan 9 17:24:50 2014 @@ -45,6 +45,7 @@ import com.google.protobuf.Descriptors.E
import com.google.protobuf.Descriptors.FileDescriptor;
import com.google.protobuf.DescriptorProtos.FileOptions;
+import org.apache.avro.util.ClassUtils;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;
@@ -133,7 +134,7 @@ public class ProtobufData extends Generi
@Override
public Object newRecord(Object old, Schema schema) {
try {
- Class c = Class.forName(SpecificData.getClassName(schema));
+ Class c = ClassUtils.forName(SpecificData.getClassName(schema));
if (c == null)
return newRecord(old, schema); // punt to generic
if (c.isInstance(old))
Modified: avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufDatumReader.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/protobuf/src/main/java/org/apac \
he/avro/protobuf/ProtobufDatumReader.java?rev=1556891&r1=1556890&r2=1556891&view=diff \
==============================================================================
--- avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufDatumReader.java \
(original)
+++ avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufDatumReader.java \
Thu Jan 9 17:24:50 2014 @@ -25,6 +25,7 @@ import org.apache.avro.generic.GenericDa
import org.apache.avro.specific.SpecificData;
import org.apache.avro.io.Decoder;
import org.apache.avro.io.ResolvingDecoder;
+import org.apache.avro.util.ClassUtils;
import com.google.protobuf.ByteString;
import com.google.protobuf.Message;
@@ -66,7 +67,7 @@ public class ProtobufDatumReader<T> exte
@Override
protected Object createEnum(String symbol, Schema schema) {
try {
- Class c = Class.forName(SpecificData.getClassName(schema));
+ Class c = ClassUtils.forName(SpecificData.getClassName(schema));
if (c == null) return super.createEnum(symbol, schema); // punt to generic
return ((ProtocolMessageEnum)Enum.valueOf(c, symbol)).getValueDescriptor();
} catch (Exception e) {
Modified: avro/trunk/lang/java/thrift/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/thrift/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/thrift/pom.xml (original)
+++ avro/trunk/lang/java/thrift/pom.xml Thu Jan 9 17:24:50 2014
@@ -31,6 +31,17 @@
<name>Apache Avro Thrift Compatibility</name>
<description>Permit serialization of Thrift-generated classes as Avro \
data.</description> + <packaging>bundle</packaging>
+
+ <properties>
+ <osgi.import>
+ !org.apache.avro.thrift*,
+ org.apache.avro*;version="${project.version}",
+ org.apache.thrift*,
+ *
+ </osgi.import>
+ <osgi.export>org.apache.avro.thrift*;version="${project.version}"</osgi.export>
+ </properties>
<profiles>
<profile>
Modified: avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java \
(original)
+++ avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java \
Thu Jan 9 17:24:50 2014 @@ -32,6 +32,7 @@ import org.apache.avro.specific.Specific
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
+import org.apache.avro.util.ClassUtils;
import org.apache.thrift.TBase;
import org.apache.thrift.TEnum;
import org.apache.thrift.TFieldIdEnum;
@@ -135,7 +136,7 @@ public class ThriftData extends GenericD
@Override
public Object newRecord(Object old, Schema schema) {
try {
- Class c = Class.forName(SpecificData.getClassName(schema));
+ Class c = ClassUtils.forName(SpecificData.getClassName(schema));
if (c == null)
return newRecord(old, schema); // punt to generic
if (c.isInstance(old))
Modified: avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftDatumReader.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftDatumReader.java?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftDatumReader.java \
(original)
+++ avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftDatumReader.java \
Thu Jan 9 17:24:50 2014 @@ -26,6 +26,7 @@ import org.apache.avro.AvroRuntimeExcept
import org.apache.avro.generic.GenericDatumReader;
import org.apache.avro.specific.SpecificData;
import org.apache.avro.io.Decoder;
+import org.apache.avro.util.ClassUtils;
/** {@link org.apache.avro.io.DatumReader DatumReader} for generated Thrift
* classes. */
@@ -55,7 +56,7 @@ public class ThriftDatumReader<T> extend
@Override
protected Object createEnum(String symbol, Schema schema) {
try {
- Class c = Class.forName(SpecificData.getClassName(schema));
+ Class c = ClassUtils.forName(SpecificData.getClassName(schema));
if (c == null) return super.createEnum(symbol, schema); // punt to generic
return Enum.valueOf(c, symbol);
} catch (Exception e) {
Modified: avro/trunk/lang/java/tools/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/tools/pom.xml?rev=1556891&r1=1556890&r2=1556891&view=diff
==============================================================================
--- avro/trunk/lang/java/tools/pom.xml (original)
+++ avro/trunk/lang/java/tools/pom.xml Thu Jan 9 17:24:50 2014
@@ -32,6 +32,16 @@
<name>Apache Avro Tools</name>
<url>http://avro.apache.org</url>
<description>Avro command line tools and utilities</description>
+ <packaging>bundle</packaging>
+
+ <properties>
+ <osgi.import>
+ !org.apache.avro.tools*,
+ org.apache.avro*;version="${project.version}",
+ *
+ </osgi.import>
+ <osgi.export>org.apache.avro.tools*;version="${project.version}"</osgi.export>
+ </properties>
<build>
<resources>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic