BIRT supplies scripting hooks for just about every report element in the palette. You can generally implement an onPrepare, onCreate, and onRender event handler for each of these report items. The onPrepare event fires before data is retrieved and allows you to change the design for a specific report item. The onCreate event fires when the report item is being created by the report engine’s generation task. The onRender event fires when the report item is being rendered by the report engine’s render task. These events and example are described on the BIRT website.
The recession may have driven Silicon Valley’s innovation engine straight off the cliff, according to an annual study by two local non-profits, Silicon Valley Network and Silicon Valley Community Foundation. Based on their just-released 76-page 2010 Silicon Valley Index they say the Valley is stalled and that it’s “hard to say is whether we’re stuck in neutral, which has happened before, or whether it’s time now for a complete overhaul.”
The recession may have driven Silicon Valley’s innovation engine straight off the cliff, according to an annual study by two local non-profits, Silicon Valley Network and Silicon Valley Community Foundation. Based on their just-released 76-page 2010 Silicon Valley Index they say the Valley is stalled and that it’s “hard to say is whether we’re stuck in neutral, which has happened before, or whether it’s time now for a complete overhaul.”
A while back I posted about using Groovy within our ADF BC EOs to expose the new and old values of a particular attribute. This method described in that post works fine if you've access to the EOs in the same project. However in our current project EOs are segmented in another application workspace project for reuse and ADF Library JARed into our existing "master" ADF BC workspace project. The external EOs are intended to be shared by multiple other sub-systems, and it really didn't seem ideal to include additional transient attributes on all the attributes in the shared EOs just in case some other application needs them, mostly they wont want this specific requirement.
This lead to the requirement to include the same functionality, namely transient attributes based on a Groovy expression to return the old value of the attributes, from our project's VOs instead. In other words, if a VO needs them, it includes 'em.
We immediately hit a problem on implementing this requirement. The EntityImpl.getPostedAttribute(index) method is a protected method, and there is no equivalent ViewRowImpl method. Arguably it should be provided at the ViewRowImpl level, and a search of the JDev OTN forums shows it's an old issue and I guess not likely to change anytime soon.
Without an immediate change to the ADF BC framework, we needed to find another solution. What we came up with:
(As per the original post we'll assume we're looking at the Employees EO and Position attribute)
1) By default extend the ADF Business Components Framework as per section 37.1 Globally Extending ADF Business Components Functionality of the Fusion Guide.
2) In the extended EntityImpl class, say common.model.CommonEntityImpl, create a public exposed version of the getPostedAttribute method
public Object getPostedAttribute(int index) {
return super.getPostedAttribute(index);
}public EntityImpl getEmployees() {
return (EntityImpl)getEntity(0);
}A while back I posted about using Groovy within our ADF BC EOs to expose the new and old values of a particular attribute. This method described in that post works fine if you've access to the EOs in the same project. However in our current project EOs are segmented in another application workspace project for reuse and ADF Library JARed into our existing "master" ADF BC workspace project. The external EOs are intended to be shared by multiple other sub-systems, and it really didn't seem ideal to include additional transient attributes on all the attributes in the shared EOs just in case some other application needs them, mostly they wont want this specific requirement.
This lead to the requirement to include the same functionality, namely transient attributes based on a Groovy expression to return the old value of the attributes, from our project's VOs instead. In other words, if a VO needs them, it includes 'em.
We immediately hit a problem on implementing this requirement. The EntityImpl.getPostedAttribute(index) method is a protected method, and there is no equivalent ViewRowImpl method. Arguably it should be provided at the ViewRowImpl level, and a search of the JDev OTN forums shows it's an old issue and I guess not likely to change anytime soon.
Without an immediate change to the ADF BC framework, we needed to find another solution. What we came up with:
(As per the original post we'll assume we're looking at the Employees EO and Position attribute)
1) By default extend the ADF Business Components Framework as per section 37.1 Globally Extending ADF Business Components Functionality of the Fusion Guide.
2) In the extended EntityImpl class, say common.model.CommonEntityImpl, create a public exposed version of the getPostedAttribute method
public Object getPostedAttribute(int index) {
return super.getPostedAttribute(index);
}public EntityImpl getEmployees() {
return (EntityImpl)getEntity(0);
}Oracle has announced that JavaFX and Java platforms are being used as the Official Rich Client Technology by the Vancouver Organizing Committee for the 2010 Olympic and Paralympic Winter Games (VANOC). Sport fans around the globe can now explore the historical Winter Games medal results through an innovative JavaFX application,Medal Wheel, available at http://www.vancouver2010.com/olympic-medals/geo-view/.
Oracle has announced that JavaFX and Java platforms are being used as the Official Rich Client Technology by the Vancouver Organizing Committee for the 2010 Olympic and Paralympic Winter Games (VANOC). Sport fans around the globe can now explore the historical Winter Games medal results through an innovative JavaFX application,Medal Wheel, available at http://www.vancouver2010.com/olympic-medals/geo-view/.
The CTOvision.com assessment of the Oracle Acquisition of Sun: This is positive for the enterprise IT across the board, but the biggest determinate of what it means for your enterprise is what decisions you make now. If you are an enterprise CTO, the ball is in your court. The following provides a bit more context. First, [...] Related posts:
The CTOvision.com assessment of the Oracle Acquisition of Sun: This is positive for the enterprise IT across the board, but the biggest determinate of what it means for your enterprise is what decisions you make now. If you are an enterprise CTO, the ball is in your court. The following provides a bit more context. First, [...] Related posts:
Thanks to some assistance from Richard Wright from Oracle Corp on the OTN forums a week or so ago, I learnt about the uncommittedDataWarning property in the af:document tag, which I'd like to describe in this post.
This property is useful in the following scenario. Imagine you have a page as follows:
As you can see the page allows the user to change values of the current employee, and behind the scenes this is based on the usual ADFm bindings. In turn note the 3 buttons and their labels. For this screen there is a strict requirement for the developer to either Commit their changes or Undo them, before navigating back to the Home page.
Before the introduction of the uncommittedDataWarning property, the user could select the Go Home button and bypass this requirement. A workaround would be to set the Go Home button's disabled property such that the user couldn't navigate through the button if there were changes to be saved. However this is easily defeated by the user hitting the browser's back button, with the ensuing "JBO-35007: Row currency has changed since the user interface was rendered" mess that confuses users and developers no end.
With the introduction of the uncommitedDataWarning property for the af:document tag, and setting it to "on", if the user selects either the Go Home button (assuming we haven't disabled it) or the browser's back button without committing or undoing their work, they'll see the following browser error:
The dialog gives the user the option to Cancel, which leaves them on the current page, or Ok, which allows them to complete their action.
This is definitely an interesting feature, especially with its browser back button support.
One thing to note is that it only works for data that goes through the ADF binding layer. As such if you've JSF components based on a bean that isn't exposed to the ADF layer through a data control, it won't capture the data change. Thus this is another reason to ensure you don't hack code into the JSF layer, but expose it all through ADF Business Components or the other supported business service layer in ADF.
Also at this time the feature has a couple of limitations worth mentioning:
1) If the dialog displays and the user selects ok, the dialog will continue to display on each further page navigation until the user either commits or rolls back their changes. I can imagine this will become confusing or frustrating for some users, especially if you don't provide commit/rollback buttons on other pages.
2) As noted in this OTN post, I note that it is a warning mechanism and not an error mechanism (or at least, it doesn't have an option to enforce no navigation). It would seem ideal, especially with its back button functionality, to display an error only, leaving the user on the same page and forcing them to do a commit. Obviously this wouldn't be ideal in all cases, but certainly in some. I've raised ER 9299581 with Oracle Support for this.
3) As Richard Wright points out in the same post, "for a similar use case there has been a request to allow the user to continue with either a commit or rollback from the dialog. It would be analogous to the "Save" dialog received when exiting a native app (e.g., Word, Excel, JDev)." Hopefully we'll see these ERs in a future release.
I'm not overly sure when this property became available but I'm guessing the original JDev 11g release. It's definitely available in 11gR1 which this post was written against.
Thanks to some assistance from Richard Wright from Oracle Corp on the OTN forums a week or so ago, I learnt about the uncommittedDataWarning property in the af:document tag, which I'd like to describe in this post.
This property is useful in the following scenario. Imagine you have a page as follows:
As you can see the page allows the user to change values of the current employee, and behind the scenes this is based on the usual ADFm bindings. In turn note the 3 buttons and their labels. For this screen there is a strict requirement for the developer to either Commit their changes or Undo them, before navigating back to the Home page.
Before the introduction of the uncommittedDataWarning property, the user could select the Go Home button and bypass this requirement. A workaround would be to set the Go Home button's disabled property such that the user couldn't navigate through the button if there were changes to be saved. However this is easily defeated by the user hitting the browser's back button, with the ensuing "JBO-35007: Row currency has changed since the user interface was rendered" mess that confuses users and developers no end.
With the introduction of the uncommitedDataWarning property for the af:document tag, and setting it to "on", if the user selects either the Go Home button (assuming we haven't disabled it) or the browser's back button without committing or undoing their work, they'll see the following browser error:
The dialog gives the user the option to Cancel, which leaves them on the current page, or Ok, which allows them to complete their action.
This is definitely an interesting feature, especially with its browser back button support.
One thing to note is that it only works for data that goes through the ADF binding layer. As such if you've JSF components based on a bean that isn't exposed to the ADF layer through a data control, it won't capture the data change. Thus this is another reason to ensure you don't hack code into the JSF layer, but expose it all through ADF Business Components or the other supported business service layer in ADF.
Also at this time the feature has a couple of limitations worth mentioning:
1) If the dialog displays and the user selects ok, the dialog will continue to display on each further page navigation until the user either commits or rolls back their changes. I can imagine this will become confusing or frustrating for some users, especially if you don't provide commit/rollback buttons on other pages.
2) As noted in this OTN post, I note that it is a warning mechanism and not an error mechanism (or at least, it doesn't have an option to enforce no navigation). It would seem ideal, especially with its back button functionality, to display an error only, leaving the user on the same page and forcing them to do a commit. Obviously this wouldn't be ideal in all cases, but certainly in some. I've raised ER 9299581 with Oracle Support for this.
3) As Richard Wright points out in the same post, "for a similar use case there has been a request to allow the user to continue with either a commit or rollback from the dialog. It would be analogous to the "Save" dialog received when exiting a native app (e.g., Word, Excel, JDev)." Hopefully we'll see these ERs in a future release.
I'm not overly sure when this property became available but I'm guessing the original JDev 11g release. It's definitely available in 11gR1 which this post was written against.
Oracle, sensibly enough from Oracle’s point-of-view, has turned off the tap of development resources on Sun’s Project Wonderland, the 100% Java open source toolkit for creating collaborative 3D virtual worlds. However, a core group of diehard Wonderlanders means to keep the project going and is scouting out for-project and non-profit options for becoming self-sustaining.
Oracle, sensibly enough from Oracle’s point-of-view, has turned off the tap of development resources on Sun’s Project Wonderland, the 100% Java open source toolkit for creating collaborative 3D virtual worlds. However, a core group of diehard Wonderlanders means to keep the project going and is scouting out for-project and non-profit options for becoming self-sustaining.
After months under the radar, Makara on Tuesday unveiled a brand new approach to cloud computing's most difficult problem: application deployment and management. Rather than retrofit system management software designed for traditional application environments to the cloud, Makara's Cloud Application Platform leverages the virtual layer to allow developers to rapidly deploy, scale and monitor applications in cloud environments. The product is freely available today as a developer release at www.makara.com. "The widespread adoption of cloud computing is hitting a wall in terms of ROI because companies are not able to effectively manage applications, both inside and outside the enterprise, in a cloud environment. No one's going to run mission-critical apps without management, not in the data center and definitely not in the cloud," said Tim Guleri, Managing Director of Sierra Ventures. "Makara's Cloud Application Platform provides that missing link, enabling developers to deploy their apps and make them work with full management capabilities. Makara will get the cloud past the ROI hurdle."
After months under the radar, Makara on Tuesday unveiled a brand new approach to cloud computing's most difficult problem: application deployment and management. Rather than retrofit system management software designed for traditional application environments to the cloud, Makara's Cloud Application Platform leverages the virtual layer to allow developers to rapidly deploy, scale and monitor applications in cloud environments. The product is freely available today as a developer release at www.makara.com. "The widespread adoption of cloud computing is hitting a wall in terms of ROI because companies are not able to effectively manage applications, both inside and outside the enterprise, in a cloud environment. No one's going to run mission-critical apps without management, not in the data center and definitely not in the cloud," said Tim Guleri, Managing Director of Sierra Ventures. "Makara's Cloud Application Platform provides that missing link, enabling developers to deploy their apps and make them work with full management capabilities. Makara will get the cloud past the ROI hurdle."
I do dream in color, not always vivid color, but color just the same. Today, I was awakened by one of my 5 boys in the middle of a great dream about the future. In my dream, I was in a big white room just as a door was opening and someone was about to walk in. Who was that? That's when I was awakened. Don't you hate dream interruption? Or Idruption? Quick note, I heard the iPad comes with an Idruption finisher, those guys at Apple are so innovative. What I do recall from my dream was that it was the summer of 2012, and Jeff Bezos, Paul Sagan and I were celebrating the 2 year anniversary of the merger of our three companies. There was a lot of talk about how 50% of the Fortune 1000 had shut down their data centers and moved all their operations onto our Dream Cloud. So much for that Gartner prediction -"By 2012, 20 percent of businesses will own no IT assets." The other thing that was clear from the conversation was that Dream Computing as a category had completely replaced the term Cloud Computing.
I do dream in color, not always vivid color, but color just the same. Today, I was awakened by one of my 5 boys in the middle of a great dream about the future. In my dream, I was in a big white room just as a door was opening and someone was about to walk in. Who was that? That's when I was awakened. Don't you hate dream interruption? Or Idruption? Quick note, I heard the iPad comes with an Idruption finisher, those guys at Apple are so innovative. What I do recall from my dream was that it was the summer of 2012, and Jeff Bezos, Paul Sagan and I were celebrating the 2 year anniversary of the merger of our three companies. There was a lot of talk about how 50% of the Fortune 1000 had shut down their data centers and moved all their operations onto our Dream Cloud. So much for that Gartner prediction -"By 2012, 20 percent of businesses will own no IT assets." The other thing that was clear from the conversation was that Dream Computing as a category had completely replaced the term Cloud Computing.
Oracle finally closed on its delayed acquisition of Sun Tuesday, leaving local entities to shift for themselves according to local laws and sidestepping MySQL creator Monty Widenius’ hopes of Russian and Chinese regulators stalling the merger. Widenius will now presumably revert to his quixotic Plan B and appeal the European Commission’s clearance last week, a green light that looked really iffy there for a while.
Oracle finally closed on its delayed acquisition of Sun Tuesday, leaving local entities to shift for themselves according to local laws and sidestepping MySQL creator Monty Widenius’ hopes of Russian and Chinese regulators stalling the merger. Widenius will now presumably revert to his quixotic Plan B and appeal the European Commission’s clearance last week, a green light that looked really iffy there for a while.
Oracle said this morning that it had finally completed its acquisition of Sun, leaving local entities to shift for them according to local laws and sidestepping MySQL creator Monty Widenius’ hopes that Russian and Chinese regulators could stall the merger. Widenius will now presumably revert to his quixotic Plan B and appeal the European Commission’s week-old clearance of the deal after its prolonged four-and-a-half month investigation that looked dicey there for a while.
Oracle said this morning that it had finally completed its acquisition of Sun, leaving local entities to shift for them according to local laws and sidestepping MySQL creator Monty Widenius’ hopes that Russian and Chinese regulators could stall the merger. Widenius will now presumably revert to his quixotic Plan B and appeal the European Commission’s week-old clearance of the deal after its prolonged four-and-a-half month investigation that looked dicey there for a while.
Netbiscuits, a B2B web software platform for the creation, operation and monetization of mobile websites, and Media Prima Berhad, an integrated media investment group in Malaysia, have announced the joint realization of two new mobile web portals for TV3, Malaysia's leading free-to-air TV network, and GUA, the most popular entertainment and lifestyle portal in Malaysia. The new mobile sites are available at mobile.tv3.com.my and mobile.gua.com.my.
Netbiscuits, a B2B web software platform for the creation, operation and monetization of mobile websites, and Media Prima Berhad, an integrated media investment group in Malaysia, have announced the joint realization of two new mobile web portals for TV3, Malaysia's leading free-to-air TV network, and GUA, the most popular entertainment and lifestyle portal in Malaysia. The new mobile sites are available at mobile.tv3.com.my and mobile.gua.com.my.
If you have not been actively working with J2EE containers, open source or free databases, and obscure Java tools, then getting started with OpenJPA may prove to be more challenging than just learning the API. I am going to work through this from scratch and take you with me. OpenJPA is the open source implementation of the Java Persistence API (JPA).
If you have not been actively working with J2EE containers, open source or free databases, and obscure Java tools, then getting started with OpenJPA may prove to be more challenging than just learning the API. I am going to work through this from scratch and take you with me. OpenJPA is the open source implementation of the Java Persistence API (JPA).