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 112441 - Make web/webapi public
Summary: Make web/webapi public
Status: RESOLVED FIXED
Alias: None
Product: javaee
Classification: Unclassified
Component: Code (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Andrei Badea
URL:
Keywords: API, API_REVIEW_FAST
Depends on:
Blocks: 110040
  Show dependency tree
 
Reported: 2007-08-09 13:12 UTC by Andrei Badea
Modified: 2007-10-05 16:33 UTC (History)
2 users (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments
Log of webapi_public_112441 merge to trunk (13.90 KB, text/plain)
2007-09-17 21:02 UTC, Andrei Badea
Details
Javadoc (153.26 KB, application/x-compressed)
2007-09-21 15:01 UTC, Andrei Badea
Details
Updated Javadoc (155.55 KB, application/x-compressed)
2007-09-25 15:46 UTC, Andrei Badea
Details
Patch to make web/webapi public (1.88 KB, text/plain)
2007-09-25 15:47 UTC, Andrei Badea
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrei Badea 2007-08-09 13:12:39 UTC
Stabilize the API in web/webapi and make it public.
Comment 1 Andrei Badea 2007-08-09 17:39:41 UTC
Development is taking place in

visualweb/project/jsf
web/core
web/jsf
web/project
web/struts
web/webapi

on the webapi_public_112441 branch.
Comment 2 Andrei Badea 2007-09-17 21:00:39 UTC
Made the API stable as much as possible given the backward compatibility constraint. Ataching the commit log.
Comment 3 Andrei Badea 2007-09-17 21:02:09 UTC
Created attachment 48938 [details]
Log of webapi_public_112441 merge to trunk
Comment 4 Andrei Badea 2007-09-21 15:01:19 UTC
Created attachment 49243 [details]
Javadoc
Comment 5 Andrei Badea 2007-09-21 15:06:50 UTC
I would like to ask for a fast-track API review for making the web/webapi a public API. This API has been in use for
more than three years now as a friend API with public packages. It is already used by external contributors, mostly
implementors of web frameworks. The web frameworks API is documented in "Rich Client Programming: Plugging into the
NetBeans Platform".
Comment 6 Jaroslav Tulach 2007-09-25 07:47:04 UTC
Y01 Make sure the API is published on http://bits.netbeans.org/dev/javadoc/
Y02 The attached javadoc still says "Friend" API. Make sure you change that to "stable"
Y03 The intro page of the javadoc has link to Arch Document and API Changes Document. This is old format of the page 
(probably influenced by some property in project.properties), disable this, the default content is better. It lists 
usecases, etc on the intro page.
Y04 One method of the API returns org.netbeans.modules.j2ee.dd.api.web.WebAppMetadata, imho that should be also public 
API then. At least it has to be published at http://bits.netbeans.org/dev/javadoc/
Y05 In the list of arch-usecases I see nothing about WebFrameworks. Can you add a case describing how to register new 
web framework?
Comment 7 Milos Kleint 2007-09-25 08:06:41 UTC
mk01: WebPrivilegedTemplates class was probably rendered obsolete by the introduction of LookupProviders. Anyone can now
place any privileged templates in any project type (that supports composite project lookup) by creating a LookupProvider
and adding a PrivilegedTemplates implementation in the lookup it provides.

mk02: WebModule marks the getJavaSources() method as deprecated, but the WebModuleImplementation doesn't. Can we
actually remove it from the WebModuleImplementation class?
Comment 8 Andrei Badea 2007-09-25 15:46:01 UTC
Created attachment 49473 [details]
Updated Javadoc
Comment 9 Andrei Badea 2007-09-25 15:47:17 UTC
Created attachment 49474 [details]
Patch to make web/webapi public
Comment 10 Andrei Badea 2007-09-25 15:51:20 UTC
Re Y01, Y02: sure, I was planning to do that after the review. See the attached patch. (I haven't build the javadoc for
the whole IDE yet, but I will before committing.)

Re Y03: done.

Re Y04: you're right, that is a flaw. j2ee/ddapi is currently not a public API (nor is it exactly in the shape to become
one for 6.0), but I will at least publish it. It should have low impact: people using WebModule, but not calling
getMetadataModel() will still be able to compile, and those needing getMetadataModel() will be able to depend on
j2ee/ddapi, since it has public packages and it is only declared as friend in arch.xml (and it used in the book, so this
can't be changed). This situation is temporary, j2ee/ddapi should be made public too in a future release.

Re Y05: there is a paragraph about web frameworks, but the use cases were not clearly separated using <usecase>
elements. I did that, is it better now?

Re mk01: an implementor would then need to get the WebModule from the project, which is not possible (there may be more
WebModule's in a project, and they are retrieved based on a FileObject (see WebModule.getWebModule()).

Re mk02: I deprecated WebModuleImplementation.getJavaSources(). I don't want to remove it, because that is semantically
incompatible. Also, I just realized it might have at least one client in NetBeans after all -- see issue 109426 desc12.
Comment 11 Andrei Badea 2007-10-02 09:54:47 UTC
If there are no more comments I will commit tomorrow. Thank you for the review.
Comment 12 Andrei Badea 2007-10-05 16:33:01 UTC
Fixed.

Checking in nbbuild/build.properties;
/cvs/nbbuild/build.properties,v  <--  build.properties
new revision: 1.535; previous revision: 1.534
done
Checking in web/arch/arch-web-webapi.xml;
/cvs/web/arch/arch-web-webapi.xml,v  <--  arch-web-webapi.xml
new revision: 1.12; previous revision: 1.11
done
Checking in web/webapi/apichanges.xml;
/cvs/web/webapi/apichanges.xml,v  <--  apichanges.xml
new revision: 1.9; previous revision: 1.8
done
Checking in web/webapi/manifest.mf;
/cvs/web/webapi/manifest.mf,v  <--  manifest.mf
new revision: 1.13; previous revision: 1.12
done