JavaOne 2008 Notes

JavaOne 2008 Notes

Stuff of Interest...?

Testing Coverage Tools

  • Cobertura - Cobertura is a free Java tool that calculates the percentage of code accessed by tests. It can be used to identify which parts of your Java program are lacking test coverage. It is based on jcoverage.
  • EclEmma - EclEmma is a free Java code coverage tool for Eclipse, available under the Eclipse Public License. Internally it is based on the EMMA Java code coverage tool, trying to adopt EMMA's philosophy for the Eclipse workbench.
  • EMMA- EMMA is an open-source toolkit for measuring and reporting Java code coverage. EMMA distinguishes itself from other tools by going after a unique feature combination: support for large-scale enterprise software development while keeping individual developer's work fast and iterative.
  • Crap4j - Crap4j is a Java implementation of the CRAP (Change Risk Analysis and Predictions) software metric – a mildly offensive metric name to help protect you from truly offensive code.

Testing APIs

  • JUnit 4.x - JUnit is a simple framework for writing and running automated tests. Version 4 expands and simplifies with Annotations.
  • TestNG - TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use.

Continuous Integration

  • Hudson - Hudson monitors executions of repeated jobs, such as building a software project or jobs run by cron. In a nutshell, Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. It also provides for monitoring the execution of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine.
  • Continuum - Continuum is a continuous integration server for building Java based projects.

Automated Code Quality Tools

  • CheckStyle - Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard.
  • PMD - PMD scans Java source code and looks for potential problems.
  • Findbugs - FindBugs is a program that uses static analysis to look for bugs in Java code.

Automated Documentation

  • UMLGraph - UMLGraph allows the declarative specification and drawing of UML class and sequence diagrams. The UMLGraphDoc doclet automatically adds UML diagrams to JavaDoc documentation.
  • DocWeb - DocWeb is a set of servlets that are essentially equivalent to the JavaDoc tool that is distributed with the JDK. The key difference is that it is designed to be internationalized cooperatively by the community.

Debug Tools

  • mpstat - Report processors related statistics.
  • vmstat - Report virtual memory statistics.
  • iostat - Report CPU statistics and input/output statistics for devices and partitions.
  • Charles - Charles is a Web debugging tool, HTTP monitor, and reverse HTTP proxy for Web developers that includes plain text debugging of HTTPS/SSL. It is built in Java Swing, and runs on all Java platforms. It is an HTTP proxy server that displays requests and responses, complete with HTTP headers. This enables the developer to examine the exact content of HTTP exchanges, including cookies, caching, and redirects. It can also throttle your connection in order to simulate modem conditions. It is a valuable tool for all Web developers and is especially useful for debugging XML RCP, SOAP, Web services, AJAX/XMLHTTP, and Macromedia Flash client-server traffic including AMF, AMF 3, LoadVars, and XML Sockets.

Security Tools

  • Nikto - Nikto is an Open Source (GPL) web server scanner which performs comprehensive tests against web servers for multiple items, including over 3500 potentially dangerous files/CGIs, versions on over 900 servers, and version specific problems on over 250 servers. Scan items and plugins are frequently updated and can be automatically updated (if desired).

Web Sites

Dynamic Scripting Languages

  • Groovy - Groovy is like a super version of Java. It can leverage Java's enterprise capabilities but also has cool productivity features like closures, builders and dynamic typing.
    • is an agile and dynamic language for the Java Virtual Machine
    • builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk
    • makes modern programming features available to Java developers with almost-zero learning curve
    • supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and maintain
    • makes writing shell and build scripts easy with its powerful processing primitives, OO abilities and an Ant DSL
    • increases developer productivity by reducing scaffolding code when developing web, GUI, database or console applications
    • simplifies testing by supporting unit testing and mocking out-of-the-box
    • seamlessly integrates with all existing Java objects and libraries
    • compiles straight to Java bytecode so you can use it anywhere you can use Java
    • Also see: Grails - Grails aims to bring the “coding by convention” paradigm to Groovy. It's an open-source web application framework that leverages the Groovy language and complements Java Web development. You can use Grails as a standalone development environment that hides all configuration details or integrate your Java business logic.
  • JRuby - JRuby is an 100% pure-Java implementation of the Ruby programming language.
    • A 1.8.6 compatible Ruby interpreter written in 100% pure Java
    • Most builtin Ruby classes provided
    • Support for interacting with and defining java classes from within ruby
    • Bean Scripting Framework (BSF) support
    • Distributed under a tri-license (CPL/GPL/LGPL)
  • Jython - Jython is an implementation of the high-level, dynamic, object-oriented language Python seamlessly integrated with the Java platform. The predecessor to Jython, JPython, is certified as 100% Pure Java. Jython is freely available for both commercial and non-commercial use and is distributed with source code. Jython is complementary to Java and is especially suited for the following tasks:
    • Embedded scripting - Java programmers can add the Jython libraries to their system to allow end users to write simple or complicated scripts that add functionality to the application.
    • Interactive experimentation - Jython provides an interactive interpreter that can be used to interact with Java packages or with running Java applications. This allows programmers to experiment and debug any Java system using Jython.
    • Rapid application development - Python programs are typically 2-10X shorter than the equivalent Java program. This translates directly to increased programmer productivity. The seamless interaction between Python and Java allows developers to freely mix the two languages both during development and in shipping products.
    • Dynamic compilation to Java bytecodes - leads to highest possible performance without sacrificing interactivity.
    • Ability to extend existing Java classes in Jython - allows effective use of abstract classes.
    • Optional static compilation - allows creation of applets, servlets, beans, …
    • Bean Properties - make use of Java packages much easier.
    • Python Language - combines remarkable power with very clear syntax. It also supports a full object-oriented programming model which makes it a natural fit for Java's OO design.
  • Scala - Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.
    • Scala is a pure object-oriented language in the sense that every value is an object. Types and behavior of objects are described by classes and traits. Class abstractions are extended by subclassing and a flexible mixin-based composition mechanism as a clean replacement for multiple inheritance.
    • Scala is also a functional language in the sense that every function is a value. Scala provides a lightweight syntax for defining anonymous functions, it supports higher-order functions, it allows functions to be nested, and supports currying. Scala's case classes and its built-in support for pattern matching model algebraic types used in many functional programming languages.
    • Furthermore, Scala's notion of pattern matching naturally extends to the processing of XML data with the help of right-ignoring sequence patterns. In this context, sequence comprehensions are useful for formulating queries. These features make Scala ideal for developing applications like web services (external link).
    • Scala is equipped with an expressive type system that enforces statically that abstractions are used in a safe and coherent manner.
    • Scala provides a unique combination of language mechanisms that make it easy to smoothly add new language constructs in form of libraries.
    • Scala is designed to interoperate well with popular programming environments like the Java 2 Runtime Environment (JRE) and the .NET Framework (CLR). In particular, the interaction with mainstream object-oriented languages like Java and C# is as smooth as possible. Scala has the same compilation model (separate compilation, dynamic class loading) like Java and C# and allows access to thousands of high-quality libraries.

Ajax JavaScript Libraries

  • jQuery User Interface - jQuery UI is a set of themable widgets and interactions, built on top of the jQuery JavaScript Library, that you can use to build highly interactive web applications.
  • ExtJS - Ext JS is a cross-browser JavaScript library for building rich internet applications.
  • dijit - Skinnable, template-driven widgets with accessibility and localization built right in—the way you want it. From accordions to tabs, we have you covered.
  • script.aculo.us - script.aculo.us provides you with easy-to-use, cross-browser user interface JavaScript libraries to make your web sites and web applications fly.
  • Google Gears - Google Gears is an open source project that enables more powerful web applications, by adding new features to your web browser, such as worker pools to mimic threading in JavaScript.
  • Mozilla Prism - Prism is an application that lets users split web applications out of their browser and run them directly on their desktop.
  • Adobe Air - The Adobe AIR runtime lets developers use proven web technologies to build rich Internet applications that deploy to the desktop and run across operating systems.
  • Aptana Jaxer - Jaxer is the world's first true Ajax server. HTML, JavaScript, and CSS are native to Jaxer, as are XMLHttpRequests, JSON, DOM scripting, etc. And as a server it offers access to databases, files, and networking, as well as logging, process management, scalability, security, integration APIs, and extensibility.

The Buzz

  • Glassfish - GlassFish is a free, open source application server which implements the newest features in the Java EE 5 platform. The Java EE 5 platform includes the latest versions of technologies such as such as JavaServer Pages(JSP) 2.1, JavaServer Faces(JSF) 1.2, Servlet 2.5, Enterprise JavaBeans 3.0, Java API for Web Services(JAX-WS) 2.0, Java Architecture for XML Binding(JAXB) 2.0, Web Services Metadata for the Java Platform 1.0, and many other new technologies.
  • JavaFx - JavaFX is a powerful client technology for creating rich Internet applications.

Cloud Computing

  • Amazon EC2 - Amazon EC2 presents a true virtual computing environment, allowing you to use web service interfaces to requisition machines for use, load them with your custom application environment, manage your network's access permissions, and run your image using as many or few systems as you desire.
  • Google App Engine - Google App Engine enables you to build web applications on the same scalable systems that power Google applications.
  • Aptana Cloud - Aptana Cloud is a scalable Elastic Application Cloud featuring the most popular and widely adopted Web infrastructure, ready to use and ready to scale as you need it. Aptana Cloud also plugs right into your IDE to provide instant deployment, smart synchronization, and seamless migration as you scale. Aptana Cloud is ideal for developers who use scripting languages to create Ajax, Facebook, mySpace and all other sorts of Web applications.
javaone_-_may_2008.txt · Last modified: 09/23/2008 18:39 by admin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki