Posts

JDeveloper – Increase Productivity Using Shortcuts

Hi all and welcome to a new article on Red Mavericks!

Integrated Development Environments (IDEs) are useful tools to maximize productivity for developers. This article will present how to configure new shortcuts and some very important advanced shortcuts available by default in JDeveloper that can be very useful to speed up development process.

Introduction and Configuring Shortcuts

In order to maximize programmer productivity, one important aspect is the use of some shortcuts. We all know some basic shortcuts like “CTRL+X” (to cut) or “CTRL+C” (to copy) and we use it every day as they save a lot of time. So, essentially, the shortcuts help you work more effectively and speed up almost everything you do.

In other hand, long lists of keyboard shortcuts can quickly become overwhelming if you’re just getting started. The key to learn and memorize the shortcuts is to practice every day with a smaller but growing set.

In order to help you, I will explain how to see the list of shortcut keys in jDeveloper and, also, how to configure your own.

Firstly, to see the list of shortcut keys available in your jDeveloper, you can select “Tools->Preferences…” that will open a window with the “Preferences” of your environment. In that window select “Shortcut Keys” in the left. A list with all the shortcuts available are presented.

 

After a quick inspection on that list you notice that there are a lot of actions without a shortcut key associated. Sometimes, you will find very useful to add shortcuts to some of those actions. For example, in my project I use the “Generate Accessors” action a few times, especially when I create a new java class and my jDeveloper didn’t had any shortcut associated for that action. In order to add a shortcut simply search for the action you want to add it, in my case “Generate Accessors” and in “New Shortcut” input add the desired key(s).

Notice that shortcut keys only can have one action associated to it, otherwise a conflict will be rise and the new shortcut key will be ignored.

 

 

Useful Advanced Shortcuts in JDeveloper

 

Shortcut Action Example
CRTL + SHIFT + C Copy the file path
  1.  Select the file in Projects Tab
  2. Press CTRL+SHIFT+C to copy the file path
  3. Open the explorer and simply past the path with CTRL+V
ALT + HOME Switch Projects Tab content to the Application/Project/Package of the open file Press ALT+HOME in any open file to automatic change the Project Tab content to the location of that file.This will give you information about the Application, Project and package that contain the current open file.

CRTL + Minus Go to File  
CTRL + SPACE + SPACE Auto complete with new variable declaration  

 

Conclusion

After reading this article you know how to configure your own shortcuts in JDeveloper and four important advanced shortcuts that can be very useful in development process. For example, you can easily search and open a class in your application using only a partial name (CTRL + Minus), find the previous class in the Projects tab (CTRL + ALT + HOME) and if you desire find the path to that class in your system (CTRL+SHIFT+C).

Hope you enjoy this article and if you know other important shortcuts share with us in the comments.

Keep checking out Red Mavericks for additional tips of Oracle Middleware technology

Cheers,
Pedro Curto

Post image by Pedro Curto

Error in JDeveloper 12.2.1 - OSB project with XQuery changes to SOA project

Error in JDeveloper 12.2.1 – OSB project with XQuery changes to SOA project

Hi all,

After having performed a quick dive into JDeveloper 12.2.1, I came across a quite interesting feature. OSB projects started to get converted to SOA projects! Being clueless about the reason for this strange phenomenon, I conducted a quick investigation and concluded it was due to adding XQuery transformations to the project. Below are my findings and how to go around this problem if you had the misfortune of coming across it as well.

Symptoms

While working on an OSB project in Jdeveloper 12.2.1, after adding an XQuery transformation, JDeveloper changes it to a SOA project. The project structure will change and an error will be produced by Jdeveloper when completing the XQuery creation. This will occur also when importing an OSB project that contains XQuery tranformations in Jdeveloper 12.2.1. Basically, as long as there is an XQuery file in the project, it will be converted to a SOA project. When trying to deploy the project, Jdeveloper will open the Wizard for SOA project deployment, which will fail, because we have in fact an OSB project.

Adding an XQuery file to the project

Below is an example of what happens when adding an XQuery file to an existing OSB Project.

Sample OSB project before adding XQuery

Sample OSB project before adding XQuery

 

Sample OSB project after adding XQuery

Sample OSB project after adding XQuery

Meanwhile, in the JDeveloper log, the below error can be seen as well:

Uncaught exception
java.lang.NullPointerException
at oracle.tip.tools.ide.fabric.addin.SCAProjectConfigurator.configSCAProject(SCAProjectConfigurator.java:216)
at oracle.tip.tools.ide.fabric.addin.SCAProjectConfigurator.configSCAProject(SCAProjectConfigurator.java:131)
at oracle.tip.tools.ide.fabric.addin.SCAProjectConfigurator.configSCAProject(SCAProjectConfigurator.java:126)
at oracle.tip.tools.ide.fabric.addin.wizard.CompositeCreator.createComposite(CompositeCreator.java:284)
at oracle.tip.tools.ide.fabric.addin.wizard.CompositeCreator.createEmptyComposite(CompositeCreator.java:202)
at oracle.tip.tools.ide.fabric.addin.SCATechnologyListener$2.run(SCATechnologyListener.java:123)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Trying to deploy the project

Let’s say we are brave enough to ignore what happened and go ahead and try to deploy the project. We will be presented with the Deployment Wizard for SOA projects, which will fail if we go through all the way, since we have an OSB project in hands. Below you can see highlighted an indication that JDeveloper is looking at the project mistakenly as a SOA project.

Trying to deploy affected OSB project

Trying to deploy affected OSB project

Solution

There is a patch to fix this problem. To retrieve it, go to Oracle Support and refer to

Doc ID 2090174.1. Be sure to shut down JDeveloper before applying the patch and also to recreate the Default Domain in your installation (if you happen to be using the Integrated Server). As for the projects already affected, the cleanest approach is to recreate them and import the old files into them. As an alternative, it’s also possible to delete all soa-related artefacts from the projects and manually editing the .jpr files to remove the line highlighted below.

<hash n="oracle.ide.model.TechnologyScopeConfiguration">
  <list n="technologyScope">
    <string v="SOA"/>
    <string v="ServiceBusTechnology"/>
    <string v="XML"/>
    <string v="XML_SCHEMA"/>
  </list>
</hash>

Applies to

JDeveloper 12.2.1.0.0, when creating XQuery files in OSB projects
JDeveloper 12.2.1.0.0 when importing OSB projects containing XQuery files

And there you go. I hope this helps you to tackle this odd problem.

 

Carlos Pona (@carlospona84)

Carlos Pona is a SOA Technical Leader at Link Consulting.

Post header image by lees bus pics