You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by gd...@apache.org on 2010/07/21 17:13:50 UTC
svn commit: r966273 - in /cassandra/trunk: build.xml
interface/cassandra.genavro
Author: gdusbabek
Date: Wed Jul 21 15:13:49 2010
New Revision: 966273
URL: http://svn.apache.org/viewvc?rev=966273&view=rev
Log:
break out avro generation. patch by stuhood, reviewed by gdusbabek. CASSANDRA-1186
Modified:
cassandra/trunk/build.xml
cassandra/trunk/interface/cassandra.genavro
Modified: cassandra/trunk/build.xml
URL: http://svn.apache.org/viewvc/cassandra/trunk/build.xml?rev=966273&r1=966272&r2=966273&view=diff
==============================================================================
--- cassandra/trunk/build.xml (original)
+++ cassandra/trunk/build.xml Wed Jul 21 15:13:49 2010
@@ -35,7 +35,7 @@
<property name="interface.dir" value="${basedir}/interface"/>
<property name="interface.thrift.dir" value="${interface.dir}/thrift"/>
<property name="interface.thrift.gen-java" value="${interface.thrift.dir}/gen-java"/>
- <property name="interface.avro.dir" value="${interface.dir}/avro/gen-java"/>
+ <property name="interface.avro.dir" value="${interface.dir}/avro"/>
<property name="test.dir" value="${basedir}/test"/>
<property name="test.resources" value="${test.dir}/resources"/>
<property name="test.classes" value="${build.dir}/test/classes"/>
@@ -167,47 +167,51 @@
<!--
Generate avro code
-->
+ <taskdef name="avro-protocol" classname="org.apache.avro.specific.ProtocolTask">
+ <classpath refid="cassandra.classpath" />
+ </taskdef>
+ <taskdef name="avro-schema" classname="org.apache.avro.specific.SchemaTask">
+ <classpath refid="cassandra.classpath" />
+ </taskdef>
+ <taskdef name="paranamer" classname="com.thoughtworks.paranamer.ant.ParanamerGeneratorTask">
+ <classpath refid="cassandra.classpath" />
+ </taskdef>
+
<target name="check-avro-generate">
- <uptodate property="avroUpToDate"
- srcfile="${interface.dir}/cassandra.genavro"
- targetfile="${interface.avro.dir}/org/apache/cassandra/avro/Cassandra.java" />
- <taskdef name="protocol"
- classname="org.apache.avro.specific.ProtocolTask">
- <classpath refid="cassandra.classpath" />
- </taskdef>
- <taskdef name="schema" classname="org.apache.avro.specific.SchemaTask">
- <classpath refid="cassandra.classpath" />
- </taskdef>
- <taskdef name="paranamer"
- classname="com.thoughtworks.paranamer.ant.ParanamerGeneratorTask">
- <classpath refid="cassandra.classpath" />
- </taskdef>
+ <uptodate property="avroInterfaceUpToDate" srcfile="${interface.dir}/cassandra.genavro"
+ targetfile="${interface.avro.dir}/cassandra.avpr" />
</target>
- <target name="avro-generate" unless="avroUpToDate"
- depends="init,check-avro-generate">
- <echo>Generating avro code...</echo>
- <!-- Generate json schema from genavro IDL -->
- <java classname="org.apache.avro.tool.Main" fork="true">
- <classpath refid="cassandra.classpath" />
- <arg value="genavro" />
- <arg value="interface/cassandra.genavro" />
- <arg value="interface/cassandra.avpr" />
- </java>
- <!-- Generate java code from json protocol schema -->
- <protocol destdir="${interface.avro.dir}">
- <fileset dir="${interface.dir}">
- <include name="**/*.avpr" />
- </fileset>
- </protocol>
-
- <schema destdir="${interface.avro.dir}">
- <fileset dir="${interface.dir}">
- <include name="**/*.avsc" />
- </fileset>
- </schema>
+ <target name="avro-generate" depends="avro-interface-generate"
+ description="Generates Java Avro classes for client and internal use." />
+
+ <target name="avro-interface-generate" unless="avroInterfaceUpToDate"
+ depends="init,check-avro-generate">
+ <avromacro protocolname="client" inputfile="${interface.dir}/cassandra.genavro" outputdir="${interface.avro.dir}" />
</target>
+ <macrodef name="avromacro">
+ <attribute name="protocolname" />
+ <attribute name="inputfile" />
+ <attribute name="outputdir" />
+ <sequential>
+ <echo message="Generating Avro @{protocolname} code..." />
+ <mkdir dir="@{outputdir}" />
+ <!-- Generate json schema from genavro IDL -->
+ <java classname="org.apache.avro.tool.Main" fork="true">
+ <classpath refid="cassandra.classpath" />
+ <arg value="genavro" />
+ <arg value="@{inputfile}" />
+ <arg value="@{outputdir}/cassandra.avpr" />
+ </java>
+
+ <!-- Generate java code from json protocol schema -->
+ <avro-protocol destdir="@{outputdir}/gen-java">
+ <fileset file="@{outputdir}/cassandra.avpr" />
+ </avro-protocol>
+ </sequential>
+ </macrodef>
+
<!--
Generate thrift code. We have targets to build java because
@@ -264,12 +268,13 @@
<classpath refid="cassandra.classpath"/>
</javac>
- <paranamer sourceDirectory="${interface.avro.dir}"
- outputDirectory="${build.classes}"/>
+ <paranamer sourceDirectory="${interface.avro.dir}"
+ outputDirectory="${build.classes}"/>
- <antcall target="createVersionPropFile"/>
+ <antcall target="createVersionPropFile"/>
</target>
+
<!--
The jar target makes cassandra.jar output.
-->
Modified: cassandra/trunk/interface/cassandra.genavro
URL: http://svn.apache.org/viewvc/cassandra/trunk/interface/cassandra.genavro?rev=966273&r1=966272&r2=966273&view=diff
==============================================================================
--- cassandra/trunk/interface/cassandra.genavro (original)
+++ cassandra/trunk/interface/cassandra.genavro Wed Jul 21 15:13:49 2010
@@ -17,7 +17,7 @@
*/
/**
- * Cassandra protocol
+ * Cassandra client interface
*/
@namespace("org.apache.cassandra.avro")