JDeveloper Plugin for Forms2ADF Migration

I’ve migrated my first Oracle Forms module last week. It is the first time for me to be part of a migration project. The colleagues that I am working with instead have a high experience when it comes to ADF and migrating Forms to this technology, while my focus the last couple of years was mostly Oracle Forms. I think that is a possible scenario for many projects, where the aim is to migrate Forms to ADF.

So how can Forms developers start to migrate their application? The first step for me was to gather information on ADF, its architecture and the basics. I tried this with some self training, online materials and the help of my colleagues. When I came to the point to migrate the first module by myself I used the Forms Developer & PITSS.CON to understand how the form worked before and how the workflow was. There are people out there, that tell you that tools won’t do the job for you – and I agree. But they can make your job as a developer much easier. My colleague Mathias Waedt has developed a plugin for JDeveloper, that helps you as a developer when struggling with a migration. It helped me to understand which objects in ADF have been generated and which not. It showed me, were I had to put my effort into. The plugin fetches its information from the PITSS.CON repository.


Unbenannt

When the plugin is started it shows the basic information of the project like the database scheme, the names packages for the different objects (entity objects, view objects, etc.) and some other parameters. With a click on the details tab it is possible to see information of single forms. The form summary tab displays information regarding how many Forms objects already have been transformed to ADF components with PITSS.CON. This gave me a first overview of the upcoming work for that specific module. I saw, that most of the graphical objects were generated and only small modifications  were neccessary here, while I had to modify the business logic that was formerly located in triggers and program units.


Unbenannt2

 

With a click on Form Details it is possible to see which objects have been generated and which not. So for me as a newbie it was a big relief to use this kind of a checklist.


Unbenannt3

You can see all the objects from Oracle Forms and the corresponding generated objects in ADF – with a doubleclick you will directly jump into the generated object (e.g. Java Bean). As a future functionality it is planned to mark the objects that were added by the developer and are considered to be done. So you can work your way through the module without the danger to forget a functionality that was present in Forms up to 100%. The plugin is currently in the beta phase.

How to Download JDK and JRE 7 From My Oracle Support

“IMPORTANT: Downloading JDK and JRE 7 from My Oracle Support requires an account with My Oracle Support.

As of July 14, 2015, JDK 7 and JRE 7 are no longer available for public download. Although the latest version of Oracle Forms, version 11.1.2.2.0 (11gR2) is supported to use JRE 8, it is currently NOT supported to use JDK 8 for Oracle Forms and Reports 11gR2 as well as for other Fusion Middleware products such as ADF (11g and 12c) and OHS (11g and 12c). However, as public downloads for Java 7 are no longer available, there are only two options to download JDK 7.

One method (requires an Oracle account) is to use the Oracle Java Archive: http://www.oracle.com/technetwork/java/archive-139210.html

The second method involves downloading the JDK and JRE from My Oracle Support. The following steps will explain how you can download the latest JDK and JRE 7 from My Oracle Support:

  1. Log into https://support.oracle.com using your My Oracle Support account.
  2. Go to Patches & Updates
  3. Search for the following patches:
    1. JDK/JRE 7u79: 20418638
    2. JDK/JRE 7u80: 20418657
    3. Specify the OS platform of your server environment

image

Select the Patch number on the left side of the table

image
Click “Download”

image
Click the name of the zip file to download it.

Once the JDK and JRE are downloaded, you should be able to find both the JDK and the JRE for the particular OS you selected.”

Thanks to Scott Symonds!

via How to Download JDK and JRE 7 From My Oracle Support – PITSS US – Oracle Forms Upgrade, Forms to ADF, Forms to APEX, Migration.

Java Webstart with Forms – jp2lauchner.exe workaround

Note: If you are searching for webstart in Forms 12c please have a look here.

Many Oracle Forms customers, which already did the migration to the latest Forms version (11.1.2.2.0) from 6i or earlier have realized, that the new applet in which their application is now running is in some situations not that comfortable. Especially the Browser bar is maybe annoying.

Also in some cases we found out, that there is a misbehaviour in Forms 11g – the focus on the forms application is lost. For some users this can be really nasty, especially if the application is used heavily with the keyboard and speed is essential. By the way Google will cancel the NPAPI support for its Browser Chrome – other vendors could follow. So webstart is discussed as an alternative for Forms, since it relying on the use of the Java plugin.

So there is the Java Webstart feature in the JRE since version 1.4.2, which can be also used with Forms (since it is running in an applet).

So you need to create a JSP file with the correct parameters. I will not describe how to do that in this article (You can find a description here)

But if you try this, you will see some problems. First you cannot change the sizing of the application. Second if you close the UnbenanntFormsapplication or the Java Webstart window itself the corresponding processes in windows will still be executed. They transform into kind of a “zombie process”. So what to do? Well for the first part, there is a simple solution. You do not want to change the JSP file, every time you want to change the sizing. So you add parameters to your JSP-file and simply pass them at the startup of the application.

The second part is a little bit tricky. Here you have two options. First you could start the webstart from a prestart form with a webutil_host command and remember the process-ID:

v_command := ‘powershell $pclass = [wmiclass]”root\cimv2:Win32_Process”; $pclass.Create(”C:\Progra~2\Java\jre1.8.0_40\bin\javaws.exe -wait http://vmdaka:9001/webstart_11g/pitss.jsp”, ”.”, $null).ProcessId 2>&1;”exit”’;

v_prozess_id := webutil_host.NonBlocking(v_command);

So here I used powershell, to write the process information into stderr. With following commandI am able to load the stderr into Oracle Forms:

webutil_host.get_standard_output

So now we can implement a KEY-EXIT Trigger a webutil_host command with a kill command and the corresponding process ID.

Another possible and in my opinion smarter solution is the use of a JavaBean, with which we can get the process id from the applet itself. For that you have to create your own Java Bean that inherits the frmall.jar. Please find a tutorial how you can create your own Java Bean for Forms here

Once you created your bean, you can use following code to determine the process id of your webstart session to be able to kill the process correctly:

RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();

With this id you can also kill the jp2launcher.exe on the client side – you have to implement the Bean in your Forms and add the invokation of the bean to receive the Applet process ID. So you can use the POST-FORM-TRIGGER with a webutil-command to shut down the process completly.

If you need assistance feel free to have a look here or to leave a comment under this article.