Best Practice for Deploying ADF application
I am tasked with developing a best or prefered practice of feploying a large ADF application. Background: we are in the process of redeveloping a UI for a large system. We have broken the system down into susbsytems. Each of these susbsystems UI will be a ADF aaplicaion(?). This is a move from a MS .Net front end. The backend (Batch processes etc) is being dveloped in Java. So my question is if I have several ADF projects for each subsystem and common components that they all will use - what is the best practice to compile package and deploy? The deployment will be to weblogic server or servers(Cluster).
We have a team of at least 40 -50 developers worldwide so we are looking for an automated build and deploy and would like to follow Oracle best practice. So far I have read Deploying ADF Applications (http://download.oracle.com/docs/cd/E15523_01/web.1111/e15470/deploy.htm#BGBJHGFH) and have followed the links. I have also look at the ADF evangalist blogs - lots of chatter about ojdeploy. My concern about ojdeploy is that dependent files are also being compiled at the same time. I expected that we want shared dependent files compiled only once (Is that a valid concern)?
So then when we build the source out of subversion (ojdeploy ? Ant? ) then what is best practice to deploy to a weblogic server (wslt admin console) - again we want it to be automated.
Thank you in advance for replies.
RK
Rule 1: Never use the "Automatically Expose UI Componentes in a New Managed Bean" option, create your bindings manually;
Rule 2: Rule 1 is always right;
Rule 3: In doubts, refer to rule 2.
You may also want to check out :
http://groups.google.com/group/adf-methodology
And :
http://www.oracle.com/technology/products/jdev/collateral/4gl/papers/Introduction_Best_Practices.pdf
Similar Messages
-
Best practice for mouseless ADF applications
I am developing an ADF application where the users do not want to use the mouse.
So I would like to know if there are a best practice for this?
I am already using the accessKey functionality and subforms defaultCommand
But I have had problems setting focus to objects on a page like tables. I would like a button to return the focus to the table after it has made the command like delete.
I have implemented a solution where I have found inspiration several threads and other webpages (see below).
Is this solution okay?
Are there any problems with it?
I would also like to know if there are better pathways to go like
out of the box solutions,
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
in advance thanks
Inspiration webpages
https://blogs.oracle.com/jdevotnharvest/entry/how_to_programmatically_set_focus
http://technology.amis.nl/2008/01/04/adf-11g-rich-faces-focus-on-field-after-button-press-or-ppr-including-javascript-in-ppr-response-and-clientlisteners-client-side-programming-in-adf-faces-rich-client-components-part-2/
how to Commit table by writting Java code in Managed Bean?
Table does not refresh and getting error as UIComponent is Null
A short description of the solution:
(jdeveloper version 11.1.1.2.0)
--- Example where I use onSetFocus in jsff page
<af:commandButton text="#{hrsusuiBundle.FOCUS}" id="cb10"
partialSubmit="true" accessKey="f"
shortDesc="Alt+Shift+F"
actionListener="#{managedBean_clientUtils.onSetFocus}">
<af:clientAttribute name="focusField" value="t1"/>
</af:commandButton>
--- Examples where I use doTableActionAndSetFocus in jsff page
--- There have to be a binding in the jsff page to delete, commit and rollback
<af:commandButton text="#{hrsusuiBundle.DELETE}" id="cb4"
accessKey="x"
shortDesc="Alt+Shift+X"
partialSubmit="true"
actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
<af:clientAttribute name="focusField" value="t1"/>
<af:clientAttribute name="actionField" value="Delete"/>
</af:commandButton>
<af:commandButton text="#{hrsusuiBundle.COMMIT}" id="cb5"
accessKey="s" shortDesc="Alt+Shift+S"
partialSubmit="true"
actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
<af:clientAttribute name="focusField" value="t1"/>
<af:clientAttribute name="actionField" value="Commit"/>
</af:commandButton>
<af:commandButton text="#{hrsusuiBundle.ROLLBACK}" id="cb6"
accessKey="z" shortDesc="Alt+Shift+Z"
partialSubmit="true"
actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}"
immediate="true">
<af:resetActionListener/>
<af:clientAttribute name="focusField" value="t1"/>
<af:clientAttribute name="actionField" value="Rollback"/>
</af:commandButton>
--- This is the java class I use
--- It is published in adfc-config.xml as a request scope managedbean
public class ClientUtils {
public ClientUtils() {
public void doTableActionAndSetFocus(ActionEvent event) {
RichCommandButton rcb = (RichCommandButton)event.getSource();
String focusOn = (String)rcb.getAttributes().get("focusField");
String actionToDo = (String)rcb.getAttributes().get("actionField");
UIComponent component = null;
String clientId = null;
component = JSFUtils.findComponentInRoot(focusOn);
clientId = component.getClientId(JSFUtils.getFacesContext());
if ( "Delete".equals(actionToDo) || "Commit".equals(actionToDo) || "Rollback".equals(actionToDo) ){
BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
OperationBinding operationBinding = bindings.getOperationBinding(actionToDo);
Object result = operationBinding.execute();
AdfFacesContext.getCurrentInstance().addPartialTarget(component);
if (clientId != null) {
makeSetFocusJavaScript(clientId);
public static String onSetFocus(ActionEvent event) {
RichCommandButton rcb = (RichCommandButton)event.getSource();
String focusOn = (String)rcb.getAttributes().get("focusField");
String clientId = null;
if (focusOn.contains(":")) {
clientId = focusOn;
} else {
clientId = findComponentsClientIdInRoot(focusOn);
if (clientId != null) {
makeSetFocusJavaScript(clientId);
return null;
private static void writeJavaScriptToClient(String script) {
FacesContext fctx = FacesContext.getCurrentInstance();
ExtendedRenderKitService erks = null;
erks = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
erks.addScript(fctx, script);
public static void makeSetFocusJavaScript(String clientId) {
if (clientId != null) {
StringBuilder script = new StringBuilder();
//use client id to ensure component is found if located in
//naming container
script.append("var textInput = ");
script.append("AdfPage.PAGE.findComponentByAbsoluteId");
script.append ("('"+clientId+"');");
script.append("if(textInput != null){");
script.append("textInput.focus();");
script.append("}");
writeJavaScriptToClient(script.toString());
public static String findComponentsClientIdInRoot(String id) {
UIComponent component = null;
String clientId = null;
component = JSFUtils.findComponentInRoot(id);
clientId = component.getClientId(JSFUtils.getFacesContext());
return clientId;
}Hi,
I am developing an ADF application where the users do not want to use the mouse. So I would like to know if there are a best practice for this?
Well HTML (and this is the user interface you see) follows a tab index navigation that you follow with "tab" and "shift+tab". Anything else is a short cut for which you use mnemonics (as you already do) or shortcuts (explained in http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html). There is a distinction to make between non-web environments (which I think you and your users have abackground in) and client desktop environments. Browsers block some keyboard functionality for their own purpose. So you may have to find a list of keys first that work across browsers. Unlike desktop clients, which allow you to "press a button" without the button to take focus, this cannot be done on the web. So you need to be clever here, avoiding buttons at all.
The following paper is about JavaScript in ADF and explains the basics for what Chris Muir explains in : http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
http://www.oracle.com/technetwork/developer-tools/jdev/1-2011-javascript-302460.pdf
It has the outline for how to register short cut keys that perform a specific action (e.g. register ctrl+d to delete the current row you are on, or press F11 to execute a query (similar to Oracle Forms frmres files)). However, be aware that this includes some code you have to write (actually quite some code to be honest).
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
Actually these are implementations as they come with example code for you to use and customize, do they? So what is this question asking for more ? Also note that global buttons don't quite have anything in common with the question you asked. I assume you want to see it as an implementation of the Forms toolbar that operates on the form or table the focus is in. This however does not work for the web as there is nothing that keeps track of which component has a focus and to what iterator (data block) it belongs. This would involve even more coding (though possibly doable)
Frank -
What is best practice for deploying agent(10204) on RAC 9i
Hello,
What would be best practice for deploying agent(10204) on RAC 9i? Should the agent be deployed on each node or should the agent be deployed on the cluster file system? What are the advantages/disavantages deploy on individual nodes vs. on cluster file system? Please advice. Thank you in advance.Please use agent push application to deploy agent on all the nodes at one shot
Please refer the obe
http://www.oracle.com/technology/obe/obe10gemgc_10203/agentpush/agentpush.htm -
Best practices for deploying EMGrid Control
Can i use one db for OEM & RMAN repository? Looking for Best practices for deploying EMGrid Control in our environment, I have experience working with EMGrid control it was very slow , how to make it fast ? Like i enjoy the speed of EMDBControl....
DBA2008 wrote:
Is this good idea to put RPM recovery catalog & OID schema in OEM Repository DB? I am thinking just to consolidate all these schema's in one db.Unless you are really starved for resources, I would not recommend storing the OID and OEM repositories in the same database. Both of these repositories support different products, and you risk creating unnecessary dependencies when patching or upgrading. As a completely fictitious example, what if your OID installation has a critical issue that requires a repository database upgrade to version 10.2.0.6, and the Grid Control repository database is only certified for version 10.2.0.5?
Regards,
John P.
http://only4left.jpiwowar.com -
Best practices for deploying forms in a 'cluster'?
Anyone know of any public docs that discuss typical best practices for
- forms deployment;
- forms apps management and version control; and/or
- deploying (and keeping) the .frm/frx in sync when using multiple forms servers in a HA or load balancing envrionment?Hi adil,
Based on your description, you want to know the best practices for search service in a SharePoint farm.
Different farms have different search topologies, for the best search performance, I recommend that you follow the guidance for small, medium, and large farms.
The article is about the guidance for different farms.
Search service can run with other services in the same server, if condition permits and you want to have better performance for search service and other services including BI performance, you can deploy search service in dedicated server.
If condition permits, I recommend combining a query component with a front-end Web server to avoid putting crawl components and query components on the same serve.
In your SharePoint farm, you can deploy the query components in a WFE server and the crawl components in an application server.
The articles below describe the best practices for enterprise search.
https://technet.microsoft.com/en-us/library/cc850696(v=office.14).aspx
https://technet.microsoft.com/en-us/library/cc560988(v=office.14).aspx
Best regards
Sara Fan
TechNet Community Support -
Best practices for an oracle application upgrade
Hello,
We have an enterprise application deployed on Oracle Weblogic and connecting to an Oracle database (11g).
The archive is versioned and we are using Weblogic's feature to upgrade to new versions and retire old versions.
In a case of emergency when we need to rollback an upgrade, the job is really easy on Weblogic but not the same on Oracle DB.
For most of our releases, the release package is an ear plus some database scripts.
Releases are deployed with minimum downtime, so while we are releasing our clients are still writing to the DB.
In case of a rollback is needed, we need to make sure the changes we made to the DB structure (Views, SP, Tables...) are reverted but data inserted by clients stayed intact.
Correct me if I am wrong, but Flashback and RMAN TSPITR are not the good options here.
What other people usually do in similar cases? What are best practices and deployment plans for our case?
Guides and direction are welcomed.
Thanks!Hi Magnus
I guess you have to install again to ensure no problems. BP installation also involves ensuring correct SP levels (cannot be higher) for all software components.
Best regards
Ramki -
Best Practices for BI, ADF and Oracle Forms installations on Weblogic
Hi, I'm researching options on upgrading to Oracle 11g Middleware. My company currently has Oracle Forms 10g running on Oracle Application Server.
We are interested in using Oracle Forms 11g, ADF and Jdeveloper, and Business Intelligence with Oracle's Weblogic 10.3.5.
Is there any whitepapers or documentation on best practices for installing alll of these components together?
For instance, can ADF ( with JSF 2.x ) be installed in the same domain as Oracle Forms 11g but use different managed servers?
Will Business Intelligence need to be in a seperate Oracle Home with it's own weblogic installation? I spend a lot of time trying to get the JSF upgraded to 2.x in the Business Intelligence installation and could not get it to work.
I know it's a pretty broad question but thank you for any direction on this.Thanx for the reply! I read through the documents and they are very good at explaining how to install the different components individually. I still can't find much on installing them together. I hope it's not just going to be a trial and error thing.
So far I've installed done the following successfully:
Installed 10.3.5 weblogic
Forms and Reports 11g on top of 10.3.5
I've created an additional managed server for our ADF applications.
My next step is upgrading the JSF to 2.x. I would have to stage patches 12917525 and 12979653. I'm afraid it will break the forms and reports though. Any ideas? -
Best practices for deployment from Dev /Staging /Production in SharePoint ?
Hi All,
What is a best practices to deploy SharePoint Portal to dev / staging / Production.
I have custom solution deployed using WSP file. But I have done some changes using sharepoint designer.
Like as Designer workflow, master pages etc.
How can I deploy my document libraries and list to dev to prod using best practices?
Thanks
Balaji MoreHi,
According to your post, my understanding is that you wanted to know the best practices to deploy SharePoint Portal in different SharePoint environment.
If the site is not existing in the production server, we can save the site from the development server, and then import it to the production server.
But if the site is already existing in the production server, we should follow these steps to just add the taxonomy and content types to the production server:
Save the site from Dev as a template
Import the template as solution in Visual Studio
Remove unnecessary items from the solution(Please pay more attention on it. If a content type/list... in the solution is existing in the production site too, it will replace the
same object existing in the production after deployment)
Package the solution
Deploy the solution in the production
For more detailed, please see:
http://ahmedmadany.wordpress.com/2012/12/30/importing-sharepoint-solution-package-wsp-into-visual-studio-2010/
There is a similar thread for your reference.
http://social.technet.microsoft.com/Forums/en-US/7dcf61a8-1af2-4f83-a04c-ff6c439e8268/best-practices-guide-for-deploying-sharepoint-2010-from-dev-to-test-to-production?forum=sharepointgeneralprevious
Thanks & Regards,
Jason
Jason Guo
TechNet Community Support -
User Authorization, best practices for this custom application requirement?
JDeveloper 12c (12.1.2)
We want to use external LDAP (active directory) with ADF security to authenticate and authorize users.
One of our custom application requirements is that there is a single page with many interactive components. It has probably about 15 tables and each table would need to have the following buttons (or similar components):
- delete: (if certain row is selected) to delete it
- edit: (if certain row is selected) takes user to 'edit page' where changes can be made
- create: to create new record for this particular VO (table)
So let's say that would be 3 x 15 = 45 different actions that single user can possibly perform. Not all users have same 'powers' ie some users can only edit CERTAIN tables, and delete from one or two. Most users can create and edit most VOs etc
Back when this application was originally developed using (I believe) 10g JDeveloper with UIX, the way it was done is that we maintained a table in database with 'user credentials' as Y or N flags.
For example: DEL_VO1, EDIT_VO1, ADD_VO1....
So when user is authenticated we would then pull all these credentials from the DB table and load them into the session variables. Then we would use EL to render or not render certain buttons on the page. For example: rendered="#{sessionScope.appDelVo1 == 'Y'}"
Moving forward into latest ADF technology, what would be the best practice to achieve described functionality?Hi,
ADF BC could have permissions added to the entity level (includes remove and update). So you can create permissions for the entity (as it doesn't matter for data security how data is accessed. If as a user you are nit allowed to change a database table then this is for tables and forms). You can then use EL to check the permission, thus no need to keep the privileges in the database.
If a user is allowed to update an entity then you can check this using EL in the UI
<af:inputText value="#{bindings.DepartmentName.inputValue}"
readOnly="#{!bindings.DepartmentName.hints.updateable}">
whatch this for a full coverage of ADF Security: Oracle ADF Security Overview - Oracle JDeveloper 11g R1 and R2
Frank -
Best webservers for deploying flex application
Hi,
I want to deploy flex application in web server.
I am serching for best and suitable server for deploing flex
application.
any info pls.............Rule 1: Never use the "Automatically Expose UI Componentes in a New Managed Bean" option, create your bindings manually;
Rule 2: Rule 1 is always right;
Rule 3: In doubts, refer to rule 2.
You may also want to check out :
http://groups.google.com/group/adf-methodology
And :
http://www.oracle.com/technology/products/jdev/collateral/4gl/papers/Introduction_Best_Practices.pdf -
Best practices for large ADF projects?
I've heard mention (for example, ADF Large Projects of documentation about dealing with large ADF projects. Where exactly is this documentation? I'm interested in questions like whether Fusion web applications can have more than one ViewController project (different names, of course), more than one Model project, the best way to break up applications for ease of maintenance, etc. Thanks.
MarkI'd like to mention something:
Better have unix machines for your development.
Have at least 3 GB of RAM on windows machines.
Create all your commonly used LOVs & VOs first.
If you use web services extensively, create it as a seperate app.
Make use of popups, it's very user friendly and fast too. You no need to deal with browser back button.
If you want to use common page template, create it at the beginning. It's very difficult if you want to apply it later after you developed pages.
Use declarative components for commonly used forms like address, etc.
Search the forum, you will see couple of good util classes.
When you check-in the code, watch out some of the files don't show up in JDev like connections.xml
Make use of this forum, you will get answers immediately from great experts.
http://www.oracle.com/technology/products/jdev/collateral/4gl/papers/Introduction_Best_Practices.pdf -
Best practice for deploying the license server
Was wondering if there is a best practice guideline or a rule of thumb out there for deploying the license server. For instance, is it better to have one license server and all your products connect to that, dev, QA, prod. Or is it better to have a license server for each deployment, i.e. one for dev one for QA.. etc.
Was wondering if there is a best practice guideline or a rule of thumb out there for deploying the license server. For instance, is it better to have one license server and all your products connect to that, dev, QA, prod. Or is it better to have a license server for each deployment, i.e. one for dev one for QA.. etc.
-
Best Practices for deployment of Oracle 10g database.
Hello ,
Is anyone aware of a whitepaper/ document that talks about best pratices in deploying a database on Oracle 10g and configuration of the database to utilize all the features available in 10g ( eg. ADDM , reports setup etc )
Thanking you in Advance.
Cheers..rCubeAppreciate the input Jaffer. Thanks.
However I was referring to a Best Practices whitepaper like the one existing for Data Guard & MAA available at the follwogng url : - http://www.oracle.com/technology/deploy/availability/htdocs/maa.htm
Is there something available along the same lines ?
Cheers..rCube -
Best practices for a large application
I have an existing application that is written in character
based Oracle Developer and has many forms and reports. A few years
ago I converted an inquiry portion of the system to standard ASP,
this portion has about 25 pages. Initially I want to rewrite the
Inquiry portion in Flex (partly to teach myself flex), but
eventually (soon) I will need to convert the remainder of the
application, so I want a flexible and robust framework from the
beginning.
So far for fun I wrote a simple query and I like what I have
done but I realized that trying to write the entire application in
a single script with hundreds of states would be impossible. The
application is a fairly traditional type app with a login script, a
horizontal menu bar and panels that allow data entry, queries and
reports. In Oracle and ASP each "panel" is a seperate program and
is loaded as needed. I see advantages in this approach, and would
like to continue it (creating as much reusable stuff as possible).
So where can I find documentation, and or examples on the
best practice in laying out a framework for what will eventually be
a sizeable app?
BTW, what about the ever present problem of writing reports?
PaulAs a matter of fact, modules are exactly what you're looking
for! :)
Flex's doc team has a good intro document here:
http://blogs.adobe.com/flexdoc/2007/01/modules_documentation_update.html
And this gentleman has a quick example in his blog:
http://blog.flexexamples.com/2007/08/06/building-a-simple-flex-module/
The app I'm working on now is primarily based on modules, and
they're a good way to keep things organized and keep loading times
low. Documentation on them has been so-so, but its getting better.
There are little undocumented gotchas that you'll undoubtedly run
into as you develop, but they've been covered here and in the
flexcoders Yahoo group time and again, so you'll readily be able to
find help.
When creating a module, you can either place them in the
project that they'll eventually be used with, or create a stand
alone project just for that module (the preferred and more
organized method.) Creating a stand-alone module project is easy:
just change the "mx:Application" tag in your main mxml file to a
"mx:Module" tag instead.
If you're using Cairngorm as your app's framework, you'll
have to tinker with things a bit to get it all working smoothly,
but its not that hard, and I believe the doc team is working on a
definitive method for using modules in Cairngorm based apps.
Hope this helps! -
Best Practice for deploying in Production Cluster
I have the following.
2 Physical machines each running 2 jvm's, thus I have 4 jvm's in my cluster.
We access the jvm's via an IIS plug-in.
When it comes time to do a new .war file migration, do you need to stop the jvm's
first ?
I have tried deploying with the jvm's live, it technically worked but we then
noticed several 404 errors during the day on a servlet that was there. (Called
successfully around the 404)
Anyway, I'm just looking for recomendations on how others deploy to production.
Tim
Tim wrote:
> I have the following.
>
> 2 Physical machines each running 2 jvm's, thus I have 4 jvm's in my cluster.
>
> We access the jvm's via an IIS plug-in.
>
> When it comes time to do a new .war file migration, do you need to stop the jvm's
> first ?
You should be able to redeploy a web application without any
problems? When you get this 404 errors, do you see any stacktrace
on the server window
Kumar
>
>
> I have tried deploying with the jvm's live, it technically worked but we then
> noticed several 404 errors during the day on a servlet that was there. (Called
> successfully around the 404)
>
> Anyway, I'm just looking for recomendations on how others deploy to production.
>
> Tim
Maybe you are looking for
-
Problem with sound and network card
when my mainboard broke down i received other mainboard - 845PE Max - but i didn't get drives to it. Sometimes sound screeched but it worked fine till I reinstall windows. I had to download drives by Live Update, and after i downloaded it all sound s
-
How can I mount a large sparsebundle (450GB) remotely without it hanging?
I have remote access to my Time Capsule set up and am able to see my files. Files on the drive I have no issue accessing, albeit slowly. Unfortunately, however, the files I need to access are stored in a large backup file. What I'm hoping is that th
-
Start up problem.....flashing file icon
Problem: 1) few days ago I configured computer for ethernet link between crt imac and powerbook. 2) Now when I start up on the crt only, I get a flashing globe on a square which turns to a flashing file with a question mark in it. And the start up ne
-
Copied music from my husband's iTunes is showing up Track01, etc
Hello, This evening I wanted to copy some songs from my husband's iTunes library. I selected the songs, made a playlist from them, then copied the playlist to a CD. When I imported the CD into my iTunes, all the songs show up as Track 01, etc, no s
-
Cannot find original signer - AS2 Decoder
BizTalk 2010 - Windows Server 2008 R2 I am setting up an AS2 exchange with a trading partner and I am able to transmits AS2 encoded messages (encrypted, signed, compressed, sync MDN) without any problems. However, when they send messages to ME with