This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Please enter a help ID for the root nodes for standard J2SE projects and free-form J2SE projects. You can use the class name for the dialog box as the help ID.
BTW, to clarify, there should be separate IDs for standard and free-form nodes.
Honzo, I have a similar issue for the EJB and EJB free-form projects. The free-form project concerns me, since Patrick's request is to have different help IDs for "different" free-form projects. How can we do this, since there's only one free-form project really? Delegating to the natures might not be trivial, since there can be more natures in a project (Java & web, Java & EJB), so how to decide which one wins?
Proposed solution based on our offline chat: 1. The ant/freeform will define an interface like: interface HelpIDFragmentProvider { String getHelpIDFragment(); } which will be implemented by each nature and put into the nature's lookup. 2. The help id for the freeform will be computed as follows: -get all help ID fragments from the lookup -sort them lexicographically (so the order is stable) -construct the help id aas a concatenation of these sorted fragments, separated by '.', prefixed with some prefix. So, for example, the root node of the Java freeform project would have help id like "freeform.node.java", web freeform would have help id like "freeform.node.java.web", EJB freeform would have something like "freeform.node.ejb.java", etc. ("freeform.node" is the prefix, we can choose anything for it). Patrik, will this work for you? Provided there are no objections, I will implement this and send it to the API review.
sounds ok to me
This needs API review since the ant/freeform packages are public.
BTW: AFAIK the ant/freeform's Java SPI is a friend SPI, should I change the project.xml to enforce it? (List all the friends I know about?) Probably a different fast track.
java/freeform already publishes only a friend SPI. However ant/freeform publishes a public SPI and it is too late to change this compatibly (as it was there in 4.1). It must be maintained compatibly.
Should maybe be HelpCtxFragmentProvider instead of HelpIDFragmentProvider, since the fragment is really used to build a HelpCtx.
Created attachment 29109 [details] Preliminary patch.
Honzo, are you going to commit the patch?
This issue blocks two issues against 5.5. Is this issue considered as reviewed? Can I proceed with integration to release55 branch?
Created attachment 32216 [details] updated patch against release55 branch
Milan, if you want to fix this into NB 5.5 : - add status whiteboard "5.5_candidate" - rise priority - ask on reviewers mailing list - ...... BTW: both blocked issues are P3, no stopper Patrick, do you want to fix this for NB 5.5 ?
Status WB added, I've already sent message to reviewers yesterday. And you are right that Patrick should have final word, if there is no content ready for 5.5 to utilize those HelpIDs there is no point to put it into release55 branch. Patrick?
I guess the change is missing @since tag on the class and change to apichanges.xml and increment of module spec. version.
Milan, please go ahead and integrate the change if you can (and provide us with the help IDs that are created).
I will integrate the fix tomorrow to trunk and to release55 branch. Raising prio since it prevents Docs teams from integrating help documents to IDE.
Done. Added SPI class HelpIDFragmentProvider that allows to provide freeform project type specific HelpIDs. Trunk version: Checking in apichanges.xml; /cvs/ant/freeform/apichanges.xml,v <-- apichanges.xml new revision: 1.4; previous revision: 1.3 done Checking in manifest.mf; /cvs/ant/freeform/manifest.mf,v <-- manifest.mf new revision: 1.14; previous revision: 1.13 done Checking in src/org/netbeans/modules/ant/freeform/Util.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/Util.java,v <-- Util.java new revision: 1.13; previous revision: 1.12 done Checking in src/org/netbeans/modules/ant/freeform/ui/View.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/View.java,v <-- View.java new revision: 1.23; previous revision: 1.22 done Checking in src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java,v <-- ProjectCustomizer.java new revision: 1.24; previous revision: 1.23 done RCS file: /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java,v done Checking in src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java,v <-- HelpIDFragmentProvider.java initial revision: 1.1 done Added HelpIDFragmentProviderImpl to all project natures. Checking in j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java; /cvs/j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java,v <-- EJBProjectNature.java new revision: 1.20; previous revision: 1.19 done Checking in java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java; /cvs/java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java,v <-- JavaProjectNature.java new revision: 1.12; previous revision: 1.11 done Checking in web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java; /cvs/web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java,v <-- WebProjectNature.java new revision: 1.14; previous revision: 1.13 done
release55 version: Checking in src/org/netbeans/modules/ant/freeform/ui/View.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/View.java,v <-- View.java new revision: 1.14.12.2.2.2; previous revision: 1.14.12.2.2.1 done Checking in src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/ui/ProjectCustomizer.java,v <-- ProjectCustomizer.java new revision: 1.19.58.2; previous revision: 1.19.58.1 done Checking in manifest.mf; /cvs/ant/freeform/manifest.mf,v <-- manifest.mf new revision: 1.8.12.2.2.3; previous revision: 1.8.12.2.2.2 done Checking in apichanges.xml; /cvs/ant/freeform/apichanges.xml,v <-- apichanges.xml new revision: 1.2.4.1.2.2; previous revision: 1.2.4.1.2.1 done Checking in src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/spi/HelpIDFragmentProvider.java,v <-- HelpIDFragmentProvider.java new revision: 1.1.2.1; previous revision: 1.1 done Checking in src/org/netbeans/modules/ant/freeform/Util.java; /cvs/ant/freeform/src/org/netbeans/modules/ant/freeform/Util.java,v <-- Util.java new revision: 1.10.64.2; previous revision: 1.10.64.1 done Checking in web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java; /cvs/web/freeform/src/org/netbeans/modules/web/freeform/WebProjectNature.java,v <-- WebProjectNature.java new revision: 1.11.22.1.2.4; previous revision: 1.11.22.1.2.3 done Checking in java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java; /cvs/java/freeform/src/org/netbeans/modules/java/freeform/JavaProjectNature.java,v <-- JavaProjectNature.java new revision: 1.9.12.1.2.2; previous revision: 1.9.12.1.2.1 done Checking in j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java; /cvs/j2ee/ejbfreeform/src/org/netbeans/modules/j2ee/ejbfreeform/EJBProjectNature.java,v <-- EJBProjectNature.java new revision: 1.15.2.3.2.9; previous revision: 1.15.2.3.2.8 done
Final part, HelpCtx added to regular project root nodes: Trunk version: Checking in java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java; /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java,v <-- J2SELogicalViewProvider.java new revision: 1.19; previous revision: 1.18 done Checking in web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java; /cvs/web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java,v <-- WebPhysicalViewProvider.java new revision: 1.39; previous revision: 1.38 done Checking in j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java; /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java,v <-- J2eeArchiveLogicalViewProvider.java new revision: 1.14; previous revision: 1.13 done Checking in j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java; /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java,v <-- EjbJarLogicalViewProvider.java new revision: 1.21; previous revision: 1.20 done release55 version: Checking in j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java; /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java,v <-- EjbJarLogicalViewProvider.java new revision: 1.16.2.2.2.6; previous revision: 1.16.2.2.2.5 done Checking in java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java; /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java,v <-- J2SELogicalViewProvider.java new revision: 1.4.2.5.2.4; previous revision: 1.4.2.5.2.3 done Checking in j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java; /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/J2eeArchiveLogicalViewProvider.java,v <-- J2eeArchiveLogicalViewProvider.java new revision: 1.7.2.2.2.11; previous revision: 1.7.2.2.2.10 done Checking in web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java; /cvs/web/project/src/org/netbeans/modules/web/project/ui/WebPhysicalViewProvider.java,v <-- WebPhysicalViewProvider.java new revision: 1.35.4.1.2.5; previous revision: 1.35.4.1.2.4 done
HelpIDs: Web freeform project node: "freeform.node.java.web" EJB freeform project node: "freeform.node.ejb.java" Java freeform project node: "freeform.node.java" Web project node: "org.netbeans.modules.web.project.ui.WebPhysicalViewProvider$WebLogicalViewRootNode" EJB project node: "org.netbeans.modules.j2ee.ejbjarproject.ui.EjbJarLogicalViewProvider$WebLogicalViewRootNode" EAR project node: "org.netbeans.modules.j2ee.earproject.ui.J2eeArchiveLogicalViewProvider$ArchiveLogicalViewRootNode" J2SE Project node: "org.netbeans.modules.java.j2seproject.ui.J2SELogicalViewProvider$J2SELogicalViewRootNode"
verified in the release55 branch