Skip to main content

Hot Deployment - What Works, What Doesn't, What's Promising

Hot Deployment was one of the coolest feature of release. Look like there are lot of confusion centered around on this topic. This post is meant for clarifying the offerings on Hot Deployment available with JDeveloper release

Hot Deployment - What Works and What's Promising?
Please see 36.4 Reloading Oracle ADF Metadata in Integrated WebLogic Server in Fusion Developers Guide. Below is the excerpt for your quick reference ....

JDeveloper support for hot reloading of Oracle ADF metadata is an alternative to quitting the running application, editing your project's XML definition files, redeploying, and rerunning the application in Integrated WebLogic Server to view the latest changes.
Changes that you make to the Fusion web application projects will not be picked up automatically by an application that you have deployed to Integrated WebLogic Server. You can, however, reload metadata from the data model project and user interface project any time you want to synchronize the running application with changes you have made to your application's XML definition files.
To reload metadata so your changes are reflected in the deployed Fusion web application, you must recompile the project and refresh the web browser.
Metadata that JDeveloper will hot reload in Integrated WebLogic Server, include:
  • In the data model project, changes to the definition files of business components.
  • In the user interface project, changes to the binding definitions in the page definition files and changes to task flows in the task flow definition files.
This support makes it possible to make incremental changes and test them.

What doesn't work and why?

Well, simply changing the meta xml files or class files will not have any effect on runtime unless you recompile the project and refresh the web browser. This is because the DefinitionManager responsible for detecting meta xml file changes will not check the source folder for changes,rather it will scan output path for modified items. Apparently recompiling the project copy the meta files and class files to the output folder and all works after this step.

Please note that, your web page will continue detecting the changes dynamically(without recompiling the project) as it was doing in prior releases.


florinmarcus said…
Hello Jobinesh,

Interesting post, thanks!

In Release 1, I was able to run the application in Debug mode and I could change code inside java classes without restarting the server.

In Release 2, this feature is not working anymore: when any class changes, after compilation and page run, the classloader throws 500 error: ClassCastException.
Most of the servers don't have hot deployment feature enabled by default. We need to configure hot deployment on our own.

Popular posts from this blog

Happy New Year 2018 !

We can't go back and change the beginning, but we always can start where we are and change the ending. Believe in yourself and you will be unstoppable!

Wishing you and your family a very happy new year 2018 !!!

How to set Bind Variable Values at runtime ?

In this post I'm sharing a couple of approaches for programmatically setting bind variables values at run time. This post is an attempt to explain 'When to use what ?'[ In case if you are familiar with 'Bind Variables' in ADF BC, please refer Section 5.10, Working with Bind Variables in Fusion Developer's Guide ]

1. Set the Bind Variable value using RowSet::setNamedWhereClauseParam(...)

You can use use the setNamedWhereClauseParam(...) method on the ViewObject interface (which extends oracle.jbo.RowSet) to set the value for bind variables. Please note this sets the value on default RowSet. In other words, this doesn't have any effect on the secondary RowSets that you/system generates.
ViewObject vo = am.findViewObject("EmployeesView1"); vo.setNamedWhereClauseParam("bindVarDeptId", new Number(10)); vo.executeQuery();
2. Set the Bind Variable value using ViewObject's VariableValueManager::setVariableValue(...)

VariableValueManager Ma…