Oracle ADF Real World Developer’s Guide is Published!!!
I am pleased to announce the release of my book on ADF - Oracle ADF Real World Developer’s Guide. Yes, it is available in your local book stores now !
Book Details :
Paperback : 590 pages [ 235mm x 191mm ]
Release Date : October 2012
ISBN : 1849684820
ISBN 13 : 9781849684828
Author(s) : Jobinesh Purushothaman
Topics and Technologies : All Books, Enterprise, Oracle
This book is designed to take programmers beyond visual and declarative programming model and enable them to customize the framework features to meet the real world application development challenges. Many of the framework features are discussed along with real-life use cases and code samples which will definitely help developers to design and develop successful enterprise applications.
To learn more, visit http://www.packtpub.com/oracle-application-development-framework-real-world-developers-guide/book.
Book Reviews...
Contents Covered in this Book
To know the contents covered in this book, follow the packtpub link for this book and click on Table of Contents.
If you are buying this book, please make sure you read the following chapters as well (which are not included in the printed version of the book). You can access these chapter on-line if you buy the printed/pdf/eBook copy of the book. These chapters contain a lot of interesting things and tips which you may find very useful to understand the internals of the framework.
To get a feel of the content, a sample chapter is made available for public. To access it click on packtpub link for this book, and select Sample Chapter tab.
If you are in India, see this link as well - Oracle ADF Real World Developer’s Guide is now available in India
Book Details :
Paperback : 590 pages [ 235mm x 191mm ]
Release Date : October 2012
ISBN : 1849684820
ISBN 13 : 9781849684828
Author(s) : Jobinesh Purushothaman
Topics and Technologies : All Books, Enterprise, Oracle
This book is designed to take programmers beyond visual and declarative programming model and enable them to customize the framework features to meet the real world application development challenges. Many of the framework features are discussed along with real-life use cases and code samples which will definitely help developers to design and develop successful enterprise applications.
To learn more, visit http://www.packtpub.com/oracle-application-development-framework-real-world-developers-guide/book.
Book Reviews...
- https://blogs.oracle.com/onesizedoesntfitall/entry/yet_another_adf_book_oracle
- http://siebel-essentials.blogspot.in/2012/11/book-review-oracle-adf-real-world.html
- http://blog.sanaulla.info/2012/11/19/book-review-oracle-adf-real-world-developers-guide/
- https://blogs.oracle.com/jdevotnharvest/entry/book_review_oracle_adf_real
- https://blogs.oracle.com/grantronald/entry/adf_real_world_developers_guide
- http://technology.amis.nl/2012/12/16/book-review-oracle-adf-real-world-developers-guide/
- https://blogs.oracle.com/shay/entry/book_review_oracle_adf_real
- http://www.amazon.com/Oracle-Real-World-Developers-Guide/dp/1849684820
Contents Covered in this Book
To know the contents covered in this book, follow the packtpub link for this book and click on Table of Contents.
If you are buying this book, please make sure you read the following chapters as well (which are not included in the printed version of the book). You can access these chapter on-line if you buy the printed/pdf/eBook copy of the book. These chapters contain a lot of interesting things and tips which you may find very useful to understand the internals of the framework.
- Chapter 13, Building Business Services with EJB, explains how Oracle ADF helps you to declaratively build user interfaces for Enterprise Java Beans (EJB) based services. You can download this chapter from here: http://www.packtpub.com/sites/default/files/downloads/4828EN_Chapter13_Building_Business_Services_with_EJB.pdf.
- Chapter 14, Securing Fusion Web Applications, describes how you can visually enable security in different layers of your Fusion web application. A lot of useful code samples and security use cases are discussed here. You can download this chapter from here: http://www.packtpub.com/sites/default/files/downloads/4828EN_Chapter14_Securing_Fusion_Web_Applications.pdf
- Appendix, More on ADF Business Components and Fusion Page Runtime, discusses various useful features and techniques for ADF Business Components. This chapter covers the topics such as page life cycle for a Fusion page with region, transaction management in Fusion web applications, Building a dynamic model-driven UI with ADF, and so on. You can download this chapter from here: http://www.packtpub.com/sites/default/files/downloads/4828EN_Appendix_More_on_ADF_Business_Components_and_Fusion_Page_Runtime.pdf
To get a feel of the content, a sample chapter is made available for public. To access it click on packtpub link for this book, and select Sample Chapter tab.
If you are in India, see this link as well - Oracle ADF Real World Developer’s Guide is now available in India
Let me know your thoughts and comments which will definitely help me to improve my next work :)
Great achievement ... will definitely check it
ReplyDeleteZeeshan
Great job Jobinesh... I will check it
ReplyDeleteCongrats Jobinesh... Great Work.
ReplyDeleteI bought the eBook and it is very nicely presented. Great job on that.
ReplyDeleteFor some reason I'm not able to get to the online chapters. Looks like these links are not working even after I signed into my account where I downloaded the eBook.
http://www.packtpub.com/sites/default/files/downloads/4828EN_Chapter13_Building_Business Services_with_EJB.pdf.
The first link is broken. The rest should work. If you don't see this working please contact the publisher.
ReplyDeletebtw, I've updated publisher on the broken link(for chapter 13).
Thanks for your quick response.
ReplyDeleteThanks Jobinesh for that great book!
ReplyDeleteI'm still waiting for the ordered paper based, so in a meantime the pdf + ipad should be enough :-)
Thank you Christophe Paoutoff for your comments.
ReplyDeleteGreat work Jobinesh ..... like all your blogs, book also seems to be very much interesting .
ReplyDeleteI went through the pdf, securing ADF applications, that was really interesting...
Ranjith
The content of this book shows the hard work and devotion of jobinesh that he did not missed a single important topic of this framework with lot of unknown
ReplyDeletemysteries solved which was bewildering many developers of all levels.This is first time I am so excited to read ADF book with so much of interest even though I possess half a decade ADF , Web Center , UCM experience -
Hasim(hasamali blogspot)
Congrats and Big Thank You for that valuable ADF Resource. Enjoying all the deep insights into the framework especially by great diagrams!
ReplyDeleteThanks,
Andreas Koop
Jobinesh,
ReplyDeleteI was already impressed by the quality of Frank Nimphius and Lynn Munsinger's book but yours is incredible too ! (the two best on ADF in my opinion)
Congratulations for the clarity and all these valuable informations (uml diagrams and so on).
It's a great pleasure to read such excellent books.
Would you mind if I put a question about the last point of page 536 :
"You should not use transient member variables in a managed bean with a scope higher than the request, to hold UI component reference. This hard reference will prevent the UI component tree from being cleaned up."
I’m not sure to understand. Actually, I use Jheadstart especially in runtime mode ; And I noticed that, in generated application, a TableBean was by default in pageFlowScope with a transient member on RichTable. Is it a correct practice or not ?
I'm going to ask to JHeadstart team for this doubt...
Thanks you very much for this book,
Christophe,
Thanks Christophe for your comments.
ReplyDeleteTo answer the query, ideally its always recommended to use ComponentReference wrapper to hold UI component ref in managed bean. However holding UI component is less dangerous if the beans scope is request and the same is not re-used in target view(if the view transition happens during a request). Note that hard reference to UI comp will be released when the holding comp goes out of life, which may happen when you exit from a task flow. If that's the case, you may not face much issue, Still better avoid such use if you are coding from scratch.
Thanks Jobinesh for your answer,
ReplyDeleteSo I post a thread on JHeadstart forum :
https://forums.oracle.com/forums/thread.jspa?messageID=10688019#10688019
Steve told me that you may exchange about this subject.
Thanks you very much,
Your book help me a lot, especially about cluster application server matters !
Hi,
ReplyDeleteThe book is very good to understand and very well explained in simple terms.
Thanks of this great book!
Thanks Rami
ReplyDeleteI have attended training's and watched online videos to understand the ADF internal framework, but none of them explained me in such a detail. Your book did and it looks amazing to me.
ReplyDeleteThanks a ton!
Hello Jobinesh,
ReplyDeleteI'm trying to use your samples (associated with your excellent book) in chapter 5 (add dynamically a new entity attribute and then add it to a viewObject based on this entity).
Here is an excerpt of this sample :
/**
* An example to illistrae dynamic attribute defintion
* This example adds LocationId to a Dept EO and VO
*/
public void addExtraAttributeToDept() {
//Add sttribute to entity first and if it reurn true
//add it to view object
if (addLocAttributeToDeptEntity()) {
addLocAttributeToDeptView();
}
}
but it doesn't work for me.
PDef objects seem to be ok but when I open the VO, ADF can't read the new attribute in the VO.
You haven't a concrete using of this example...
When could you call this routine ? (after findViewObject ?)
It's a very good feature and I'd like to use it :-)
Thanks you,
Christophe
Christophe
ReplyDeleteCan you please the example given in 'Appendix' folder. Its an end to end example.
Hello Jobinesh,
ReplyDeleteI confirm that I used this Appendix and the sample file "4828EN_Code" / chapter_5 (downloaded from http://www.packtpub.com/oracle-application-development-framework-real-world-developers-guide/book)
The sample I speak about is taken from your sample files.
My interest is especially about PDefEntityObject. The sample "addExtraAttribute" is not used in any client application.
The other samples about dynamically objects work fine but not the sample "addExtraAttribute".
I've read "Personalized business components" (p. 215-217) and "Appendix, More on ADF Business Components and Fusion Page Runtime".
So I try to call your "addExtraAttribute" from a findViewObject and then I created a jsf page for calling this dynamically modified viewObject (based on an existing entity dynamically modified too).
and it doesn't work.
Could you please check your own sample, precisely about "addExtraAttribute" sample ?
Unfortunately nobody speak about PDefEntityObject on JDev forum ! It's a great and powerfull subject.
Thanks you
Christophe
Christophe,
ReplyDeleteMy bad, I didn't check the sample before replying to your post. I uploaded a modified sample which uses 'addLocAttributeToDeptView' as an intermediate activity in the task flow to alter existing pDef EO and VO. https://adf-samples.googlecode.com/files/ADFDevGuideAppendixSamples.zip
I'll post some sample to dynamically modify currently displayed UI with pDef objects sometime later(look like binding container needs to be refreshed/cleared in between to make this use case to work).
Thanks you very much for this modified sample.
ReplyDeleteCould I ask an other linked question (perhaps do you prefer I post it on JDev forum ?)
The ideal solution would be to make the work of modifying the structure entirely on Model project rather than viewController ; but effectively when I try to open ApplicationModule as usual from Model project, I get this error :
(oracle.jbo.ConfigException) JBO-33001: Configuration file /tester.xcfg is not found in the classpath.
with this error stack :
Apr 24, 2013 7:03:20 PM oracle.adf.share.config.ADFMDSConfig createMDSInstanceFromelement
SEVERE: MDS Configuration Exception encountered in parse ADF ConfigurationMDS-01335: namespace "/sessiondef" mapped to metadata-store-usage "mdsRepos" but its definition was not found in MDS configuration.
oracle.mds.config.MDSConfigurationException: MDS-01335: namespace "/sessiondef" mapped to metadata-store-usage "mdsRepos" but its definition was not found in MDS configuration.
at oracle.mds.config.PConfig.populateNamespaceConfigList(PConfig.java:803)
at oracle.mds.config.PConfig.loadFromBean(PConfig.java:709)
at oracle.mds.config.PConfig.(PConfig.java:496)
at oracle.mds.config.MDSConfig.loadFromBean(MDSConfig.java:706)
at oracle.mds.config.MDSConfig.loadFromElement(MDSConfig.java:768)
at oracle.mds.config.MDSConfig.(MDSConfig.java:419)
at oracle.mds.core.MDSInstance.getMDSConfigFromDocument(MDSInstance.java:2084)
at oracle.mds.core.MDSInstance.createMDSInstanceWithCustomizedConfig(MDSInstance.java:1204)
at oracle.mds.core.MDSInstance.getOrCreateInstance(MDSInstance.java:593)
at oracle.adf.share.config.ADFMDSConfig.createMDSInstanceFromelement(ADFMDSConfig.java:245)
at oracle.adf.share.config.MDSConfigFactory.createApplication(MDSConfigFactory.java:127)
at oracle.adf.share.config.ADFConfigFactory.findOrCreateADFConfig(ADFConfigFactory.java:158)
at oracle.adf.share.config.ADFConfigFactory.findOrCreateADFConfig(ADFConfigFactory.java:86)
at oracle.adf.share.config.ADFConfigFactory.findOrCreateADFConfig(ADFConfigFactory.java:64)
at oracle.adf.share.ADFContext.getADFConfigEx(ADFContext.java:963)
at oracle.adf.share.ADFContext.getADFConfig(ADFContext.java:810)
at oracle.adf.share.config.ADFContextMDSConfigHelperImpl.createMDSSession(ADFContextMDSConfigHelperImpl.java:50)
at oracle.adf.share.ADFContext.getMDSSessionAsObject(ADFContext.java:1806)
at oracle.adf.share.jndi.MDSBackingStore.getMDSSession(MDSBackingStore.java:347)
at oracle.adf.share.jndi.MDSBackingStore.isReadOnlyMDSStore(MDSBackingStore.java:167)
at oracle.adf.share.jndi.MDSBackingStore.(MDSBackingStore.java:127)
at oracle.jbo.client.Configuration.loadFromClassPath(Configuration.java:446)
at oracle.jbo.jbotester.MainFrame.loadConfiguration(MainFrame.java:637)
at oracle.jbo.jbotester.MainFrame.processArgs(MainFrame.java:612)
at oracle.jbo.jbotester.MainFrame.main(MainFrame.java:446)
Apr 24, 2013 7:03:20 PM oracle.adf.share.config.MDSConfigFactory createApplication
and so on ...
Can't we anymore use ApplicationModule tester when MDS is required ?
So I understand why you are driven to launch these methods from ViewController.
I'm very curious to see your next sample about the ability to modify entityDef directly from the page.
Thanks you very much,
Christophe
Hello Jobinesh,
ReplyDeleteI try your sample and it works fine.
In your case, you dynamically build from scratch an Entity and a ViewObject on it.
Then, in a new call-method (PersDef demo), you dynamically add a new attribute in this ViewObject.
My use case is slightly different and I can't explain why it doesn't work !
I apply exactly the same recipes as you. The only difference in my case is that my entity and my VO already exist (not build from scratch).
Could I send you my simple test case ?
I look also in Metalink knowledgeBase but there are no messages on this subject.
You are my only one source of information about this subject !
Thans you,
Christophe,
Hi Jobinesh,
ReplyDeleteI bought the book and started capturing the things which you explained well.
It's very helpful for me to learn this technology.
Could you please check the sample you provided for Chapter 10(ADFDevGuideCh10).
The 'emp-detail-task-flow-definition' and 'emp-summary-task-flow-definition' giving error.
Sample you provided for passing parameter in task flow through parameter map not working.
Actually I want learn how to pass parameter through parameter map in task flow showing as a dynamic region.
It will very helpful for me you provide me the error free sample for chapter 10(ADFDevGuideCh10 sample).
Thanks in advance
Thanks for pointing it out. In fact the sample had some version issues in jws and jpr files. Corrected them manully and tested on 11.1.2.4. Please see the updated one here https://adf-samples.googlecode.com/files/ADFDevGuideCh10.zip
ReplyDeleteIf you still face the same issue, drop me an email with exact steps to reproduce the issue
Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! Its always nice when you can not only be informed, but also entertained! Im sure you had fun writing this article.
ReplyDeleteValuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!!
http://www.sqlservermasters.com/
Thanks you very much for your answer.
ReplyDeletePDef API is powerful for Business components. However, as this layer is originally targeted for viewController, the big problem is that you must start viewController for testing ApplicationModule.
This is a shame because you can't anymore use Application Module tester alone.
Do you agree ?
Thanks a lot,
Christophe,
Christophe,
ReplyDeleteThis post is for you: http://www.jobinesh.com/2013/07/mds-setting-for-testing-pdef-business.html
Jobinesh,
ReplyDeleteYou are a great man (my master) ... It's working ! and you've written the solution for me ;-) thanks you so much !
I'm very closed to the whole solution now. My goal is to allow the customization of an application by adding new fields (driven by tables) - without redeploying - gracefully to MDS.
I have two other steps to do now :
1/ adding corresponding bindings of the new fields dynamically (in pageDef)
2/ adding input components with MDS (I can do this step)
For the step 1/, I can't use the usual technique targeted to Dynamic Table as this link suggest :
https://blogs.oracle.com/groundside/entry/towards_ultra_reusability_for_adf
I can't use this technique because I have a normal table and normal form (not dynamic). Given that the existing jsff are built statically,
I plan to add new fields by MDS.
For the step 1, do you think that this technique is better for me :
http://adfpractice-fedor.blogspot.fr/2013/02/dynamic-tree-binding-definition.html
Do you think I'm on the good way and my goal is realistic ?
Thanks you very much,
Christophe,
PS : I know well India ; I spent 3x1 month for holidays in India.
well appreciated keep it up, see oracle groups about the business management consultants.
ReplyDeletethank your valuable content.we are very thankful to you.one of the recommanded blog.which is very useful to new learners and professionals.content is very useful for hadoop learners
ReplyDeleteBest Spring Classroom Training Institute
Best Devops Classroom Training Institute
Best Corejava Classroom Training Institute
Best Oracle Classroom Training Institute
Awesome article! You are providing us very valid information. This is worth reading. Keep sharing more such articles.
ReplyDeleteDevOps Training in Chennai
Best DevOps Training in Chennai
UiPath Training in Chennai
RPA Training in Chennai
AWS Training in Chennai
Blue Prism Training in Chennai
Machine Learning course in Chennai
DevOps course in Chennai
The information that you have shared is really useful for everyone. If someone wants to know about EHS Software and Occupational Safety Softwares I think this is the right place for you.
ReplyDeleteWe as a team of real-time industrial experience with a lot of knowledge in developing applications in python programming (7+ years) will ensure that we will deliver our best in python training in vijayawada. , and we believe that no one matches us in this context.
ReplyDeleteWe as a team of real-time industrial experience with a lot of knowledge in developing applications in python programming (7+ years) will ensure that we will deliver our best in python training in vijayawada. , and we believe that no one matches us in this context.
ReplyDeleteThanks for your valuable information..
ReplyDeleteTech Leads IT is the best training centre for Fusion Financials online and class room trainings. Oracle Fusion financials is one of the best Oracle Fusion course which our institute Tech Leads IT is offering. We provide training and certification help for all Fusion modules.
For more details on Oracle Fusion training you can visit here
https://www.techleadsit.com/oracle-fusion-financials-online-training-course/
For Fusion Financials demo, please click on the link
https://www.youtube.com/watch?v=wERt3eP196U
oracle fusion financials training
Find my blog post here
ReplyDeletehttp://ttlink.com/bookmark/d3913482-056d-4e38-82e1-baa1036528ba
http://ttlink.com/bookmark/5931d44a-7910-41ec-9bab-f2b3082de030
http://ttlink.com/bookmark/3f596fd1-f173-4b25-ba95-0730a97ab3a8
Best Web Development Tools for Web Developers.
ReplyDeleteI'm too lazy to sign up an account just for comment your article. it's really good and helping dude. thanks!
DevOps Training Institute in Delhi