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.
Summary: | Hide Obsolete Property Editor APIs | ||
---|---|---|---|
Product: | platform | Reporter: | tomwheeler <tomwheeler> |
Component: | Explorer | Assignee: | tomwheeler <tomwheeler> |
Status: | RESOLVED WONTFIX | ||
Severity: | blocker | CC: | apireviews, jglick, jtulach |
Priority: | P4 | Keywords: | API, API_REVIEW_FAST |
Version: | 3.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: |
Description
tomwheeler
2008-10-22 18:44:45 UTC
We can try this for post 6.9 version, but I need help with rewriting existing usages of deprecated APIs. Are you volunteering, Tom? Btw. the mail archive links are broken. I expect you are talking about deprecating and hiding: http://bits.netbeans.org/6.9/javadoc/org-openide-explorer/org/openide/explorer/propertysheet/editors/EnhancedPropertyEditor.html http://bits.netbeans.org/6.9/javadoc/org-openide-explorer/org/openide/explorer/propertysheet/editors/EnhancedCustomPropertyEditor.html http://bits.netbeans.org/6.9/javadoc/org-openide-explorer/org/openide/explorer/propertysheet/editors/NodePropertyEditor.html Right? Here is a grep of an nbms-and-javadoc job build output yielding 27 lines: ~$ grep Enhanced.*PropertyEditor out.txt | cut -f 1 -d ":" | grep java$ | cut -c 50- | sort -u beans/src/org/netbeans/modules/beans/beaninfo/CustomCodeEditor.java beans/src/org/netbeans/modules/beans/IdxPropertyTypeEditor.java beans/src/org/netbeans/modules/beans/PropertyTypeEditor.java contrib/remotefs/src/org/netbeans/modules/remotefs/ftpfs/PasswordEditor.java contrib/tasklist.docscan/src/org/netbeans/modules/tasklist/docscan/TaskTagsPanel.java contrib/tasklist.usertasks/src/org/netbeans/modules/tasklist/usertasks/DateSelectionPanel.java jellytools.platform/src/org/netbeans/jellytools/properties/Property.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/ChoiceEditor.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/Int0Editor.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/LogLevelEditor.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/ui/DDTablePanel.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/ValidationMethodEditor.java o.n.core/src/org/netbeans/beaninfo/editors/CharEditor.java openide.explorer/src/org/openide/explorer/propertysheet/ComboInplaceEditor.java openide.explorer/src/org/openide/explorer/propertysheet/CustomEditorAction.java openide.explorer/src/org/openide/explorer/propertysheet/CustomEditorDisplayer.java openide.explorer/src/org/openide/explorer/propertysheet/InplaceEditorFactory.java openide.explorer/src/org/openide/explorer/propertysheet/PropertyDialogManager.java openide.explorer/src/org/openide/explorer/propertysheet/WrapperInplaceEditor.java uml.propertysupport/src/org/netbeans/modules/uml/propertysupport/customizers/DocumentationCustomizer.java uml.propertysupport/src/org/netbeans/modules/uml/propertysupport/customizers/ParameterCustomizer.java uml.propertysupport/src/org/netbeans/modules/uml/propertysupport/customizers/PropertyElementCustomizer.java uml.propertysupport/src/org/netbeans/modules/uml/propertysupport/customizers/ReturnTypeCustomizer.java visualweb.jsfsupport.designtime/src/org/netbeans/modules/visualweb/faces/dt/std/ValueBindingPanel.java xml.tax/src/org/netbeans/modules/xml/tax/beans/editor/NullChoicePropertyEditor.java xml.tax/src/org/netbeans/modules/xml/tax/beans/editor/NullStringCustomEditor.java xml.tax/src/org/netbeans/modules/xml/tax/beans/editor/TreeNodeFilterCustomEditor.java It should not be that hard to eliminate these usages and then use @PatchBytecode annotation to hide the interfaces from the API. (In reply to comment #1) > http://bits.netbeans.org/6.9/javadoc/org-openide-explorer/org/openide/explorer/propertysheet/editors/EnhancedCustomPropertyEditor.html Fixed links in core-main #4db7cceca65d And what about NodeCustomizer? > ~$ grep Enhanced.*PropertyEditor out.txt | cut -f 1 -d ":" | grep java$ | cut > -c 50- | sort -u Better to search directly in sources: hg locate -r . -0 \*\*.java | xargs -0 grep -lZ -- org\\.openide\\.explorer\\.propertysheet\\.editors\\.\[EN\] | xargs -0 ls -l producing 31 hits in main (excepting openide.explorer and openide.nodes), and 17 in contrib. > use @PatchBytecode annotation to hide the interfaces from the API I guess you mean @PatchedPublic, which would need to be extended to types as well as methods. Not so easy - Enhanced*Editor are used from the org.openide.explorer.propertysheet package. (NodeCustomizer is used from org.openide.nodes.TMUtil and RADComponentNode in form; not sure who uses NodePropertyEditor.) So we can either leave them @Deprecated but supported as currently, or really delete them and all support for them. Note that http://wiki.netbeans.org/CompatibilityPolicy#Technical_procedure_for_making_an_incompatible_phased_change allows the latter option but only in a release after all known usages have been removed and the deletion has been preannounced; it would also mean a change to org.openide.explorer/1. The relevant part from the inaccessible e-mail thread was the list of classes: Here are the ones you noted: - EnhancedPropertyEditor - EnhancedCustomPropertyEditor and here are the ones I mentioned but you did not: - ExPropertyModel - DefaultPropertyModel - NodeCustomizer You also mentioned NodePropertyEditor but I did not reference that in my original e-mail. It is deprecated and of no use for new code, so I think it should be on the list as well. Yes, I will volunteer to update current uses of these classes in the NetBeans codebase. Re. "Yes, I will volunteer to update current uses of these classes" - OK, let's start with that. The less usages is there, the better. Then it will be easier to deprecate all/some of the classes. Tom, unless you want to integrate yourself, create a patch, attach it to a bug, make the bug block this one. I'll try to help with convincing module owners that the fix is needed. Assigning to Tom to provide some of the cleanup patches first. Accepted -- I expect to be able to work on this in about two weeks. I've started working on this today. The following lists the classes I want to hide, the usages I found in the Hg main sources and what the Javadoc suggests to replace them with. ## org.openide.explorer.propertysheet.editors.EnhancedCustomPropertyEditor ## Use PropertyEnv instead. ------------------------------------------------------------------------------------------------- beans/src/org/netbeans/modules/beans/beaninfo/CustomCodeEditor.java compapp.casaeditor/src/org/netbeans/modules/compapp/casaeditor/properties/extension/SimpleTabularDataCustomEditor.java compapp.configextension/src/org/netbeans/modules/compapp/configextension/handlers/properties/HandlerChainCustomEditor.java compapp.configextension/src/org/netbeans/modules/compapp/configextension/redelivery/properties/RedirectTargetCustomEditor.java compapp.manager.jbi/src/org/netbeans/modules/sun/manager/jbi/editors/PasswordCustomEditor.java compapp.manager.jbi/src/org/netbeans/modules/sun/manager/jbi/editors/SimpleTabularDataCustomEditor.java edm.editor/src/org/netbeans/modules/edm/editor/ui/view/conditionbuilder/ConditionBuilderView.java etl.editor/src/org/netbeans/modules/sql/framework/ui/view/conditionbuilder/ConditionBuilderView.java etl.editor/src/org/netbeans/modules/sql/framework/ui/view/GroupByView.java openide.explorer/src/org/openide/explorer/propertysheet/CustomEditorAction.java openide.explorer/src/org/openide/explorer/propertysheet/CustomEditorDisplayer.java openide.explorer/src/org/openide/explorer/propertysheet/PropertyDialogManager.java openide.explorer/src/org/openide/explorer/propertysheet/PropertyPanel.java visualweb.jsfsupport.designtime/src/org/netbeans/modules/visualweb/faces/dt/std/ValueBindingPanel.java visualweb.propertyeditors/src/com/sun/jsfcl/std/RaveStringCustomEditor.java visualweb.propertyeditors/src/com/sun/jsfcl/std/URLPanel.java visualweb.propertyeditors/src/org/netbeans/modules/visualweb/propertyeditors/binding/ValueBindingPropertyEditor.java visualweb.propertyeditors/src/org/netbeans/modules/visualweb/propertyeditors/StandardUrlPanel.java xml.tax/src/org/netbeans/modules/xml/tax/beans/editor/NullStringCustomEditor.java xml.tax/src/org/netbeans/modules/xml/tax/beans/editor/TreeNodeFilterCustomEditor.java ## org.openide.explorer.propertysheet.editors.EnhancedPropertyEditor ## Update to use ExPropertyEditor and InplaceEditor.Factory, and also ## create an implementation of InplaceEditor for the custom inline editor. ------------------------------------------------------------------------------------------------- beans/src/org/netbeans/modules/beans/IdxPropertyTypeEditor.java beans/src/org/netbeans/modules/beans/PropertyTypeEditor.java compapp.manager.jbi/src/org/netbeans/modules/sun/manager/jbi/editors/JBILogLevelEditor.java j2ee.sun.appsrv81/appsrvbridge/src/org/netbeans/modules/j2ee/sun/util/EnhancedPropertyEditorFactory.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/ChoiceEditor.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/LogLevelEditor.java j2ee.sun.appsrv/src/org/netbeans/modules/j2ee/sun/ide/editors/ValidationMethodEditor.java jellytools.platform/src/org/netbeans/jellytools/properties/Property.java o.n.core/src/org/netbeans/beaninfo/editors/CharEditor.java openide.explorer/src/org/openide/explorer/propertysheet/ComboInplaceEditor.java openide.explorer/src/org/openide/explorer/propertysheet/InplaceEditorFactory.java openide.explorer/src/org/openide/explorer/propertysheet/WrapperInplaceEditor.java xml.tax/src/org/netbeans/modules/xml/tax/beans/editor/NullChoicePropertyEditor.java ## org.openide.explorer.propertysheet.EnhancedCustomPropertyEditor ## Use PropertyEnv instead. See RectangleCustomEditor for details. ------------------------------------------------------------------------------------------------- dlight.visualizers/src/org/netbeans/modules/dlight/visualizers/FunctionsListSheetCell.java editor.deprecated.pre61settings/src/org/netbeans/modules/editor/options/ColoringEditorPanel.java ## org.openide.explorer.propertysheet.DefaultPropertyModel ## Use org.openide.nodes.PropertySupport.Reflection instead ------------------------------------------------------------------------------------------------- diff/src/org/netbeans/modules/diff/builtin/DiffPresenter.java ## org.openide.explorer.propertysheet.DefaultPropertyModel ## Use PropertySupport.Reflection or BeanNode if you need to expose bean properties ------------------------------------------------------------------------------------------------- form/src/org/netbeans/modules/form/RADComponentNode.java openide.nodes/src/org/openide/nodes/TMUtil.java I see the eliminatation of DefaultPropertyModel less important than the previously listed cases. But I am eagerly looking forward to see a patch. I did start work on this, but it turned out to be a much bigger project than I originally expected and I haven't had as much time to work on it as I'd hoped. Obviously, I missed the date for inclusion in 6.10, but I still do hope to complete it as time allows. Dormant. |