Archive for October, 2004
JDAPI misteries
Oct 31st
After working some weeks with JDAPI strange features are emerging.
JDAPI seems to be unable to save PLL modules! Trying this results in This module type does not currently support saving to filesystem exception. Compiling PLL modules seems also sort of “not supported” by the jdapi. An exception This module type does not currently support compilation is thrown. Actually, decompiling the f90jdapi.jar and checking the PlsqlModule class confirms this. The only thing the save() and compile() methods are doing is throwing an exception. But why is this difference in behaviour between libraries and forms and menus?
So I got curious how the Migration Assistant does the trick. After decompiling the f90upgrade.jar to find out how Oracle fixes this problem in their Migration Assistant, I found out that they have also difficulties compiling and saving PLL modules. The work around is to execute the forms compiler (ifcmp90.exe or f90genm) from within Java. This is also backed up by a post on OTN replied by Frank Nimphius, one of the builders of the Migration Assistant.
Finding attached libraries can only be done in context of a parent FormModule or MenuModule (static method AttachedLibraries.find), but not in context of PlsqlModules. I might be wrong, but I think this is strange, because in real life a library (PlsqlModule) is very able to have other PlsqlModules attached. For example open ofgtel.pll and see the ofgmes.pll attached. So why isn’t jdapi letting me find them in the same way an attached library can be found on a form or menu?
The javadoc is hard to find, but it can be downloaded here: JDAPI javadoc and here: XML Tools javadoc.
Google Desktop Search – no more agonizing searches for lost documents
Oct 28th
This weekend I installed the Google Desktop Search tool. It is currently in Beta, it is free, about 400K in size and can be downloaded from http://desktop.google.com/. After you have downloaded and installed (within a minute) it starts scanning the files on your harddisk: Word, Excel and Powerpoint, HTML, text files such as Java and Outlook Mail. You can interupt this indexing process at any time – it will automatically resume when there is Idle Cpu time available.
As soon as the indexing has started, you can start searching for documents. It is Google as you know it – but running locally against local data!

And it is FAST. I have never liked the Windows Explorer Search – slow and never able to return exactly what I was looking for. With Google I find my documents within seconds, from my emails to my Office documents and even the webpages I have visited in the past (yes, it also indexes the webpages from my browser’s cache!).
I have never been one for hardware gadgets or software goodies and I have certainly never before written about one in this weblog. But I really would like to recommend this Google Desktop Search!

JHeadstart recipe – non-databound search-criteria
Oct 28th
From today’s customer assignment I extract the following recipe – for BC4J, JSP and Struts.: Suppose that on the FindPage of our JHeadstart generated JSP application we would like to add one or more search-criteria that are not directly bound to ViewObject attributes. For example in the context of the ALS application: the FindBookPage contains a field labeled AuthorFirstName. Here, the user may enter the firstname of an author. The application should now only return books in the result set that have at least one contributing author whose firstname matches the one entered by the end-user. The ViewObject underlying the Bookpages does not contains Authorships and Author information. A direct query on this ViewObject can not make use of the AuthorFirstName property. Of course, when no value is entered in this field, the query should not look for authors at all!

When a value for AuthorFirstName is provided, an additional piece of where-clause should be activated that looks from the ALS_BOOKS table via the ALS_AUTHORSHIPS table in the ALS_AUTHORS table.Now how are we going to do that?
Overview:
1. Add additional search criteria to the JSP for the FindPage
2. Add Form Bean properties to the FindFormBean for these new fields
3. Create your own ApplicationModuleImpl (extend JhsApplicationModuleImpl) with a new and overloaded getRestrictedDataObjectSet method
4. Implement in the specific DataObjectHandlerImpl the getRestrictedDataObjectSet method that catches and processes additional, non VO-bound search criteria.
The recipe is found here, describing these steps in detail: Recipe for non-ViewObject Attribute bound search criteria.
Read the rest of this entry »
JDeveloper BPEL plugin
Oct 27th
Today I attended an excellent online Oracle Seminar on the BPEL Process Manager by Sandor Nieuwenhuijs. I think most of the content is covered by a previous post by Lucas. Still there were some very noteworthy points.
First of all a beta version of the BPEL Process Manager plugin for JDeveloper will be available in about a months time. Sandor actually showed us a sneak preview of a pre beta version JDeveloper plugin. It looks really exciting. Not only does it have alt the features present in the Eclipse version, but it additionally includes the Adapter Service Wizard. With this wizard you can configure WSIF adaptors for a great number of services, such as File, Database, Java, EJB , PeopleSoft, JD Edwards and the likes. Another cool feature is the Transformation mapper. A slick, feature rich visual tool to design XSLT transformation of one XML into another XML document.
Another advantage of the JDeveloper plugin is that is 100% java and not Internet Explorer dependent.
The JDeveloper plugin does not signal the end of the Eclipse plugin. Oracle will still support and develop it. It’s not said however that they will have the exact same features.
On the positioning with other oracle tools Sandor stated the following.
ProcessConnect and BPEL PM will be merged into one product in the future. Oracle will develop InterConnect indepently from the BPEL PM , but it will strive to use the BPEL standard.
Oracle Workflow will mainly be used for the OracleApplications suite.
An interesting talk on a tool with great promise
Sandor Nieuwenhuijs kindly granted us permission to put his presentation on our blog
JBoss releases library for Aspect Oriented Programming
Oct 27th
JBoss just released JBoss AOP 1.0 Final production release. See the announcement on The Server Side – JBoss AOP 1.0. It has a plugin for Eclipse but can be used in any programming environment with JDK 1.4 or 5.0. It allows Java 5.0 Style Annotations in a JDK 1.4 environment – as it can “precompile” those (see Annotation Compiler).
For software, tutorials and documentation, see the JBoss AOP Homepage.
From the homepage the following quotation:
JBoss AOP is a 100% Pure Java aspected oriented framework usuable in any programming environment or tightly integrated with our application server. Aspects allow you to more easily modularize your code base when regular object oriented programming just doesn’t fit the bill. It can provide a cleaner separation from application logic and system code. It provides a great way to expose integration points into your software. Combined with JDK 1.5 Annotations, it also is a great way to expand the Java language in a clean pluggable way rather than using annotations solely for code generation. Check out our User Guide linked below as it described in detail why you’d want to use aspects.JBoss AOP is not only a framework, but a prepackaged set of aspects that are applied via annotations, pointcut expressions, or dynamically at runtime. Some of these include caching, asynchronous communication, transactions, security, remoting, and many many more.
JBoss AOP is now integrated with Eclipse. Check out the animated demo.
For an introduction to Aspect Oriented Programming, try out this section from the user guide
Currently JBoss’s AOP is not integrated with JDeveloper. However, that merely means that you do not have visual editors to manipulate the XML file that describes the pointcuts nor the views that quickly tell you which methods have been ‘annotated’ or ‘intercepted’ – which is a pity, but not crucial. You can simply install the JBoss AOP libraries and get going from within JDeveloper as well!
AMIS publishes Extensions for the JHeadstart Application Generator
Oct 26th
Today AMIS announces the immediate availability of the AMIS JHeadstart Application Generator Extensions. A free set of enhancements for JHeadstart 10g (9.0.5.x) that will allow you to generate much more functionality into your applications. Among the functional enhancements in this set are:
- Generation of radiobuttons
- JavaScript event hooks at item level (onFocus, onBlur, onChange, onClick, onDblClick)
- Distinct prompts for Form, Find and Table-pages
- Distinct displayType for Form, Find and Table-pages
- Support for item-level bubble help (balloon text)
- CSS Styles per page, region or item and distinct for Form, Find and Table-pages
- Support for JSTL
- Regions can be generated side by side and stacked
- Support for Uppercase/lowercase/initcap
- New display type textInputHyperlink that allows direct navigation to a website
- Display multiple attributes in a List of Values
- Return multiple display values from a List of Values
- Support for Autoquery and Tablerange in List of Values
- Display LOV base items as boilerplate instead of disabled text-input
- Support for onSubmitFind, onSubmitTabe and onSubmitForm JavaScript events
Oracle Designer – on Design Editor performance and Repository Maintenance
Oct 26th
Yesterday it was an almost nostalgic day. For several years – primarily in the late 1990’s – I was heavily engaged in everything to do with Oracle Designer, its Repository and API, and Version Control of Configuration Management. I spent many weeks at the UK Development Center for Designer 6i, discussed features and functionality with the architects and developers of the Oracle Repository, developed and taught courses on the new stuff and was one of the first to understand some maybe even most of it. Then I almost suddenly changed directions and spent most of my time on Java/J2EE and XML/XSLT as well as some Data Warehousing and BI. All exciting, all new. Yesterday however, I was back to Oracle Designer. One of our customers has a very interesting layout of Oracle Designer 6i. They have several dozens of Designer users. And they make heavy use of versioning, configurations for release management and workareas to set up different environments for development, test, production and maintenance. They even make use of branches for patch development. It was a feast for the eye, so to speak, especially since they also used CDM RuleFrame – a framework I had some involvement in as well. However, they were experiencing performance problems and had invited me to come and have a look – hoping I would present to them the silver bullet. The switch they could manipulate to turn good performance on. Well, as it turned out, the bullet wasn’t silver but it seems to be bronze! In this post I will tell some more about the analysis I performed and the steps for improvement I have recommended.
Deployment under JBoss-4.0.0 with Eclipse’s JBoss-IDE plugin
Oct 21st
This evening I successfully re-deployed my application to JBoss-4.0.0. It used to be deployed under JBoss 3.2.4 using the Lomboz plug-in. Although the JBoss-IDE plug-in involves a bit more labour as compared to the Lomboz plug-in, the former requires a better understanding of the deployment process, which is always good to have!
So what are the required steps?
- Build a WAR file.
- Build an EJB jar file.
- Pack the archives in an EAR file, together with a
MANIFEST.MFandpackaging.xml. - Deploy your application!
A more detailed recipe is listed below. Read the rest of this entry »
Webforms Help page on OTN
Oct 21st
Here is an excellent web page about Oracle webforms. It covers the Forms Server, lots of general stuff, how to implement java (PJC and beans) in your webform and an excelent how-to for using the JDAPI (with a class diagram of the JDAPI package). The nice thing about this page is that it is a “1-stop-shop” covering a lot of stuff I’ve gathered over the last years in countless OTN white-papers about the subject.
AMIS Library System – JHeadstart 9.0.5.x (BC4J, JSP+JSTL) Demo Application released
Oct 20th
Today, AMIS released the JHeadstart 9.0.5.x version of the ALS application for BC4J and JSP/JSTL. Download the zip-file with the entire application, the database setup and the JDeveloper 10g Workspace and project in the following Zip-file:
Who should be interested? Anyone who uses JHeadstart or contemplates using it and wants to know more about it. Furthermore especially all who attended the AMIS JHeadstart Workshop (and wants to try out the exercises at home or just expand on the workshop contents). Anyone interested in designing and building J2EE Web Applications, possibly using JDeveloper 10g, BC4J, Struts and JSP + JSTL, may want to take a look at this application for demonstration purposes.
To get a feel for what this application looks like, see Overview of the AMIS Library System Reference Application (ALS) 9.0.5.x.
Read the rest of this entry »


