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: | Smaller openide.util for use in projects that may or may not be used from modules | ||
---|---|---|---|
Product: | platform | Reporter: | _ tboudreau <tboudreau> |
Component: | -- Other -- | Assignee: | _ tboudreau <tboudreau> |
Status: | NEW --- | ||
Severity: | normal | CC: | err, hmichel, jglick, jtulach, mkleint |
Priority: | P3 | ||
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | ENHANCEMENT | Exception Reporter: |
Description
_ tboudreau
2010-03-22 21:38:31 UTC
(In reply to comment #0) > Use META-INF/netbeans/translate.names and actually repackage things? translate.names is only useful for renaming implementation classes used in serialized objects. It is useless for API classes. I think it will be rather difficult to pin down which classes in org.openide.util are "generally useful" enough to deserve inclusion. There is no clear criterion here. Agreed, there's no clear demarcation - I'm basing this on what I've needed to stub out in several projects already. There are a few demarcations available, though: - "useful outside of NetBeans" versus "useless outside of NetBeans" (w/o supporting infrastructure anyway - ExClipboard, ActionPerformer, HelpCtx) - Area of concern vs. general-purpose: - Localization (NbBundle) - Error Handling (Exceptions, ErrorManager, Parameters, misc Exception subclasses) - Threading (RequestProcessor, Task, Mutex) - Actions (*Action, Action*, - Clipboard operations (ExClipboard, - I/O (*Stream) - Various collection extensions (WeakSet, NbCollections, Enumerations) - Rarely used versus frequently used (NbBundle vs., say, NbMarshalledObject) Since we're unlikely to split out all such concerns into separate modules, any such split is going to involve making some arbitrary decisions. I don't think the lack of ideal natural boundaries means we can do nothing - that would be rather making the perfect the enemy of the good. But if such a change is more attractive if I do split up those things that have natural separation of concerns, I can certainly do that too. Once I have something to commit, it will appear in the prototypes repo on branch openide-util-split-182529 (In reply to comment #2) > - Localization (NbBundle) This doesn't offer much value unless you are using NB's branding facility; otherwise you could just use ResourceBundle. > - Error Handling (Exceptions Intended for use with the core's logger impl; otherwise not all that useful. > ErrorManager De facto deprecated. > Parameters Mildly useful in general. > misc Exception subclasses) Probably not useful. > - Actions (*Action, Action*, Generally not useful outside of the Platform. > - I/O (*Stream) Rarely used even in NB (mainly useful for old serialized settings), could probably be moved to some autoload some day. > - Various collection extensions (WeakSet, NbCollections, Enumerations) These are of general utility. (Of course it would be better if the JRE included them.) > Once I have something to commit, it will appear in the prototypes repo on > branch openide-util-split-182529 OK, but for this kind of change the decisions about what goes where are better made by regular conversation; the code changes are likely to follow naturally from those decisions. Y01 Please make sure that either the old module org-openide-util.jar or the new module is not in platform/lib, but in platform/modules. I do not want additional modules on java -cp, the less we load with classical ClassLoaders, the better. |