You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Doug Cutting (JIRA)" <ji...@apache.org> on 2012/11/15 00:32:11 UTC

[jira] [Commented] (AVRO-1205) Add Stereotype Annotation to Generated Beans

    [ https://issues.apache.org/jira/browse/AVRO-1205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13497585#comment-13497585 ] 

Doug Cutting commented on AVRO-1205:
------------------------------------

Adding an annotation to emitted classes seems reasonable.

Is there any harm in always generating the annotation?  Why make it optional?

Also, if the annotation is emitted by the specific compiler it should probably be in the package org.apache.avro.specific, not org.apache.avro.reflect, no?

Finally, I note that Java has an annotation for generated code:

http://docs.oracle.com/javase/6/docs/api/javax/annotation/Generated.html

We could instead emit this as something like:

{code}
@javax.annotation.Generated(value = { "avro" });
{code}

but that would be harder to check, since you couldn't just call Class#isAnnotationPresent().
                
> Add Stereotype Annotation to Generated Beans
> --------------------------------------------
>
>                 Key: AVRO-1205
>                 URL: https://issues.apache.org/jira/browse/AVRO-1205
>             Project: Avro
>          Issue Type: New Feature
>          Components: java
>    Affects Versions: 1.7.2
>            Reporter: Sharmarke Aden
>            Priority: Minor
>
> Avro generated schema beans currently lack a formal way of distinguishing them as Avro schema beans at runtime. I would like to propose that a new stereotype annotation be added to Avro Core and the ability to have all Avro generated schema beans annotated with this newly created stereotype annotation.
> I'm planning on adding a FallbackTypeConverter to the Camel-Avro project and I hoping this feature will allow me to cleanly detect Avro beans for conversion at runtime.
> If this feature is implemented Avro schema beans would look something like this:
> {code}
> ...
> @org.apache.avro.reflect.AvroSchema
> public class User extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
> ...
> }
> ...
> {code}
> The maven plugin configuration would look something like this:
> {code}
> <plugin>
>   <groupId>org.apache.avro</groupId>
>   <artifactId>avro-maven-plugin</artifactId>
>   <executions>
>     <execution>
>       <goals>
>         <goal>schema</goal>
>       </goals>
>     </execution>
>   </executions>
>   <configuration>
>    <stereotype>true</stereotype>
>   </configuration>
> </plugin>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira