Rocket Propelled Java	     Andres Almiray	        Canoo Fellow	     Canoo Engineering AG	         @aalmiray
Andres Almiray Speaker Bio	 ■  Java developer since the beginning	 ■  True believer in open source	 ■  Groovy committer si...
Project Lombok Where, Who, How?	                 Why?	 ■  http://projectlombok.org/        ■  Get rid of boiler plate code...
How does it look?    import lombok.Data;	 import lombok.ToString;			 @ToString(includeFieldNames=true)	 @Data public class...
Annotations ■  @Getter / @Setter	          ■    @Cleanup	 ■  @ToString	                  ■    @Synchronized	 ■  @EqualsAnd...
Lombok-pg Where, Who, How	                  Why?	 ■  https://github.com/peichhorn/    ■  Extends Lombok with additional   ...
Groovy AST Transformations Where, Who, How	                   Why?	 ■  https://groovy.codehaus.org	    ■  Groovy plays nic...
Some Annotations ■  @Bindable / @Vetoable	   ■    @Delegate	 ■  @Grab	                   ■    @Log	 ■  @Immutable	        ...
Q&A	Andres Almiray	  @aalmiray
Rocket Propelled Java - Devoxx12
Upcoming SlideShare
Loading in …5
×

Rocket Propelled Java - Devoxx12

1,188 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,188
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rocket Propelled Java - Devoxx12

  1. 1. Rocket Propelled Java Andres Almiray Canoo Fellow Canoo Engineering AG @aalmiray
  2. 2. Andres Almiray Speaker Bio ■  Java developer since the beginning ■  True believer in open source ■  Groovy committer since 2007 ■  Project lead of the Griffon framework ■  Currently working for 3
  3. 3. Project Lombok Where, Who, How? Why? ■  http://projectlombok.org/ ■  Get rid of boiler plate code index.html ■  Compiler does the heavy lifting ■  Reinier Zwitserloot @surial ■  Developers just have to write the ■  Roel Spilker @rspilker essentials ■  Relies on JDK6’s Annotation Processor ■  Modifies Bytecode at compile time 4
  4. 4. How does it look? import lombok.Data; import lombok.ToString; @ToString(includeFieldNames=true) @Data public class DataExample { private final String name; private final String lastName; private int age; } 5
  5. 5. Annotations ■  @Getter / @Setter ■  @Cleanup ■  @ToString ■  @Synchronized ■  @EqualsAndHashCode ■  @SneakyThrows ■  @NoArgsConstructor ■  @Log ■  @RequiredArgsConstructor ■  @Delegate ■  @AllArgsConstructor ■  @Data 6
  6. 6. Lombok-pg Where, Who, How Why? ■  https://github.com/peichhorn/ ■  Extends Lombok with additional lombok-pg/ annotations such as: ■  Philipp Eichhorn ■  @Singleton ■  peichhorn @ github ■  @FluentSetter ■  @Builder ■  Delivers its own common AST ■  and more! API ■  Easier to write cross compiler AST 7
  7. 7. Groovy AST Transformations Where, Who, How Why? ■  https://groovy.codehaus.org ■  Groovy plays nicely with Java ■  The Groovy Team ■  Compile time metaprogramming executes faster than runtime ■  Compile time metaprogramming ■  Changes visible to other JVM ■  Changes registered in the languages bytecode 8
  8. 8. Some Annotations ■  @Bindable / @Vetoable ■  @Delegate ■  @Grab ■  @Log ■  @Immutable ■  @Synchronized ■  @Singleton ■  @AutoClone ■  @ToString ■  @AutoExternalize ■  @EqualsAndHashCode ■  @TupleConstructor ■  @TypeChecked ■  @Canonical ■  @CompileStatic 9
  9. 9. Q&A Andres Almiray @aalmiray

×