Posts tagged jdeveloper

Change the JDeveloper system directory

De system directory is where JDeveloper stores the user specific settings, configurations and also (for 11g) the default domain of the embedded weblogic server. It uses the JDEV_USER_HOME environment variable to dettermine the location. If it’s not set is uses a default directory, for 11g on windows XP that’s <user dir>\Application Data\JDeveloper\systemXXX (XXX stands for the exact IDE version, e.g. system11.1.1.3.37.56.60 for 11gPS2, 11.1.1.3.0) and for 10g that’s <JDev install dir>\jdev\system (no version included). Note that the Application Data directory contains a space. And although this doesn’t prevent JDeveloper and the embedded weblogic from proper functioning, it may sometimes leads to an issue, e.g. that diagnostics (adrs) cannot create an image.

To change this directory, just add the JDEV_USER_HOME environment variable and set it to the required directory, that must not contain a space in the name and when you restart JDeveloper it will use that directory. However, you’ll notice that JDeveloper will now consider itself an almost new installation, without your custom configuration and no default weblogic domain but with installed extensions. It should be able to copy the old systemXXX directory to the new location but didn’t work with me and upgrade settings from a previous version didn’t work too. So you have to do the configuration again, but luckily the weblogic default domain is created automatically with the first deployment.

Be aware that when you have multiple 10g installations you should not set the environment variable because 10g doesn’t add a version number to the system directory and you’ll end up with one directory for all the 10g installations which I’m sure will cause serious problems. In this case you should can change the directory per 11g installation by setting the ide.user.dir property (use forward slashes) in the <middleware install dir>\jdeveloper\jdev\bin\jdev.boot file or add it to the startup script with -J-Dide.user.dir=<some directory>.

Manage JDeveloper external libraries

Although JDeveloper provides loads of libraries out-of-the-box, you often need other libraries in your application. You can easily add these libraries via the project properties. This provides two options: ‘Add Library’ and ‘Add Jar / Directory’. We normally us the Add Library option because it allows to include the JavaDoc and the source code. However make sure that you check the ‘Deployed by Default’ checkbox or else the library will not be included on the classpath and the application will fail with a java.lang.ClassNotFoundException. By the way, we never use Tools -> Manage Libraries because we only use project libraries and never the user or system libraries, because they introduce local dependencies that need to be maintained at every workstation seperately.

add-jdev-ibrary

ADF 11g: Debugging Task Flows embedded from ADF Libraries using source code jars

We have been struggling quite a bit with a good approach for modularizing our ADF web applications through the use of (stand alone) Task Flows that are developed in independent projects and assembled into a single Web Application from ADF Libraries. In theory, this is a very structured, decoupled way of developing potentially complex ADF Web Applications – while allowing for reuse. The contextual events mechanism in combination with the task flow input parameters allow definition of a clear interface through which to reuse the task flow. So all seems well.

However, when you try to put this theoretical bliss into actual practice, there are some limitations that you run into. One of the tricky issues we had to deal with is: how can we debug our web application when part of the source of the application is reused from ADF Libraries? How can we put breakpoints in the sources that are part of the ADF Library?

On closer inspection, there seems to be a relatively easy way for doing this – using an additional library definition in JDeveloper that refers to the sources that form the foundation of the ADF Library.

Let’s take a quick look at how this would work:

Read the rest of this entry »

Subversion – branching, merging and reintegration

Subversion is a great source control system. One of the great features is it’s branching and merging support. Although many developers avoid it, branching is very powerful and useful and should not be something to be afraid off but something to be familiar with. And for the stable and controlled development is it almost a necessity to master it.

In general we can identify two types of branches: product and feature branches.

  • The product branch is normally to support maintenance on a released version while development of the next version continues.
  • A feature branch is normally a temporary branch to work on a (complex) change without interfering with the stability of the main development line (trunk) and in the end is incorporated back into the main line again.

Now, while you can work on isolation on the feature branch, there will come a time that you’ll have to integrate (merge) the changes with the trunk. And although subversion does provide extensive merge support, this might get messy with big changes. So it’s a real good idea to keep the feature branch in sync with the trunk and have the changes in the trunk regularly applied to the feature branch too. Actually, this is not so complicated as it might seem, especially when using modern tools like TortoiseSVN or IDE’s.

Read the rest of this entry »

ADF 10g Dynamic Columns: Or how to implement an updatable dynamic table

Although it is all about ADF 11g these days there are still some challenges in ADF 10g projects that run at some of my customers. Today I finished a task in which I had to create an updatable table in which the number of shown columns wasn’t known at design time. There is the possibility to create an ADF read only dynamic table, that works more or less like the richfaces columns <rich:columns/> http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf?tab=usage&cid=3305454  element. However, I needed an updatable table, but ADF doesn’t know such a component. I had to come up with a different solution. Read the rest of this entry »

JDeveloper 11.1.1.2: Carousel component as Master and Detail

In this post I introduce to you one of the new ADF Rich Client components and one way to use it: The Carousel. You can display a set of images through a carousel, an animation effect that switches the emphasis successively between images as the user moves the mouse across them.

You can also have the carousel invoke and respond to partial triggers and display data in master detail relationships. Read the rest of this entry »

Installing WebCenter 11g – Design Time and Run Time (and on Linux)

 

Getting started with WebCenter 11g, released on July 1st 2009, is quite easy. What you have to do exactly depends on the environment you work in, the bits and pieces in WebCenter that you want to make use of and the other FMW components that are part of your technology stack. Note that most of the installation steps you have to go through for WebCenter 11g are the same as for SOA Suite 11g – both involve WebLogic 11g, the Repository (Creation Utility against an 11g database) and the creation of a dedicated domain on WebLogic.

If all you are looking for is fiddling around with WebCenter in an isolated development environment, there is a lot you can do by simply adding the WebCenter plugin to JDeveloper 11g (11.1.1.1.x). With the plugin installed, you can work with (most) WebCenter Services, ,most of the WebCenter Composer and Framework facilities – including run time page customization and consuming portlets. Just go to the Help Window in JDeveloper, select the Check for Updates option and select the WebCenter 11g extension to be installed. A JAR of some 150 Mb or so is downloaded, JDeveloper is restarted, the integrated WebLogic Server is extended with WebCenter functionality and you are ready for some WebCenter development.

You can also download the zip-file with the WebCenter extension for JDeveloper directly from the page at: http://www.oracle.com/technology/products/jdev/101/update/fmw_products.xml. You can then install the extension using the option ‘local file’ and selecting the zip file.

A very useful article was published yesterday by George Maggessy on the installation of WebCenter 11g on a Linux box – see http://georgemaggessy.blogspot.com/2009/07/installing-webcenter-suite-11g-on-linux.html. He explains – and demonstrates through many screenshots – what the steps are (by and large the same as on Windows by the way) and what choices you have to make during the installation process.

Launchdate 1st July: JDeveloper 11.1.1.1.0 (Bulldog) – Interesting new features

 

As part of the announcement on July 1st around Oracle Fusion Middleware 11g, Oracle released the next point release (11.1.1.0.2 => 11.1.1.1.0) of JDeveloper. And while the change is only in the fourth digit, there are still quite a few very interesting new options, features and components new in this release. In this article a brief and by no means exhaustive list of some of those new things as I have discovered them in the last few months.

This release 11.1.1.1.0 release had the internal code name of Bulldog and I have been referring to that name a few times before. One of the important changes since its predecessor (11.1.1.0.0, internally known as Boxer) is that now the full Fusion Middleware 11g R1 release is available, for which JDeveloper provides the design time environment. So the Bulldog release launched today has the design time for SOA Suite 11g and WebCenter 11g, to name but two. The WebLogic server that ships with this JDeveloper release is now the latest 10.3.1 – the foundation for FMW 11g.

Read the rest of this entry »

Fast Swap in WebLogic 10.3 (and JDeveloper 11g) – redeploy after compile in running application

 

One of the cool new things I learned about here at the ODTUG 2009 conference is the fast swap feature in WebLogic Server 10.3 and above. So far, Application Server features have had limit use in my little development world, but this is one that may have quite some value for me, as I am developing my web applications in JDeveloper and constantly deploying, running and testing them. This feature will considerably shorten those development cycles!

The fast swap feature makes it possible to have classes that are changed and recompiled in JDeveloper immediately redeployed on WLS, without actually redeploying the entire application. By setting a single configuration option in a configuration file and configuring the output path for the compiler in JDeveloper I can shorten most of the development-compile-deploy-test cycles by eliminating the deploy (and application restart) step.

Read the rest of this entry »

Extending the SQL Developer functionality in JDeveloper 11g

One thing that always draws me in tools, libraries and frameworks: what are the hooks, the backdoors, the extension points, the APIs, the event listener registration facilities etc. Today I came across a blog article by Roel Hartman, about showing Oracle Designer objects in the SQL Developer database navigator. I could not resist looking into the extension mechanism used for this. And of course the best way to understand this, is by doing it yourself. So in this article my brief description of how to extend the Database Navigator in JDeveloper (which is the same thing as in stand alone SQL Developer).

My extension is primitive and pointless in the extreme. It has the navigator show a new node type called Employees. The child nodes are the employees specified in table EMP. The interesting part of course is that you can any information found in the database – either the data dictionary or your own tables and views. This allows you to integrate Business Rules if they are defined in tables. Or Tasks, Issues, Projects and Team Members – if they are in tables. Or the results of calling WebServices – if these results are exposed through Views.

Read the rest of this entry »