In a long hoped for but little anticipated move, Oracle yesterday announced ADF Essentials – the free edition of the ADF framework. Oracle now offers a complete free stack to develop and deploy applications – with Oracle Database XE, GlassFish Open Source Edition and ADF Essentials, optionally running on Oracle Enterprise Linux. It’s a red LAMP if you will.
ADF Essentials is exactly the same as ADF – it is just a subset of ADF. Even some of the highly advanced features in ADF are included in ADF Essentials – such as Data Visualization (DVT), Business Components (ADF BC), Data Binding and Taskflows. The parts not included in ADF Essentials are by and large more for specific use cases – ADF Mobile, Desktop Integration, Customization – or targeted at integration with other components in the Oracle Fusion Middleware stack – such as Data Controls for Essbase, BI and BAM.
Some of the features of ADF that are not available with Essentials that are unfortunate to let go off: ADF Security (!), publication of ADF BC as Web Service, the Web Service Data Control and remote taskflows. However, for most of these features, alternative solutions can be created or are already available – such as WebService Proxy Classes with the POJO Data Control.
In summary: ADF Essentials provides probably the most powerful (free) framework for developing Java/JEE Web Applications with high productivity and rich functionality in either Oracle JDeveloper or in Eclipse (with the OEPE plugin)- that can be deployed across JEE Containers including Tomcat, JBoss, WebSphere, GlassFish and WebLogic. This offer is bound to attract many more developers and organizations that until now were reluctant to adopt ADF because of the license involved or the supposed tie in with WebLogic and JDeveloper. However: since it is now free of charge and deployable on Tomcat, JBoss and GlassFish – this earlier hesitation is likely to disappear. The productivity and quite advanced functionality are likely to quickly bring in many more developers from the Java/JEE arena.
I expect Oracle to make a lot of noise about ADF Essentials during JavaOne 2012 – next week in San Francisco. I for one think that they should. Note: ADF Essentials is not open source. The ADF sources are available to customers with an ADF license. There is no community process around further evolving ADF. ADF is and stays Oracle’s strategic development framework for its enterprise applications. It has no intention whatsoever to relinquish control over one of its most important technologies. However, it is interested in sharing that technology with a much wider audience.
For more details on ADF Essentials – visit: http://www.oracle.com/technetwork/developer-tools/adf/overview/adfessentials-1719844.html.
The framework overview for ADF Essentials is – as stated above – just a subset of the full ADF framework. The architecture is the same in terms of tiers – just a little bit more limited in terms of components.
The most important Data Controls are still there. That means that the largely declarative way of exposing business services – database, URL (REST), EJB and POJO (which means anything Java can call) – to UI developers is in tact in ADF Essentials.
The extensions in ADF to JSF (JavaServer Faces) are all there: for example taskflows and contextual events. The ADF Library mechanism for packaging, sharing and reusing taskflows and other components is fully supported in ADF Essentials.
Development of ADF Essentials applications can be done using JDeveloper (11.1.2.3 for now) or Eclipse with the free OEPE (Oracle Enterprise Pack for Eclipse) extension.
Note: there is not distinction (none whatsoever) between the IDE used for ADF Essentials and the one used for full ADF. It is your own responsibility to ensure that if you want to work under the free ADF Essentials license, that you do not inadvertently use any feature not included in that license. (this may sound more ominous than it will be in real life, but still that is the situation).
Deployment can be done to a fairly wide range of platforms – that each in their own way needs to be prepared for ADF application deployment – including JBoss, GlassFish, Tomcat, WebSphere, WebLogic and OC4J (which means iAS/OAS):
Note: I am assuming that deployment is not restricted to the release numbers in this list – and that for example Tomcat 7 is supported as well; I am not sure about that though. The Essentials license does not restrict deployment in any way: if we can make it work on a server, then it is allowed.
And interesting question that just occurs to me: will there be JHeadstart Essentials as well?
Why?
A fair question might be at this point: why is Oracle doing this? It is not a move to gracefully get rid of some technology – as many donations to the open source community turned out to be. Through this move I believe Oracle wants to strengthen Java – provide Java developers with a framework that in many aspects competes with .Net in terms of productivity and functionality out of the box. It also wants to bolster the existing ADF developer community. While ADF is doing well and has been growing quite a bit over the last few years, the number of ADF developers around the world is hardly enough to take on the existing workload. Given the sharp increase in ADF projects expected around Oracle FMW (WebCenter, BPM, BI,…) and Fusion Applications in the very near future, it is in Oracle’s best interest that the pool of ADF developers grows rapidly. One good way of growing that pool is by attracting developers to work with ADF Essentials – given that required skills for any ADF engagement are the same as those for ADF Essentials.
Resources
ADF Essentials FAQ – http://www.oracle.com/technetwork/developer-tools/adf/overview/adfessentialsfaq-1837249.pdf
Initial ADF Essentials thread on ADF EMG: https://groups.google.com/forum/?fromgroups=#!topic/adf-methodology/EYWOnFgMNg0
Announcement on DZone: http://www.dzone.com/links/oracle_adf_core_functionality_now_available_for_f.html
List of ADF Components and their support in ADF Essentials: http://www.oracle.com/technetwork/developer-tools/adf/overview/components-1844931.html
Introduction demo movie (13 mins) of ADF Essentials: http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/ADFEssentials/adfEssentialsFull.html
Java/JEE developers interested in getting training on ADF (Essentials) can send an email to info-at-amis-nl for information about focused training-material and events.
Andrejus published an article: http://andrejusb.blogspot.nl/2012/09/adf-essentials-quick-technical-review.html – Quick technical review of ADF Essentials with his first impressions with deploying ADF Essentials on GlassFish. Very instructive!
hi,
thanks for the post!!!!!!
i deployed succefully my demo application adf essentials 11.1.2.3 on tomcat 7.0.47. the application is working fine, but when i try deploy the same application migrated to adf essentials 12.1.2 on the same tomcat 7.0.47 instance the deployment was succefully but at runtime the connection with the database is not working.
SEVERE: Exception unloading sessions to persistent storage
JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-30003. Error message parameters are {0=cu.datys.adffacesmasadfmodel.model.AppModuleLocal}
java.lang.NullPointerException
at oracle.jbo.server.OracleSQLBuilderImpl.setSessionTimeZone(OracleSQLBuilderImpl.java:5523)
at oracle.jbo.server.DBTransactionImpl.refreshConnectionMetadata(DBTransactionImpl.java:5398)
at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1203)
at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:6932)
at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:297)
at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:328)
at oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:202)
my setenv file for tomcat initial configuration:
set CATALINA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -Doracle.mds.cache=simple -Duser.timezone=”America”
any idea……
Thank you Lucas.
Where you write “There is no community process around further evolving ADF.” I was wondering if some in the targeted “much wider audience” would also be expecting some form of “community process” to go along with a technology choice (for ADF Essentials).
regards
Jan Vervecken