From 4ac3c9d120a171d3f4f5ceaef1cd0a34f44a6e58 Mon Sep 17 00:00:00 2001 From: Ricardo Arguello Date: Oct 29 2013 18:30:10 +0000 Subject: Upgrade to Avro 1.7.5 --- diff --git a/.gitignore b/.gitignore index bf6343e..b3d1149 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/avro-1.6.2-CLEAN.tar.xz +/avro-1.7.5-CLEAN.tar.xz diff --git a/avro-1.6.2-pom.patch b/avro-1.6.2-pom.patch deleted file mode 100644 index 98681d6..0000000 --- a/avro-1.6.2-pom.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -Naur avro-1.6.2/lang/java/avro/pom.xml avro-1.6.2-work/lang/java/avro/pom.xml ---- avro-1.6.2/lang/java/avro/pom.xml 2012-02-09 23:30:15.000000000 +0100 -+++ avro-1.6.2-work/lang/java/avro/pom.xml 2012-02-21 15:54:59.155998202 +0100 -@@ -42,26 +42,6 @@ - - - -- -- -- com.thoughtworks.paranamer -- paranamer-maven-plugin -- ${paranamer.version} -- -- -- paranamer-test -- -- ${project.build.testSourceDirectory} -- ${project.build.testOutputDirectory} -- -- process-test-classes -- -- generate -- -- -- -- -- - - - -diff -Naur avro-1.6.2/lang/java/pom.xml avro-1.6.2-work/lang/java/pom.xml ---- avro-1.6.2/lang/java/pom.xml 2012-02-09 23:30:15.000000000 +0100 -+++ avro-1.6.2-work/lang/java/pom.xml 2012-02-21 16:19:47.202001290 +0100 -@@ -73,12 +73,6 @@ - avro - compiler - maven-plugin -- ipc -- tools -- mapred -- protobuf -- thrift -- archetypes - - - -@@ -303,7 +297,7 @@ - - - junit -- junit-dep -+ junit - ${junit.version} - test - diff --git a/avro-ipc-changes-for-jetty-upgrade.patch b/avro-ipc-changes-for-jetty-upgrade.patch new file mode 100644 index 0000000..53a1daf --- /dev/null +++ b/avro-ipc-changes-for-jetty-upgrade.patch @@ -0,0 +1,235 @@ +From 5ab33e67b12812339749cb0989b5c5e442e0d776 Mon Sep 17 00:00:00 2001 +From: Peter MacKinnon +Date: Fri, 11 Oct 2013 17:00:17 -0400 +Subject: [PATCH 4/4] ipc changes for jetty upgrade + +--- + lang/java/ipc/pom.xml | 16 +++++++--- + .../main/java/org/apache/avro/ipc/HttpServer.java | 36 ++++++++++++---------- + .../org/apache/avro/ipc/stats/StaticServlet.java | 4 +-- + .../org/apache/avro/ipc/stats/StatsServer.java | 10 +++--- + .../org/apache/avro/ipc/trace/StaticServlet.java | 4 +-- + .../org/apache/avro/ipc/trace/TracePlugin.java | 16 +++++----- + 6 files changed, 47 insertions(+), 39 deletions(-) + +diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml +index 343ed9c..91b3ddd 100644 +--- a/lang/java/ipc/pom.xml ++++ b/lang/java/ipc/pom.xml +@@ -111,15 +111,21 @@ + ${jackson.version} + + +- org.mortbay.jetty +- jetty ++ org.eclipse.jetty ++ jetty-server ++ ${jetty.version} + + +- org.mortbay.jetty ++ org.eclipse.jetty + jetty-util + ${jetty.version} + + ++ org.eclipse.jetty ++ jetty-servlet ++ ${jetty.version} ++ ++ + io.netty + netty + +@@ -128,8 +134,8 @@ + velocity + + +- org.mortbay.jetty +- servlet-api ++ javax.servlet ++ javax.servlet-api + ${jetty-servlet-api.version} + + +diff --git a/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java b/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java +index be6bbb2..906e2b2 100644 +--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java ++++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/HttpServer.java +@@ -22,14 +22,13 @@ import java.io.IOException; + + import org.apache.avro.AvroRuntimeException; + +-import org.mortbay.jetty.Connector; +-import org.mortbay.jetty.nio.SelectChannelConnector; +-import org.mortbay.jetty.servlet.Context; +-import org.mortbay.jetty.servlet.ServletHolder; ++import org.eclipse.jetty.server.ServerConnector; ++import org.eclipse.jetty.servlet.ServletContextHandler; ++import org.eclipse.jetty.servlet.ServletHolder; + + /** An HTTP-based RPC {@link Server}. */ + public class HttpServer implements Server { +- private org.mortbay.jetty.Server server; ++ private org.eclipse.jetty.server.Server server; + + /** Constructs a server to run on the named port. */ + public HttpServer(Responder responder, int port) throws IOException { +@@ -48,38 +47,41 @@ public class HttpServer implements Server { + + /** Constructs a server to run on the named port on the specified address. */ + public HttpServer(ResponderServlet servlet, String bindAddress, int port) throws IOException { +- this.server = new org.mortbay.jetty.Server(); +- SelectChannelConnector connector = new SelectChannelConnector(); +- connector.setLowResourceMaxIdleTime(10000); ++ this.server = new org.eclipse.jetty.server.Server(); ++ ServerConnector connector = new ServerConnector(server); ++ connector.setSoLingerTime(10000); + connector.setAcceptQueueSize(128); +- connector.setResolveNames(false); +- connector.setUseDirectBuffers(false); ++ connector.setReuseAddress(false); ++ connector.setInheritChannel(false); + if (bindAddress != null) { + connector.setHost(bindAddress); + } + connector.setPort(port); + server.addConnector(connector); +- new Context(server, "/").addServlet(new ServletHolder(servlet), "/*"); ++ new ServletContextHandler(server, "/").addServlet(new ServletHolder(servlet), "/*"); + } + + /** Constructs a server to run with the given connector. */ +- public HttpServer(Responder responder, Connector connector) throws IOException { ++ public HttpServer(Responder responder, ServerConnector connector) throws IOException { + this(new ResponderServlet(responder), connector); + } + + /** Constructs a server to run with the given connector. */ +- public HttpServer(ResponderServlet servlet, Connector connector) throws IOException { +- this.server = new org.mortbay.jetty.Server(); ++ public HttpServer(ResponderServlet servlet, ServerConnector connector) throws IOException { ++ this.server = new org.eclipse.jetty.server.Server(); + server.addConnector(connector); +- new Context(server, "/").addServlet(new ServletHolder(servlet), "/*"); ++ new ServletContextHandler(server, "/").addServlet(new ServletHolder(servlet), "/*"); + } + +- public void addConnector(Connector connector) { ++ public void addConnector(ServerConnector connector) { + server.addConnector(connector); + } + + @Override +- public int getPort() { return server.getConnectors()[0].getLocalPort(); } ++ public int getPort() { ++ ServerConnector connector = new ServerConnector(server); ++ return connector.getLocalPort(); ++ } + + @Override + public void close() { +diff --git a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java +index c079ec5..3308e8c 100644 +--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java ++++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StaticServlet.java +@@ -21,8 +21,8 @@ package org.apache.avro.ipc.stats; + import java.io.IOException; + import java.net.URL; + +-import org.mortbay.jetty.servlet.DefaultServlet; +-import org.mortbay.resource.Resource; ++import org.eclipse.jetty.servlet.DefaultServlet; ++import org.eclipse.jetty.util.resource.Resource; + + /** + * Very simple servlet class capable of serving static files. +diff --git a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java +index 3ae8ada..f3b0d3f 100644 +--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java ++++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/StatsServer.java +@@ -16,9 +16,9 @@ package org.apache.avro.ipc.stats; + * See the License for the specific language governing permissions and + * limitations under the License. + */ +-import org.mortbay.jetty.Server; +-import org.mortbay.jetty.servlet.Context; +-import org.mortbay.jetty.servlet.ServletHolder; ++import org.eclipse.jetty.server.Server; ++import org.eclipse.jetty.servlet.ServletContextHandler; ++import org.eclipse.jetty.servlet.ServletHolder; + + /* This is a server that displays live information from a StatsPlugin. + * +@@ -38,10 +38,10 @@ public class StatsServer { + this.httpServer = new Server(port); + this.plugin = plugin; + +- Context staticContext = new Context(httpServer, "/static"); ++ ServletContextHandler staticContext = new ServletContextHandler(httpServer, "/static"); + staticContext.addServlet(new ServletHolder(new StaticServlet()), "/"); + +- Context context = new Context(httpServer, "/"); ++ ServletContextHandler context = new ServletContextHandler(httpServer, "/"); + context.addServlet(new ServletHolder(new StatsServlet(plugin)), "/"); + + httpServer.start(); +diff --git a/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/StaticServlet.java b/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/StaticServlet.java +index cdcf75c..259eb94 100644 +--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/StaticServlet.java ++++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/StaticServlet.java +@@ -21,8 +21,8 @@ package org.apache.avro.ipc.trace; + import java.io.IOException; + import java.net.URL; + +-import org.mortbay.jetty.servlet.DefaultServlet; +-import org.mortbay.resource.Resource; ++import org.eclipse.jetty.servlet.DefaultServlet; ++import org.eclipse.jetty.util.resource.Resource; + + /** + * Very simple servlet class capable of serving static files. +diff --git a/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/TracePlugin.java b/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/TracePlugin.java +index f1a8fea..0719d8b 100644 +--- a/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/TracePlugin.java ++++ b/lang/java/ipc/src/main/java/org/apache/avro/ipc/trace/TracePlugin.java +@@ -35,10 +35,10 @@ import org.apache.avro.ipc.HttpServer; + import org.apache.avro.ipc.RPCContext; + import org.apache.avro.ipc.RPCPlugin; + import org.apache.avro.ipc.specific.SpecificResponder; +-import org.mortbay.jetty.Server; +-import org.mortbay.jetty.bio.SocketConnector; +-import org.mortbay.jetty.servlet.Context; +-import org.mortbay.jetty.servlet.ServletHolder; ++import org.eclipse.jetty.server.Server; ++import org.eclipse.jetty.server.ServerConnector; ++import org.eclipse.jetty.servlet.ServletContextHandler; ++import org.eclipse.jetty.servlet.ServletHolder; + import org.slf4j.Logger; + import org.slf4j.LoggerFactory; + +@@ -342,17 +342,17 @@ public class TracePlugin extends RPCPlugin { + */ + protected void initializeClientServer() { + clientFacingServer = new Server(); +- Context staticContext = new Context(clientFacingServer, "/static"); ++ ServletContextHandler staticContext = new ServletContextHandler(clientFacingServer, "/static"); + staticContext.addServlet(new ServletHolder(new StaticServlet()), "/"); +- Context context = new Context(clientFacingServer, "/"); ++ ServletContextHandler context = new ServletContextHandler(clientFacingServer, "/"); + context.addServlet(new ServletHolder(new TraceClientServlet()), "/"); + boolean connected = false; +- SocketConnector socket = null; ++ ServerConnector socket = null; + + // Keep trying ports until we can connect + while (!connected) { + try { +- socket = new SocketConnector(); ++ socket = new ServerConnector(clientFacingServer); + socket.setPort(clientPort); + clientFacingServer.addConnector(socket); + clientFacingServer.start(); +-- +1.8.3.1 + diff --git a/avro.spec b/avro.spec index 607683f..f378c2e 100644 --- a/avro.spec +++ b/avro.spec @@ -1,17 +1,16 @@ Name: avro -Version: 1.6.2 -Release: 7%{?dist} +Version: 1.7.5 +Release: 1%{?dist} Summary: Data serialization system Group: Development/Libraries License: ASL 2.0 URL: http://avro.apache.org -# svn export http://svn.apache.org/repos/asf/avro/tags/release-1.6.2/ avro-1.6.2 -# find avro-1.6.2/ -name '*.jar' -or -name '*.dll' -delete -# tar cafJ avro-1.6.2-CLEAN.tar.xz avro-1.6.2 +# svn export http://svn.apache.org/repos/asf/avro/tags/release-1.7.5/ avro-1.7.5 +# find avro-1.7.5/ -name '*.jar' -or -name '*.dll' -delete +# tar cafJ avro-1.7.5-CLEAN.tar.xz avro-1.7.5 Source0: avro-%{version}-CLEAN.tar.xz - -Patch0: avro-%{version}-pom.patch +Patch0: avro-ipc-changes-for-jetty-upgrade.patch BuildArch: noarch @@ -19,10 +18,8 @@ BuildRequires: jpackage-utils BuildRequires: java-devel BuildRequires: maven-local BuildRequires: maven-compiler-plugin -BuildRequires: maven-install-plugin BuildRequires: maven-jar-plugin BuildRequires: maven-javadoc-plugin -BuildRequires: maven-archetype-packaging BuildRequires: maven-archetype-plugin BuildRequires: maven-archetype-common BuildRequires: maven-checkstyle-plugin @@ -32,6 +29,9 @@ BuildRequires: jackson BuildRequires: snappy-java BuildRequires: paranamer BuildRequires: slf4j +BuildRequires: hadoop-client +BuildRequires: hadoop-mapreduce +BuildRequires: libthrift-java Requires: jpackage-utils Requires: java @@ -53,6 +53,41 @@ Avro provides: to read or write data files nor to use or implement RPC protocols. Code generation as an optional optimization, only worth implementing for statically typed languages. + +%package trevni +Summary: Trevni Java +Requires: avro-mapred + +%description trevni +Trevni: A Column File Format + +%package ipc +Summary: Apache Avro IPC + +%description ipc +Avro inter-process communication components + +%package mapred +Summary: Apache Avro Mapred API +Requires: hadoop-client +Requires: hadoop-mapreduce + +%description mapred +An org.apache.hadoop.mapred compatible API for using Avro Serialization in Hadoop + +%package protobuf +Summary: Apache Avro Protobuf Compatibility +Requires: protobuf-java + +%description protobuf +Permit serialization of Protobuf-generated classes as Avro data. + +%package thrift +Summary: Apache Avro Thrift Compatibility +Requires: libthrift-java + +%description thrift +Permit serialization of Thrift-generated classes as Avro data. %package javadoc Summary: Javadocs for %{name} @@ -64,51 +99,69 @@ This package contains the API documentation for %{name}. %prep %setup -q - %patch0 -p1 +# junit, versions, and no tools or archetypes module +sed -i "s|2.0.1-alpha|2.0.5-alpha|" lang/java/pom.xml +sed -i "s|6.1.26|9.0.3.v20130506|" lang/java/pom.xml +sed -i "s|2.5-20081211|3.1.0|" lang/java/pom.xml +sed -i "s|junit-dep|junit|" lang/java/pom.xml +sed -i "s|tools||" lang/java/pom.xml +# something wrong here with xmvn 0.5 for archetypes, mvn-rpmbuild doesn't fail +sed -i "s|archetypes||" lang/java/pom.xml + +# Remove panamer plugin for test jar generation +%pom_remove_plugin com.thoughtworks.paranamer:paranamer-maven-plugin lang/java/avro/pom.xml + +# Need explicit maven-artifact declaration +%pom_add_dep org.apache.maven:maven-artifact lang/java/maven-plugin/pom.xml + +# Remove ipc tests from mapred +%pom_remove_dep :avro-ipc lang/java/mapred/pom.xml +%pom_add_dep org.apache.avro:avro-ipc:%{version} lang/java/mapred/pom.xml + +%mvn_package ":trevni-java" trevni +%mvn_package ":trevni-core" trevni +%mvn_package ":trevni-avro" trevni +%mvn_package ":trevni-doc" __noinstall +%mvn_package ":%{name}-ipc" ipc +%mvn_package ":%{name}-mapred" mapred +%mvn_package ":%{name}-protobuf" protobuf +%mvn_package ":%{name}-thrift" thrift + %build -# Tests run: 2601, Failures: 2, Errors: 0, Skipped: 0 -mvn-rpmbuild -Dmaven.test.skip=true install javadoc:aggregate + +%mvn_build -f -- -Dhadoop.version=2 -P hadoop2 %install -install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/%{name} -install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir} -install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name} - -# JAR -install -pm 644 lang/java/avro/target/avro-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}.jar -install -pm 644 lang/java/maven-plugin/target/avro-maven-plugin-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-maven-plugin.jar -install -pm 644 lang/java/compiler/target/avro-compiler-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-compiler.jar - -# POM -install -pm 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-toplevel.pom -install -pm 644 lang/java/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-parent.pom -install -pm 644 lang/java/avro/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}.pom -install -pm 644 lang/java/compiler/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-compiler.pom -install -pm 644 lang/java/maven-plugin/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-maven-plugin.pom - -# DEPMAP -%add_maven_depmap JPP.%{name}-%{name}-toplevel.pom -%add_maven_depmap JPP.%{name}-%{name}-parent.pom -%add_maven_depmap JPP.%{name}-%{name}.pom %{name}/%{name}.jar -%add_maven_depmap JPP.%{name}-%{name}-maven-plugin.pom %{name}/%{name}-maven-plugin.jar -%add_maven_depmap JPP.%{name}-%{name}-compiler.pom %{name}/%{name}-compiler.jar - -# APIDOCS -cp -rp target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name} - -%files -%{_mavenpomdir}/* -%{_mavendepmapfragdir}/* -%{_javadir}/%{name}/* -%doc LICENSE.txt - -%files javadoc -%{_javadocdir}/%{name} -%doc LICENSE.txt +%mvn_install + +%files -f .mfiles +%doc LICENSE.txt NOTICE.txt README.txt + +%files trevni -f .mfiles-trevni +%doc LICENSE.txt NOTICE.txt + +%files ipc -f .mfiles-ipc +%doc LICENSE.txt NOTICE.txt + +%files mapred -f .mfiles-mapred +%doc LICENSE.txt NOTICE.txt + +%files protobuf -f .mfiles-protobuf +%doc LICENSE.txt NOTICE.txt + +%files thrift -f .mfiles-thrift +%doc LICENSE.txt NOTICE.txt + +%files javadoc -f .mfiles-javadoc +%doc LICENSE.txt NOTICE.txt %changelog +* Mon Oct 14 2013 Peter MacKinnon - 1.7.5-1 +- Updated to 1.7.5 +- Add mapred (hadoop2), ipc, trevni, thrift, protobuf artifacts + * Sat Aug 03 2013 Fedora Release Engineering - 1.6.2-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild diff --git a/sources b/sources index 8ca3592..8bd3edd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -796338962998d23265ee25749b599ef9 avro-1.6.2-CLEAN.tar.xz +b59deb4df828e98860ff51e39688187f avro-1.7.5-CLEAN.tar.xz