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 134206

Summary: Previous public JSP Parser APIs are now missing!
Product: javaee Reporter: _ potingwu <potingwu>
Component: JSP ParserAssignee: issues@javaee <issues>
Status: NEW ---    
Severity: blocker CC: dkonecny, pjiricka
Priority: P2 Keywords: API
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: ENHANCEMENT Exception Reporter:

Description _ potingwu 2008-04-30 00:18:10 UTC
NetBeans IDE changed some 'public' API (these APIs are public in NB 5.5 & 6.0) to friend and broke the 3rd party
developers of the Facelets plugin. This is been thought as a showstopper from the Facelets development.

Besides, it affects not just the 3rd party modules! Web.jsf currently uses "implementation dependency" to access some
APIs that are not even under the friend-packages list.

I understand we should not expose the whole like 5.5 & 6.0. But we should plan to make partial of them public for
continuing development. We should also encourage all web frameworks developers to use these APIs instead of implementing
their own and behave differently.

The missing APIs are:

From org.netbeans.modules.web.core.syntax:
   org.netbeans.modules.web.core.syntax.spi.ErrorAnnotation.LineSetAnnotation;
   org.netbeans.modules.web.core.syntax.spi.JSPColoringData;
   org.netbeans.modules.web.core.syntax.spi.JspContextInfo;
   org.netbeans.modules.web.core.syntax.spi.AutoTagImporterProvider;

From org.netbeans.modules.web.jspparser:
   org.netbeans.modules.web.jsps.parserapi.JspParserAPI.ParseResult
   org.netbeans.modules.web.jsps.parserapi.PageInfo 

And the APIs web.jsf currently uses 'implementation dependency' are:

   org.netbeans.modules.web.core.syntax.JspSyntaxSupport;
   org.netbeans.modules.web.core.syntax.completion.JspCompletionItem;
   org.netbeans.modules.web.core.syntax.completion.ELExpression;
   org.netbeans.modules.web.core.syntax.completion.ResultItemPaintComponent;
Comment 1 Andrei Badea 2008-04-30 13:04:16 UTC
> Web.jsf currently uses "implementation dependency" to access some
> APIs that are not even under the friend-packages list.

web.jsf has been using an implementation dependency since 5.5, since it needs other packages from web.core.syntax (such
as  the JSP code completion items). So that impl dep is unrelated to the change that made web.core.syntax and
web.jspparser friend APIs in 6.1.
Comment 2 _ potingwu 2008-04-30 17:08:10 UTC
Thanks for clarifying. If we can publish a 'JSP Editor API', then the code-completion should be a candidate as well.
Comment 3 Petr Jiricka 2008-05-03 01:29:43 UTC
Sounds like an enhancement request, not a defect, right? Since Facelets module can use the friend API in trunk (NB 6.5
codebase), there is no user visible problem.