2 Replies Latest reply on Sep 28, 2015 4:29 AM by Simon Greener

    Debugging changes to extension

    Simon Greener

      JDeveloper 12.1.3

      Oracle 12cR1

      Windows 7 Pro 64 Bit

      Extension samples: 12.1.3.0.41.140521.1008

      SQK Developer 4.1.1

       

      I am converting a 3.x extension to 4.x.

       

      I can get successfully:

       

      1. Add context menus for table/view/etc nodes

      2. Create a single View menu item that opens a mickey mouse dialog;

      3. Add custom Snippets.

       

      Then I make a change, perhaps it is calling a Java class from a context menu, or modify Manifest.MF to expose bundles and the whole extension fails to load.

      This is exposed by trying to load a changed zip file via Help>Check for Updates>Install from Local File. The load dialogs, when the extension works, show a dialog

      asking if one wants to reinstall (because extension has same version number). But when it fails I don't get the dialog and the extension doesn't load. In this case

      I don't get any error messages or stack trace for the Console; nothing loads, no Console messages are displayed (eg System.console().writer().println).

       

      How do I work out what went wrong? Any recipe or suggestions to check what is going wrong welcome.

       

      regards

      Simon

        • 1. Re: Debugging changes to extension

          I am converting a 3.x extension to 4.x.

           

          I can get successfully:

           

          1. Add context menus for table/view/etc nodes

          2. Create a single View menu item that opens a mickey mouse dialog;

          3. Add custom Snippets.

           

          Then I make a change, perhaps it is calling a Java class from a context menu, or modify Manifest.MF to expose bundles and the whole extension fails to load.

          This is exposed by trying to load a changed zip file via Help>Check for Updates>Install from Local File. The load dialogs, when the extension works, show a dialog

          asking if one wants to reinstall (because extension has same version number). But when it fails I don't get the dialog and the extension doesn't load. In this case

          I don't get any error messages or stack trace for the Console; nothing loads, no Console messages are displayed (eg System.console().writer().println).

           

          How do I work out what went wrong? Any recipe or suggestions to check what is going wrong welcome.

          Unfortunately it isn't clear what support, if any, Oracle intends to provide for 3rd party sql developer extension development.

           

          As you now previous extensions are incompatible with the newer JDeveloper framework that sql dev is based on.

           

          But even the Oracle Sql Developer extensions exchange home page has never been updated with ANY 3rd party extensions for the 4+ framework

          http://www.oracle.com/technetwork/developer-tools/sql-developer/extensions-083825.html

           

          The only suggestion I can make is to FIRST develop and test your extension for JDeveloper. That exchange is both current and supported by the JDeveloper team.

          http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/130355.xml

           

          The JDeveloper extension framework also supports using JDeveloper as the deployment platform and debugging a JDev extension that executes as part of a JDEV debugging project.

           

          That is you create a JDEV extension project within JDeveloper. Then you can 'debug' that project which will launch another 'child' version of JDeveloper that you use to test your extension functionality.

           

          That allows you to debug your extension project the same way you would debug any other project.

           

          Once you have you JDeveloper extension working you can focus on making ONLY the changes needed for it to work with Sql Develop.(e.g for example menu names are different)

           

          Then at least you can post for help in BOTH the sql dev and JDev forums and post sample code that works in JDeveloper but not in Sql DEv.

           

          This is the question I posted with a question/issue similar to yours a year and a half ago and never got any reply.

          What is proper JDev/SQLDev setup for developing/debugging extensions

           

          The reality is that this is a public, community forum so you/I/we will only get help to the extent that someone has experience with the issue and is inclined to help.

           

          The Oracle Sql Dev team is pretty overloaded with their own work with the product so often can't always step in.

          1 person found this helpful
          • 2. Re: Debugging changes to extension
            Simon Greener

            Thanks for taking the time to write.


            Now I understand why you suggest I work entirely within the JDeveloper framework before trying to deploy to SQL Developer, I will try. However, the extension uses <sqldev-snippet-hook> and <sqldev-action-hook> which I assume would not be recognised by JDeveloper extension.xml (JDeveloper says this to me about these: "No grammar available for namespace http://xmlns.oracle.com/sqldeveloper/sqldev-snippet, contents of element sqldev-snippet-hook/sqldev-action-hook cannot be validated". Perhaps the SQL Developer team could create a small set of specific SQL Developer Extensions based on those shipped with the JDeveloper extension API that show all the main elements of the API. The Bedent Crib Sheet: SQL*Developer Extension was/is a good start.


            The extension I work on started life during the beta for SQL Developer 1.0. It has had to be modified a number of times as extension APIs have changed. In the past the project had multiple people working on it some with expertise in this particular area (this is not my expertise, mine is in the areas of functionality and algorithms), so someone could figure it out. Now, because the team has dropped to one, I am left to try and resurrect the extension for 4.x and am having trouble hence why I am posting to this forum (as I have been asked to do). If it wasn't for the fact that the GeoRaptor extension has had 50,000 downloads over the past 9 years, and that I use GeoRaptor every day I connect to an Oracle database I would give up. (Many users want me to continue with GeoRaptor as they prefer its functionality to the default Spatial one.)

             

            The SQL Developer team has always encouraged third parties to develop extensions. There has been a lack of documentation on how to do this properly for most of SQL Developer's life. Perhaps the problem lies with the fact that Free is not the same as Open. It would be helpful if Oracle would decide whether they want us to continue developing or not. If funds are a problem then maybe the free nature of SQL Developer should be reviewed. (Given TOAD's cost I would be happy to pay a few hundred dollars for SQL Developer if that helped create better extension developer support.