Wednesday, January 31, 2007

Grails 0.4 Released...

The Grails developer team is pleased to announce the release 0.4 of Grails. The release can be obtained from the downloads page.
Notable improvements include:
  • ORM enhancements with support for more relationship types, easy transactions and criteria building, constraints to SQL schema mappings, and upgrade to Hibernate 3.2
  • All-new non-invasive plugin system for writing reusable plugins for Grails applications
  • Greater Spring integration thanks to a new syntax for scripting Spring (http://grails.org/Spring+Bean+Builder) and an upgrade to Spring 2.0
  • Easier unit testing of controllers and custom taglibs
  • Validation improvements, including support for inherited constraints and simplified size constraint handling
  • Automatic encoding of unsafe HTML characters and URL parameters in all scaffolding and taglibs
  • Fixes to support Grails on more containers such as GlassFish and over 200 issues and bugs resolved in JIRA
  • Grails now ships with Groovy 1.0!

Tuesday, January 30, 2007

Oracle JDeveloper (10.1.3.2) / WebCenter available for download

Oracle JDeveloper (10.1.3.2.0) extends the SOA development features from the previous release by introducing the Oracle WebCenter extension. Oracle WebCenter Suite combines the standards-based, declarative development of JavaServer Faces (JSF), the flexibility and power of portals, and a set of integrated Web 2.0 services to boost end-user productivity. Oracle WebCenter Suite provides the tools and services to embed portlets, content, customizable components, Web 2.0 content, collaboration and communication services directly into your JavaServer Faces (JSF) application. These WebCenter features are in addition to the large set of new features that were introduced in Oracle JDeveloper 10.1.3.0 and 10.1.3.1.0. For more information on WebCenter, visit the Oracle WebCenter Suite page on OTN.
  o Build Portlets
    o Build JSR 168 portlets
    o Build Oracle PDK-Java portlets
    o Expose JavaServer Faces (JSF) applications as portlets
    o Preconfigured OC4J within Oracle JDeveloper
  o Consume Portlets
    o Consume JSR 168 portlets through WSRP
    o Consume other WSRP portlets
    o Consume Oracle PDK-Java portlets
    o Inter-component communication
  o Business User Web 2.0 Enterprise Mashup Tools
    o Rich Text / Blog Portlet
    o WebClipping Portlet
    o OmniPortlet
  o Runtime Customization
    o showDetailFrame
    o panelCustomizable
  o Integrate Content using JCR 1.0
    o Access content using data controls
    o Access to many content repositories
  o WebCenter Services
    o Secure Enterprise Search (SES)
    o Oracle Communication and Mobility Server (OCMS)
    o Oracle Content Database
    o Discussions
    o Wiki
  o Declarative Security
    o ADF Security Wizard
    o Authorization Editor

  o Lifecycle Tool
    o Embedded Lifecycle Tool
    o Command Line Lifecycle Tool
    o ANT Tasks

Some links:
  o New
Features

  o Download

Saturday, January 27, 2007

JDJ Review: Oracle JDeveloper An IDE Worth a Second Look

jdev_cup_w.pngAs the saying goes you never get a second chance at a first impression. In general, that's true, but if you've been thoroughly revitalized, matured, and cosmetically re-engineered, shouldn't you get a second shot at that first impression? I'd argue that's true of Oracle's Java/J2EE Workbench, Oracle JDeveloper.
- Java Product Review — Oracle JDeveloper An IDE Worth a Second Look

Monday, January 22, 2007

Apple released beta version of Dashcode

Dashcode is a new application for developing Dashboard widgets coming in Mac OS X 10.5 (Leopard). This tools is already available as developer preview on Tiger.

I have installed it and it is really great, easy to use, helping you to create good looking widgets. As usual, like all the Apple development tools it is really intuitive. More than a long blog entry on this I am just pointing you to the DashCode page on the Apple site:
- Dashcode

Thursday, January 18, 2007

Using Oracle Data Integrator on Mac OS X

Oracle just released on OTN a new product "Oracle Data Integrator" (ODI), I wanted to quickly take a look to the product, so I have downloaded it and installed it on my Mac. This product is a 100% Java based solution that you can quickly installed on mac following these steps:

1- Download and unzip ODI from OTN download page (bottom).

2- Open a terminal Window and go to the folder where you have unzipped ODI, you should have the following content:
    - external
    - index.htm
    - oracledi
    - oracledilwd
    - oracledimn
    - setup

Open the index.html and select the Getting Started Guide, this will help you to learn more about ODI using a comprehensive scenario.

3- Setup the environment variables:
   > export ODI_JAVA_HOME=/Library/Java/Home/   (need to be Java 5)
   > export ODI_HOME=<path to ODI installation folder>/odi/oracledi

 

4- Go to the  $ODI_HOME/bin
   > cd
$ODI_HOME/bin

5- Start the HSQL databases that contain the sample application and data:
   > ./startdemo.sh &

This command starts 3 different instances: repo (metadata repository), src (source db), trg (target db) that are used in the Getting Started guide. To stop the DB run the script ./stopdemo.sh .

6- You can now start the designer too using the command:
   > ./designer.sh &

Select the Getting Started project and when you are in the designer switch to the Mac OS X look and feel ;-), using the Menu "Look And Feel > Standard > Mac OS X".



These are the first steps to start with Oracle Data Integrator, you can now follow the Getting Started Guide, to learm more about the product, and since your environment is set you can run any of the command documented in this guide.

Monday, January 8, 2007

Oracle JDeveloper Features Matrix

Not familiar with Oracle JDeveloper? Take a look to the new Oracle JDeveloper 10g (10.1.3.1) matrix, this document exposes in a simple matrix the different features of the Oracle Java, J2EE, SOA development environment...
- Oracle JDeveloper 10.1.3.1.0 Feature Matrix

You can find all the information and download this free Java IDE from OTN.

Sunday, January 7, 2007

How to use SOAP Compression using JAX-RPC, on OC4J

HTTP compression has improved a lot the download time of content from servers. In the context of Web Service it could be very interesting to also use HTTP compression to improve the network traffic. Firs, I am explaining how to compress a SOAP response when you have a Web Service running in Oracle Containers for J2EE (OC4J) using a generic servlet filter. I have to give credit to http://www.thomas-bayer.com/ since he has created the Filter and documented how to do such thing using Axis. 

So you can take a look to the following article for more details, you can read the 2 following article, or jump to the next paragraph that explains how to configure your JAX-RPC based service to send compressed HTTP response.
In this sample I am showing how to compress the SOAP response using a servlet filter, it is also possible to use some other Oracle infrastructure element to achieve that such as Oracle HTTP Server/Apache, or Oracle Webcache.

1- Install the compression filter library in your application

    Download the compression filter library 2wayfilter-1.2.jar and copy it into the Web application's WEB-INF/lib folder

2- Configure your application to use the filter

    The configuration of a servlet filter is done using the web.xml where you reference which servlet or URL will be using the filter. As you may knowin JAX-RPC, the HTTP endpoint of a service are exposed as servlet and defined in the web.xml. You can choose to compress all the endpoint/URL or create a new servlet mapping, that will become a new SOAP endpoint and only compress this one. If you take the option of creating a new endpoint keep in mind that it will not be added to the WSDL automatically, so the client application will have to point explicitly to the compressed endpoint URL to take benefits of it.

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
     version="2.4">
    <servlet>
        <description>Web Service CustomerServiceSoapHttpPort</description>
        <display-name>Web Service CustomerServiceSoapHttpPort</display-name>
        <servlet-name>CustomerServiceSoapHttpPort</servlet-name>
        <servlet-class>demo.oracle.CustomerServiceImpl</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>CustomerServiceSoapHttpPort</servlet-name>
        <url-pattern>CustomerServiceSoapHttpPort</url-pattern>
    </servlet-mapping>
   
    <!-- New servlet mapping to handle compressed SOAP Messages -->
    <servlet-mapping>
        <servlet-name>CustomerServiceSoapHttpPort</servlet-name>
        <url-pattern>CompressedCustomerServiceSoapHttpPort</url-pattern>
    </servlet-mapping>

   
    <!-- Filter definition with mapping on the compressed endpoint -->
    <filter>
        <filter-name>2WayFilter</filter-name>
        <filter-class>com.osmoticweb.gzipfilter.GZIP2WayFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>2WayFilter</filter-name>
        <url-pattern>CompressedCustomerServiceSoapHttpPort</url-pattern>
    </filter-mapping>   
   
</web-app>

You can now package and deploy your application.

3- Create & Invoke the service

In this basic configuration you have only changed the servlet that is the HTTP endpoint of your service. So the compressed endpoint is not present in the WSDL, but you can use any of the URL to create your proxy.

When you have created your proxy, if you want to access the endpoint that will return the compressed response you must be sure that you are calling the correct endpoint. You can set the endpoint using the setEndpoint method, of your Web Service client.

This is it!
I will in a next post explain how you can using the Oracle Web Service client API send a compressed request that will have to be uncompressed on the server using the same filter.

Tuesday, January 2, 2007

Groovy 1.0 released

Groovy release 1.0 is here now ! You can find the release at the following location: - http://dist.codehaus.org/groovy/distributions/ Congratulations to all the Groovy developers, and users that have done a great job with this language that is here in production. And it is interesting to see that more and more projects are using Groovy as part of their infrastructure to simplify development: - SOAPUI - XWiki - Spring 2 integration - Grails - ... and many development teams in custom projects So once again happy new year to all... and enjoy it with Groovy !