[prev in list] [next in list] [prev in thread] [next in thread] 

List:       avro-user
Subject:    RE: Importing Java class in Avro IDL
From:       Rohini Uppuluri <rohini () glassdoor ! com>
Date:       2014-05-23 17:46:43
Message-ID: B7F3A891549FD849838B09488D51EFD44B20E374 () van-mail14-n4 ! exchange ! electric ! net
[Download RAW message or body]

Thanks Martin. I will check it out.

From: Martin Kleppmann [mailto:mkleppmann@linkedin.com]
Sent: Friday, May 23, 2014 1:05 AM
To: user@avro.apache.org
Subject: Re: Importing Java class in Avro IDL

There is a mechanism for using richer, language-specific types called logic=
al types, which was introduced recently: https://issues.apache.org/jira/bro=
wse/AVRO-1402 -- this might be able to do what you want. It's currently use=
d for encoding a Java BigDecimal in Avro, but it can be generalised.

However, it's very new, and not yet released. If you want to try it, you'll=
 need to check out Avro from svn and build it.

Martin

On 14 May 2014, at 21:44, Rohini Uppuluri <rohini@glassdoor.com<mailto:rohi=
ni@glassdoor.com>> wrote:
Thanks Martin.
That's true. It would break cross language compability.
I am going to create an Avro schema for my java classes.

My java classes can have additions/deletion of fields.  That's why, I was t=
rying to see if there was a better way to handle it.

From: Martin Kleppmann [mailto:mkleppmann@linkedin.com]
Sent: Wednesday, May 14, 2014 1:35 AM
To: user@avro.apache.org<mailto:user@avro.apache.org>
Subject: Re: Importing Java class in Avro IDL

Hi Rohini,

Avro schemas can only refer to types defined within Avro. Referring to a Ja=
va type would break Avro's cross-language compatibility. I'm afraid you'll =
need to create an Avro schema that is the equivalent of Java class B.

Martin

On 13 May 2014, at 18:27, Rohini Uppuluri <rohini@glassdoor.com<mailto:rohi=
ni@glassdoor.com>> wrote:
Hi,

I am looking to using avro serialization for our data. I see that we can im=
port avro idl within another idl file.
I was wondering if there was a way we could import java object as I have a =
use case for the same.

For example:

Class B has:
{
  String element1;
  A a;

}

And A is in another project.
Class A {
    String elem1;
   String elem2;
   int id;
};

I am trying to definite avro schema for B.  A is from a totally different p=
roject that does not use avro.

I could do it after code generation but I was wondering if there was any ot=
her way to do it.

Thanks,
-Rohini



[Attachment #3 (text/html)]

<html xmlns:v="urn:schemas-microsoft-com:vml" \
xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" \
xmlns="http://www.w3.org/TR/REC-html40"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle23
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Thanks Martin. I will check it out.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span \
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span \
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> \
Martin Kleppmann [mailto:mkleppmann@linkedin.com] <br>
<b>Sent:</b> Friday, May 23, 2014 1:05 AM<br>
<b>To:</b> user@avro.apache.org<br>
<b>Subject:</b> Re: Importing Java class in Avro IDL<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">There is a mechanism for using richer, language-specific types \
called logical types, which was introduced recently:&nbsp;<a \
href="https://issues.apache.org/jira/browse/AVRO-1402">https://issues.apache.org/jira/browse/AVRO-1402</a>&nbsp;-- \
this might  be able to do what you want. It's currently used for encoding a Java \
BigDecimal in Avro, but it can be generalised.<o:p></o:p></p> </div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">However, it's very new, and not yet released. If you want to try \
it, you'll need to check out Avro from svn and build it.<o:p></o:p></p> </div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Martin<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class="MsoNormal">On 14 May 2014, at 21:44, Rohini Uppuluri &lt;<a \
href="mailto:rohini@glassdoor.com">rohini@glassdoor.com</a>&gt; wrote:<o:p></o:p></p> \
</div> <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="color:#1F497D">Thanks Martin. \
</span><o:p></o:p></p> <p class="MsoNormal"><span style="color:#1F497D">That&#8217;s \
true. It would break cross language compability.</span><o:p></o:p></p> <p \
class="MsoNormal"><span style="color:#1F497D">I am going to create an Avro schema for \
my java classes. </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">My java classes can have \
additions/deletion of fields. &nbsp;That&#8217;s why, I was trying to see if there \
was a better way to handle it.</span><o:p></o:p></p> <p class="MsoNormal"><span \
style="color:#1F497D">&nbsp;</span><o:p></o:p></p> <div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span \
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span \
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> \
Martin Kleppmann [<a \
href="mailto:mkleppmann@linkedin.com">mailto:mkleppmann@linkedin.com</a>] <br>
<b>Sent:</b> Wednesday, May 14, 2014 1:35 AM<br>
<b>To:</b> <a href="mailto:user@avro.apache.org">user@avro.apache.org</a><br>
<b>Subject:</b> Re: Importing Java class in Avro IDL</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
<div>
<p class="MsoNormal">Hi Rohini,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Avro schemas can only refer to types defined within Avro. \
Referring to a Java type would break Avro's cross-language compatibility. I'm afraid \
you'll need to create an Avro schema that is the equivalent of Java class \
B.<o:p></o:p></p> </div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Martin<o:p></o:p></p>
</div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">On 13 May 2014, at 18:27, Rohini Uppuluri &lt;<a \
href="mailto:rohini@glassdoor.com">rohini@glassdoor.com</a>&gt; wrote:<o:p></o:p></p> \
</div> <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Hi, <o:p></o:p></p>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal">I am looking to using avro serialization for our data. I see \
that we can import avro idl within another idl file. <o:p></o:p></p>
<p class="MsoNormal">I was wondering if there was a way we could import java object \
as I have a use case for the same.<o:p></o:p></p> <p \
class="MsoNormal">&nbsp;<o:p></o:p></p> <p class="MsoNormal">For \
example:<o:p></o:p></p> <p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal">Class B has:<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal">&nbsp; String element1;<o:p></o:p></p>
<p class="MsoNormal">&nbsp; A a;<o:p></o:p></p>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal">And A is in another project.<o:p></o:p></p>
<p class="MsoNormal">Class A {<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; String elem1;<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp; String elem2;<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp; int id;<o:p></o:p></p>
<p class="MsoNormal">};<o:p></o:p></p>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal">I am trying to definite avro schema for B.&nbsp; A is from a \
totally different project that does not use avro.<o:p></o:p></p> <p \
class="MsoNormal">&nbsp;<o:p></o:p></p> <p class="MsoNormal">I could do it after code \
generation but I was wondering if there was any other way to do it.&nbsp; \
<o:p></o:p></p> <p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal">Thanks, <o:p></o:p></p>
<p class="MsoNormal">-Rohini<o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;">&nbsp;</span><o:p></o:p></p> </div>
</blockquote>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"><o:p>&nbsp;</o:p></span></p> </div>
</body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic