Tuesday, February 17, 2009

Migrating ADF app from JDev 10.1.3.x to JDev 11g

I guess I had not thought this all the way through before. Now that I have, perhaps others can benefit.

Let's say you have an ADF application and you want to migrate the application to JDeveloper 11g.

From reading the forum I gather it matters (perhaps it does not any more...it mattered in October 2008)

First, know that today I created an application in ADF in 10.1.3.3.0 using ADF/BC and JSF. I used order and order_items tables to create the simplest possible default, read-only drag and drop page. Then I copied that Application folder over the analogous mywork folder on the JDev 11g side, pasted it in, and opened it in JDev 11.1.1.0.1. A migration wizard opens up and tells me that not only is it converting my J2EE technologies to Java EE 5.0 (i.e., JSTL 1.0/1.1 to 1.2, and JSF 1.1 to 1.2), but also is migrating me to the Apache Trinidad JSF libraries automatically. (Also the migration wizard told me it is migrating me to Webapp 2.5...not sure what that entails...I thought it was the same as going from J2EE to Java EE 5.0...but maybe not). So when I click Finish, the migration successfully migrated this simple app. I then ran my one view/screen in this app.

Failure. Damn...but the failure exception trace showed a problem finding the class UIXPanelTag. So I searched for UIXPanel in all the files in my converted Application using the Search Files menu command. The only references it found were in a jar file located in WEB-INF/lib. So I looked in my project properties... Basically I had gotten accustomed to including ADF Libraries, ADF Portlet library, and Custom Components library in my JDev 10.1.3.3.0 instance. So when I created this quick little ADF app, those files got included as well...which makes sense for the ADF libraries, but the wizard did not know what to do with the portlet or the custom component libraries, so it just made like they existed...unfortunately...apparently they do not...at least not by the same name... So a compile error happened when I tried to build/run the application.

So my solution was to open the view project properties, remove the portlet and cust comp tag libraries, then also removed the place holder entries for all the libraries JDev 11 could not find, but were referenced since this was a converted app.

Then the app ran fine!!! Whee!

Also (for more complex projects...like good ol' SRDemo application) basic migration process is explained here (thanks again to Shay Shmeltzer for calling to Steve Muench article!!!!!): http://www.oracle.com/technology/products/jdev/collateral/migration.html

Thanks also to Shay for also noting that, "if your migration process get stuck - try invoking JDeveloper using the jdev.exe and look for any specific exception in the console window."

3 comments:

Tammy said...

Hey Fons! It's Tammy. Guess what? This post helped me figure out a class missing error for UIXShowDetailTag. Sure enough, deleting the custom components library and the custComps.jar took care of it. Thanks!

Michael A. Fons said...

Hi Tammy!! I am so glad to have helped you for once!!

I am glad you are working on 11g, too. I wish I was during working hours.

I will get on AM so we can talk...

Maroof Ahmad said...

Hey Michel,
Really you did good work like first searching class and not used jar file deleting from project. Its good way to debugging. i faced same problem and solved from your post.

Thanks
Maroof