GeekOut

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(Hack into Your Compiler!)
Current revision (03:28, 5 April 2022) (edit) (undo)
 
(14 intermediate revisions not shown.)
Line 1: Line 1:
-
[User:JaroslavTulach|I]]'ve been invited to talk at [http://geekout.ee/ GeekOut] on Jun 14, 15 2012. I'd like to have about two hour tutorial on [[AnnotationProcessor]]s.
+
[[User:JaroslavTulach|I]]'ve been invited to talk at [http://geekout.ee/ GeekOut] on Jun 14, 15 2012. I'd like to have about two hour tutorial on [[AnnotationProcessor]]s. Slides for my [[GeekOut]] 2012 presentation about processing [[annotations]] [[Media:HackIntoYourCompiler.pdf|are available]] as well as sample code which is at [https://github.com/jtulach/Annotations github repository]. The progress can be observed at:
 +
 
 +
* Three classes of [https://github.com/jtulach/Annotations/blob/05-urlconnection/UniversalResourceLocator/test/org/netbeans/geekout/demo/impl/GeekoutProtocolFactory.java mostly boiler plate code] using regular {{JDK|java/util|ServiceLoader}} infrastructure that requires all registered protocol handlers to be instantiated at begining
 +
* Three classes of [https://github.com/jtulach/Annotations/blob/05-urlconnection/UniversalResourceLocator/test/org/netbeans/geekout/demo/impl/GeekhiProtocolFactory.java similar code] registered using [https://github.com/jtulach/Annotations/blob/05-urlconnection/UniversalResourceLocator/src/org/netbeans/geekout/demo/URLProtocolRegistration.java own annotation] and [https://github.com/jtulach/Annotations/blob/03-annotation/UniversalResourceLocator/src/org/netbeans/geekout/demo/processor/URLProtocolRegistrationProcessor.java our annotation processor] - a system where each handler can be instantiated only when needed - e.g. one by one
 +
* Single class with [https://github.com/jtulach/Annotations/blob/05-urlconnection/UniversalResourceLocator/test/org/netbeans/geekout/demo/impl/GeekciaoConnection.java essential code only] - the other classes eliminated by [https://github.com/jtulach/Annotations/blob/05-urlconnection/UniversalResourceLocator/src/org/netbeans/geekout/demo/processor/URLProtocolRegistrationProcessor.java more advanced annotation processor]
 +
 
 +
[[Category:OpenSourceContribution]]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
[[Image:GeeCON-Food.jpg|320px|right]]
== Hack into Your Compiler! ==
== Hack into Your Compiler! ==
Line 5: Line 18:
Many people are convinced that compilers are complicated science. Right, they sort of are. On the other hand, [[JDK]]6's [[AnnotationProcessor|annotation processing]] [[API]] makes it easier than ever to plug in to the compilation process and participate on producing extra resources, as well as classes.
Many people are convinced that compilers are complicated science. Right, they sort of are. On the other hand, [[JDK]]6's [[AnnotationProcessor|annotation processing]] [[API]] makes it easier than ever to plug in to the compilation process and participate on producing extra resources, as well as classes.
-
During the tutorial we will study the basic behavior of [[AnnotationProcessor|annotation processor]]s, write our [[AnnotationProcessor|annotation processor]], see how it helps performance and we will walk through various examples of existing processors to see that horizons are endless, but also understand the gotchas. Last, but not least we'll uncover the hidden capability of [[AnnotationProcessor|annotation processor]]s to extend any [[JDK]]6 complaint Java IDE.
+
During the tutorial we will study the basic behavior of [[AnnotationProcessor|annotation processor]]s. We will write our own, analyse how it helps performance. We will walk through various examples of existing processors to see how limitless they are (except few gotchas). Last, but not least we'll uncover the hidden capability of [[AnnotationProcessor|annotation processor]]s to extend any [[JDK]]6 complaint Java IDE.
-
If you have never hear of [[AnnotationProcessor|annotation processors]], join our tutorial to get a feel for their power. If you have faced complexity of compilers before, stop by to see how easily is [[JavaC]] extensible. Should you have written [[AnnotationProcessor|annotation processors]] before, visit us anyway - either the tutorial increases your knowledge, or you will help us increase our.
+
If you have never hear of [[AnnotationProcessor|annotation processors]], join our tutorial to get a feel for their power. If you have faced complexity of compilers before, stop by to see how easily is [[JavaC]] extensible. Should you have written [[AnnotationProcessor|annotation processors]] before, visit us anyway - either the tutorial increases your knowledge, or you will increase our.
Let's do some compiler hacking at [[GeekOut]]!
Let's do some compiler hacking at [[GeekOut]]!
== Bio ==
== Bio ==
 +
 +
Jaroslav Tulach is the founder and initial architect of [[NetBeans]], which is not just a well known IDE, but also the first modular desktop application framework written in Java. Maintaining [[NetBeans Platform]], its architecture and [[API]]s has always been the primary focus of Jaroslav. During more than fifteen years of participating in the NetBeans.org project, Jaroslav has seen, made and helped to recover from many design mistakes. Such experience obligated Jaroslav to sit down and summarize it in his [[TheAPIBook|Practical API Book]]. The [[GeekOut]] tutorial is going to be based on Jaroslav's recent experience with making [[NetBeans]] [[API]]s better with the help of compile time [[annotations]].
 +
 +
== Video ==
 +
 +
My two hour presentation was recorded. Here is the result:
 +
 +
[https://vimeo.com/45642784 Part I]:
 +
 +
{{#ev:vimeo|45642784}}
 +
 +
[https://vimeo.com/45632522 Part II]:
 +
 +
{{#ev:vimeo|45632522}}
 +
 +
[[Category:Video]]

Current revision

I've been invited to talk at GeekOut on Jun 14, 15 2012. I'd like to have about two hour tutorial on AnnotationProcessors. Slides for my GeekOut 2012 presentation about processing annotations are available as well as sample code which is at github repository. The progress can be observed at:

Hack into Your Compiler!

Many people are convinced that compilers are complicated science. Right, they sort of are. On the other hand, JDK6's annotation processing API makes it easier than ever to plug in to the compilation process and participate on producing extra resources, as well as classes.

During the tutorial we will study the basic behavior of annotation processors. We will write our own, analyse how it helps performance. We will walk through various examples of existing processors to see how limitless they are (except few gotchas). Last, but not least we'll uncover the hidden capability of annotation processors to extend any JDK6 complaint Java IDE.

If you have never hear of annotation processors, join our tutorial to get a feel for their power. If you have faced complexity of compilers before, stop by to see how easily is JavaC extensible. Should you have written annotation processors before, visit us anyway - either the tutorial increases your knowledge, or you will increase our.

Let's do some compiler hacking at GeekOut!

Bio

Jaroslav Tulach is the founder and initial architect of NetBeans, which is not just a well known IDE, but also the first modular desktop application framework written in Java. Maintaining NetBeans Platform, its architecture and APIs has always been the primary focus of Jaroslav. During more than fifteen years of participating in the NetBeans.org project, Jaroslav has seen, made and helped to recover from many design mistakes. Such experience obligated Jaroslav to sit down and summarize it in his Practical API Book. The GeekOut tutorial is going to be based on Jaroslav's recent experience with making NetBeans APIs better with the help of compile time annotations.

Video

My two hour presentation was recorded. Here is the result:

Part I:

Part II:

Personal tools
buy