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.

Bug 52165 - Navigator and Java Navigation development review
Summary: Navigator and Java Navigation development review
Status: RESOLVED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Navigation (show other bugs)
Version: 4.x
Hardware: All All
: P2 blocker (vote)
Assignee: David Simonek
URL: http://openide.netbeans.org/tutorial/...
Keywords: API_REVIEW
Depends on: 52575 52576 52577 52578
Blocks: 50366
  Show dependency tree
 
Reported: 2004-12-07 17:40 UTC by David Simonek
Modified: 2005-09-05 10:01 UTC (History)
4 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments
arch answers (41.43 KB, text/html)
2004-12-07 17:41 UTC, David Simonek
Details
new version of arch answers (47.90 KB, text/html)
2004-12-14 13:30 UTC, David Simonek
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Simonek 2004-12-07 17:40:14 UTC
I'm asking for review of Navigator and Java
Navigation; two new modules that I would like to
include in standard distribution for Netbeans 4.1
release.
Anwers to architecture questions are attached.
Comment 1 David Simonek 2004-12-07 17:41:05 UTC
Created attachment 19181 [details]
arch answers
Comment 2 Miloslav Metelka 2004-12-08 12:19:26 UTC
arch-usecases: "No public API, thus no use cases." - Although the
question states API usage you could mention usecases in a spoken
language as well. Or you should extend arch-what answer which is IMHO
rather brief.

arch-time: The URLs in the arch documents should be publicly reachable
(http://jupiter...)

perf-mem: "Is there any recommended way how to measure it?" -
NbTestCase.assertSize() can be used.

resources-layer: You could mention the concrete layer folders if you
already know them.

Model providers: you mention them several times throughout the arch
document although it's IMHO not entirely clear what do they represent.
Aren't the model providers in fact an SPI? At least they get
registered in the layer so it looks like they are.
Comment 3 Jaroslav Tulach 2004-12-08 12:41:04 UTC
The assigned reviewer for this case is going to be Jesse as he had a
strong opinion about the navigator integration. I asked Hrebejk to
defend Dafe and he agreed. Pavel needs to be the reviewer as he wishes
to use the functionality (at least in future) and Mila said he is
interested in it as well. So guys, let's get ready for the review.
Comment 4 Jaroslav Tulach 2004-12-10 13:25:45 UTC
Y01 Use <api> tag for list of modules and probably name all of them. 
I bet you depend on java at least. 
 
Y02 What are the names and locations of your (module) files? Again 
<api tag> 
 
Y03 Another <api> is the layer registration. I want to know where is 
your folder and what you expect to find there. Btw. I have a feeling 
that usege of Lookup would be more appropriate. Why not instead of 
reading layer just do Lookup.getDefault().lookup (...)? You would 
save yourself a lot of other work and performance surely is not a 
concern when you have just one provider (java). 
 
Y04 You module is providing component. What is going to be in your 
component's getLookup()? This is an important part of API as the 
rest of NetBeans is going to act based on your selection. Will there 
be a Node? In such case its getLookup() will be important as well. 
Please document using <api> tag. 
 
Y05 [perf-scale] I hope you do this computation outside of event 
thread 
 
Comment 5 David Simonek 2004-12-10 17:05:04 UTC
Thanks guys for comments. I'll try to reply and enhance my answers.
Will deliver on Monday ASAP. Thx.
Comment 6 David Simonek 2004-12-14 13:30:28 UTC
Created attachment 19282 [details]
new version of arch answers
Comment 7 David Simonek 2004-12-14 13:44:14 UTC
I completed arch answers and attached new version. Below are answers
to your questions and comments. I'm sorry I wasn't able to complete
answers yesterday.
Btw I was surprised by some of the questions, I thought that Navigator
story is better known...pardon my ignorance.

Mila:
> arch-usecases: "No public API, thus no use cases." - Although the
I completed usecases.

> arch-time: The URLs in the arch documents should be publicly reachable
(http://jupiter...)

Deleted private url and wrote brief plan.

> resources-layer: You could mention the concrete layer folders if you
> already know them.
Added.

> Model providers: you mention them several times throughout the arch
> document although it's IMHO not entirely clear what do they represent.
> Aren't the model providers in fact an SPI? At least they get
> registered in the layer so it looks like they are.
Yes, you are right, it is real SPI. I just tried to emphasise current
privacy and under development state of this SPI and didn't know how to
do it.

> Y01 Use <api> tag for list of modules and probably name all of them. 
> I bet you depend on java at least. 
Yo I did it, I depend on even more things (jmi.javamodel)
 
> Y02 What are the names and locations of your (module) files? Again 
> <api tag> 
done.
 
> Y03 Another <api> is the layer registration. I want to know where is 
I added api to describe layer reg. Lookup may be better, I don't know.
 My goal is to have as little work on this as possible, and it's
already written and functional through layer registration, so I'd
prefer to let this as is for promo-E.
 
> Y04 You module is providing component. What is going to be in your 
I checked the code and it seems that activated nodes are empty and no
special Lookup is used. Probably this needs to be changed, as java
actions should work naturally when navigator component is active.
 
> Y05 [perf-scale] I hope you do this computation outside of event 
> thread 
Yes.
Comment 8 Jesse Glick 2004-12-16 19:38:45 UTC
Accepted with TCRs, see opinion document.
Comment 9 Jaroslav Tulach 2005-04-15 13:43:39 UTC
Review is over.