Saturday, November 17, 2012

Oracle ADF Essentials


Oracle Application Development Framework (Oracle ADF) is a Java EE development framework that simplifies and accelerates enterprise application building. Oracle ADF Essentials is a free packaging of this framework  that can be used to develop and deploy applications without licensing costs.

Saturday, October 6, 2012

JSF: setting EL expression programmatically

Issue
Create a JSF component programmatically and setting a property dynamically (eg disabled, visible, etc).

Solution
Java Server Faces provides an expression language (JSF EL)  used in web application pages to access the JavaBeans components in the page. It is possible to set it programmatically using a javax.el.ValueExpression, an abstract class that provides the API for the Unified Expression Language.

Monday, August 6, 2012

Oracle ADF: af:navigationPane instead af:panelTabbed


Issue

Show Database table rows in an ADF Page using tabs: Each tab have to represent a table record and content's information, there could be many tabs to show.

Solution

The tab content has the same structure for every DB table row. It's possible to use the af:panelTabbed and af:showDetailItem for each row, iterating it with an af:iterator.

  <af:panelTabbed>
     <af:iterator>
       <af:showDetailItem>
         .....
         <!-- tab content -->
         .....
       </af:showDetailItem>
     </af:iterator>
  </af:panelTabbed>

This approach has a disadvantage: the page is rendered with each tab and its content, duplicating the tab detail for each rendered tab (tab content could be very complex). If, in the page, there are many tabs it could slow down the page behavior.
An alternative approach could be simulate the tab behavior using an af:navigationPane. In this case a af:forEach iterates the tabs component represented by the af:commandNavigationItem.

Wednesday, March 30, 2011

Oracle JPublisher to call a stored procedure that use PL/SQL Object Collections

When using java, one might need to call up either a pl/sql procedure, functions or a package stored on the database. One way to do this is to use the standard JDBC (Java Database Connectivity) wrapper, but the Pl/SQL data complexity could make that operation difficult, as might be the case with a Pl/SQL object collection.
JPublisher is an Oracle utility that helps create a java wrapper that will represent database entities: User-defined SQL object types, Object reference types (REF types), User-defined SQL collection types (VARRAY types or nested table types), PL/SQL packages, SQL queries and DML statements. You can find more information about JPublisher here: link

Monday, July 6, 2009

The annotation @WebServiceRef

Look at the annotation WebServiceRef that provide to injects a reference to a web service in this my post published on SpiderLogic bog.

To invoke a method on a session bean, a client does not directly instantiate the bean using the new operator. It use the Dependency Injection (DI) to references the session bean. It is a powerful mechanism used from JavaEE 6 to obtain a resource reference on an object field. It is possible to inject various type of resource, as shown in the next picture (see more …).

Sunday, June 28, 2009

Servlet Reval

Look at the differences between 2.4 and 2.5 versions and between 2.5 and 3.0 versions in this my post published on SpiderLogic bog.

Servlet 2.5 vs Servlet 2.4

The Servlet Version 2.5 introduces an important feature, that makes servlets "modern": the use of J2EE 5 Containers. Other relevant new features are the introduction of Multiple Occurrences for servlet mapping and filter mapping (see more…).

Servlet 3.0 vs Servlet 2.5

The  Servlet version 3.0 follows on from the Servlet 2.5 revolutionary road introducing support for annotations and web fragments and support for suspend / resume to allow async support in servlets. Reading Java Servlet Specification 3.0 (proposed final draft) you can see the changes to Servlet 2.5 as very relevant (see more…).

Thursday, June 18, 2009

Java.nio vs Java.io

NIO construction makes I/O faster than traditional I/O. Look at this my post published on SpiderLogic blog.

This document is not a Java.io or a Java.nio manual, or a technical document about Java.io and Java.nio use. It only attempts to compare these two packages, highlighting differences and features in the most simple way. Java.nio presents new stream commrunication aspects and inserts new buffer, file streaming and socket features (see more …).

java.io overview

This package is used for system input and output through data streams, and serialization. Streams support many different kinds of data, including simple bytes, primitive data types, localized characters, and objects (see more …).

File I/O, java.net socket, and more …

NIO API

The I/O performance, often, is a modern application critical aspect. Operative Systems (OS) continuously improve the I/O performance. JVM provides a uniform operating environment that helps the Java programmer in most of the differences between operating-system environments. This makes it faster and easier to write, but the OS feature becomes hidden. To increase IO performance you could write a specific code to access the OS feature directly, but this isn’t the best solution - your code could be OS dependent. Java.nio provides new equipment to address this problem. It provides high-performance I/O features to perform operations on commonly available commercial operating systems today (see more …).

java.nio overview, Non blocking mode, Buffers, Channels, Selector and more …