Thursday, February 24, 2011

Project Coin Examples with JDK 7 Developer Preview

Mark Reinhold announced availability of the first JDK 7 developer preview today. Reason enough for me to give some of the Project Coin features a shot. I won't get into details here, but instead just show some quick examples. Most of them are self-explanatory anyway.

Source code is also available via github.

Strings in switch

final String str = "foo";

switch (str) {
    case "foo":
        System.out.println("mooh");
        break;
    case "bar":
        System.out.println("miau");
        break;
    default:
        break;
}

Binary integral literals and underscores in numeric literals

final int large = 1_000_000;
System.out.println(large);
   
final int binary = 0b1011;
System.out.println(binary);

Multi-catch and more precise rethrow

class ExA extends Exception {}
class ExB extends Exception {}

public void testMultiCatch() {

    final int a = 0;
        
    try {
        if (a == 0) {
            throw new ExA();
        }
        if (a == 1) {
            throw new ExB();
        }
    } catch (ExA|ExB ex) {
        System.out.println(ex.getClass() + 
             " was thrown and caught");
    }

}

public void testReThrow() throws ExB {

    final int a = 0;

    try {
        if (a == 0) {
            throw new ExA();
        }
        if (a == 1) {
            throw new ExB();
        }
    } catch (final ExA exa) {
        System.out.println("Exa was caught");
    } catch (final Exception ex) {
        System.out.println(ex.getClass() + 
            " was thrown, caught and rethrown");
        throw ex;
    }

}

Improved type inference for generic instance creation (diamond)

final List<String> list = new ArrayList<>();
list.add("Foo");
        
System.out.println(list);

try-with-resources statement

try (final BufferedReader br = new BufferedReader(new FileReader("./TestAutomaticResourceManagement.java"))) {

   String line;
   while ((line = br.readLine()) != null) {
       System.out.println(line);
   }

} catch (final IOException e) {
}

Friday, January 28, 2011

Oracle 1-year review

It's been about a year now since Oracle aquired Sun. Here is a short review of what happened since then:
  • Oracle pulled the plug on the servers of the PostgreSQL build farm with no warning, see here.

  • Oracle kills OpenSolaris? OpenSolaris Board Quits En Masse, see here and here.

  • Prominent Sun employees leave the company, including James Gosling, Tim Bray, Simon Phipps, Tor Norbye, Kohsuke Kawaguchi, see here.

  • Oracle sues Google over use of Java-related patents in Android's Dalvik VM and SDK, see here.

  • OpenOffice.org declares independence from Oracle, becomes LibreOffice, see here.

  • Doug Lea leaves the JCP, see here.

  • Oracle nominates Hologic for JCP, see here.

  • Java SE 7 and SE 8 specs move forward amid protest, see here.

  • Tim Peierls resigned from JCP EC, see here.

  • Apache resigns from JCP EC, see here.

  • Hudson wants to move from Oracle. This story is still going on, see here and here.

  • Ruby on Rails support discontinued in NetBeans IDE, see here.