GeekOut
From APIDesign
(→Bio) |
|||
(7 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]] | [[Image:GeeCON-Food.jpg|320px|right]] | ||
Line 15: | Line 26: | ||
== 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 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]]. | + | 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:
- Three classes of mostly boiler plate code using regular ServiceLoader infrastructure that requires all registered protocol handlers to be instantiated at begining
- Three classes of similar code registered using own annotation and our annotation processor - a system where each handler can be instantiated only when needed - e.g. one by one
- Single class with essential code only - the other classes eliminated by more advanced annotation processor
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: