Java Annotation Facility - A Primer
JDK 5 Has Changed Source Code Generation in a Seminal Way
Mar. 9, 2005 12:00 AM
In this method of invocation we used the -nocompile to ensure that the source file specified isn't complied. The -classpath option specifies the classpath required by the processor. The -A option is ignored by the APT tool and is used by the annotation processor to get any specific processing-related information. In our case, we specified the location of the struts-config.xml in the file system.
The last step is to process the files with the annotation processor. Besides the command line, one could write an ANT Custom Task to generate the code. We strongly recommend that this be done. Since more and more projects are using ANT for automating the build process, it makes more sense to do an ANT build for automating code generation as well.
Writing an ANT task is easy and done by writing a custom task and extending the org.apache.tools.ant.Task class. Once that's done, the next step is to define the attributes and the corresponding setter methods for the attributes. The core processing logic is provided in the execute method called by the ANT framework. In our case, we delegate the bulk of the code generation work to the com.sun.tools.apt.main.Main class from the tools.jar. This is the actual byte code that's also used by the apt command line.
The following XML snippet from an ANT build shows how use the custom ANT task:
In this article we introduced the idea of defining annotation types, how to use defined types as annotation and how to go about generating code or other supporting files based on annotation. This new and powerful technology is transforming the way we code. As more and more tools and products start using this facility, developers will realize improved quality in their code and a concomitant increase in productivity.
Resources JavaCC: https://javacc.dev.java.net/
JSR 175: www.jcp.org/en/jsr/detail?id=175
Reader Feedback: Page 1 of 1
Really Excellent Information. But i have some doubts. initially i have some aversion towards annotations but after reading this article i develop some interest on it. later my R & D i want to create an annotation which is like @Singleton when ever i applied this annotation for a class then i want to make a class as singleton class. could you please help me out from this scenario.
in the same way @ThrowException(exceptionType="ArithmeticException.class")
many more ideas but i couldn't able to move in forward direction because there is no much information about annotations in Google also.
even no where i found the source code of this article. if you have any please send me complete source code with compilation and execution instructions. please please its really great help for me.my id is email@example.com
please send to this mail id .
Terry Corbet commented on 6 Aug 2006
This is a critique for the editor, not the author.
A primer that uses for an example something that requires experience with Struts is not what you should have provided. Ok, so the guy you got to do all the hard work happened to be interested in solving a Struts problem, but your job, as editor, should have been to carefully think through the issues of documenting this new Java facility and providing examples with as little dependence upon some specific toolkit-framework-environment as possible. With Mustang about to add to the value of annotation, I am sure there is much need for carefully-thought-out articles demonstrating valuable, incremental information. When K&R contrived 'Hello World', it was after thoughtful consideration about learning processes. Combined with the fact that the source code was not correctly provided, the overall impression is that you, as an editor, just thought you could get something for nothing and pass it along where enough Google hits would provide the mass of advertising that is blinking all around me as I enter this suggestion.
Vish commented on 21 Jul 2005
Sorry about that. Can you send me an email at firstname.lastname@example.org, and I will send you the src
Bob Shewan commented on 21 Jul 2005
As Neil noted there isn't any source code in the zip file. Would you be kind enough to send what you have.
vish krishnan commented on 13 Mar 2005
Neil, sorry about that. Send me an email and I will send you all the source that I have got. My email is unicode at yahoo dot com (OR) krviswanath at Deloitte dot com
Neil Hornbeck commented on 11 Mar 2005
The source zip file Viswanth1003.zip only contains compiled code.
Subscribe to the World's Most Powerful Newsletters
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22...
Jun. 18, 2018 03:00 AM EDT Reads: 3,006
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018,...
Jun. 18, 2018 02:15 AM EDT Reads: 3,779
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held Novemb...
Jun. 18, 2018 02:00 AM EDT Reads: 2,639
DXWorldEXPO | CloudEXPO are the world's most influential, independent events where Cloud Computing w...
Jun. 18, 2018 01:15 AM EDT Reads: 5,264
Disruption, Innovation, Artificial Intelligence and Machine Learning, Leadership and Management hear...
Jun. 18, 2018 01:00 AM EDT Reads: 1,527
In this Women in Technology Power Panel at 15th Cloud Expo, moderated by Anne Plese, Senior Consulta...
Jun. 18, 2018 01:00 AM EDT Reads: 8,880
Enterprise architects are increasingly adopting multi-cloud strategies as they seek to utilize exist...
Jun. 18, 2018 01:00 AM EDT Reads: 5,448
Enterprises are striving to become digital businesses for differentiated innovation and customer-cen...
Jun. 18, 2018 12:45 AM EDT Reads: 1,576
DXWorldEXPO LLC announced today that Telecom Reseller has been named "Media Sponsor" of CloudEXPO | ...
Jun. 18, 2018 12:00 AM EDT Reads: 4,963
"We host and fully manage cloud data services, whether we store, the data, move the data, or run ana...
Jun. 18, 2018 12:00 AM EDT Reads: 15,558
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple ...
Jun. 17, 2018 11:45 PM EDT Reads: 2,486
"Akvelon is a software development company and we also provide consultancy services to folks who are...
Jun. 17, 2018 09:45 PM EDT Reads: 4,748
In this presentation, you will learn first hand what works and what doesn't while architecting and d...
Jun. 17, 2018 05:45 PM EDT Reads: 2,138
DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, ...
Jun. 17, 2018 05:45 PM EDT Reads: 8,066
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point wh...
Jun. 17, 2018 05:15 PM EDT Reads: 5,209
Modern software design has fundamentally changed how we manage applications, causing many to turn to...
Jun. 17, 2018 04:45 PM EDT Reads: 4,335
In his session at 20th Cloud Expo, Scott Davis, CTO of Embotics, discussed how automation can provid...
Jun. 17, 2018 04:15 PM EDT Reads: 5,916
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, discu...
Jun. 17, 2018 03:00 PM EDT Reads: 6,288
Founded in 2000, Chetu Inc. is a global provider of customized software development solutions and IT...
Jun. 17, 2018 12:45 PM EDT Reads: 3,177
Dynatrace is an application performance management software company with products for the informatio...
Jun. 17, 2018 11:30 AM EDT