Tuesday Jun 07, 2011

Maven Integration with JDeveloper 11g (11.1.2.0.0)

Thisentry is going to cover the new Maven integration both through a How-To that I've created and live on Oracle's Technology Network (OTN) and through a viewlet that I've created to illustrate how easy it is to leverage Oracle's JDeveloper Maven integration.

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. Maven provides a way to help with managing:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • Software Configuration Management (SCM)
  • Releases
  • Distribution

To see the out-of-the-box integration with Maven provided by Oracle JDeveloper please read my How-To available on OTN here. I've also created a simple video that illustrates creating a Maven
Project in Oracle JDeveloper as well as importing a Maven Project into Oracle JDeveloper which you can view.

For best viewing be sure to select HD in the viewlet video controls and take it full screen also from the controls. Check it out!

Oracle JDeveloper/ADF 11g (11.1.2.0.0 Build 6017) is here!

JDeveloper 11g (11.1.2.0.0 Build 6017) Released!

Oracle JDeveloper/ADF 11.1.2.0.0 (Build 6017) is here and loaded with many new and exciting features including JSF2.0/Facelets support, the new skin editor, as well as Hudson and Maven integration just to name a few. Here are some quotes from our customers:

Customer Quotes

"We are early adopters of JDeveloper and ADF, working from first JDeveloper 10g versions. Amazing work has been accomplished by Oracle during recent years with JDeveloper and ADF technology becoming industry standard when implementing enterprise systems. That being said, we are thrilled with what Oracle will offer us with new JDeveloper 11g R2 (11.1.2) release. Even more industry standards will be supported, among them an important one is JSF 2.0. However, JDeveloper 11g R2 (11.1.2) is not only about new standards, it will deliver next level of product runtime performance. We expect JDeveloper 11g R2 (11.1.2) IDE to be even faster and more reliable. Solid support will be offered for such important areas as Web Services which is especially good news for SOA projects. Red Samurai looks forward to get this new really great tool, JDeveloper 11g R2 (11.1.2), and offer our customers top level quality services." Andrejus Baranovskis, Oracle ACE Director and CEO - Red Samurai Consulting.

"At Axi, we're very happy that we will have Maven support in the next JDeveloper edition,  it brings more freedom of choice, making it easier to import community driven projects based on maven, and -if necessary- gives us the possibility to use all the maven plugins.  In line with this, we’ll have Hudson integration in JDeveloper, so Maven will not only make it a lot easier to enable our projects for Hudson,  it seems that we’ll get a nice continuous integration environment as well!" Gert Leenders, Product Manager at Axi and Member of the Devoxx Steering committee.

"I am looking forward to the release of JDeveloper/ADF 11.1.2.0.0 for several reasons - the most important one is probably JSF 2.0 (and Facelets) support. With JSF 2.0 and Facelets, we can get rid of the JSP view engine (with all of its issues) and take advantage of other JSF 2.0 improvements such as HTTP GET support and use of annotations to simplify the configuration of managed beans. I am also looking forward to the next generation of true enterprise development capabilities in the form of integration with build tools such as Maven and Hudson; out-of-the-box support for Maven builds (and automated builds via Hudson) will bring "continuous build" capabilities to everyone, not just to large teams with the experience and wherewithal to develop this capability on their own. This should assist in bridging the gap between the two "camps" who can benefit from Oracle ADF's productivity; namely Oracle Forms developers and Java developers." John Stegeman - Oracle ACE Director.

Maven Integration with JDeveloper 11g (11.1.2.0.0)

The next part of entry is going to cover the new Maven integration both through a How-To that I've created and live on Oracle's Technology Network (OTN) and through a viewlet that I've created to illustrate how easy it is to leverage Oracle's JDeveloper Maven integration.

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. Maven provides a way to help with managing:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • Software Configuration Management (SCM)
  • Releases
  • Distribution

To see the out-of-the-box integration with Maven provided by Oracle JDeveloper please read my How-To available on OTN here. I've also created a simple viewlet that illustrates creating a Maven Project in Oracle JDeveloper as well as importing a Maven Project into Oracle JDeveloper which is available here.

Development Lifecycle with Oracle JDeveloper 11g

The last thing that I want to cover in this entry related to Oracle JDeveloper 11.1.2.0.0 is that of the Full Development Lifecycle supported by the new release. I've created a viewlet available on OTN that provides the following details:

  • Design
  • Coding
  • Debugging
  • Testing
  • Tuning
  • Building
    • ANT
    • Maven
  • Deploying
  • Team Productivity Center (TPC)
To learn more about the Full Development Lifecycle supported by Oracle JDeveloper please review the viewlet available here.

Wednesday Feb 25, 2009

Reusable ADF Library (RSSFeedReader): Updated to use the iterator component as opposed to the forEach.

In this blog entry I'll demonstrate the creation of a reusable component using JDeveloper/ADF 11g, Rome 1.0 RSS and Atom Utilities, and JDOM 1.0. First I'll provide the links to the required software.

Required Downloads:
JDeveloper 11g
Rome 1.0
JDom 1.1.2
FeedReader Application Workspace

Description of the FeedReader Application:
The simple description of the FeedReader Reusable Component is to create a Fusion Web Application (ADF) which creates both a Model and ViewController project for you. In the model project you want to add the rome.jar and jdom.jar files to your project libraries and classpath. The following steps outline the basic objects I've created for my application.

Feed.java is a simple object with setters and getters that describe the items to be displayed for a particular RSS Feed. The following image is a partial glimpse of the object.
Feed.java


FeedReader.java is an object with two methods processFeed which takes a url and creates a syndication entry that it then passes to the addEntry method which processes each entry 1 by 1 adding them to an ArrayList of Feed objects.
FeedReader.java


Also worth noting are a couple of test clients in the Model project, TestFR.java and FRTestClient.java, that you can take a look at. They were used to validate the data prior to creating the Data Control.

As for creating a Data Control I simply right clicked on the FeedReader.java object and selected create Data Control. The Data Control is needed to expose the attributes and methods to the ViewController. Worth pointing out here is another aspect of the Feed.java object. This object as used in FeedReader.java exposes it's attributes through the Data Control.
Data Control


So now I'll move on to the RSSViewController project. The first thing to do is to create a ADF Bounded Task Flow and to drop a view component on it. The name of the bounded task flow is rsstask-flow-definition and the view is named rssFeedReader.jsff. After creating the bounded task flow I've added a parameter to it for the RSS Feed URL that I'll pass into it as you can see from the following image. The parameter name is RSSURL, it's a string and it is a required input.
ADF Bounded Task Flow


The next step is to set the NDValue for the argument being passed into the processFeed method to the same as that for the Value in the bounded task flow. But first, I must create the rssfeedReader.jsff jsf fragment. I do this by double clicking on the view in the bounded task flow and go with the defaults. I can now design the layout of the jsf fragment. Without going into all the details, I've basically created two outputText components for the titleHead and titleDesc by dragging those attributes from the FeedReader data control onto the jsf fragment. I've then used a For Each operation to iterate through the items of the supplied RSS Feed. Now that this is done, I can select the Bindings tab of the jsf fragment and select the rssFeedReaderPageDef | bindings | processFeed | arg within the Structure Pane and then in the Property Inspector, I set the NDValue to #{pageFlowScope.RSSURL}.
Rss Feed Reader JSF Fragment


I'm almost done. Now to create a deployment profile for the RSSViewController Project. This is done by double clicking on the RSSViewController project, selecting Deployment, selecting New, selecting ADF Library Jar File for the Archive Type, and give it an appropriate name. You should be able to go with the defaults from here but ensure that the Library Dependencies of the Model Project are selected.
Deployment Profile


Also in the RSSViewController Project is a untitled1.jsp jsf page to test out the new reusable ADF Library but I'll explain how to do this in a new workspace to simulate sharing this library with another developer perhaps.

The following image shows what the completed Application Workspace looks like.
Application Workspace


Sharing the Reusable ADF Library:
The first thing to do is to create a new Fusion Web Application Workspace as before. Ensure you've added the rome.jar and jdom.jar files to your project libraries and classpath as before. Then create a new File System Connection to the directory that you've copied the Reusable ADF Library to. After that, in your File System Connections under the Resource Palette, I simply right select the shared library and added it to my project. At this point, I can create a new jsf page and simply drag and drop the bounded task flow from the Component Palette onto my jsf page and supply a RSS Feed URL. Once I'm done with this I can run the page to test it out.
Feed Reader

Note: the jsf fragment is using the iterator component to iterator through the feed.


Feedback is appreciated.

About


I'm a Principal Product Manager in the JDeveloper/ADF product management team. I've been working with JDeveloper since 2004.
twitter
YouTube

Search

Archives
« July 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
Today