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 24037 - Remove Internal HTTP Server menuitem
Summary: Remove Internal HTTP Server menuitem
Status: VERIFIED FIXED
Alias: None
Product: ide
Classification: Unclassified
Component: Internal Server (show other bugs)
Version: 3.x
Hardware: PC Linux
: P2 blocker (vote)
Assignee: _ rkubacki
URL:
Keywords: UI
Depends on:
Blocks:
 
Reported: 2002-05-24 15:15 UTC by Jiri Mzourek
Modified: 2002-08-08 09:18 UTC (History)
4 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jiri Mzourek 2002-05-24 15:15:00 UTC
Please remove mentioned menuitem from Tools menu
by Wed. 5/29/2002 (UI Freeze date). Thanks.
Comment 1 Jiri Mzourek 2002-05-24 15:24:47 UTC
It's OK to move this functionality to the Runtime tab.
Comment 2 _ rkubacki 2002-05-24 17:52:51 UTC
Created node in Runtime tab that proxies to settings and has actions
Start and Stop. See also issue 19499
Comment 3 Jason Rush 2002-06-11 21:32:51 UTC
Verified in NB 3.4 dev build 200206070835.
Comment 4 Petr Jiricka 2002-07-11 09:13:05 UTC
I would like to reexamine the decision to put the HTTP 
Server node to the Runtime tab. IMO, the internal server 
should not be a user-visible feature, rather, it should be 
something that just works in the background (when needed).

The presence on the Runtime tab makes the tab 
unnecessarily complicated. Furthermore, many users confuse 
the internal server with the server that is used for 
running web applications.

So, should we remove the internal server from the Runtime 
tab ?
Comment 5 jhoffman 2002-07-11 18:11:53 UTC
Unfortunately, our attempts to hide this server in the past have not
gone well.  When there is a problem, the user must search (usually
unsuccessfully) in the Tools > Options window in order to find the
HTTP server options. Also, other modules may be using this feature, so
hiding it may not work well for them. Hiding it also makes it more
difficult to document--granted, if it were truly "invisible" it should
not be documented, however I don't think that is the case.  Since this
server uses a resource (the Port number), there needs to be a sensible
explanation to the user.  Having the HTTP Server visible provides this
explanation.

Putting the HTTP Server in the Runtime tab makes it more visible than
it was before.  I agree that it could be confusing, so perhaps we
should consider moving it under the "server registry" node so that it
doesn't clutter the top level of the runtime tab hierarchy.  Having it
closer to the Tomcat/Internal server node may actually help to explain
that it is indeed a different server than the internal tomcat server
(and needs to use a different port number).
Comment 6 Petr Jiricka 2002-07-12 08:48:07 UTC
Jeff, let's answer the following questions first:
1) What user-visible functionality does the embedded HTTP 
server provide ?
2) What customizations does the user typically need to do 
in the server's settings ?

My answers to these questions are the following:
1. None
2. The user shouldn't need to do any customizations - if 
they do, then that's a bug. Things should just work out of 
the box.

From these answers, I infer that we don't need to show the 
HTTP server settings to the user.

If we do show it (again, this is not what I prefer), then 
we should choose such a name that would make it clear that 
this is NOT the server for running web applications - how 
about "Interoperability Server" or "Internal Connection 
Service" ?

It should definitely not be under the server registry, as 
the server registry is defined as registry of servers 
which can run the user's Web/J2EE applications. The 
embedded server does not fulfil this requirement.
Comment 7 jhoffman 2002-07-12 17:12:38 UTC
1. The internal HTTP Server provides the ability to view Javadoc in
your system browser.  It may also provide many other features that I
don't know about since 3rd party modules may use it.
2. Ideally, the user should not have to configure it.  It should start
up automatically (which it sometimes does not, if the module developer
did not start it--which is what happened during our early access since
the HTTP monitor module did not automatically start it).

Unfortunately, things break if the user tries to start another server
with the port number we've chosen for the internal server.  We cannot
detect if the user is attempting to use the chosen port number for
another server external to the IDE (and then automatically change
ours), so I think we must at least provide a way for the user to
change the port number.  We can't assume that just because we found an
unused port when the IDE started up that the user may not want to
start another service with that port number while the IDE is running.

I see your point about putting it under the server registry, and I
guess I can understand why it shouldn't go there.  I agree that
changing the name from simply "HTTP Server" to something like "HTTP
Connection Service fro Internal Use" might be better.  The name still
has to convey that this service uses a public port number so that the
user may have a clue as to what might be conflicting with the port
that they want to use for some other service.
Comment 8 Petr Jiricka 2002-07-15 09:17:57 UTC
More replies:

Using the server for Javadoc - the server is certainly 
used when viewing Javadoc, but viewing Javadoc is not 
PROVIDED by the server - it is provided by the Javadoc 
module. The use of the server is an implementation detail 
of the Javadoc module. Saying that the server provides 
viewing Javadoc would be like saying that the OpenAPIs 
provide editing Java files. That's not true, editing Java 
files is done by the Java editor, the OpenAPIs only enable 
it in the background. The situation with the server is 
analogous.

About the conflict with another process and giving the 
user the ability to resolve the conflict: the very same 
arguments hold for the OpenFile server - it also has a 
port which may conflict with another process. Moreover, 
the OpenFile server does not detect if the port is already 
taken, and does not autoincrement its port number, which 
makes the possibility of conflict bigger. So why are you 
worrying so much about the embedded HTTP server and not 
worrying at all about the OpenFile server ?

It looks like we agree on changing the name, now what 
should the name be ? How about "Connection Service for 
Internal Use" ? Isn't that too long ? Or just "Internal 
Connection Service" ?
Comment 9 jhoffman 2002-07-16 00:45:19 UTC
OK.  To close this discussion, it seems like you've agreed that we
can't totally hide the HTTP server right now.  Therefore, we should at
least give it a name that distinguishes it from the internal Tomcat
web server.  I personally like "Connection Service for Internal Use"
and I don't think that is too long.  "Internal Connection Service"
seems to similar to "Internal Web Server" to me.  The words "for
Internal Use" more clearly indicate to application developers using
the IDE that this item is for the IDE's own functions.  It should also
help module developers identify that this is a resource that they can
use for their modules.

I was not aware of the OpenFile server, so perhaps I need to look into
it and file a bug about it's behavior.  Obviously, I'm only worrying
about the HTTP server, since it is a part of the product that I'm
familiar with, and have experienced it's problems personally :-(
Comment 10 iformanek 2002-07-16 13:41:21 UTC
To be honest, I am not all that thrilled by the 
term "Connection Service for Internal Use", mainly because 
the meanings of "internal" and "connection service" are 
ambiguous, I would say that the improvement in clarity 
over "Internal HTTP Server" are minimal.
One more comment I cannot resist to make - I do not think 
that the argument about suitability for module authors is 
very improtant, since module writers are difinitely not 
the target user base we should be designing the product 
for.
Comment 11 Petr Jiricka 2002-08-07 15:08:47 UTC
Ian, I agree we should not target module authors.

As for the name, do you have any suggestions ? (I don't 
like names which contain words HTTP or Server, as people 
confuse that with the server that is used for running web 
apps.)
Comment 12 iformanek 2002-08-07 15:31:47 UTC
Well, hmm. Looking at the problem description, I still do not agree
that there is a need to make the HTTP Server configuration more
visible. What is the user scenario? Putting it to the runtime tab
expects that it will be used frequently and repeatedly, I do not think
this is the case.

It is a set of settings and settings have a standard place to be in -
Tools | Options. One could argue that the user has hard time finding
colors configuration for the editor - we are not talking about putting
this into the runtime tab, so why shoudl we do it for HTTP Server?
Comment 13 Petr Jiricka 2002-08-07 16:34:48 UTC
Yes, I completely agree with Ian on this. Now we need to 
convince Jeff :-)

Still, the user confusion happens even if the item is just 
in IDE settings. I've heard people say "I can't run my 
JSP. I've tried to change the port number of the internal 
HTTP server in IDE settings, but none of the ports I tried 
works."

Comment 14 jhoffman 2002-08-07 17:27:25 UTC
I would be happy if we could somehow be consistent with how we 
addressed these issues.  Port numbers are always going to be 
user resources, so it would be great if we could present the 
complete list somewhere and allow the user to modify some, if 
necessary.  It's not critical to me for the list to be on the 
Runtime tab, if it is in Tools > Options, that would be 
fine--as long as it is documented.  In addition, when the IDE 
encounters a port conflict, then we need consistent messages 
that convey to the user what has happened and how to fix it.  I 
intend to file some bugs against the Open File Server to 
address this.
Comment 15 iformanek 2002-08-08 09:18:56 UTC
Agreed, makes sense...