I am not clear about your your requirement and we request you to elaborate this.
Also,Refer the below doc and note that resource bundles are not a WebCenter issue, but an application/ADF type of problem.
Oracle® Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework
34.2.5 How to Enable Customizations in Resource Bundles
In order to guide you to the best solution I need more information:
- WebCenter Portal or WebCenter Framework Portal?.
- The external resource bundle is already implemented?. Are there more applications consuming it?.
- Can be modified in Runtime and the changes should be taken without re-deploy?.
With this information I can elaborate a better answer for your requirement.
Based on my experience I created multiple solutions as:
- Resource Bundle managed in a DB Table. Applications loads during the start up the labels and maintain them in applicationScope to be accessed. We add a reload strategy for Runtime changes and an ADF UI Application to manage the labels.
- Create your own implementation to retrieve the labels from a Resource Bundle from a given path configured as JVM parameter.
I am not sure what is the exact difference between Webcenter portal and Framework portal, as i am new to webcenter. But to elaborate more, we have built Portal using webcenter framework, with JSR portlets which are deployed on the weblogic server as Remote port lets. We consume these portlets in our webcenter pages. We also have deployed some Java applications on the same weblogic server which are exposed as services to other external applications. These services are built using Spring so they have the ability to dynamically load the properties at run time. Now we need some properties to be shared between our portlets and the services which are exposed and we want the dynamic loading of these properties in our portlets as well (As it happens in the Spring app).
For the third question you have asked, yes our requirement is to be able to change these properties at run time and changes should be taken without a re-deploy.
Currently we are trying to put in a Jar file and place the jar file in the shared library configured for both the Portlet application and Services. But with this approach we cannot edit the properties at runtime and we have to build the jar file every time and then restart the application.
We are not very inclined to the DB based approach due to some constraints.
You should consider a solution like the following:
- Add a JVM parameter to the managed servers of WC_CustomPortal, WC_Portlets and where your applicaitons are running to know where is the path of the properties file. For exampel -Dtranslation.properties=/opt/translations
- Use the Apache Commons Configuration Library who provides an API to read and add a reload strategy to the properties files.
- Create your own Helper class to make an easier way to manage the properties and deploy it in a common shared-lib to be used by all the applicaitons.
I hope this approach helps you to achieve your requirement.
Thanks Daniel, for your suggestions, unfortunately, i had to just abandon this task due to some more important tasks. i will certainly try the suggested approach.