7 Replies Latest reply on Jun 28, 2014 3:33 AM by rp0428

    SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK

      Submenus and submenu items added to a context menu do NOT display in sql developer but do display in JDev.

       

      Individual items added to a context menu work properly but submenus do not.

       

      1. Sql Dev 4.0.2.15.21 is based on the JDev 12.1.3 framework which is NOT publicly released yet

      2. The below sample (based on JDev Extension SDK FirstSample) displays context menu items and submenu and submenuitems correctly

      3. The same sample in Sql Dev does NOT contain the submenu and submenu items. Is this a bug or an incompatibility between frameworks?

       

      The starting point was the FirstSample from the latest Extension SDK. I confirmed that this sample worked in both JDev 12.1.2.0.l0 and Sql Dev 4.0.2.15.21

       

      This is what displays, correctly, in JDev

      Connection

          Tables

              DEPT

                 ESDK Sample Action

                  Custom Item 1

                  Custom Item 2

                  CustomSubMenu

                       Custom Submenu Item1

                       Custom Submenu Item2

      The submenu and items do NOT display in Sql Dev

      Connection

          Tables

              DEPT

                 ESDK Sample Action

                  Custom Item 1

                  Custom Item 2

      The following modifications were made to the 'extension.xml' file for that sample with the goal of displaying additional context-menu items on a 'TABLE' node of the database Navigator:

       

      1. removed the main menu and gallery items

      2. add a 'rules' section

        <trigger-hooks xmlns="http://xmlns.oracle.com/ide/extension">

              <rules>

                  <rule id="context-has-object-node" type="context-has-node">

                      <parameters>

                          <param name="node-class" value="oracle.dbtools.raptor.navigator.impl.ObjectNode" />

                      </parameters>

                  </rule>

              </rules>

      3. added four additional 'actions'

                      <action id="CustomItem1">
                          <properties>
                              <property name="Name">Custom Item 1</property>
                              <property name="SmallIcon">${OracleIcons.LABEL}</property>
                          </properties>
                      </action>
                      <action id="CustomItem2">
                          <properties>
                              <property name="Name">Custom Item 2</property>
                              <property name="SmallIcon">${OracleIcons.LABEL}</property>
                          </properties>
                      </action>

                      <action id="CustomSubmenuItem1">
                          <properties>
                              <property name="Name">Custom Submenu Item1</property>
                              <property name="SmallIcon">${OracleIcons.LABEL}</property>
                          </properties>
                      </action>
                      <action id="CustomSubmenuItem2">
                          <properties>
                              <property name="Name">Custom Submenu Item2</property>
                              <property name="SmallIcon">${OracleIcons.LABEL}</property>
                          </properties>
                      </action>

      4. modified the 'context-menu-hook' section

        a. change the 'site' to ONLY display on the DB navigator tree

        b. change the rule from "always-enabled" to the new rules "context-has-object-node" so only database object context menus would be affected

        c. added two menu items

        d. added a new 'menu' item, section and two submenu items - these do  NOT displaly on Sql Dev but do display in JDev

            <context-menu-hook rule="context-has-object-node">

              <site idref="db_nav"/>

              <menu>

                <section xmlns="http://jcp.org/jsr/198/extension-manifest" id="MY_CUSTOM_MENU_SECTION_ONE" weight="1.0">

                   <item action-ref="oracle.ide.extsamples.first.invokeAction"></item>

                   <item action-ref="CustomItem1"></item>

                   <item action-ref="CustomItem2"></item>

                   <menu id="CustomSubMenu">

                      <section xmlns="http://jcp.org/jsr/198/extension-manifest" id="MY_CUSTOM_MENU_SECTION_THREE" weight="1.0">

                         <item action-ref="CustomSubmenuItem1"></item>

                         <item action-ref="CustomSubmenuItem2"></item>

                      </section>

                   </menu>

                 </section>

               </menu>

            </context-menu-hook>

       

      The JDev version I have is the 12.1.2 framework but Sql Dev, I've been told by the Sql dev team, uses the 12.1.3 framework which is NOT yet publicly available.

       

      I don't know which of three hypotheses (or others) might be correct:

       

      1. Something broke in the new 12.1.3 framework that works in the 12.1.2 framework

      2. The XSD schema rules changed for specifying submenus

      3. Something broke/changed in the Sql Dev port/use of the framework

        • 1. Re: SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK
          Gary Graham-Oracle

          Not to answer any questions, but in case you had not already noticed, the release of JDev 12.1.3 got tweeted a couple of hours ago.

          1 person found this helpful
          • 2. Re: SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK

            Thanks for the info.

             

            Are you guys on good terms with the JDeveloper team? Curiously there is NO mention of SQL Developer on the compatibility page!

            http://www.oracle.com/technetwork/developer-tools/jdev/documentation/121300-cert-2164864.html

             

            That page, and the download page for 12.1.3, only show support for 64 bit for now. I've posted a question in the JDev forum asking if 32 bit will still be supported.

             

            The Sql Dev I'm using for the problem reported in this thread (4.0.2.15.21) is 32 bit on Windows XP and presumably uses the 12.1.3 JDeveloper framework so the presumption would be that, internal to Oracle at least, a 32 bit version of the 12.1.3 JDev framework exists.

            • 3. Re: SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK
              Gary Graham-Oracle

              Curiously there is NO mention of SQL Developer on the compatibility page!

              SQL Developer is not the only Oracle product that consumes the JDeveloper framework, e.g, Oracle Data Integrator.  By its very nature, a consumer would have to be implicitly supported, but some mapping of framework version to consumer version seems reasonable.  Probably the responsibility of the consuming product to provide that information. The JDeveloper team is always very helpful, and some of our team came from there.

               

              As to the lack of 32-bit support, except on unspecified "Other Operating Systems", I would guess that's just a combination of

              1. The trend toward enterprise-class applications moving toward 64-bit, perhaps especially memory hungry, Java-based ones, and

              2. End-of-life for XP.  That OS probably had way more 32-bit installs than 64-bit.

              however, JDeveloper is a Java application so I am unsure what sort of limitations other than memory one might encounter when running with a 32-bit JDK.

               

              P.S.:  A note from the JDeveloper certification page

              Support for Other (untested) operating systems, including 32bit JDK, is provided for the purposes of a single user in a development environment only. Not intended for production deployments.

               

              Message was edited by: Gary Graham

              • 4. Re: SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK

                As to the lack of 32-bit support, except on unspecified "Other Operating Systems", I would guess that's just a combination of

                1. The trend toward enterprise-class applications moving toward 64-bit, perhaps especially memory hungry, Java-based ones, and

                2. End-of-life for XP.  That OS probably had way more 32-bit installs than 64-bit.

                however, JDeveloper is a Java application so I am unsure what sort of limitations other than memory one might encounter when running with a 32-bit JDK.

                I posted a new thread to the JDev forum asking if the 32 bit platform support has been discontinue

                https://community.oracle.com/thread/3577580

                 

                So here is the relevant question taking both this current thread of mine and that new one into account:

                 

                Does Sql developer support third-party extension development for 32 bit platforms?

                 

                1. Sql Dev 4.0.2.15.21 is publicly available on 32 bit platforms

                2. Sql Dev makes heavy use of the JDeveloper OSGI extension framework

                3. Sql Dev uses framework version 12.1.3 - it is not known whether this is a custom, private internal version or the same one that was just publicly released.

                 

                So we are still looking for that official, supported combination of products that Oracle intends to support as regards Sql Developer extensions. Is it:

                1. The new public 12.1.3 64 bit framework

                2. Sql Dev 4.0.2.15.21+ on a 64 bit host

                3. The new Extension SDK that was just release

                 

                Here is the appropriate excerpt from that new thread:

                So I'm trying to understand what JDeveloper and Sql Developer extensions are going to be supported and on what platforms.

                 

                If the Jdev 12.1.3 framework is NOT going to be supported for 32 bit that likely means that extensions for 32 bit versions of Sql Developer are not going to be supported either.

                 

                But that version of Sql developer is publicly available for 32 bit systems and its architecture makes heavy use of extensions. So it itsn't clear at all if the public at large can develop extensions for 32 bit sql developer if the Jdev 12.1.3 framework isn't available on that target.

                • 5. Re: SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK
                  Gary Graham-Oracle

                  I hope you get the definitive answer you seek from the JDeveloper side of the house.  From a pure Java perspective, however, I would tend to fall back on the generalization that, regarding byte-code and JVMs, any extension you build from Java source-- whether using a 32-bit or 64-bit JDK -- can be run on a 32-bit or 64-bit JVM.  It should not matter: build it where you can, then deploy it where you wish.

                  • 6. Re: SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK

                    Brian Fry responded in the JDev forum thread I posted. Quoting from that reply for convenience to forum readers.

                    We (JDev) still support 32bit JDK. The change that you are seeing is twofold: 1) We are no longer distributing installers with the 32bit JDK built in, 2) We no longer run tests on 32bit JDK. However, customers are still entitled to support when running JDeveloper in a 32bit environment. The availability of 32bit machines and operating systems capable of running JDeveloper is diminishing quickly. Fusion Middleware supports only 64bit, but for the development only (in JDeveloper) we currently continue to provide 32bit support. This will ultimately change in the future (in the same way that we no longer support 16bit architectures), but the time frame is not yet known.

                    I will mark this thread ANSWERED and will retest the issue using the new 12.1.3 JDev and extension SDK.

                    • 7. Re: SQL Developer 4.0.2.15.21 bug or incompatability with JDev 12.1.2 Extension SDK

                      Retested using JDeveloper 12.1.3 with the same results - the submenu and submenu items do NOT display in Sql Developer.

                       

                      Opened a new thread - https://community.oracle.com/thread/3578044