NChar support in ADF BC

Our database uses non-unicode character set and we needed to support unicode using NVARCHAR2 columns. ADF does not support it in current version (10.1.3.0.4 or 10.1.3.1), so I developed a workaround. It uses custom SqlBuilder and publish it here for someone it could help.
Steps to use it:
* entities that should support NCHAR must extend MyEntityImpl (source below, just to be able to call protected methods).
* you need to set the property jbo.SQLBuilder to my sql builder implementation (due to a bug, you have either to set the option for all application modules in a JVM or you'd better to set it for whole JVM using -D option - AM under some circumstances overwrite each other's settings).
* manually set the Database Column Type on the entity attribute to NCHAR/NVARCHAR2 (synchronization will ask to convert it back to CHAR/VARCHAR2 - don't synchronize!)
* if you set bind variables in where clause using setWhereClauseParams, convert the string values using getNCharized static method in the sql builder. SQL builder will later recognize it and bind correctly.
Here are the sources:
OracleNCharSqlBuilder.java
package sk.transacty.bc4j.ncharsup;
import com.sun.java.util.collections.*;
import java.io.UnsupportedEncodingException;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import oracle.jbo.Transaction;
import oracle.jbo.Version;
import oracle.jbo.common.Diagnostic;
import oracle.jbo.server.AttributeDefImpl;
import oracle.jbo.server.DBTransaction;
import oracle.jbo.server.DBTransactionImpl;
import oracle.jbo.server.EntityDefImpl;
import oracle.jbo.server.EntityImpl;
import oracle.jbo.server.OracleSQLBuilderImpl;
import oracle.jbo.server.SQLBuilder;
import oracle.jdbc.OraclePreparedStatement;
import org.apache.commons.codec.binary.Base64;
* <p>Rozsirenie OracleSQLBuilderImpl o podporu nastavovania setFormOfUse(x, FORM_NCHAR) pre spravne
* fungovanie unicode parametrov.
* <p>Kedze sa spolieha na implementaciu v nadtriede, ktora nie je dokumentovana a moze sa zmenit, testuje verziu
* BC4J a hodi chybu, ak je to nepodporovana verzia. V principe mozno v buducnosti porovnat dekompilovanu
* OracleSQLBuilderImpl z najvyssej testovanej verzie s touto a ak sa nijako nezmenila (co je, dufam, pravdepodobne),
* iba povolit vyssiu verziu. V opacnom pripade bude treba mozno robit upravy.
* <p>NChar stlpce budu fungovat, ak JVM parameter -Doracle.jdbc.defaultNChar je false alebo nie je (kontroluje sa to).
* Nastavuje sa len FORM_NCHAR pre Nchar stlpce, FORM_CHAR sa nenastavuje (aby sme co najmene ovplyvnili aspon
* ne-unicode aplikacie, ak by doslo k nekompatibilnym zmenam v ADF BC).
* <p>NChar stlpce nebudu fungovat korektne, ak:<ul>
*   <li>režim zamykania je Optimistic update
*   <li>typ NChar je v kľúčových stĺpcoch (prim. a cudzích kľúčoch, detailrowsetoch cez viewlink apod.)
*   <li>asi nefunguje pre pomenované bind premenné typu NChar...
* </ul>
* @author Viliam Durina, First Data SK, 8. dec 2006
public class OracleNCharSqlBuilder extends OracleSQLBuilderImpl {
   * BOM - byte order mark UTF-8, ktora sa pridava na zaciatok Stringov na odlisenia ncharizovanych retazcov.
  private static final String BOM;
  static {
    byte[] BOM_BYTES = new byte[] { (byte)0xef, (byte)0xbb, (byte)0xbf };
    try {
      BOM = new String(BOM_BYTES, "windows-1250");
    } catch (UnsupportedEncodingException e) {
      throw new RuntimeException(e);
  private OracleNCharSqlBuilder() {
    // overenie verzie ADF BC
    if ( ! (Version.major == 10 && Version.minor == 1 && Version.revision == 3 && Version.bldnum >= 3653 && Version.bldnum <= 3984)) {
      String msg = "Incorrect ADF BC version, tested with: 10.1.3.36.53 - 10.1.3.39.84";
      System.out.println(msg);
      throw new RuntimeException(msg);
   * Singleton instancia
  private static SQLBuilder mSQLBuilderInterface;
   * Vrati singleton instanciu.
  public static synchronized SQLBuilder getInterface() {
    if (mSQLBuilderInterface == null) {
      if (Diagnostic.isOn())
        Diagnostic.println("OracleNCharSqlBuilder reached getInterface");
      if ("true".equalsIgnoreCase(System.getProperty("oracle.jdbc.defaultNChar"))) {
        System.err.println("Parameter oracle.jdbc.defaultNChar is true, falling back to standard OracleSQLBuilderImpl");
        mSQLBuilderInterface = OracleSQLBuilderImpl.getInterface();
      else
        mSQLBuilderInterface = new OracleNCharSqlBuilder();
    return mSQLBuilderInterface;
  private void setFormOfUse(PreparedStatement stmt, int idx, String typ) {
    /*if ("CHAR".equalsIgnoreCase(typ) || "VARCHAR2".equalsIgnoreCase(typ) || "CLOB".equalsIgnoreCase(typ))
      ((OraclePreparedStatement)stmt).setFormOfUse(idx, OraclePreparedStatement.FORM_CHAR);
    else */
    if ("NCHAR".equalsIgnoreCase(typ) || "NVARCHAR2".equalsIgnoreCase(typ) || "NCLOB".equalsIgnoreCase(typ))
      ((OraclePreparedStatement)stmt).setFormOfUse(idx, OraclePreparedStatement.FORM_NCHAR);
   * retrList by mala byt mapa <Integer,AttributeDef>, kde kluc je bindIndex a attrDef sa cekuje, ci nie je
   * niektory z NChar typov. Odvodene z dekompilovaneho OracleSQLBuilderImpl.
  private void updateRetrList(HashMap retrList, PreparedStatement stmt, StringBuffer indices) {
    Iterator it = retrList.keySet().iterator();
    while (it.hasNext()) {
      Integer idx = (Integer)it.next();
      AttributeDefImpl adef = (AttributeDefImpl)retrList.get(idx);
      setFormOfUse(stmt, idx, adef.getObjectType());
      if (Diagnostic.isOn()) {
        indices.append(idx);
        indices.append(',');
   * Nastavi setFormOfUse pre NChar stlpce.
   * Keďže sa nastavuje podľa indexov, musí to presne kopírovať logiku v nadtriede.
   * Odvodene z dekompilovaneho OracleSQLBuilderImpl.
  public int bindUpdateStatement(EntityImpl _entityContext,
                               PreparedStatement stmt, AttributeDefImpl[] cols,
                               AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols,
                               HashMap retrList,
                               boolean batchMode)
  throws SQLException {
    MyEntityImpl entityContext = null;
    StringBuffer indices = null;
    if (_entityContext instanceof MyEntityImpl) entityContext = (MyEntityImpl)_entityContext;
    if (entityContext != null) {
      int i = 1;
      if (Diagnostic.isOn())
        indices = new StringBuffer(256);
      EntityDefImpl entitydefimpl = entityContext.getEntityDef();
      DBTransaction dbtransactionimpl = entityContext.getDBTransaction();
      boolean isLockOptUpdate = dbtransactionimpl.getLockingMode() == Transaction.LOCK_OPTUPDATE;
      boolean onlyChanged = isLockOptUpdate || entitydefimpl.isUpdateChangedColumns();
      for (int j1 = 0; j1 < cols.length; j1++) {
        if (batchMode || (onlyChanged ? entityContext.isAttributeChanged(cols[j1].getIndex())
            : entityContext.isAttributePopulated(cols[j1].getIndex()))
          setFormOfUse(stmt, i, cols[j1].getObjectType());
          if (Diagnostic.isOn()) {
            indices.append(i);
            indices.append(',');
          i++;
    int res = super.bindUpdateStatement(_entityContext, stmt, cols, retrCols, retrKeyCols, retrList, batchMode);
    if (entityContext != null) {
      updateRetrList(retrList, stmt, indices);
    if (Diagnostic.isOn() && indices != null) {
      // odstranime poslednu ciarku
      if (indices.length() > 1) indices.setLength(indices.length() - 1);
      Diagnostic.println("OracleNCharSqlBuilder: FORM_NCHAR set for indices: " + indices);
    return res;
   * Nastavi setFormOfUse pre NChar stlpce.
   * Keďže sa nastavuje podľa indexov, musí to presne kopírovať logiku v nadtriede.
   * Odvodene z dekompilovaneho OracleSQLBuilderImpl.
  public int bindInsertStatement(EntityImpl _entityContext,
                               PreparedStatement stmt, AttributeDefImpl[] cols,
                                 AttributeDefImpl[] retrCols, AttributeDefImpl[] retrKeyCols,
                               com.sun.java.util.collections.HashMap retrList,
                               boolean batchMode)
  throws SQLException {
    MyEntityImpl entityContext = null;
    StringBuffer indices = null;
    if (_entityContext instanceof MyEntityImpl) entityContext = (MyEntityImpl)_entityContext;
    if (entityContext != null) {
      int i = 1;
      if (Diagnostic.isOn())
        indices = new StringBuffer(256);
      EntityDefImpl entitydefimpl = entityContext.getEntityDef();
      boolean onlyChanged = entitydefimpl.isUpdateChangedColumns();
      for (int j1 = 0; j1 < cols.length; j1++)
        if (batchMode || ! onlyChanged || entityContext.isAttributeChanged(cols[j1].getIndex())) {
          setFormOfUse(stmt, i, cols[j1].getObjectType());
          if (Diagnostic.isOn()) {
            indices.append(i);
            indices.append(',');
          i++;
    int res = super.bindInsertStatement(_entityContext, stmt, cols, retrCols, retrKeyCols, retrList, batchMode);
    if (entityContext != null) {
      updateRetrList(retrList, stmt, indices);
    if (Diagnostic.isOn() && indices != null) {
      // odstranime poslednu ciarku
      if (indices.length() > 1) indices.setLength(indices.length() - 1);
      Diagnostic.println("OracleNCharSqlBuilder: FORM_NCHAR set for indices: " + indices);
    return res;
   * Nastavi setFormOfUse pre NChar stlpce.
   * Odvodene z dekompilovaneho OracleSQLBuilderImpl. Volá sa interne z iných metód v nadtriede,
   * sem sa dostane každý objekt nastavený na ViewObjekte cez setWhereClauseParams.
  protected int bindParamValue(int bindingStyle,
                             java.lang.Object value, DBTransactionImpl trans,
                             PreparedStatement stmt, AttributeDefImpl attrDef,
                             int bindIndex,
                             boolean skipNull)
  throws SQLException {
    if (value != null && value instanceof String) {
      String s = unNCharize((String)value);
      if (s != value) {
        ((OraclePreparedStatement)stmt).setFormOfUse(bindIndex, OraclePreparedStatement.FORM_NCHAR);
        if(Diagnostic.isOn())
          Diagnostic.println("Setting FORM_NCHAR for index " + bindIndex);
        value = s;
    return super.bindParamValue(bindingStyle, value, trans, stmt, attrDef, bindIndex, skipNull);
   * Funkcia na oklamanie DBSerializera a zamaskovanie Unicode-stringov. Takto zamaskovane
   * Stringy sa obnovuju na povodne funkciou unNCharize.
   * Maskovanie prebieha tak, ze sa vyberu bajty v kodovani UTF-8, zakoduju base64 algoritmom a
   * prida sa BOM na zaciatok. Vysledny
   * String bude sice zmrseny, ale nedojde k dalsiemu zmrseniu po deserializacii z PS_TXN.
   * Takto zmrsene stringy sa pred bindovanim detekuju v unNCharize a obnovia na pekne unicode
   * stringy.
   * Je mala sanca, ze bezne stringy budu vyzerat ako zmrsene (teda zacinat znakmi EF BB BF vo
   * win1250 kodovani). Dufam...
   * @see #unNCharize(String)
  public static String getNCharized(String in) {
    if (in == null) return null;
    try {
      byte[] b = in.getBytes("utf-8");
      b = Base64.encodeBase64(b);
      return BOM + new String(b);
    } catch (UnsupportedEncodingException e) {
      throw new RuntimeException(e);
   * Detekuje a pripadne obnovi Stringy zmrsene na ulozitelnu formu funkciou getNCharized
   * @see #getNCharized(String)
  public static String unNCharize(String in) {
    if (in == null) return null;
    if (in.startsWith(BOM)) {
      try {
        byte[] b = in.substring(3).getBytes();
        b = Base64.decodeBase64(b);
        return new String(b, "utf-8");
      } catch (UnsupportedEncodingException e) {
        throw new RuntimeException(e);
      } catch (RuntimeException e) {
        return in;
    } else
      return in;
}MyEntityImpl.java
package sk.transacty.bc4j.ncharsup;
import oracle.jbo.server.EntityDefImpl;
import oracle.jbo.server.EntityImpl;
* Implementacia entity, ktora "zviditelni" niektore protected metody z EntityImpl pre nas package
public class MyEntityImpl extends EntityImpl {
  protected EntityDefImpl getEntityDef() {
    return super.getEntityDef();
  protected boolean isAttributeChanged(int i) {
    return super.isAttributeChanged(i);
  protected boolean isAttributePopulated(int i) {
    return super.isAttributePopulated(i);
}Notes:
* NChar will not work if:
** "Optimistic update" locking mode is used
** NChar columns are in key columns (primary or foreign keys, detail rowsets etc.)
** named bind variables probably don't work
* if jbo.debugoutput is turned on, it will print messages about setting setFormOfUse
* implementation overrides methods marked as "subject to change" - version check takes place in the constructor and exception is thrown. Will need to be rechecked in future ADF versions (if this functionality will not be implemented by default, I filled an Enhancement request).
Viliam

Hi,
You can get User name using EL ---adf.context.securityContext.userName
and also using---getUserPrincipalName()
Thanks,
Vijay

Similar Messages

  • Facelet support in ADF 11g

    Hi all,
    I am wondering if Facelet is officially supported in ADF 11g (currently looking at 11.1.1.3)
    I searched through both "Fusion Developer's Guide" and "Web User Interface Developer's Guide", neither guide talks about facelet support.
    Any advice is appreciated.
    Thanks,
    Ben Tse

    Depends on what you are looking to do.
    If you just want to build a facelets application then yes you can create a new web project and under the new gallery->web tier you'll see the ability to create facelets pages.
    ADF integration with facelets is going to be more extensive in the next major release that is planned to supports JSF 2.0.

  • Can anybody explain what is support for ADF Project and to solve the Issues

    Hi,
    I am new to ADF and i am currently associated to ADF Support Project.
    Can anybody explain what is support for ADF Project and to solve the Issues when the ADF Project is in Live.
    we are getting the Tickets for the Issues.
    Thanks in advance.

    I agree with Timo.
    It depends on the size of the project, user base, technologies, etc. We use lot of technologies in fusion middleware stack. We get tickets in many areas.
    In your case, it could be anything like user training issues (user may not know how to use the some system features), browser issues like blank screen, bugs in code like JBO errors (failed to validate, another user has changed row, failed to lock the record, NullPointerException, IllegalArgumentException etc), business logic issues, page may not render properly, performance issues, partial commit issues, application server issues, authentication issues. If you use web services you might get web services related problems.

  • Firefox 4 support in ADF

    Hi,
    Is Firefox 4 officially supported by ADF (11.1.1.4)?
    I am aware the IE 9 is not currently supported, is there a rough estimate for when the next release of JDeveloper/ADF will be out?
    Mark

    Certification for 11.1.2 is here:
    http://www.oracle.com/technetwork/developer-tools/jdev/jdev11gr2-cert-405181.html#Browsers
    for 11.1.1.* it is here:
    http://www.oracle.com/technetwork/developer-tools/jdev/index-091111.html#Browsers
    Note that lately Firefox started releasing patches as major versions - so it is going to be harder to have the ADF certification updated as frequently. If however you see something in ADF Faces that doesn't work with a new version of a browser please file a support ticket.
    One note on right-to-left - this is officially supported in IE only I believe.

  • RelayState parameter is full support with ADFS in Windows Server 2012?

    We have implement Single Sign-On with ADFS. (Service Provider - salesforce.com , identity provider - ADFS). When we authenticate with ADFS it will
    authenticate successfully, but it will redirected to salesforce full site instead of mobile site. Salesforce document mentioned that we need to handle RelayState parameter on ADFS. And I saw some article mentioned that 'RelayState' parameter is not fully support
    for Windows Server 2012. Please let us know Windows Server 2012 is fully support for the 'RelayState' parameter and if it is how to handle it on ADFS. Thanks. 

    Hi Prasad,
    Regarding ADFS related issue, I suggest you refer to experts from the following forum to get professional support:
    Claims based access platform (CBA), code-named Geneva Forum
    http://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=Geneva
    In addition, here is a related thread for your reference:
    RelayState Support in ADFS 3.0?
    http://social.msdn.microsoft.com/Forums/vstudio/en-US/25239ff7-a33d-4f3e-a7a8-5a3c47d733f7/relaystate-support-in-adfs-30?forum=Geneva
    Best Regards,
    Amy

  • Facelets support in ADF Rich Client

    I have tried to use ADF Rich Client with Facelets
    but it looks like the tag library schema is not recongined, and the ADF RC tag schema definition in html root tag and all ADF RC tags are copied into output.
    any comments or info from any one?

    hi,
    to add my 2 cents
    by the way do you know when will be a code drop of ADF RC available in Apache ?
    I assume this to happen some time after ADF Faces RC goes production
    1) legacy(!?) pages in one of projects we have hundreds of pages developed in facelets and it is a little hard to convert them all.
    We don't support JSF 1.1 content (and Trinidad content) to be on the same page as ADF Faces RC. So if you like to continue using your current stack then the option to go with in Trinidad in JDeveloper 11, not ADF Faces RC
    3) Templating
    ADF Rich Faces Templating mechanism is an strong one, but a little different with Facelets, for example in Facelets templates can be used inside each other but in ADF RC as far I I know they can not.
    The runtime does support template nesting, the designtime does. However, as Shay mentioned using daclarative components might be a nice addition to reuse.
    4) composition component
    in facelets it is easy make a new composite component by mixing existing components
    for example add an export to PDF and Excel button to a table.
    looks like the current ADF Templating mechanism can be used to solve this issue.
    Declarative components do.
    Frabj

  • Support of ADF 11gR2 for Internet Explorer 10

    Following this link:http://www.oracle.com/technetwork/developer-tools/jdev/jdev11gr2-cert-405181.html there currently is no certification of Internet Explorer 10 for ADF 11.1.2.3.0.
    Are there any plans to certify Internet Explorer 10 in the near future?
    In general it seems to work but there are a few glitches in the UI.
    Thankyou

    hi Shay
    pieterv wrote:
    ... no certification of Internet Explorer 10 for ADF 11.1.2.3.0. ...
    Shay Shmeltzer wrote:We are planning to add support for IE 10 in upcoming releases. ...
    Shay Shmeltzer wrote:By the way try out the 11.1.1.7 components demo on IE 10 - it has a bunch of fixes in it so you might find that your problems have been addressed. ...So, what do fixes in the currently most recent JDeveloper 11g R1 release (11.1.1.7.0) imply about upcoming releases of JDeveloper 11g R2 ? How are these related?
    many thanks
    Jan Vervecken

  • OEPE support for ADF 11.1.2.x (11g R2)

    Hi there,
    Are there any plans to release a (preview) version of OEPE that supports ADF 11.1.2.x (i.e. ADF with JSF 2.0 / facelets)?
    Thanks,
    Murray
    Edited by: 974848 on Dec 4, 2012 2:56 AM

    In ADF 12c there would be conversion from JSPX to Facelets. Hence, you could create JSPX-based templates today in OEPE and they would be migrated to facelets in the moment we support ADF 12 in OEPE.
    Nonetheless, to set up the right expectations: ADF Faces templates will work on facelets which does not imply ADF Faces template = Facelets Templates. As you might now we provide templating capabilities since the first release of ADF 11g. Are you looking into specific features of Facelets templating? perhaps I can validate internally if we cover them on our side on the ADF Faces templating.
    By the way are you currenly using OEPE with ADF?
    - Juan Camilo
    Edited by: Juan Camilo Ruiz on Dec 13, 2012 2:18 PM

  • 11gR1 : ADS Support for ADF BC

    Hi All ,
    Bumped on a few old posts by Jan and found that there is a documentation bug in Oracle Documentation and Oracle doesnot yet support ADF BC with ADS.
    See Frank’s comments in this post :
    https://forums.oracle.com/thread/2199726
    Also , in the same post Frank mentions that below example is the best way if you need to do it using ADF BC :
    Example 156  here : https://blogs.oracle.com/smuenchadf/resource/examples (I now remember myself and Amulya trying it and it works though not sure if it’s ok to use a shared AM as a practice).
    Also there is another post which describes the same:
    https://forums.oracle.com/thread/1030213
    These posts are a few years old , so wanted to confirm that the part about Oracle not having support yet for ADS when using ADF BC still holds true.
    Can someone please confirm specifically part below -
    Frank Nimphius wrote:
    ... Again, using ADS with ADF BC exposed through the ADF binding layer is not yet supported to work other than what is documented on Steve Muench's website: http://blogs.oracle.com/smuenchadf/examples/ --> sample 156
    When you use ADS, then you actually wrap the component binding class. When a push is sent from the server to the client then this does not go through the binding filter (as it is not a client request), which means the FacesContext and the BindingContext (as far as my testings go) are not available. So unlike you hook up ADF BC directly to ADF Faces with using ADS, I suggest you go for sample 156. Note that we are aware of this requirement and there is work done on providing this feature out-of-the box for ADF BC. However, this does not have a release date yet and in fact hasn't left the stage of prototyping.
    Frank

    Hi  Frank ,
    Yes there was a question within the above post -
    These posts are a few years old , so wanted to confirm that the part about Oracle not having support yet for ADS when using ADF BC still holds true.
    Can someone please confirm specifically part in italics in above post .
    Thanks
    Sudipto

  • Indonesian (id) locale is not supported by ADF ?

    I have 2 resources file : UIResources.properties and UIResources_id.properties
    I have configured my browser using Indonesian (id).
    I have configured <supported-locale>id</supported-locale> in faces-config.
    Launch browser, but always show my default English (en) locale.
    Change the resource file from UIResources_id.properties to UIResources_de.properties.
    Configure <supported-locale>de</supported-locale> in faces-config.
    Configure browser to use German instead Indonesian.
    Launch browser, successfully use the UIResources_de.properties file.
    how to use Indonesian (id) locale ?
    Thanks,
    Ricky

    Hi Frank,
    I have change this to faces-config.xml file:
    <application>
    <default-render-kit-id>oracle.adf.core</default-render-kit-id>
    <message-bundle>com.putra.pos.view.resources.UIResources</message-bundle>
    <locale-config>
    <default-locale>id</default-locale>
    <supported-locale>en</supported-locale>
    </locale-config>
    </application>
    But the application still use UIResources.properties. Where is jsf-config file ? i'm using ADF Faces and Toplink.
    Thanks,
    Ricky

  • Webcenter Portal Support for ADF Mobile Browser

    Hi All,
    I am currently working on an ADF Mobile Browser Application for WebCenter Portal.
    The main issue I face is that WebCenter has some really powerful taskflows and connectors. Is it possible for us to make use of these taskflows in ADF mobile browser? It seems that when used within the trinidad framework, the taskflows are broken.
    I understand from documentation that "Except for page fragments, pop-up in dialogs, and region support, you can use the ADF task flow to develop ADF Mobile browser applications. ADF Mobile browser application that use the ADF task flow only support the trinidad-simple skin family"
    Does this mean that taskflows that use the page fragments, pop up dialogs dont work or that you cant use them within jsff and pop ups?
    Sincerely appreciate any help! thanks

    Hi,
    You can reuse taskflows but you need to modify jsff pages with trinidad components.
    Thanks,
    Minal

  • List of devices supported by ADF mobile

    Hi there,
    Does anyone know where I can find the latest list of devices currently supported by the latest release of ADF mobile?
    Thanks in advance.
    ET

    ET,
    [url http://download.oracle.com/docs/cd/E15523_01/web.1111/e10140/pda_ovrv.htm#sthref10]The documentation has it.
    John

  • Please comment to support basic ADF library  like assignment of values :)

    Hello,
    I am asking Oracle to develop a library for basic operations like assigning values.
    This is for newbies and for new components.
    Reason: Java is not like pl/sql, visual basic, etc. I had bee studying for get certified on Java it takes time, once you create your own library then there is no problem the main reason is to accelerate the learning of adf programming and programming in new components
    There are some examples in JSFUTIL and ADFUTIL libraries, but they are only examples.
    the idea is Oracle to create
    1) libraries supported and maintained by oracle for ALL the ADF components
    2) same function for all components, in example, to set a value to any adf item to have the same function, and that function make the conversion, suggest the import of the correct libraries (in example to use adf number instead of java number to get autoboxing)
    etc.
    If you agree with this requirement to Oracle, please comment :) Thank you.

    Thank you Frank I don't find it so difficult,
    This is what I think, what do you think about.
    The first concept I think and is the base for this "project" is "ADF Framework is here to make easier programming", this means if Oracle can create a library to make it easier then it makes sense with Oracle's Strategy of course; this is not because only because I'm asking. :)
    If you want we can start analyzing the most basic example: assigning values.
    If I execute
    JSFUtils.setExpressionValue("#{bindings.Hora0.inputValue}",2);
    JSFUtils.setExpressionValue("#{bindings.Hora0.inputValue}","2");
    JSFUtils.setExpressionValue("#{bindings.Hora0.inputValue}",nValue); -- no matter what type of value nValue is
    You get assigned, if there is a limitation to the type of the variable, then I should receive a message like "you can't use native Integer , you have to use int to get autoboxing", some message very specific to help me to solve the problem.
    Why I'm asking this, because I created a simple example and I couldn't get a value assigned to that item, it was an (ADF Faces. Text an Selection)
    My opinion is I should had got a better error message, so I can't fix my assignment, because for me it was all "ok", this is one of my first applications, but I think It should be easier to assign a value in adf framework.
    And I'm asking a function I'll have to do myself to work using adf framework, there is no choice.
    I include the example below showing I had problems assigning values, maybe it was a very obvioius mistake causes , so I started to modify it. (I'm starting on java I'm on the process to get certification).
    public static void setExpressionValue(String expression, Object newValue) {
    FacesContext facesContext = getFacesContext();
    Application app = facesContext.getApplication();
    ExpressionFactory elFactory = app.getExpressionFactory();
    ELContext elContext = facesContext.getELContext();
    ValueExpression valueExp =
    elFactory.createValueExpression(elContext, expression,
    Object.class);
    //Check that the input newValue can be cast to the property type
    //expected by the managed bean.
    //If the managed Bean expects a primitive we rely on Auto-Unboxing
    Class bindClass = valueExp.getType(elContext);
    System.out.println("0 setExpressionValue");
    String tipoVar = valueExp.getType(elContext).toString();
    System.out.println("1 setExpressionValue:"+tipoVar);
    String TipoOJDN = "class oracle.jbo.domain.Number";
    System.out.println("1 IGUALDAD TipoOJDN:"+(tipoVar.equals(TipoOJDN)));
    if (tipoVar.equals(TipoOJDN))
    {System.out.println("Es Número");  
            System.out.println("1 setExpressionValue TipoOJDN");
            String ojdn =  newValue.toString() ;
            System.out.println("2 setExpressionValue TipoOJDN");
            Number variable = null;
            System.out.println("3 setExpressionValue TipoOJDN"+ojdn);
          //  variable = Integer.parseInt(ojdn);
            System.out.println("4.1dddd setExpressionValue TipoOJDN num");
            /*    String a1 = newValue.toString();
                Integer i1 = Integer.valueOf(a1);
                int i2;*/
                Number num;
                try {
                    num = new Number(newValue);
                System.out.println("4.2 setExpressionValue TipoOJDN num:"+num);
                    valueExp.setValue(elContext, num);
                    System.out.println("5 setExpressionValue TipoOJDN");           
                } catch (SQLException e) {
    System.out.println("exception convertin number"+newValue);
    // oracle.jbo.domain.Number.formattedTextToNumber(arg0, arg1, arg2) a = (oracle.jbo.domain.Number)newValue;
    else
    {System.out.println("tipoVar:"+tipoVar);
    // if (bindClass.isPrimitive() || bindClass.isInstance(newValue)) {
    System.out.println("3 setExpressionValue:");
    valueExp.setValue(elContext, newValue);
    System.out.println("4 setExpressionValue:"+valueExp.getValue(elContext));
    ViewObjectImpl view = this.getSomeView();
    VariableValueManager vm = view.ensureVariableManager();
    vm.setVariableValue("bindVariableName", value);
    view.executeQuery();
    */

  • RMS Client support for ADFS 3 with MFA

    We are using Azure RMS. The Users are synchronized from on-premise AD onto Azure AD. If we configure the Relying Party Trust for Azure RMS authentication with MFA (Multi-Factor-Authentication like SMS, OneTimeToken...), the User couldn't login from a Windows
    Client with the RMS Client installed.
    The reason is, that RMS Client only ask for username and password. A another box for OTP, SMS Code and so on doesn't appears.
    Because the login into Azure RMS to get access to protected documents is very sensitive, it should be able to using MFA with the RMS Client.
    Are there a timeline to implement MFA support in the RMS Client (e.q. for Windows)?
    Thanks for your help.

    Office apps have historically required app passwords since they didn't support MFA. Newer Office apps are now using modern authentication that allow sign-in through ADFS and/or Azure AD. If MFA is enabled in Azure AD for federated accounts, the primary
    authentication should be done by ADFS, after which Azure AD will perform the MFA. The new Android apps came out later than the new iOS apps. There is a blog post put out by the Office team with details on the modern auth for their apps at
    http://aka.ms/officemodernauth.

  • How to create support for ADF unsupported locale?

    Hi,
    I am working with JDeveloper 11g tp4 and I would like to add support for fo locale (which I've seen that is currently unsupported in adf). I've written a MessageBundle_fo class in oracle.adf.view.faces.resource package extending java.util.ListResourceBundle but seems not enough (In a jspx page I have a form with a number inputText; when run, only the loading image is shown and no message is displayed on server log.. changing the locale in faces-config.xml to one of the supporting locales, works just fine).
    Any guideline is welcome.
    Anca

    Hi,
    Thanks for your reply.
    I have downloaded the workspace containing the sample application from the address you provided. I have done the following changes to the application:
    1. Created AdcsResourceBundle_fo.java in the same package as AdcsResourceBundle.java
    2. Configured locale in faces-config.xml
    <locale-config>
          <default-locale>fo</default-locale>
          <supported-locale>fo</supported-locale>
        </locale-config>Indeed the messages are taken from AdcsResourceBundle_fo.java (I've tested the PanelCollection), but the problem with the number inputText is still there.
    Test scenario:
    Drag and drop DepartmentsView1 from Data Control to showDetailItem 1 in Table.jspx -> Create -> Forms -> ADF Form
    When the page is run, the 'Splash' image and 'Loading..' remains on the browser window and nothing else happens. And again, no messages in the server log.
    Is there anything else that needs to be configured?
    Anca

Maybe you are looking for

  • Mapping query in SAP PI

    Hi Experts, I have a mapping query in SAP PI. Actually I am mapping the source and target fields, now the problem is. The sender filed is subnode of the main node, and I have mapped the two main nodes in the sender and receiver together. Now, whether

  • I have a problem with setup page of router netfaster.wlan

    hi, the setup page of netfaster.wlan router is no longer displayed properly.it doesn't have the left side options which are needed to set the router.

  • String representation of the xml document

    hi, I have created the following xml document using the DOM api. I want to the "function" to return a "string" - which represents the xml document i created. How do u do that? As of now it doesnt return anything... How do u return the entire xml docu

  • Black screen in tv and movies

    I have a bunch of TV shows and more than a few movies and a bunch of music. iTunes plays the music without any problems.  It will not play any of the TV shows or movies.  When I click on the icon, all I get is a black screen.  I'm running the latest

  • Abap cod e required  for  send an email with specific template

    hi guru's i want to send an email with specific template ,which contain some email links in the body of the email,and some of the font will be in different colour i want load the template it in to abap program as it is.is this possible. please let me