-----------------------------------------------------------------
When we attempt a migration from ADF 10g application to ADF 11g, It will get migrated to Trinidad Component. It handles automatically by the IDE(Jdeveloper 11g). You need to select the checkBox Migrate to Trinidad during opening an 10g application into Jdeveloper 11g.
Below is some useful tips::--
Imports
import
org.apache.myfaces.trinidad.component.core.data.CoreTable;
import org.apache.myfaces.trinidad.component.core.input.CoreInputText;
import
org.apache.myfaces.trinidad.component.core.nav.CoreCommandButton;
import
org.apache.myfaces.trinidad.component.html.HtmlRowLayout;
import
org.apache.myfaces.trinidad.component.core.output.CoreMessages;
import
org.apache.myfaces.trinidad.component.core.output.CoreSpacer;
import
org.apache.myfaces.trinidad.component.core.output.CoreOutputText;
import
org.apache.myfaces.trinidad.component.html.HtmlBody;
import
org.apache.myfaces.trinidad.component.html.HtmlCellFormat;
import
org.apache.myfaces.trinidad.component.html.HtmlHead;
import
org.apache.myfaces.trinidad.component.html.HtmlHtml;
import
org.apache.myfaces.trinidad.component.core.output.CoreSpacer;
import
org.apache.myfaces.trinidad.component.core.nav.CoreCommandLink;
import
org.apache.myfaces.trinidad.component.core.layout.CorePanelBox;
import
org.apache.myfaces.trinidad.component.core.layout.CorePanelPage;
import org.apache.myfaces.trinidad.component.core.layout.CorePanelList;
import
org.apache.myfaces.trinidad.component.core.input.CoreSelectOneChoice;
import
org.apache.myfaces.trinidad.component.core.input.CoreInputDate;
import
org.apache.myfaces.trinidad.component.core.input.CoreInputHidden;
import
org.apache.myfaces.trinidad.component.core.input.CoreSelectBooleanCheckbox;
import
org.apache.myfaces.trinidad.component.html.HtmlTableLayout;
import
org.apache.myfaces.trinidad.component.core.input.CoreSelectManyListbox;
import
org.apache.myfaces.trinidad.component.core.input.CoreSelectOneRadio;
import
org.apache.myfaces.trinidad.component.core.input.CoreResetButton;
import
org.apache.myfaces.trinidad.context.RequestContext;
import
org.apache.myfaces.trinidad.logging.TrinidadLogger;
import
javax.el.ValueExpression;
import
org.apache.myfaces.trinidad.component.core.data.CoreColumn;
import
org.apache.myfaces.trinidad.component.core.input.CoreSelectItem;
import
org.apache.myfaces.trinidad.component.core.layout.CorePanelFormLayout;
import
org.apache.myfaces.trinidad.component.core.layout.CoreShowDetail;
import
org.apache.myfaces.trinidad.component.UIXSwitcher;
import
org.apache.myfaces.trinidad.model.RowKeySet;
import
org.apache.myfaces.trinidad.component.core.data.CoreTable;
List of the
Component Classes, which has been Renamed/Changed in Trinidad
Name in 10G CoreObjectSpacer
Name in Trinidad CoreSpacer
Name in 10G CorePanelGroup
Name in Trinidad CorePanelGroupLayout
Name in 10G CoreShowOnePanel
Name in Trinidad CorePanelAccordion
Name in 10G CoreSelectInputDate
Name in Trinidad CoreInputDate
Name in Trinidad CoreSpacer
Name in 10G CorePanelGroup
Name in Trinidad CorePanelGroupLayout
Name in 10G CoreShowOnePanel
Name in Trinidad CorePanelAccordion
Name in 10G CoreSelectInputDate
Name in Trinidad CoreInputDate
List of the
Component Classes, which is not available in Trinidad
CoreTableSelectOne
CoreTableSelectMany
CoreMenuList
CoreCommandMenuItem
CoreTableSelectOne
CoreTableSelectMany
CoreMenuList
CoreCommandMenuItem
RichCommandMenuItem
CoreMenuBar
RichMenuBar
NOTE : An adfinternal package, which has been changed to trinidadinternal; no migration will be available for any code using these APIs, as they were were not supported for use by clients.
CoreMenuBar
RichMenuBar
Region (Region Migration)
NOTE : An adfinternal package, which has been changed to trinidadinternal; no migration will be available for any code using these APIs, as they were were not supported for use by clients.
Depricated
API with Replacement
Deprecated javax.faces.el APIs in 10G
|
Replaced by javax.el APIs in
Trinidad
|
ValueBinding
|
Value
Expression
|
Method
Binding
|
Method
Expression
|
Variable
Resolver
|
Property
Resolver
|
Vb.getValue(Context)
|
Vb.getValue(Context.getELContext)
|
Deprecated APIs in 10G
|
Replaced APIs in Trinidad
|
AdfFacesContext
|
RequestContext
|
AdfFacesFilter
|
TrinidadFilter
|
ADFLogger
|
TrinidadLogger
|
ADFLogRecord
|
TrinidadLogRecord
|
NOTE : 'processScope' has been renamed 'pageFlowScope' in Trinidad.
Manual Changes Needed:
NOTE : (Refer from SRDemoMigration
Guide)
Ø Replace
adfFacesContext References with Trinidad requestContext
In this release, the migration wizard
automates substituting references to adfFacesContext by the
Trinidad equivalent requestContext in pages
and page definitions, however if you have referenced adfFacesContext
in Java code, you need to make this subsitution manually. So we can use
JDeveloper's search/replace in files functionality to accomplish this manually.
Ø Add Whitespace After Colon in EL Expressions Using
Ternary Operation to Avoid JSF 1.2 EL Runtime Error
The JSF
1.2 Expression Language (EL) evaluator currently throws an ELException at runtime trying to parse the : (colon) symbol in ternary expressions if it is
immediately followed by an alphabetic character. The easiest way to workaround
this issue is to search for such occurrences in your pages and add whitespace
around the : in the ternary expression.
Example,welcome.jspx.
...
The
colon needs to be separated from the identifier row
by whitespace to avoid the error. So change the EL expression to have whitespace
after the : like this:
...
To quickly navigate to any file by name, choose Navigate
| Go to File... or press Ctrl+ Alt+ Minus, then begin to type the name of the
file to subset the list and choose the one you want. (No need to remember
what directory it is in!)
|
Ø Add
Immediate="true" To Buttons Bound to Delete Actions If Not Present
As a
best practice, a JSF command component like a "Cancel" or
"Rollback" button should have its immediate
property set to true to
avoid posting any user data in the current form before carrying out the
operation. The SRDemo's SRMain.jspx
page inadvertently did not correctly follow this best practice for the (Cancel)
button in the "Add Note" panel in the page.
Due to
an ADF Faces 10.1.3 issue [Bug 5918302] now fixed in 11g, this best-practice
setting of the immediate
property went unnoticed. Here's why. In JDeveloper 10.1.3 with ADF Faces, when
client-side mandatory attribute enforcement is not in use, a form submitted
with
empty values for server-side mandatory fields is not correctly validated if the
user has not changed the data of any field in the form. In 11g, the validation
is correctly triggered now so we need to correct the situation by adding the immediate="true"
property to this (Cancel) button.
Ø Adjust Reference to Table
SelectionState
The ADF
Faces table has a property named selectionState
whose nested property keySet
returns a Set of keys for the selected rows. The
Apache Trinidad table has a property named selectedRowKeys
that similarly returns a Set of
keys for the selected rows.
Table handling code level in Bean
Set keySet = getHistoryTable().getSelectionState().getKeySet();--> (ADF 10G)
to this:
Set keySet = getHistoryTable().getSelectedRowKeys(); --> (Trinidad)
-----------------------------------------------------
Tool Tip Handling code level
getConfidential().setTip(null); --> (ADF 10G)
to this:
getConfidential().setShortDesc(null); --> (Trinidad)
Migration Tips
·
The
PPR implementation of Trinidad is different from the one in ADF Faces. However,
when you mix ADF Faces components with Trinidad components, avoid Trinidad
components that have integrated PPR behaviour. Only use passive Trinidad
components.
Useful
Link:
·
Trinidad APIs: http://myfaces.apache.org/trinidad/trinidad-api/apidocs/org/apache/myfaces/trinidad/component/core/layout/CoreShowDetail.html
·
SRDemo migration(10.1.3 to Trinidad): http://www.oracle.com/technetwork/developer-tools/jdev/migration-082101.html
·
Trinidad Apache TagDoc: http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/trh_tableLayout.html
How to migrate an adf application?
Trinidad component
How to migrate adf faces to trinidad?
How to migrate adf 10g to trinidad?
How to migrate an adf application?
Trinidad component
How to migrate adf faces to trinidad?
How to migrate adf 10g to trinidad?