Tuesday December 05, 2006 Most of breakthroughs depend on setbacks/failures
Java was designed by Sun Microsystems in the early 1990s as a programming tool in a small project (known as "Green Project") initiated by Patrick Naughton, Mike Sheridan, and James Gosling. Green Project’s Team was comprised of just 13 people. Green Team locked them away in an anonymous office on Sand Hill Road in Menlo Park for 18 months to come up with a working demo. In the summer of 1992, they emerged with an interactive, handheld home-entertainment device controller with an animated touchscreen user interface.
![]()
This is when our very own little cartoon character Duke (Java technology mascot), was born and was shown waving and doing cartwheels on the screen.
Gosling called the new language "Oak", after the tree outside his window. As the project gained momentum and started involving potential customers in the cable television industry, project was renamed as "FirstPerson". There was some amount of hesitation in cable companies to accept FirstPerson and thus FirstPerson had to struggle for its target market. Eventually team decided to hit Internet market with "Java". Internet and Java were a match made in heaven and since then there has been no looking back.
Around March 1995, there were only seven or eight binary copies of what they called "jdk 1.0a" outside of Sun. Then team decided to post a "full public" alpha version ("1.0a2") of the Java source code on the Internet. Sometime around mid of 90’s Java source code was pushed to the outside world through net. In few months, the download count reached thousands.
Java Saga
JDK 1.0 (January 23, 1996)- 211 classes in 8 packages
JDK 1.1 (February 19, 1997) - 503 classes in 23 packages
J2SE 1.2 (December 8, 1998) Codename - Playground - 1,520 classes in 59 packages
J2SE 1.3 (May 8, 2000) Codename - Kestrel - HotSpot JVM included
J2SE 1.4 (February 6, 2002) Codename - Merlin - First java release developed under JCP
J2SE 5.0 (September 30, 2004) Codename - Tiger - Introduced significant new language features
J2SE 6.0 Codename - Mustang - JDK 6 Beta is out
J2SE 7.0 Codename - Dolphin - Has HotSpot,javac & JavaHelp as open source components.
Since J2SE 1.4, the evolution of the Java Language has been governed by the Java Community Process (JCP), which uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform.
Mustang and Dolphin, we'll miss you
Sun is retiring some of its dearest-old friends. In order to develop a new project naming system around our open source model, Sun has decided to drop code. So with some sadness, Mustang has been walked out from her stable one last time to let her roam free in the meadows and gates have been opened for Dolphin to return to the sea.
Mustang on java.net is now available as JDK 6.
Our new project can be found at JDK 7.
Thursday November 30, 2006 FOSS is over and what an enriching and memorable experiance it was!!
Open JDK booth was one of the most sought after booth at FOSS. Our team came across all kind of visitors right from students, Java developers to open source contributers.
Java Compiler being opensourced recently, we showcased Demo around it.
Open Source JDk as of today contains below-mentioned components of the JDK -
> The HotSpot Virtual Machine
> The Java programming-language compiler(Javac)
The Java programming-language compiler (javac)
javac, compiles Java source code into bytecode. It can also process annotations found in source and class files using the Pluggable Annotation Processing API.
APIs of javac
> Java Compiler API.
> Pluggable Annotation Processing API.
> The Tree API
Annotation processing is a form of meta-programming. Meta-Programming is based on the structure of a program.
Below is the code for a "Hello World" annotation processor - It traverse through user's Java Program and give user control over code at compile time.
> Annotation processors are run by javac before the input source files are compiled.
> Your Annotation Processor must implement javax.annotation.processing.Processor. Another convenient option is to extend javax.annotation.processing.AbstractProcessor.
> You can write Processors as per need of your Project.
for eg. A processor to point out empty-catch in your code. (Leaving Catches empty can be proved fatal at times)
Similarly Processors can be written to put a check on
> Unused Variables
> For, While Loops
> Imports
> Continue/return statement
> Arrays
> try/catch/throws
> if/else
> expressions etc ................ 
import java.io.*;
public class TestClass {
public static void main(String args[]) {
prats: { System.out.println("Hello World");
}
test: { System.out.println("Good Bye");
}
}
}
import java.util.*;
// import all JSR 199, JSR 269 and Tree API stuff
import javax.annotation.processing.*;
import javax.lang.model.*;
import javax.lang.model.element.*;
import javax.lang.model.type.*;
import javax.tools.*;
import com.sun.source.tree.*;
import com.sun.source.util.*;
// An annotation processor that processes all classes
@SupportedAnnotationTypes("*")
@SupportedSourceVersion(SourceVersion.RELEASE_6)
public class TestProcessor extends AbstractProcessor {
private Trees treeUtils;
public void init(ProcessingEnvironment pe) {
super.init(pe);
treeUtils = Trees.instance(pe);
}
public boolean process(Set extends TypeElement> annotations, RoundEnvironment roundEnv) {
Messager messager = processingEnv.getMessager();
if (! roundEnv.processingOver()) {
Set extends Element> elements = roundEnv.getRootElements();
note(" >>>>>> Traversing Starts Here .....");
for (Element e: elements) {
Tree tree = treeUtils.getTree(e);
if (tree.getKind().equals(Tree.Kind.CLASS)) {
verify((ClassTree)tree);
}
}
}
else{
note(" >>>>>> Traversing Ends Here .....");
}
return true;
}
// verify each class tree
private void verify(ClassTree ct) {
ct.accept(new TreeScanner


In order to Compile TestProcessor.java - javac -classpath $JDK_HOME/lib/tools.jar TestProcessor.java
To use your Annotation Processor - javac -processor TestProcessor TestClass.java
Output as shown in above image would be
Note: >>>>>> Traversing of Tree Starts Here .....
Note: Class >>> TestClass
Note: Method >>> init
Note: Method >>> main
Note: Label Statement >>> prats
Note: Label Statement >>> test
Note: >>>>> Traversing of Tree Ends Here .....
To run TestClass - java TestClass
Output as shown in above image would be
Hello World
Good Bye
Thursday November 23, 2006 
Free and Open-Source Software (FOSS) is the term used for software which user can use for any purpose, can study the source code of, adapt it his/her needs and can redistribute it (modified or unmodified).
This year FOSS is being held at Indian Institute of Science (IISC) on 24,25,26 November.
It was formerly known as Linux-Bangalore and used to be hosted by a local linux-user-group, But was later transmuted as FOSS in order to include other OpenSourced technologies under the same umbrella.
With the announcement of Java being Open Sourced, I am anticipating curious and inquisitive crowd at Sun-Java booth.
Visit Java booth to check out some real cool demos and goodies.
Other products being showcased by Sun are OpenSolaris, Glassfish, Derby, Netbeans, OpenOffice, Grid Engine, BeleniX and Portal.
Schedule of talks@FOSS
This Schedule however does not include the BOF's, which are generated on the fly at venue.
You can check out more details pertaining to FOSS at FOSS.IN
Thursday November 16, 2006 Sun Certified Business Component Developer 5.0 Beta is out.
If you are a EJB Developer,then this is a golden opportunity to get involved in the creation of the SCBCD 5.0 exam.
As a beta tester you get to voice your opinion/feedback about each question you get in the exam. Your feedback would be taken into account while preparing SCBCD certification.
* Beta Dates: December 8, 2006 – January 2, 2007
* Registration Start Date: November 24, 2006
Prerequisites -
* Candidates MUST already be a Sun Certified Programmer (any edition) in order to receive your certification kit if you pass the beta exam.
* It is strongly recommended that beta takers have 4-6 months experience using EJB 3.0.
How to Register?
* You can register online at www.2test.com
* You can also register by phone, by calling your regional Prometric registration office, listed at www.prometric.com/ContactUs/TestTakers.
Objectives -
Please visit - SCBCD 5.0 Beta Objectives
Monday November 13, 2006 ![]()
After so many obstructions and hindrance, Rich Green (VP,Software) yesterday announced open sourcing of Java
Almost the entire Java's stack - Java SE, Java EE, Java EE (excluding small pockets of code) will be made available under GNU General Public License, version 2 to the outside world.
This would enable Java programmers from around the world to contribute to Java's underlying code.
You can checkout live web cast @ http://sun.com/ on Monday, November 13 at 9:30 a.m. PST.
Check out Open-Source JDK Project to join hands for Open-Source JDK, an implementation of the Java Platform, Standard Edition specification defined in the Java Community Process.
As of today this project contains following components of the JDK -
> The HotSpot Virtual Machine
> The Java programming-language compiler (javac)
The remaining of the Open-Source JDK will be made available in the first half of 2007. At that time this project is expected to host source code for complete JDK (except for a few components that Sun doesn't have the right to publish under GPL)
Posted by prats ( Nov 13 2006, 04:25:37 AM PST ) Permalink Comments [0]