Thursday, May 14, 2015

Shared ADF Libraries Within One Application

(JDeveloper 12.1.3, WLS 12.1.3)

This post is inspired from the original post by Andrejus Deploying ADF Applications as Shared Libraries on WLS.

I tried to do the same thing but the only difference is that I tried to keep all the code in one single ADF application.
I think this will keep all code related to the whole application in one place in source control, so maintenance will be easy.
This will also eliminate the necessity of the SharedLib intermediate Application.
And we can deploy the shared libraries changes individually without affecting other parts of the application.
And ofcourse these shared libraries can be accessed from a different ADF application as well.

Departments and Jobs ViewController projects are deployed as Shared ADF Libraries.
HRDashboard project is the main project which will use the two libraries.

Create 2 Deployment profiles in Departments and Jobs ViewController projects as shown below, one an ADF Library Jar profile and another WAR profile.





In the HRDashboard Project, create a weblogic.xml deployment descriptor to add the 2 shared libraries we created above in the Departments and Jobs projects. The names should be same as the WAR profile names.


Add both the library jar files to the HRDashboard project.


Create a WAR deployment profile for the HRDashboard project.


Remove the Contributors for Departments and Jobs in the Library filters of the WAR deployment profile.


Create an EAR Application Deployment Profile by selecting only the HRDashboard WAR deployment profile in Application Assembly.


Deployment Sequence

1.      Deploy both the Departments and Jobs ADF Library  profiles to build the JAR files.
2.      Deploy both the Departments and Jobs WAR profiles to the Weblogic server as Shared Libraries.



3.   Deploy the EAR profile to the Weblogic Server as a standalone application.


Note : It looks like we have to Stop the main Application in the Weblogic Console when we are redeploying any of the shared libraries, otherwise it will not allow us to deploy the shared libraries. We can start it as usual when the shared library deployment is completed.