Monday Apr 16, 2012

Best Practices for JavaFX 2.0 Enterprise Applications

A new article, up on otn/java, by Java Champion, Oracle Java Evangelist, and JavaFX expert Jim Weaver, titled "Best Practices for JavaFX 2.0 Enterprise Applications (Part One),” explores best practices for developing enterprise applications in JavaFX 2.0.

Weaver illustrates his points by examining a sample application named TweetBrowser which contains the following:

* “A Toolbar containing a TextField and a couple of Button controls for searching and navigating tweets obtained from the Twitter REST API.
* A ListView whose cells contain representations of the tweets. Each tweet is represented by a subclass of ListCell that contains an ImageView for the profile picture and Hyperlink controls that enable the user to navigate to screen names, hashtags, and Web links.
* A ProgressIndicator that spins when a search is performed and a WebView that displays the Web page associated with a Web link in a tweet.”

The TweetBrowser project, which Weaver invites the reader to download, contains the code for the application, portions of which he highlights throughout the article. Techniques and best practices used in the TweetBrowser application include:

    “Invoking an application via Java Web Start from the application’s home page
    Ensuring only one instance of the application is started
    Binding the UI to the model”

Weaver concludes the article by observing that, “Implementing techniques such as invoking an application via Java Web Start from the application’s home page, ensuring only one instance of the application is started, and binding the UI to the model make life easier for both the user and the developer."

Please stay tuned for Part Two of this series where Jim will explore more techniques and best practices used in the TweetBrowser example application.

You'll find Part One here.

Thursday Apr 12, 2012

JavaServer Faces 2.0 for the Cloud

A new article now up on otn/java by Deepak Vohra titled “JSF 2.0 for the Cloud, Part One,” shows how JavaServer Faces 2.0 provides features ideally suited for the virtualized computing resources of the cloud. The article focuses on @ManagedBean annotation, implicit navigation, and resource handling. Vohra illustrates how the container-based model found in Java EE 7, which allows portable applications to target single machines as well as large clusters, is well suited to the cloud architecture.

From the article--

“Cloud services might not have been a factor when JavaServer Faces 2.0 (JSF 2.0) was developed, but JSF 2.0 provides features ideally suited for the cloud, for example:
•    The path-based resource handling in JSF 2.0 makes handling virtualized resources much easier and provides scalability with composite components.
•    REST-style GET requests and bookmarkable URLs in JSF 2.0 support the cloud architecture. Representational State Transfer (REST) software architecture is based on transferring the representation of resources identified by URIs. A RESTful resource or service is made available as a URI path. Resources can be accessed in various formats, such as XML, HTML, plain text, PDF, JPEG, and JSON, among others. REST offers the advantages of being simple, lightweight, and fast.
•    Ajax support in JSF 2.0 is integrable with Software as a Service (SaaS) by providing interactive browser-based Web applications.”
In Part Two of the series, Vohra will examine features such as Ajax support, view parameters, preemptive navigation, event handling, and bookmarkable URLs.

Have a look at the article here.

Tuesday Mar 13, 2012

Key to the Java EE 6 Platform: NetBeans IDE 7.1

Oracle’s Geertjan Wielenga has a new article up on otn/java, titled “Key to the Java EE 6 Platform: NetBeans IDE 7.1,” in which he shows how the NetBeans IDE provides the tools, templates, and code generators to support Java EE 6 and its main specifications.

He initially observes that, “When you begin to grasp the breadth and ambition of the Java EE 6 Platform, which covers everything from the model (JPA and Bean Validation), to the controller (EJB and Servlets), to the view (JavaServer Faces), a simple entry point is difficult to find. Enter NetBeans IDE 7.1, which is Oracle’s IDE for the Java Platform, created by the same group of developers who created the Java EE 6 Platform. Here you find tools, templates, and code generators intended to be used in combination with the set of specifications that the Java EE 6 Platform encompasses.”

After offering a tour of the NetBeans IDE 7.1 tools that support Java EE 6, Wielenga ends on a cautionary note:

“While code generators and tools such as those described here are great to help you get your feet wet, a danger is that a lot of code is generated that you don't understand and that you therefore do not know how to debug and maintain. The good news is that far less code needs to be generated in Java EE 6 than before, making it far easier to understand and maintain.

Nevertheless, it is advisable to use tools of this kind intelligently. Start small, focusing on specific APIs. Get to know them via the generated code and then slowly extend the application as you become more familiar with the Java EE 6 Platform. Once you are comfortable with the spec, the tools aim to help you become more productive: combining the leanness of the Java EE 6 Platform with the tools in the IDE, you'll be rapidly creating the core of your application.”

Check out the article.


Wednesday Nov 30, 2011

The JavaServer Faces 2.2 viewAction Component

Life just got easier for users of JavaServer Faces. In a new article, now up on otn/java, titled “New JavaServer Faces 2.2 Feature: The viewAction Component,” Tom McGinn, Oracle’s Principal Curriculum Developer for Oracle Server Technologies, explores the advantages offered by the JavaServer Faces 2.2 view action feature, which, according to McGinn, “simplifies the process for performing conditional checks on initial and postback requests, enables control over which phase of the lifecycle an action is performed in, and enables both implicit and declarative navigation.”

As McGinn observes: “A view action operates like a button command (UICommand) component. By default, it is executed during the Invoke Application phase in response to an initial request. However, as you'll see, view actions can be invoked during any phase of the lifecycle and, optionally, during postback, making view actions well suited to performing preview checks.”

McGinn explains that the JavaServer Faces 2.2 view action feature offers several advantages over the previous method of performing evaluations before a page is rendered:

   * View actions can be triggered early on, before a full component tree is built, resulting in a lighter weight call.

   * View action timing can be controlled.

   * View actions can be used in the same context as the GET request.

   * View actions support both implicit and explicit navigation.

   * View actions support both non-faces (initial) and faces (postback) requests.

Read the complete article here.

Wednesday Nov 09, 2011

Working with the XML Parser API — JSR 172

Vikram Goyal’s article, “Working with the XML Parser API — JSR 172,” now up on otn/java, covers the basics of the XML Parsing API via a concrete example that uses SAX (Simple API for XML), a parsing method which is now preferred to the alternative method, and DOM (Document Object Model), which has a heavy memory footprint that led the XML Parser API to disallow its use in XML processing. “The XML Parser API,” explains Goyal, “defines the use of the SAX parser for parsing XML documents in resource-constrained devices.”

 

He explains through a working example what the SAX parser is, how it is defined by the API, and how best to use it.

 

From the article:

 

“In a nutshell, for the parsing of a custom XML document, you need to create a handler that extends the DefaultHandler class provided by the API. This custom handler is responsible for listening to the events from the parser and creating the model based on those events (and the supplied data). Your handler is responsible for validating the document and its data.”

 

Read the article.

 

Monday Oct 17, 2011

JavaFX 2.0 Arrives and is Open Sourced

JavafxAmong the big news at JavaOne 2011 was the release of JavaFX 2.0 and announcement of its open source status. As Oracle’s Chief Architect, Client Java Platform Richard Bair observed, “We think this is going to be a really big deal in the industry.” JavaFX 2.0, touted as the next step in the evolution of Java as a rich client platform, is designed to provide a modern Java environment that shortens development time and eases the deployment of data driven-business and enterprise client applications.

 

Its key features include:

 

• Java APIs for JavaFX

 

• FXML -- an XML-based markup language for defining user interfaces

 

• Seamless integration into Swing applications

 

• High-performance hardware accelerated graphics

 

• Embedding of web content into JavaFX

 

• High-performance media engine

 

• Improved UI controls library

 

JavaFX 2.0 enables developers to leverage their existing Java skills and tools to develop JavaFX applications. It offers a clean separation of application UI and logic and simplifies code maintenance while integrating Web content and media seamlessly in Java applications. Developers can more easily create scalable, graphics-rich applications without performance penalties, build sophisticated user interfaces, extend existing Swing applications, and deploy applications in the browser, as desktop, or Web Start applications.

 

Java APIs for JavaFX include:

 

• End-to-end Java development

 

• Java language features—generics, annotations, multi-threading

 

• Reduced static footprint of runtime and applications

 

• Fluent API design for UI construction

 

• Development in alternative languages (e.g., JRuby, Groovy) with JavaFX

 

• Leverage sophisticated Java IDEs, debuggers and profilers

 

• Java APIs preserve convenient JavaFX Script features (e.g., bind)

 

Other features to take note of in JavaFX 2.0:

 

FXML

 

• Scriptable, XML-based markup language for defining user interfaces

 

• Convenient alternative to developing UI programmatically in Java

 

• Easy to learn and intuitive for developers familiar with web technologies or other markup based UI technologies

 

• Powerful scripting feature allows embedding scripts within a FXML file. Any JVM scripting language can be used, including JavaScript, Groovy, and Clojure, among others

 

New Graphics Pipeline for Modern GPUs

 

• New hardware accelerated graphics pipeline (Prism)

 

• New windowing toolkit (Glass) for Prism

 

• Java2D software pipeline for unsupported graphics hardware

 

• High-level support for making rich graphics simple: Shadows, Blurs, Reflections, Effects, 2D and 3D transforms

 

 

Rich Set of UI Controls

 

• Over 50 components for form-based UI, including charts, layout and form controls

 

• CSS3+ skinning and layout of UI controls

 

• Advanced UI controls, including table, tree view, rich text editor

 

 

Web Component

 

• Embed Web content in JavaFX applications

 

• HTML and JavaScript rendering based on Webkit

 

• DOM access and manipulation from Java

 

 

Browser Plug-in Refreshed for JavaFX 2.0

 

• Loading of JavaFX applets based on Prism

 

• Preloader for JavaFX applets for improved user experience

 

 

Powerful Properties Model

 

• New collections ObservableList, Sequence and ObservableMap

 

• New design and implementation of bean properties

 

• Low level binding API for high performance, low footprint bindings

 

• High level binding API for simple usage

 

 

Improved Animation Engine

 

• Optimized implementation of transitions

 

• Complete overhaul of API to simplify usage and in preparation of optimized and more stable implementation

 

 

Approximately 50 JavaFX 2.0 sessions can be found at JavaOne given by leading JavaFX movers and shakers. JavaFX is the next step in the evolution of Java as a rich client platform. Congratulations to all involved!  


Thursday Sep 22, 2011

Integration Testing for Java EE

A new article by Java Champion Adam Bien, now up on otn/java, titled “Integration Testing for Java EE,” explores the intricacies of integration testing, which is done after a successful execution of unit tests, which however, will often fail. According to Bien, unit tests are fast and fine-grained while integration tests are slow and coarse-grained.

From the article:

“Testing everything inside an embedded container is convenient but unproductive. Java EE 6 components are annotated Plain Old Java Objects (POJOs) and can be easily unit tested and mocked out (see my previous article, “Unit Testing for Java EE.") with Java SE tools such as JUnit, TestNG, or Mockito. Using an embedded container to test your business logic is not only unproductive, but it is also conceptually wrong. Unit tests should validate your business logic, not the container behavior. Also, the majority of integration tests could be easily performed with a local EntityManager (see Listing 1) or a mocked-out container infrastructure. Only a fraction of all integration tests can be beneficially implemented with embeddable containers or test frameworks such as Arquillian.”

Read the complete article here.

Wednesday Sep 14, 2011

Working with Java SE 7 Exception Changes

A new article by systems architect Manfred Riem, now up on otn/java, titled “Working with Java SE 7 Exception Changes,” covers important developments in Java 7’s Project Coin, focusing on exception handling -- specifically multi-catch, rethrow, and try-with-resources. Project Coin consists of the following small language changes, which are intended to simplify common programming tasks: strings in switch statements; better integral literals; multi-catch exceptions; improved type inference for generic instance creation; try-with-resources; and simplified varargs method invocation.

From the article itself:

“The exception handling changes in Java SE 7 allow you not only to program more concisely, as demonstrated in the multi-catch examples, but they also allow you to partially handle an exception and then let it bubble up, as covered in the re-throw examples. Java SE 7 also facilitates less error-prone exception cleanup…”

Read the complete article here.

Wednesday Sep 07, 2011

Unit Testing for Java EE tech article on OTN

A new article, titled “Unit Testing for Java EE,” by Java Champion Adam Bien, is up on otn/java’s front page. Bien points out that too many developers believe that testing Java EE applications is too hard, inconvenient, or complex, something that has not been true since the advent of Java EE 5 more than five years ago.

Bien explains: “There is nothing special about unit testing Java EE 6 applications. You only have to add the JUnit library into your pom.xml file (see Listing 5) and put your classes into the src/test/java directory. All JUnit tests will be executed automatically during the standard Maven lifecycle: mvn clean install.”

He goes on to make use of “Mockito” an easy-to-use, open source mocking library. Bien writes:

“Mockito is able to create ‘smart proxies’ (a.k.a. mocks) from classes or interfaces. These proxies do not come with any behavior, but they are still perfectly usable. You can invoke methods, but will get the default values, or null, back. The behavior of the mocks can be recorded after their creation with when(mock.getAnswer()).then(42) syntax.

Mockito is perfectly suitable for ‘simulating’ any inconvenient classes, resources, or services. You can start with Mockito just by knowing a single class org.mockito.Mockito. The when-then ‘domain specific language’ is composed of static methods from the Mockito class. The org.mockito.Mockito class is well documented. In fact, the whole documentation set was generated from the JavaDoc markup in the org.mockito.Mockito class.”

Read the complete article here.

About

Insider News from the Java Team at Oracle!

duke
javeone logo
Links


Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
2
5
6
7
12
13
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today