Spring and ADF Genesis

I made a presentation about the Spring Framework to an Oracle-centric development team the other day. This team has developed over the years a number of Oracle Forms applications that have evolved from 6i to Forms 10g and slowly to JSF as needed.
One of the lead developers said that ADF and Spring both evolved from the 2002 book on J2EE development by Rod Johnson. And that, in fact, one can find in ADF many components that are essentially the same as in Spring even down to sharing a similar architecture and similar package names.
I do not know ADF, so I was curious if these assertions are accurate?
Thanks,
Brad

Brad,
You can see the history of JDeveloper and ADF releases here:
http://radio.weblogs.com/0118231/stories/2005/02/25/historyOfJdeveloperReleases.html
This month we're celebrating the 10th year anniversary of our initial development of Java Business Objects (JBO) that was later renamed to Business Components for Java (BC4J) which became ADF Business Components as part of the broader Oracle ADF framework in later releases.
In March of 2002 when discussions about J2EE Design Patterns were all the rage in developer communities doing J2EE development, I wrote the following whitepaper:
http://otn.oracle.com/products/jdev/collateral/tutorials/903/j2ee_bc4j/prnt/j2ee_bc4j.html
I wanted to help people understand that while reading about J2EE Design Patterns in the numerous books that cover them is one thing, having a robust, tested, and performant implementation of all the design patterns you need is quite a more valuable proposition. The ADF Business Components framework (a.k.a. BC4J before) provides this implementation (and design time support built-in to Oracle JDeveloper to facilitate the framework's use) for you. This paper explains in detail many of the high-productivity features and the ADF Business Components framework offers you to foster a well-architected and well-performing J2EE application.
Another whitepaper I wrote in 2005 mentions Rod Johnson by name and quotes some things from his then-recent book:
http://www.oracle.com/technology/products/jdev/tips/muench/adftoystore1012/readme.html
Oracle ADF and Spring do have some similarities in terms of providing a "full stack framework" and layered ways to glue different technologies together, but ADF Business Components predates Spring by several years and JDeveloper/OracleADF combination is a one-stop-shop for highly-declarative enterprise application development.

Similar Messages

  • Demonstration of using Spring and ADF together

    I have wondered about the potential for combining the ADF Binding Framework and the IDE capabilities around ADF in Oracle 10g JDeveloper with the Spring Framework. I concluded rapidly that the most meaningful way forward would be to implement a Business Service based on DAO interfaces and DAO implementation classes, potentially using either Hibernate or Toplink or – as in this case – plain JDBC made easy by Spring JDBC Templates, and registering that service as a DataControl with the ADF Binding Framework. Once that DataControl is registered, it cannot be discerned from other POJO based DataControls and it can be used just as easy as in most cases as the ADF BC based Data Controls. That means: rapidly developing web applications, largely through dragging and dropping Data Controls and their components in a WYSIWYG style visual editor becomes a reality.
    I have written an article that describes how to set up a simple Spring Business Service - based on POJO and plain JDBC although this could also have been Hibernate or Toplink for example- and register that Business Service as Data Control with ADF Binding Framework. I then continue in a familiar way to create a UIX page that displays data from the Spring Business Service.
    I believe this is a useful first step in combining Spring (hot, open source, talk of the town) with ADF (productive, linking and decoupling point for Model vs. View/Controller).
    In case you are interested, please take a look at: http://technology.amis.nl/blog/index.php?p=765
    best regards,
    Lucas Jellema

    Peter,
    I am not aware of any project like this right now. However, Duncan Mills did develop a data control for Spring that he used for his talk. For some reason I don't know, this data control however never made it to production. However, you should be able to integrate Spring through a POJO data control
    Frank

  • Spring and ADF Faces

    I saw this on the internet:
    http://www.springone.com/display/SpringOne06/Integrating+Spring+with+the+Oracle+Application+Development+Framework
    It mentions that in 11g you will be able to drag and drop spring managed beans onto a JSF page but I don't see this mentioned in the 11g new features.
    Is this a feature of the Spring plugin?
    Peter.

    Peter,
    I am not aware of any project like this right now. However, Duncan Mills did develop a data control for Spring that he used for his talk. For some reason I don't know, this data control however never made it to production. However, you should be able to integrate Spring through a POJO data control
    Frank

  • JDev and ADF is difficult

    As a new user to ADF I am finding ADF and JDev a little discouraging and hard to use. I did a search on how to improve jdev's performance and found a lot of useful tips and tricks to use, but I pose the question. Shouldn't it just work out of the box? Coming from a web 2.0 background developing EE applications using Spring, JPA/Hibernate, Extjs, and netbeans I keep thinking to myself wow how in the world should I have known that changing this or that table attribute causes this or that to behave differently. For example I read a thread on multi-selecting table rows and in this article multiselect selectedRowKeys must be removed for multi select to perform correctly. Now I realize this is a simple example, but I find myself asking the same types of questions about dragging and dropping views into jdev or mapping bindings to pages so that I can gain access to data. I can relate to some angry posts by some about how difficult it is to develop anything useful in JDev and ADF because of a series of random problems (things like running OOM, or mapping bindings to a page which then for some reason map incorrectly or they think they are mapped to another page, etc...) Now I can already hear the first response... you are new to this world (yes) and you just need time. What if I told you I've been reading so much documentation over the past month that my eyes are bleeding. I've been through countless tutorials on how to use JDev and ADF. I've successfully created "Sample applications" generating useless tables of data. I've read several books on ADF and how to button click my way to creating EE applications, but I find the memorization of button clicking to be exhausting. I keep telling my boss I want to go back to writing code not dragging and dropping items on a page so that JDev can generate/modify .xml files for me.
    Now that said I know I am new to this world and I'm trying to find some common ground as my job requires me to develop EE applications in ADF, and I must learn this technology. So I ask all of you ADF and JDev advocates prove me wrong here and point me to the documentation that all of you use to navigate this world of yours.
    Thanks for your understand,
    Wraith (Newbie and found wanting)
    Edited by: wraith101 on Aug 14, 2012 3:38 PM
    Edited by: wraith101 on Aug 14, 2012 3:42 PM

    First off thank you for the response Shay!
    >
    Getting used to the way you build applications with JDev and ADF takes time, but think how much time did it took you to learn Spring, JPA, ExtJS etc to a level where you knew every little setting you needed to manually code in a spring XML file, or JPQL query syntax in your JPA or a javascript in ExtJS - My guess was that getting to a situation where you know everything in those technology wasn't exactly a problem less experience.
    >
    It is true it took some time to learn the technologies listed above. I guess If I were arguing for them I would say they were easier to use and learn due to most of them being open source and very popular because of this (i.e tons of examples, books, and documentation). Not sure if ADF is there yet?
    >
    I do like the fact that I can get from 0 to a fully functional page with a few clicks here and there, and then fine tune the results with some property settings in various places.
    And then if I need even further customization I can go to the code level when needed.
    >
    I agree it takes very little time to create something that is at least visually usable. I'm not familiar enough ADF yet to determine now hard it is to actually create a fully functioning application that does more than display data. For example, how would I create a visualization that updates every 10 seconds and allows users to post feedback in a similar manner to this forum?
    >
    The question of whether the declarative and visual development experience is a good thing or not is to some degree a matter of personal preferences.
    I wonder how long would it have taken someone to build something like this: http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/ADF112/ADF112.html
    with the stack you mentioned above. How many lines of code would they have needed to write, how many syntax errors while coding, and would the result be as functional so fast.
    >
    Agree I'm not hear to argue which type of development experience is better or worse. I would point out however that as a JDev/ADF developer in order to develop in the technology it seems you must do most of your development within the JDev environment or have extensive experience in JSF (i.e know which xml files to edit and why I believe there is a reason JSF and JSP are seldom used IMHO because they are difficult. I understand JDev/ADF try to solve this problem) were as in other technologies you as the developer can choose the IDE etc. Another thing I noticed while watching the link you listed was the developer went from place to place to place within jdev making changes. As a newbie it seems that in order to develop ADF in JDev you must just "know things" (ie. for example he pulled in a method in to the task flow so he could invoke some validation or prereq check. As a developer how am I to know how and where and why I can/must do these things? ADF seems to be process based in order to achieve some goal, but the JDev framework gives no clues as to what you should/need to do next. As well as that I needed to create that method within my Application Module in order to do this, which by the way was not mentioned within this video.).
    >
    We often see the reaction of "I don't get what all those XML files that JDev generate are doing" reaction from people who just start up with JDev and ADF.
    But we do try and explain how everything is working in places like the ADF Insider Advanced seminars:
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html
    I think the fact that there is a lot of documentation for ADF, and a lot of blog entries, how-to's etc on the web is actually a good thing.
    I often find that if I run into an issue with ADF - a simple google search will show me how someone else solved that issue - and I like this too.
    >
    I guess my biggest gripe here would be yes there is tons of JDev/ADF documentation on OTN and other places, but none of it is complete, and I would also argue that the organization on OTN is half hazard, and makes learning ADF difficult as well. I find myself drilling down through layers and layers of links only to not be able to get back to were I came from to look at another topic/tutorial I was interested in(maybe we need a ADF train to be added to the documentation wikis).
    I would also argue when developing in other frameworks writing the xml is a big part to understanding how your application is tied together. For example, Spring servlet mapping or Spring injection mapping. When JDev does the mapping for me I feel that I know less and less about how my application works and I bet all the advanced ADF developers out there know quite a bit about how ADF xml mapping occurs and why, and I bet they make changes to these xml files manually quite often to get things to work as they desire?
    I want to be clear here I am not trying to flaming here, just trying to make a difference for other developers like myself who come along and need to learn ADF to complete some task. Looking at the OTN site I believe creating documentation for ADF development appears to be a top priority, but due to the complexity of the framework there is just so much and it seems to be everywhere. My suggestion would be to include why we are doing such and such with in jdev approach instead of a drag this here to do this approach. For example, I'd like to see a tutorial where it explains when you drag this item in to the content window it creates this xml bind which is the same as what you would normally do in JSF like this (if anyone knows of such a tutorial plz link).
    Again thanks for the reply, and I encourage others to give feedback and suggestions on how I too can become a better JDev/ADF developer.
    -Wraith

  • I am fed up with Spring and Apple passing me off to one another and neither will fix the problem. I am unable to receive a connection on my phone.

    I am fed up with Spring and Apple passing me off to one another and neither will fix the problem. I am unable to receive a connection on my phone.
    The internet goes out and I have to reset network setting each and every time. This is only a temporary solution which by the time I release the line with Spring or leave the apple store the issue is back. Sprint indicates that it is a know issue with the Iphone 5 and apple says it is a network issue as Sprint's network is not up to par with the Iphone and can not meet the expectations on the Iphone 5.
    I have attached a few picture, as you can see it clearly says I have 5 bars and 3g available but I have no connections what so ever.
    This issue affects all data and so I can not send or receive picture messages, use apps, or access the internet. The data goes in and out intermittently and it seems the phone chooses what I can and can't do.
    For example I can watch Youtube or Vevo videos but I can not access Facebook or Instagram.
    Is anyone else having this issue?
    I will soon loose my patience....
    I have reset my phone three time and have reset network and other setting mutltiple times.

  • ADF table and ADF form on the same view object

    Hi,
    As per the ADF demos available on ADF site, I created a jsf page with 2 panels. One panel is an ADF table based on a view object. And the other panel is and ADF form based on the same view object. My requirement is that as I scroll through the records in the ADF table, the ADF Form should dynamically display the details of the record in the ADF table. My understanding is that this should be automatic. However, its not working as expected. What have I missed?

    Hi,
    Apply PPR for form that displays details.
    Like :
    <af:table id="t3">
    </af:table>
    <af:panelFormLayout id="pfl2" partialTriggers="t3">
    </af:panelFormLayout >

  • Transfer Object in JSF, Spring, and Hibernate

    The application on which I am working deploys the JavaServer Faces, Spring and Hibernate frameworks.
    We are going to use the "transfer object" to move data between J2EE tiers from the front end to the back end and vice versa. In addition, data "types" may need to be converted --
    At the front end, the "type" of the data that are entered by users may not match that in the database table. For example, checkboxes may be marked or left blank by users. The "type" of the checkboxes is "boolean" in the JSF backing bean. However, we have either "Y" or "N" for the corresponding field in the database table.
    The JSF backing bean holds data as well as controller functionality. Of course, the transfer object holds data only.
    With regard to class properties, Is the transfer object an exact copy of the JSF backing bean? And at which tier the data are converted to match their correspoding "types" in the database tables?
    We also have the "data objects" which are exact representation of database tables.
    Thanks for your advices.

    Small example: you can decide in the business layer
    whether to convert it to boolean or Boolean (which
    has a 3rd state: null).But it all goes back to your data model. If your data model supports null for that property, then of course boolean is a poor choice. If that case one could use Boolean. None of this has anything to do with re-usability, which was your objection.
    I think the re-usability question goes back to the data model as well. Suppose your data model says this property is boolean valued. However if your database does not support booleans natively, then you need to map the value for storage in the database. But that is the data persistence layers problem.
    OTOH, suppose your data model says that this property may be 'Y' or 'N'. Then the Java class represent the business object should not have a boolean property, we should make it match the data model.
    However, I think that most cases where people are storing 'Y' or 'N' in a field in the database fall into the first case, where the data model is a boolean and they are working around limitations in the database. There is no reason in that case to perpetuate the same limitations in the Java code.

  • BPM and ADF integration - some questions

    Hi,
    I have a few questions about comunication between BPM 11.1.1.5 and Human Task based Task Flow:
    1) What is the best way to pass data (task id, proces id, proces data) from BPM workspace to Human Task Task Flow (and get them as TF params).
    2) Where can I find a description, how ADF app comunicates with BPM process.
    3) Where can I find a description of all data controls created by JDeveloper (BPM Suite) when HT Task Flow is created.
    3) Where can I find a description (and their functionality) of managed beans created by JDeveloper (BPM Suite) when HT Task Flow is created.
    Kuba

    Hi,
    Sory, but I'm still not sure, how ADF comunicates with BPM (I know that it uses EJB services and hwtaskflow.xml). But a still don't have an answers for follwowing questions:
    1) I know ADF quite good. Having method in data controls (in our case getTaskDetails()) we need to invoke it somehow. I don't see anywher invokation of this method.
    2) In generated task flow there is some managed beans and params - what is role of them ? Having over 50 task flows , do I need it in all of them. Where can I find description of those beans and params
    3) In our approach we use BPM , ADF RC for UI and Business Components to persist data into database. Only data from payload we need is ID of master-level row. My question is - do I have to generate data controls for all human task ?. In my my opinion it should be only one communication point between BPM and ADF but not the same for all pair human task --> task flow.
    All infomation I need from BPM is:
    - task ID
    - task flow name (to open apriopriate tab in my application)
    - available outcomes
    - to know is BPM operation is enabled
    Kuba

  • Trinidad and ADF Rich Faces components::

    Hi!
    Does someone know about any problem while using Trinidad and ADF Rich Faces, or just the Trinidad components in JDev11g ?
    Thanx.
    Endy

    Endy,
    ADF Faces RC isn't supported in IE6, so that certainly wasn't the issue. I have inadvertently mixed Trinidad and ADF Faces RC components on a page and didn't run into issues, but I did correct that issue based upon comments from Frank/Shay on the forum. Bottom line is that while they may work (or appear to work) together, it's not a supported combination.
    Best,
    John

  • HELP: include another page in with JDeveloper and ADF

    Hi all,
    I am trying to make a layout page with JDeveloper and ADF. But I just can't make things work. I have the pre-coded header and footer html pages and want to include them in a jspx somehow. I tried panelPage too, but the rendering style is away from our pre-coded header and footer.
    1. Use jsp:include.
    header works fine but footer is rendered before the page content, even if the footer is placed after the page content. Is there a way to customize the position?
    <f:facet name="footerFacet">
    <f:subview id="footerView"
    binding="#{backing_welcomePage.footerView}">
    <jsp:include page="/footer.jspf"/>
    </f:subview>
    </f:facet>
    2. Use frameBorderLayout.
    I followed the doc and use the document tag. But the frame page is rendered but none of included pages are rendered. So I got a blank page.
    <!-- frame page -->
    <f:view>
    <afh:html>
    <afh:head title="my frame page">
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    </afh:head>
    <afh:body>
    <afh:frameBorderLayout height="100%" width="100%">
    <f:facet name="center">
    <afh:frame source="topPage.jspx" name="topPage3"/>
    </f:facet>
    <f:facet name="top">
    <afh:frame source="topPage.jspx" height="200" name="topPage2"/>
    </f:facet>
    <f:facet name="bottom">
    <afh:frame source="topPage.jspx" height="200" name="topPage1"/>
    </f:facet>
    </afh:frameBorderLayout>
    </afh:body>
    </afh:html>
    </f:view>
    <!-- top page -->
    <f:view>
    <af:document title="FrameBorderLayout Demo">
    <af:form>
    <af:panelGroup layout="vertical">
    <f:facet name="separator">
    <af:objectSeparator />
    </f:facet>
    <af:outputFormatted styleUsage="instruction" value="&lt;b>A frameBorderLayout&lt;/b>"/>
    </af:panelGroup>
    </af:form>
    </af:document>
    </f:view>

    for #1 have you tried throwing a verbatim tag around your includes like:
    <f:verbatim>
    <jsp:directive.include file="/includes/footer.jsp"/>
    </f:verbatim>
    it's how we got around intermixing html and jsf

  • Difference Between Oracle ADF and ADF Rich Client

    Hello Gurus,
    I want to know the difference between those two:
    Oracle ADF:
    http://goo.gl/6Q1i2
    and
    ADF Rich Client:
    http://goo.gl/L31ra
    I downloaded Jdeveloper 11g (11.1.2.3.0)
    I did this tutorial which It adf right? http://goo.gl/8Mf7c
    and this other is rich client right? http://goo.gl/7Krew
    Can I please know the advantages of them over the other one? THANKS !!!

    ADF Faces Rich Client Components are a part of Oracle ADF.
    So Oracle ADF uses ADF Faces as the components for the rich web UI, but it also offers things like simplified database access through ADF Business Components, an advanced ADF Controller layer, and simple data binding.
    I would suggest starting with this seminar:
    http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/Introduction_To_ADF/Introduction_To_ADF.html

  • How is the processing speed while using struts,spring,and JSF framework

    Hi friends,
    As per earlier technology like Servlets,I mean that there would have much more performance speed than other new technologies like JSP,struts,spring and hibernate framework.Because,in new technologies,flow of processings implicitly via MVC2 basis will probably much more time than older one.
    Total goal is only for attaining MVC2 or any other purpose?
    Please clarify my doubt?
    With Regards,
    Stalin.G

    Home grown applications have a problem in that as more and more features are added, it becomes increasingly impossible to maintain the application and enhance it. This is especially true when the original programmers leave the company. A framework provides a standard design approach that other programmers can hopefully more easily pick up.
    A lot of work has gone into creating these frameworks and they have been used in web sites that have millions of hits from users per day. They have high preformance. Of course, programmers can still write bad code in them that slows down the system. I believe anyone using these frameworks should study them well before using them (such as reading books on them).

  • COMMIT problem in TopLink, Struts, JSP and ADF Databinding sample

    In the sample Developing a J2EE Application using TopLink, Struts, JSP and ADF Databinding,
    I followed all the steps to build a department browse page and a edit page.
    But when I get to Step number 23 in "Create a JSP to Edit Departments" I have a problem with the commit.
    Only after I make a change in the form and click the sumbit button, the commit and rollback buttons become active. And After I click the commit button the data gets commited to the database but the page inofmation changes to the very first department record, not the current one.
    How do I make those buttons active with out the extra click on the submit?
    After I click the commit button, how do I keep the current data on the screen?
    Thanks for you help.

    Shay,
    Thanks for the reply.
    For #1, I was able to do the following and get away with not having to press submit first. I just removed the bindings for disable. I hope that does not cause any problems?
    <input type="submit" name="event_Commit" value="Commit" />
    <input type="submit" name="event_Rollback" value="Rollback" />
    For #2, How I add an action on an HTML button? My UIModel.xml for the edit department page currently has two actions on it. Commit and RollBack. Is it linked through the "name" attribute of the input tag?

  • Use single realm for multiple web applciation in sharepoint 2013 and adfs 2.0

    Use single realm for multiple web applciation in sharepoint 2013 and adfs 2.0
    Please help!!

    I dont think you can do this, because you have to name/url of the web application in realm. You have to add new realm for each web application.here is script to add another realm.
    Add-PSSnapin "Microsoft.SharePoint.PowerShell"
    $sts = Get-SPTrustedIdentityTokenIssuer | where {$_.Name -eq "ADFS2.0"}
    $uri = new-object System.Uri("http://url/")
    $sts.ProviderRealms.Add($uri, "urn:sharepoint:Name")
    $sts.Update();
    Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog

  • JDeveloper and ADF 11g Release 2(11.1.2.0.x) compatible WebCenter Version

    We are looking to upgrade ADF to 11.1.2.0 and looking for WebCenter compatibility.
    Could you please let me know WebCenter compatible version for JDeveloper and ADF 11g Release 2 (11.1.2.0.x) ?
    Thanks
    JP

    Looking at 11.1.2.0.0 note on
    http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
    and seeing, "This version of JDeveloper doesn't include the SOA and WebCenter pieces - to use these components you'll need to download Oracle JDeveloper 11.1.1.5.0."
    Does that mean, 11.1.2.0.0 can't be used with WebCenter?

Maybe you are looking for

  • Can't fix the time on 7975 ip phone.

          I tried to fix the time on 7975 ip phone but I could not do it. What I did is on the CCA adjust the time and it changed on two other ip phones(SPA525G and SPA504G) but did not change on the 7975 and 7942 ip phone. Also on the UC540: in the tele

  • External mail address

    Hi, there is no possibility to set up an external mail address like in mobileme? Thanks

  • IPhone 4 - Usage (Other) Varies Wildly: 4gb mysteriously disappearing

    Never had this problem before. I am using an iPhone 4 (16gb)  with iOS 7.1.1. I use iTunes Match to manage my music. Until recently, whenever my available space would start dwindling, I would go into Settings > General > Usage and delete the music th

  • Change of Default feature of LOV

    Hi All, If user clicks the LOV field,the pop up window should not take the messageLovInput vallue as criteria and the pop up should display all the values based on one id. Example: In my page,two fields are there one is Employee name LOV and Employee

  • Message bubble disappeared -

    How do I bring the message bubble back from limbo - it disappeared without my knowledge of why or how.  I can find it when I double click on the change screen button but I'd like to find it on my desk top again.  I tried to double click and drag - an