Derby
  1. Derby
  2. DERBY-5286

Update tools/ide/netbeans directory

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 10.9.1.0
    • Fix Version/s: 10.9.1.0
    • Component/s: Build tools
    • Labels:
      None

      Description

      The tools/ide directory contains projects for two versions of NetBeans (5.5 and 6.0). Since they haven't been updated for newer versions of NetBeans, I suppose it means they aren't used much. Also, since there are two of them, NetBeans gets confused as to which of the projects to use, and I have experienced that it often uses a mix of the 5.5 and 6.0 projects for the open source files, which causes problems for navigation and debugging. The problem with having multiple NetBeans projects pointing to the same source is described here: http://wiki.netbeans.org/FaqSourceRootOverlap

      To prevent these problems, we should either remove the tools/ide/netbeans directory and let NetBeans users create their own projects (there a pretty good description on the wiki: http://wiki.apache.org/db-derby/BuildingDerby#Using_NetBeans_to_Build_Derby ), or provide an updated project and remove the old ones.

      (The project files aren't really tied to a particular version of NetBeans and can be opened by newer versions. But the projects still need to be updated to be usable, I think. For example, they should have project-specific formatting settings (added in NB 6.5, I think) which set tab size to 4, since setting tab size globally to 4 as you would have to with the current projects, only works if Derby is the only project you're working on in NetBeans.)

      1. build-jars.diff
        7 kB
        Knut Anders Hatlen
      2. nb-debug.diff
        6 kB
        Knut Anders Hatlen
      3. update-project.diff
        3 kB
        Knut Anders Hatlen

        Activity

        Hide
        Knut Anders Hatlen added a comment -

        Here's an attempt to fix the issue by switching from two projects to one and update the new project to be more usable.

        First, copy the 6.0 version of the project to a location without a version number:

        svn cp tools/ide/netbeans/6.0/nbproject tools/ide/netbeans

        Then remove the version-specific projects:

        svn rm tools/ide/netbeans/5.5 tools/ide/netbeans/6.0

        Finally, update the project using the attached patch (update-project.diff). The patch makes the following changes to the project definition:

        1) Adjust the relative path to the project directory to account for the nbproject directory being moved up one level.

        2) Modify classpath:

        • Remove tools/java/xercesImpl.jar since it's no longer in the repository.
        • Change reference to ant.jar to $ {ant.core.lib}

          so that it works without copying ant.jar to tools/java.

        • Remove the classes directory since it's not needed and causes duplicate entries in the Go to type dialogue window.

        3) Change source level from 1.4 to 1.5 to prevent error markers when working on code that uses generics or other 1.5 language features.

        4) Add project-specific formatting so that you don't need to change the global formatting settings to get the correct tab size for Derby code.

        Show
        Knut Anders Hatlen added a comment - Here's an attempt to fix the issue by switching from two projects to one and update the new project to be more usable. First, copy the 6.0 version of the project to a location without a version number: svn cp tools/ide/netbeans/6.0/nbproject tools/ide/netbeans Then remove the version-specific projects: svn rm tools/ide/netbeans/5.5 tools/ide/netbeans/6.0 Finally, update the project using the attached patch (update-project.diff). The patch makes the following changes to the project definition: 1) Adjust the relative path to the project directory to account for the nbproject directory being moved up one level. 2) Modify classpath: Remove tools/java/xercesImpl.jar since it's no longer in the repository. Change reference to ant.jar to $ {ant.core.lib} so that it works without copying ant.jar to tools/java. Remove the classes directory since it's not needed and causes duplicate entries in the Go to type dialogue window. 3) Change source level from 1.4 to 1.5 to prevent error markers when working on code that uses generics or other 1.5 language features. 4) Add project-specific formatting so that you don't need to change the global formatting settings to get the correct tab size for Derby code.
        Hide
        Kristian Waagan added a comment -

        Hi Knut,

        The patch as it is, is definitely an improvement over what we currently have. Thanks
        +1 to the proposed changes

        Here are some suggestions on making the project definition even more useful:
        o set output (required for certain IDE features)
        It should probably point to the classes-dir, since we don't build the jars in the IDE build target.
        o set the javadoc output (manually invoking the javadoc build target is still required)
        o include a generic debug target.
        This means adding a ide-targets.xml, defining the classpath and naming a main class to run. For simple debugging, I suppose we could fire up ij. I hope it's easier for people to modify an existing target, than to create it from scratch.
        If we don't want to add this, we should remove the debug-target in project.xml, such that NB will offer to auto-generate the required file/target. The downside of this, is that the project file will change and show up as modified in the source tree after debugging.

        Show
        Kristian Waagan added a comment - Hi Knut, The patch as it is, is definitely an improvement over what we currently have. Thanks +1 to the proposed changes Here are some suggestions on making the project definition even more useful: o set output (required for certain IDE features) It should probably point to the classes-dir, since we don't build the jars in the IDE build target. o set the javadoc output (manually invoking the javadoc build target is still required) o include a generic debug target. This means adding a ide-targets.xml, defining the classpath and naming a main class to run. For simple debugging, I suppose we could fire up ij. I hope it's easier for people to modify an existing target, than to create it from scratch. If we don't want to add this, we should remove the debug-target in project.xml, such that NB will offer to auto-generate the required file/target. The downside of this, is that the project file will change and show up as modified in the source tree after debugging.
        Hide
        Knut Anders Hatlen added a comment -

        Thanks, Kristian. Those sound like good suggestions. I've committed the first change (revision 1138000) and will try to update it as suggested. Having a generic debug target that starts ij sounds useful.

        Show
        Knut Anders Hatlen added a comment - Thanks, Kristian. Those sound like good suggestions. I've committed the first change (revision 1138000) and will try to update it as suggested. Having a generic debug target that starts ij sounds useful.
        Hide
        Knut Anders Hatlen added a comment -

        Here's a patch that sets the output directory to "classes" and the javadoc directory to "javadoc". I wasn't sure exactly which directory to set as javadoc directory since our build script produces multiple directories under javadoc. I don't know exactly what NetBeans uses this setting for, but we can change it later if it turns out this isn't the right value for the setting.

        I also added two debug targets. One target that runs ij in the debugger and one that runs the network server.

        Committed revision 1138039.

        Show
        Knut Anders Hatlen added a comment - Here's a patch that sets the output directory to "classes" and the javadoc directory to "javadoc". I wasn't sure exactly which directory to set as javadoc directory since our build script produces multiple directories under javadoc. I don't know exactly what NetBeans uses this setting for, but we can change it later if it turns out this isn't the right value for the setting. I also added two debug targets. One target that runs ij in the debugger and one that runs the network server. Committed revision 1138039.
        Hide
        Knut Anders Hatlen added a comment -

        The previous patch set output to the classes directory. After having used this setting for a little while, I've found it to be suboptimal, since you cannot add the Derby project as a dependency in another NetBeans project if output is set to directories only. This patch changes output to point to the jar files, and also makes the project build the jar files.

        Committed revision 1140995.

        Show
        Knut Anders Hatlen added a comment - The previous patch set output to the classes directory. After having used this setting for a little while, I've found it to be suboptimal, since you cannot add the Derby project as a dependency in another NetBeans project if output is set to directories only. This patch changes output to point to the jar files, and also makes the project build the jar files. Committed revision 1140995.
        Hide
        Knut Anders Hatlen added a comment -

        I don't have any more planned changes for this issue, so I'm marking it as resolved.

        Show
        Knut Anders Hatlen added a comment - I don't have any more planned changes for this issue, so I'm marking it as resolved.

          People

          • Assignee:
            Knut Anders Hatlen
            Reporter:
            Knut Anders Hatlen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development